在單一文件中包含完整的文件

在單一文件中包含完整的文件

可能的重複:
製作一個 .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包裹提供類似的功能。從包自述文件:

使用subfiles該使用者可以更輕鬆地處理多文件項目,從而可以單獨處理附屬文件並處理包含它們的主文件,而無需對其中任何一個進行任何更改。

相關內容