그래서 나는 노트로 구성된 큰 문서(거의 책)를 작성하고 있으므로 문서를 정리하기 위해 하위 파일을 사용해 왔습니다. 대부분의 경우 작업 중인 섹션을 컴파일할 수 없으며전체내가 작업 중인 하위 섹션이 아닌 문서.
다음은 내 파일이 구성되는 방식입니다. (이름을 따옴표로 묶었습니다)
내 폴더는 이렇습니다..
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
).