왜 이것이 다른 하위 파일에서는 작동하지 않고 일부 하위 파일에서는 작동합니까?

왜 이것이 다른 하위 파일에서는 작동하지 않고 일부 하위 파일에서는 작동합니까?

그래서 나는 노트로 구성된 큰 문서(거의 책)를 작성하고 있으므로 문서를 정리하기 위해 하위 파일을 사용해 왔습니다. 대부분의 경우 작업 중인 섹션을 컴파일할 수 없으며전체내가 작업 중인 하위 섹션이 아닌 문서.

다음은 내 파일이 구성되는 방식입니다. (이름을 따옴표로 묶었습니다)

내 폴더는 이렇습니다..

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"에 있는 상태에서 파일을 컴파일하면 이전이나 이후의 내용 없이 전체 챕터가 컴파일됩니다. 노란색 오류("패키지 auxhook 경고: 대신 \AtBeginDocument를 사용하여 \document를 패치할 수 없습니다.")만 표시됩니다.

그러나 "SubsectionA1.tex"에 있을 때 하위 섹션을 컴파일하면 컴파일되지 않고 심각한 오류가 발생합니다(' /usr/local/texlive/2017/texmf-dist/tex/latex/subfiles/subfiles.cls, line 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}

makeindex그런 다음 파일을 별도로 컴파일하면 작동합니다( miss 제외 style.ist).

관련 정보