
Я попробовал это предложение:Использование статьи KOMA-Script с org-mode
При попытке экспорта из файла org в документ LaTeX класса koma-article я получаю сообщение unknown LaTeX class 'scrartcl'.
Вот MWE.
#+LATEX_CLASS: scrartcl
#+latex_class_options:
#+title: Mininum Working Example
* Opening Statement
This is a minimal working example.
Следующее находится в моем init.el
(require 'ox-latex)
(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}"))))
Я проверил org-latex-classes и обнаружил там данные koma-article.
Экспорт в файл LaTeX с классом article работает. Затем я могу изменить класс на scrartcl в режиме TeX и создать pdf. Это работает, но мне было интересно, есть ли способ пропустить этот шаг.
Спасибо.
решение1
Это строка документации org-latex-classes
:
org-latex-classes
— это переменная, определенная вox-latex.el
.Список классов LaTeX и связанный заголовок и структура. Если
#+LATEX_CLASS
задано в буфере, используйте его значение и связанную информацию. Вот структура каждой ячейки:(class-name header-string (numbered-section . unnumbered-section) ...)
Первая запись в каждом списке — это class-name
имя, которое вы установили с помощью #+LATEX_CLASS:
в вашем файле .org. Так что если вы хотите использовать scrartcl
, запись в вашем файле init должна выглядеть следующим образом:
(with-eval-after-load "ox-latex"
(add-to-list 'org-latex-classes
'("scrartcl" "\\documentclass{scrartcl}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))))
(require 'ox-latex)
Обратите внимание, что при использовании . форма не нужна with-eval-after-load
.