
我有幾個文件,最初打算作為獨立文檔。但現在我希望將它們編譯在一個文件中。問題是它們每個都有自己特定的套件、標題等,並且\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
包裹提供類似的功能。從包自述文件:
使用
subfiles
該使用者可以更輕鬆地處理多文件項目,從而可以單獨處理附屬文件並處理包含它們的主文件,而無需對其中任何一個進行任何更改。