org-mode で KOMA-Script 記事を使用する

org-mode で KOMA-Script 記事を使用する

KOMA-Script の記事クラスを使用して、org-mode から LaTeX にドキュメントをエクスポートします。からscrartclに切り替えるのと同じくらい簡単だと思いました。そこで、org ファイルに次の構成を入れました (ドキュメントは、より大きなドキュメントのサブツリーです)。articlebook

:EXPORT_LATEX_CLASS: koma-article
:EXPORT_LATEX_CLASS_OPTIONS: [11pt,twoside,a4paper]

しかし、エクスポート コマンドを実行すると、次のエラー メッセージが表示されます:

Unknown latex class `koma-article'

org-modeがkomaクラスを自動的に認識しないなんて想像もつきませんでした。ウェブで調べて試してみました。この解決策しかし、それは機能しませんでした。

何が問題なのでしょう?私が明らかにやっていないことがあるのでしょうか?

ご協力いただきありがとうございます。

コメント後に情報を追加しました:クラスの正しい名前は でありscrartcl、 ではありません。実際にはと のkoma-article両方の名前を試しましたが、どちらの場合も同じエラー メッセージが表示されます。koma-articlescrartcl

答え1

からorgマニュアル:

デフォルトでは、LaTeX 出力はクラスを使用しますarticle

org-latex-default-classこれをグローバルに変更するには、 または に 異なる値を設定してローカルに変更するか、 #+LATEX_CLASS: myclassファイルに のようなオプションを追加するか、EXPORT_LATEX_CLASS この (サブ) ツリーのみを含む領域をエクスポートするときに適用されるプロパティを使用します。 クラスは にリストされている必要がありますorg-latex-classes。 この変数は各クラスのヘッダー テンプレートを定義し、各クラスのセクション構造を定義できるようにします。 また、独自のクラスをここで定義することもできます。

org-latex-classesは、LaTeX クラスと関連するヘッダーおよび構造の連想リストです。したがって、koma-articleこのリストに を追加する必要があります。init ファイルに次のような内容を入れることをお勧めします。

(eval-after-load "ox-latex"
  '(add-to-list 'org-latex-classes
                '("koma-article" "\\documentclass{scrartcl}"
                  ("\\section{%s}" . "\\section*{%s}")
                  ("\\subsection{%s}" . "\\subsection*{%s}")
                  ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                  ("\\paragraph{%s}" . "\\paragraph*{%s}")
                  ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))))

Emacs 24.4 以降を使用している場合は、以下を使用できます。

(with-eval-after-load "ox-latex"
  (add-to-list 'org-latex-classes
               '("koma-article" "\\documentclass{scrartcl}"
                 ("\\section{%s}" . "\\section*{%s}")
                 ("\\subsection{%s}" . "\\subsection*{%s}")
                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                 ("\\paragraph{%s}" . "\\paragraph*{%s}")
                 ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))))

関連情報