為什麼這在某些子文件中有效,而在其他子文件中無效

為什麼這在某些子文件中有效,而在其他子文件中無效

所以我正在寫一個大的筆記文檔(幾乎是一本書),所以為了組織文檔我一直使用子文件。大多數時候我無法編譯我正在處理的部分,而且必須編譯全部的文檔而不是我正在處理的小節。

以下是我的文件的組織方式:(我已將名稱放在引號中)

我的資料夾是這樣的...

FOLDER: "Main"
    FILE: "ChapterA.tex"
    FILE: "ChapterB.tex"
    FILE: "ChapterC.tex"
FOLDER: "Sections"
    FOLDER: "TopicA"
        FILE: "SubsectionA1.tex"
        FILE: "SubsectionA2.tex"
        FILE: "SubsectionA3.tex"
    FOLDER: "TopicB"
        FILE: "SubsectionB1.tex"
        FILE: "SubsectionB2.tex"
        FILE: "SubsectionB3.tex"
    FOLDER: "TopicC"
        FILE: "SubsectionC1.tex"
        FILE: "SubsectionC2.tex"
        FILE: "SubsectionC3.tex"
FILE: "Main.tex"
FILE: "Preamble.sty"
FILE: "style.ist"

檔案“Preamble.sty”看起來像...

\ProvidesPackage{Preamble}

\usepackage{--} %multiple packages for symbols and colors
\usepackage{morewrites}
\geometry{letterpaper,portrait, margin=1in}

[general formatting content for title and table of contents]

[creating some shortcuts and new commands that's used throughout the document using \DeclareMathOperator \newcommand and \catcode]

檔案“Main.tex”看起來像這樣...

\documentclass{article}
\usepackage{Preamble}
\usepackage{subfiles}


\makeindex[name=aa, title={TITLE},columns=1, intoc, options= -s style.ist]

\begin{document}
\subfile{Main/ChapterA} \NewPage
\subfile{Main/ChapterB} \NewPage
\subfile{Main/ChapterC} \NewPage

\printindex[aa]

\end{document}

文件 ChapterA、ChapterB、ChapterC 如下所示:

\documentclass[../Main.tex]{subfiles}

\begin{document}
\Section{Chapter A}
    \subfile{Sections/TopicA/SubsectionA1}
    \subfile{Sections/TopicA/SubsectionA2}
    \subfile{Sections/TopicA/SubsectionA3}
\end{document}

小節文件都採用類似的格式,如下所示......

\documentclass[../Main.tex]{subfiles}

\begin{document}
\subsubsection{topic}
\begin{itemize}
   \item TEXT...
\end{itemize}

\subsubsection{topic}
Some basic description
\begin{itemize}
    \item MORE INFO
\end{itemize}
\end{document}

當我在「ChapterA.tex」中編譯該檔案時,整個章節都會編譯,而不會包含之前或之後的內容。僅出現黃色錯誤(「Package auxhook 警告:無法修補 \document,請改用 \AtBeginDocument。」)

但是,當我在“SubsectionA1.tex”中並編譯該小節時,該小節無法編譯,並且出現重大錯誤(' /usr/local/texlive/2017/texmf-dist/tex/latex/subfiles/subfiles.cls ,行40 LaTeX 錯誤:找不到檔案“../Main.tex”。

我嘗試編輯 \documentclass[..] 但無法像章節那樣編譯各個小節。為什麼其中一個有效而另一個無效?

答案1

我必須修改一些路徑並加載其他套件才能使您的文件可編譯,但是您的範例可以正常工作。作為基本規則,

\subfile路徑資訊是相對於包含帶有或命令的檔案的目錄\documentclass

% folder structure
% ----------------
% Main.tex
% Preamble.sty
% Main/ChapterA.tex
% Main/ChapterB.tex
% Sections/TopicA/SubsectionA1.tex
% Sections/TopicA/SubsectionA2.tex
% Sections/TopicB/SubsectionB1.tex
% Sections/TopicB/SubsectionB2.tex

% Main.tex
\documentclass{article}
\usepackage{Preamble}
\makeindex[name=aa, title={TITLE},columns=1, intoc, options= -s style.ist]
\usepackage{subfiles}
\begin{document}
\subfile{Main/ChapterA}
\subfile{Main/ChapterB}
\printindex[aa]
\end{document}

% Preamble.sty
\usepackage{imakeidx}
\usepackage{geometry}
\geometry{letterpaper,portrait, margin=1in}

% Main/ChapterA.tex
\documentclass[../Main.tex]{subfiles}
\begin{document}
\section{Chapter A}
    \subfile{../Sections/TopicA/SubsectionA1}
    \subfile{../Sections/TopicA/SubsectionA2}
\end{document}

% Main/ChapterB.tex
\documentclass[../Main.tex]{subfiles}
\begin{document}
\section{Chapter B}
    \subfile{../Sections/TopicB/SubsectionB1}
    \subfile{../Sections/TopicB/SubsectionB2}
\end{document}

% Sections/TopicA/SubsectionA1.tex
% Sections/TopicA/SubsectionA2.tex
% Sections/TopicB/SubsectionB1.tex
% Sections/TopicB/SubsectionB2.tex
\documentclass[../../Main.tex]{subfiles}
\begin{document}
\subsubsection{topic}
\begin{itemize}
   \item TEXT...
\end{itemize}
\end{document}

然後單獨編譯檔案即可(除了makeindexmisses style.ist)。

相關內容