Включить пользовательский файл в заголовок с org-mode

Включить пользовательский файл в заголовок с org-mode

У меня есть файл LaTeX с некоторыми директивами для моих документов TeX ( \usepackageи тому подобное). Теперь я хочу повторно использовать этот файл в разных файлах org-mode. Я знаю, что могу включать файлы с #+include: 'path/to/some/file.tex', но это помещает содержимое файла после \begin{document}.

Можно ли как-то включить файл в заголовок?

Как и предполагалось, вот пример:

Ашаблон.texфайл, содержащий заголовок:

\documentclass[a4paper]{customClass}
\usepackage{etex}
\title{Some Title}
\supervisor{Someone}

Как здесь также показано, здесь используется пользовательский класс документа, и это одна из причин, по которой я просто хочу иметь возможность включить его.

Затем у меня есть файл, который содержит весь контент (контент.org):

#+INCLUDE: template.tex

* Chapter 1
** Subchapter 1
   Some content
** Subchapter 2
   More content

Который в настоящее время выводит (контент.текс):

\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
% a lot more org-mode standard header stuff
% ...

\begin{document}

\maketitle

\setcounter{tocdepth}{3}
\tableofcontents
\vspace*{1cm}

% my template.tex file
% not where I wanted it
\documentclass[a4paper]{customClass}
\usepackage{etex}
\title{Some Title}
\supervisor{Someone}


\section{Chapter 1}
% rest of the document
% ...

\end{document}

Короче говоря: я хочу повторно использовать свой template.texфайл в нескольких документах org, чтобы иметь единообразное форматирование. Возможно ли это?

решение1

Хотя я не знаю, как это сделать с файлом LaTeX, вы можете использовать #+SETUPFILE: file(http://orgmode.org/manual/In_002dbuffer-settings.html) для включения внешнего org-файла в экспорт. Затем вы можете использовать #+LaTeX_HEADER:во внешнем org-файле.

Например, со следующим в content.org:

#+SETUPFILE: template.org

и со следующим в template.org:

#+LaTeX_CLASS: customClass
#+LaTeX_CLASS_OPTIONS: [a4paper]
#+LaTeX_HEADER: \usepackage{etex}
#+LaTeX_HEADER: \title{Some Title}
#+LaTeX_HEADER: \supervisor{Someone}

При экспорте content.orgони будут включены как часть преамбулы content.tex.

решение2

Заголовок latex, который org использует для экспорта, хранится в org-format-latex-header, который вы можете изменять по своему усмотрению. Согласно справке:

Крайне важно, чтобы этот заголовок гарантировал, что на странице не будет номера страницы. Пакет, определенный в переменных org-latex-default-packages-alist' andorg-latex-packages-alist', либо заменит заполнитель "[PACKAGES]" в этом заголовке, либо они будут добавлены.

решение3

Вы можете создать локальную переменную файла в вашем org-файле, чтобы отключить заголовок по умолчанию, тогда не будет собственных выходных данных заголовка, что запутает нужный вам код Latex.

# Local Variables:
# org-latex-default-packages-alist: nil
# org-latex-with-hyperref: nil
# org-latex-packages-alist: nil
# End:

Связанный контент