经典的\include{chapter.tex}

经典的\include{chapter.tex}

我在网上找到了一个小模板。如果我把所有章节都写在一个.tex文件中,章节号会自动增加。但我想把每个章节.tex文件放在一个单独的文件夹中。问题是每章的章节号都会重置为 1。代码如下:

\documentclass{book}
\usepackage[margin=1.5cm,hmargin=2.5cm, vmargin=1.5cm, a5paper]{geometry}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{tikz}
\usepackage{epigraph}
\usepackage{xpatch}
\usepackage{lmodern}
\newlength\ChapWd %logo
\settowidth\ChapWd{\huge\chaptertitlename}%logo

\definecolor{myblue}{RGB}{0,0,122}%logo

\titleformat{\chapter}[display]
  {\normalfont\filcenter\sffamily} %texte du titre chapitre
  {\tikz[remember picture,overlay]
    {
    \node[fill=myblue,font=\fontsize{60}{72}\selectfont\color{white},anchor=north east,minimum size=\ChapWd] 
      at ([xshift=-15pt,yshift=-15pt]current page.north east) 
      (numb) {\thechapter};
    \node[rotate=90,anchor=south,inner sep=0pt,font=\huge\color{myblue}] at (numb.west) {Chapter}; %logo
    }
  }{0pt}{\fontsize{33}{40}\selectfont\color{myblue}#1}[\vskip10pt\Large***]
\titlespacing*{\chapter}
  {0pt}{50pt}{10pt} %logo


\makeatletter
\xpatchcmd{\ttl@printlist}{\endgroup}{{\noindent\color{myblue}\rule{\textwidth}{1.5pt}}\vskip30pt\endgroup}{}{}
\makeatother

\newcommand\DoPToC{
\startcontents[chapters]
\printcontents[chapters]{}{1}{\noindent{\color{myblue}\rule{\textwidth}{1.5pt}}\par\medskip}%
}

\setlength\epigraphrule{0pt}
\renewcommand\textflush{flushright}
\renewcommand\epigraphsize{\normalsize\itshape}

\begin{document}
\chapter{\textbf{Contexte & objectifs}}
\DoPToC
\section{A test section}
\subsection{A test subsection}
\subsection{A test subsection}
\section{Another test section}
\section{Yet another test section} 

答案1

基本上有两种选择。无论哪种情况,您都需要创建一个主控文件在根文件夹中:

PROJECT_ROOT
  +-master.tex
  +-Chapter1
  |  \-chapter.tex
  \-Chapter2
     \-chapter.tex

经典的\include{chapter.tex}

在您的主文档中您只需使用\include{chapter.tex}

\documentclass{article}
%% preamble here
\begin{document}
  \include{Chapter1/chapter.tex}
  \include{Chapter2/chapter.tex}
\end{document}

在你的chapter.tex你省略了之前(和包括)\begin{document}以及最后的内容\end{document}

缺点是,除非您在章节目录中创建“伪母版”,否则您无法从文件夹中单独编译章节。

编译单个章节的预期方式是使用\includeonly{}添加到主控的命令。

使用子文件包裹

您将主文档更改为:

\documentclass{article}
%% preamble here
\usepackage{subfiles}    
\begin{document}    
    \subfile{/subdir/name1.tex}
    \subfile{/subdir/name2.tex}
\end{document}

您将子文档更改为:

\documentclass[../master.tex]{subfiles}
 %% no preamble needed here, master files preamble is used.
 %% but you can override some commands here  eg. relative paths to images...
\begin{document}
  %% you capters content.
\end{document}

优点是,现在您可以选择从根文件夹编译整个文档,或者编译独立于主文档的任何章节(但仍然编号错误......),而无需将序言复制到子文档。

顺便说一句:
你可以申请子文件只要任何子文件\documentclass声明引用主控文件

%% chapter.tex
\documentclass[../master.tex]{subfiles}images...
\begin{document}
  \sublile{section1/section.tex}
  \sublile{section2/section.tex}
\end{document}

%% section.tex
\documentclass[../../master.tex]{subfiles}
\begin{document}
  %% you section content.
\end{document}

相关内容