Деактивированные пакеты (например, geometry
выше)
Org-mode распознает синтаксис LaTeX внутри кодовых блоков LaTeX, а также при включении файлов LaTeX в контент. (См. Цитирование кода LaTeX .)
пакетов, загруженных RequirePackage
Как указано выше.
Входные макросы
Как указано выше.
\immediate\write18
макросы
Я полагаю, что это также должно быть, как указано выше, однако есть альтернативный метод решения этой проблемы Если вы создадите блок исходного кода типа sh
с командой внутри него, Org оценит его при экспорте и выдаст желаемое поведение. Вы должны включить sh
как тип языка babel, чтобы он работал.
(require 'ob-shell)
Вы также можете включить sh
в качестве одного из языков, загружаемых babel, добавив его в org-babel-load-languages
(acons 'sh 't org-babel-load-languages)
Затем используйте блок кода, подобный следующему, чтобы запустить ваш ./vc
#+name: Test
#+begin_src sh :results output silent :exports results
./vc
#+end_src
Пока это идет до вашей строки \input{vc}
, он должен запускать код и затем включать его. Просто следуйте за блоком кода с
#+LATEX: \input{vc}
И ваш контент должен быть включен.
Комментарии после использования макроса пакета
Если код находится внутри блока LaTeX, он должен распознавать его как LaTeX.
Макрос hypersetup
, который распознает # + TITLE и # + AUTHOR из файлов режима Org.
Это должно быть включено в каждый документ, а не отдельно. Следующее обеспечит то, что вы хотите для своих макросов. Он не будет в преамбуле, однако он окажется в верхней части документа, и экспорт будет работать так, как ожидается (однако он не будет работать так, как ожидалось, если он будет добавлен через #+INCLUDE:
из org.
#+begin_latex
\hypersetup{% Setup for hyperref
pdftitle = {{{{TITLE}}}}, %Org macro to take from #+TITLE
pdfauthor = {{{{AUTHOR}}}} %Org macro to take from #+AUTHOR
}
#+end_latex
Создание собственного класса экспорта латекса
Если вы будете следовать инструкциям в уроках ворга (см. Экспорт латекса в орг. ), вы можете создать свой собственный класс экспорта. Если вы хотите иметь полный контроль над пакетами в преамбуле, вам просто нужно:
(add-to-list 'org-export-latex-classes
'("<CLASS NAME>"
"\\documentclass{article}
[NO-DEFAULT-PACKAGES]
[NO-PACKAGES]"
<insert desired sectioning configuration>))
Вы также можете добавить нужные пакеты между строками \\documentclass
и [NO-DEFAULT-PACKAGES]
. Альтернативой было бы добавить их в сам файл, используя:
#+LATEX_CLASS: <CLASS NAME>
#+LATEX_HEADER: \usepackage{package}
...
В качестве третьего варианта вы можете просто создать собственный файл .sty с нужными пакетами и т. Д. И включить его как один #+LATEX_HEADER:
.