Emacs org-modeを使ってみる: (14) LaTeXにエクスポート
今回は,LaTeXファイルにエクスポートする方法についてまとめてみる.
なおUbuntu 8.04 LTSとEmacs22上で, org-6.34c (2010年1月10日リリース)の利用を前提にしている.
リンク
エクスポートの結果
最初に,元のorgファイルとエクスポートした結果を示す.
設定
.emacs等に以下のように設定する.本来の org-export-latex-classes の設定を上書きしているので注意.
(setq org-export-latex-coding-system 'euc-jp-unix) (setq org-export-latex-date-format "%Y-%m-%d") (setq org-export-latex-classes nil) (add-to-list 'org-export-latex-classes '("jarticle" "\\documentclass[a4j]{jarticle}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}") ))
orgファイルの例
以下は元のorgファイル latexexport.org の内容である.
#+TITLE: orgファイルの LaTeX エクスポート #+AUTHOR: 屯遁 #+EMAIL: #+DATE: 2010年2月17日 #+LANGUAGE: ja #+OPTIONS: toc:nil #+LATEX_CLASS: jarticle #+LATEX_CLASS_OPTIONS: [a4j] #+LATEX_HEADER: \usepackage{org} #+MACRO: em \bgroup\color{red}$1\egroup * ヘッダ ** タイトル等 タイトルや著者等は以下のように記述する. #+BEGIN_EXAMPLE #+TITLE: orgファイルのLaTeXエクスポート #+AUTHOR: 屯遁 #+EMAIL: #+END_EXAMPLE ** オプションの指定 オプションを以下のように指定する. #+BEGIN_EXAMPLE #+OPTIONS: toc:nil #+END_EXAMPLE =toc:nil= は目次なしを表す. ** クラスファイルの指定 クラスファイルは以下のように指定する. #+BEGIN_EXAMPLE #+LATEX_CLASS: jarticle #+LATEX_CLASS_OPTIONS: [a4j,11pt] #+LATEX_HEADER: \usepackage{org} #+END_EXAMPLE =org.sty= の内容については,[[*インクルード][インクルード]] を参照のこと. * 基本要素 ** 文字修飾 *太字* , /斜体/ などの文字修飾は,以下のように記述する. ただし,「 =*bold*= 」等の前後には半角スペースが必要になる点に注意する. #+BEGIN_QUOTE |------------+----------| | 記述 | 表示 | |------------+----------| | ~*bold*~ | *bold* | | ~/italic/~ | /italic/ | | ~_ulined_~ | _ulined_ | | ~=fixed=~ | ~fixed~ | |------------+----------| #+END_QUOTE ** 下付き上付き文字 下付き文字や上付き文字は,以下のように記述する ([[*LaTeX表記][LaTeX表記]]も参照). #+BEGIN_QUOTE |-------------+-----------| | 記述 | 表示 | |-------------+-----------| | ~x_ij~ | x_ij | | ~10^23~ | 10^23 | | ~a_{i-1}^2~ | a_{i-1}^2 | | ~_{5}C_2~ | _{5}C_2 | |-------------+-----------| #+END_QUOTE 「 =_= 」や「 =^= 」を記述したい場合は, 「 \ 」(バックスラッシュ)を前に付ける. ** インライン画像 画像のインライン表示は以下のように記述する. 「file: 」を忘れないように記述する. #+BEGIN_EXAMPLE #+ATTR_LaTeX: width=0.5\textwidth [[file:org-2010-02-07.png]] #+END_EXAMPLE 以下は,上のように記述したインライン画像の例である. #+ATTR_LaTeX: width=0.5\textwidth [[file:org-2010-02-07.png]] ** リンク リンクは,通常のorgでの記法にしたがって記述すれば, [[* ヘッダ][ヘッダ]] や [[http://d.hatena.ne.jp/tamura70/][屯遁のパズルとプログラミングの日記]] のようになる. ** コメント 「* COMMENT 見出し」のようになっている部分木は, コメントとなりエクスポートされない. *** COMMENT コメントの例 この部分はエクスポートされない **** この部分もエクスポートされない * ブロック要素 ** リスト リストは,通常のorgでの記法にしたがって記述すれば良い. - 項目1 - 子項目1 - 子項目2 - 項目2 1. 最初 2. 二番目 ** 表 表は,以下のように記述すれば枠線が表示される. #+BEGIN_EXAMPLE #+ATTR_LaTeX: align=|l|r|r|r|r|r| |----------+----+----+----+----+------| | | Q1 | Q2 | Q3 | Q4 | 合計 | |----------+----+----+----+----+------| | パソコン | 30 | 0 | 50 | 0 | 80 | | ソフト | 5 | 15 | 20 | 3 | 43 | | 通信 | 2 | 2 | 2 | 2 | 8 | |----------+----+----+----+----+------| | 合計 | 37 | 17 | 72 | 5 | 131 | |----------+----+----+----+----+------| #+END_EXAMPLE 以下は,上のように記述した表の例である. #+ATTR_LaTeX: align=|l|r|r|r|r|r| |----------+----+----+----+----+------| | | Q1 | Q2 | Q3 | Q4 | 合計 | |----------+----+----+----+----+------| | パソコン | 30 | 0 | 50 | 0 | 80 | | ソフト | 5 | 15 | 20 | 3 | 43 | | 通信 | 2 | 2 | 2 | 2 | 8 | |----------+----+----+----+----+------| | 合計 | 37 | 17 | 72 | 5 | 131 | |----------+----+----+----+----+------| ** センタリング センタリングしたい部分は,以下のように記述する. #+BEGIN_EXAMPLE #+BEGIN_CENTER すべてをできる限りシンプルにせよ.\\ ただしそれ以上はシンプルにするな. #+END_CENTER #+END_EXAMPLE 以下は,エクスポートした結果である. #+BEGIN_CENTER すべてをできる限りシンプルにせよ.\\ ただしそれ以上はシンプルにするな. #+END_CENTER ** 引用 引用の部分は,以下のように記述する. #+BEGIN_EXAMPLE #+BEGIN_QUOTE すべてをできる限りシンプルにせよ. ただしそれ以上はシンプルにするな. -- アインシュタイン #+END_QUOTE #+END_EXAMPLE 以下は,エクスポートした結果である. #+BEGIN_QUOTE すべてをできる限りシンプルにせよ. ただしそれ以上はシンプルにするな. -- アインシュタイン #+END_QUOTE ** 例示 以下のように行を「:」から始めれば, =<pre>= タグとしてエクスポートされる. : : 例示の行 : : <pre> タグでエクスポートされる 以下は,上の例のエクスポート結果である. : 例示の行 : <pre> タグでエクスポートされる また,「 =#+BEGIN_EXAMPLE= 」,「 =#+END_EXAMPLE= 」でくくった場合も, =<pre>= タグとしてエクスポートされる. : #+BEGIN_EXAMPLE : 例示のブロックの例 : <pre> タグでエクスポートされる : #+END_EXAMPLE プログラムの場合は「 =#+BEGIN_SRC= 」を用い, 後ろにはプログラミング言語名を指定する. また,「-n」オプションを用いると行番号も表示される. #+BEGIN_EXAMPLE #+BEGIN_SRC c -n int main(int argc, char* argv[]) { ..... } #+END_SRC #+END_EXAMPLE 以下は,上の例をエクスポートした結果である. #+BEGIN_SRC c -n int main(int argc, char* argv[]) { ..... } #+END_SRC * 進んだ利用 ** インクルード 以下のように記述すると,ファイルをインクルードできる (インデントせずに記述する). : #+INCLUDE: "org.sty" example 以下は,上のように記述して =org.sty= をインクルードした結果である. #+INCLUDE: "org.sty" example ** マクロ 以下のように記述すると,マクロを定義できる. 「 =em= 」がマクロ名,その後ろがマクロ本体である. 引数は「 =$1= 」,「 =$2= 」等を用いる. #+BEGIN_EXAMPLE #+MACRO: em \bgroup\color{red}$1\egroup #+END_EXAMPLE ~{{{~ =em(強調部分)= ~}}}~ のように三重の波カッコでくくるとマクロが展開され, 結果は「{{{em(強調部分)}}}」となる. ** LaTeX表記 LaTeXの式や数式ブロックは以下のようにして記述する. #+BEGIN_EXAMPLE $\sum_{i=1}^n a_i x_i \ge b$ の時 #+END_EXAMPLE 上の例は,以下のような結果になる. #+BEGIN_QUOTE $\sum_{i=1}^n a_i x_i \ge b$ の時 #+END_QUOTE 数式ブロックは,そのまま記述できる. #+BEGIN_EXAMPLE \begin{eqnarray*} x & = & \sqrt{\frac{a}{b}} \end{eqnarray*} #+END_EXAMPLE 上の例は,以下のような結果になる. #+BEGIN_QUOTE \begin{eqnarray*} x & = & \sqrt{\frac{a}{b}} \end{eqnarray*} #+END_QUOTE -----
エクスポートの実行
「C-c C-e l」でLaTeXにエクスポートできる.
スタイルファイルの例
以下はスタイルファイルorg.styの内容である.
\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}} \usepackage{longtable} \usepackage{float} \usepackage{wrapfig} \usepackage{amssymb} \usepackage[dvipdfm]{graphicx,color} \usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,bookmarkstype=toc, colorlinks,linkcolor=blue,urlcolor=blue]{hyperref}
PDFの作成
以下のようにしてPDFを作成する.
$ platex latexexport.tex $ platex latexexport.tex $ dvipdfmx latexexport.dvi
「Emacs org-modeを使ってみる」の目次
- (1) インストール
- (2) 見出しと項目の編集
- (3) 表の編集
- (4) 表計算
- (5) TODOリスト
- (6) アジェンダ表示
- (7) ハイパーリンク
- (8) メモを取る
- (9) キーバインド1/3
- (10) キーバインド2/3
- (11) キーバインド3/3
- (12) GTDツールとして
- (13) HTMLにエクスポート
- (14) LaTeXにエクスポート
- (15) Beamerにエクスポート
- (16) エクスポート結果
- (17) orgの表を埋め込む
- (18) 計時
- (19) graphvizとditaaの図を埋め込む
- (20) gnuplotを呼び出す
- (21) LaTeX数式のインライン画像表示
- (22) RSSフィードを取り込む
- (23) エクスポート時に利用できるLaTeX記号
- (24) 繰り返し行動の記録
- (25) iCalendarにエクスポート
- (26) タグとプロパティ
- (27) ドローワとアーカイブ
- (28) バッファ内設定一覧
- (29) エクスポートオプション一覧
- (30) CSSクラス名一覧
- (31) Emacs Lispの実行
- (32) HTML表のスタイル設定
- (33) 脚注と参考文献の利用
- (34) 短縮形リンクの利用
- (35) org-babel-perlを使う1/4
- (36) org-babel-perlを使う2/4
- (37) org-babel-perlを使う3/4
- (38) org-babel-perlを使う4/4
- (39) speedbarを使う
- (40) org-babel-Rを使う1/2
- (41) org-babel-Rを使う2/2
- (42) 日本語化ditaaの利用
- (43) mhcをインポート
- (44) 再びHTMLにエクスポート
- (45) Firefoxからブックマーク