
Возможный дубликат:
Создайте файл .tex, который объединяет полные документы .tex в подкаталогах.
У меня есть пара файлов, которые изначально задумывались как отдельные документы. Но теперь я хочу скомпилировать их в один документ. Проблема в том, что у каждого из них есть свои собственные пакеты, заголовки и т. д., и метод \include
не так прост для таких документов. (Мне нужно включить тот же список пакетов в основной файл и закомментировать их все в поддокументе, что является долгой ручной процедурой.)
Какой лучший способ объединить их все в один, помимо внешнего объединения PDF-файлов?
решение1
Я использовал {standalone}
пакет именно для этой цели. Основные файлы должны использовать:
\documentclass[preview=false]{standalone}
или загрузите standalone
пакет около начала преамбулы. Полная преамбула, необходимая для подфайлов, должна быть загружена основным документом.
В примере ниже я использовал пакет filecontents
только для того, чтобы иметь возможность обернуть подфайл в один пример кода. Итак, файл subfile.tex
здесь является подфайлом, в данном случае он состоит из tikz
рисунка. Этот файл может быть скомпилирован сам по себе. Основной файл загружается:
\usepackage{standalone}
\usepackage{tikz}
а затем просто \input{subfile}
импортирует подфайл.
Код:
\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{filecontents}
\begin{filecontents}{subfile.tex}
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (EllipseOrigin) at (0,0);
\newcommand*{\XRadius}{4.0}
\newcommand*{\YRadius}{3.0}
\draw [blue, thin, ->] (-5,0) -- (5,0) node [right] {$x$};
\draw [blue, thin, ->] (0,-4) -- (0,4) node [above] {$y$};
\draw [red, ultra thick]% Graph Ellipse
(EllipseOrigin) ellipse [x radius=\XRadius,y radius=\YRadius];
\end{tikzpicture}
\end{document}
\end{filecontents}
\begin{document}
\input{subfile}
\end{document}
Также есть subpreambles
опция пакета для автономного класса, которая позволяет использовать преамбулу из подфайлов. Так что если вы не можете иметь одну преамбулу в главном файле для всех ваших подфайлов, возможно, это может быть полезной опцией.
А также естьпакетcombine
, который также позволяет объединять отдельные документы в один документ.
решение2
В дополнение к связанному вопросу,subfiles
упаковкапредоставляет похожую функциональность. Из пакета README:
Использование
subfiles
пользователя позволяет более комфортно работать с многофайловыми проектами, позволяя как обрабатывать вспомогательные файлы по отдельности, так и обрабатывать основной файл, который их включает, не внося никаких изменений ни в один из них.