Я использую emacs org-mode для отслеживания заметок и задач. Иногда я хочу экспортировать заметки в виде латексного файла, используя официальный фирменный стиль. Чтобы получить правильные стили заголовков, я запускаю следующую команду elisp:
(add-to-list 'org-latex-classes
'("report"
"\\documentclass{report}"
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
)
К сожалению, это не работает в .emacs. Я получаю следующую ошибку:
Debugger entered--Lisp error: (void-variable org-latex-classes)
(member (quote ("report" "\\documentclass{report}" ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))) org-latex-classes)
(if (member (quote ("report" "\\documentclass{report}" ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))) org-latex-classes) org-latex-classes (setq org-latex-classes (cons (quote ("report" "\\documentclass{report}" ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))) org-latex-classes)))
eval((if (member (quote ("report" "\\documentclass{report}" ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))) org-latex-classes) org-latex-classes (setq org-latex-classes (cons (quote ("report" "\\documentclass{report}" ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))) org-latex-classes))) nil)
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
Команда работает, только если я запустил org-export-dispatch для экспорта в PDF перед запуском add-to-list.
Я новичок в elisp и настройке Emacs, и еще больше новичок в использовании Latex. Так что, если кто-нибудь скажет мне, как заставить команду работать в .emacs, я был бы очень благодарен. Я предполагаю, что список еще не был создан, когда загружен .emacs, но я не знаю, как заставить это работать.