Я хочу экспортировать документ из org-mode в latex с классом статьи KOMA-Script scrartcl
. Я думал, что это так же просто, как переключиться с article
на book
. Поэтому я поместил в свой org-файл следующую конфигурацию (doc — это поддерево более крупного документа):
:EXPORT_LATEX_CLASS: koma-article
:EXPORT_LATEX_CLASS_OPTIONS: [11pt,twoside,a4paper]
Однако после выполнения команды экспорта я получаю сообщение об ошибке:
Unknown latex class `koma-article'
Я не мог себе представить, что классы кома не распознаются автоматически org-mode. Я провел некоторые исследования в Интернете и попробовалэто решениено это не сработало.
Что не так? Есть ли что-то очевидное, что я не делаю?
Спасибо за вашу помощь.
Добавлена информация после комментария:правильное имя класса — scrartcl
а не koma-article
. На самом деле я пробовал оба имени koma-article
и scrartcl
, но в обоих случаях получаю одно и то же сообщение об ошибке.
решение1
По умолчанию вывод 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}"))))