主要MWE.tex

主要MWE.tex

我已经将文档设置为包含多个部分,并且我希望整个文档的页码始终一致且递增。我还希望能够排版单个文件以供打印并获得相同的页码(这样在分发给学生时就可以有目录)。

我让这个 MWE 来排版文档,但是当我单独排版第 2 部分时,它从第 1 页开始,而不是第 2 页。我不想必须为大约 40 个部分中的每一个手动设置页码。

我如何让所有文件或一个文件排版为一致的页码?

这是代码。

主要MWE.tex:

documentclass{article}
\usepackage{subfiles}
\usepackage{refcount}
\usepackage{xstring}

\begin{document}

\thispagestyle{empty}
\begin{center}
\huge{My Title}
\end{center}

Some text.

\newpage

\pagenumbering{roman}
\setcounter{page}{1}

\tableofcontents

\newpage

\pagenumbering{arabic}
\setcounter{page}{1}

\subfile{part1MWE}

\subfile{part2MWE}

\end{document}

第 1 部分 MWE.tex

\documentclass[mainMWE]{subfiles}

\begin{document}

\section{First Section}

Some more meaningless text.

\end{document}

part2MWE.tex:

\documentclass[mainMWE]{subfiles}

%\IfEq{\jobname}{\detokenize{main}}{}{ 
%  \usepackage{zref-xr}                       
%  \zxrsetup{toltxlabel}
%  \zexternaldocument*[mainMWE-]{mainMWE}  
%  \setcounterpageref{page}{mainMWE-part2MWE}

\begin{document}
\newpage

\section{Second Section}

Even more meaningless text.

\end{document}

建议将注释掉的内容用于解决页码一致性问题。如有任何建议,我们将不胜感激。

马丁

答案1

您可以xr为此使用包。它允许您引用外部文件中的交叉引用。(我现在看到这基本上与您建议的解决方案相同[zref-xr如果需要,您可能会使用它],但展示了一种可行的方法。)

您需要为每个部分指定一个标签,并在主文档中加载xrrefcount包。然后根据主文档中的部分标签设置每个子文件中的页码

显然,您必须先构建一次主文档,这样您才知道第 1 部分有多长,从而知道第 2 部分从哪页开始。

我还使用该titlesec段落来插入章节分页符。

像这样:

主要MWE.tex

\documentclass{article}
\usepackage{subfiles}
\usepackage{refcount}% required for \getpagerefnumber
\usepackage{xr}% required to reference labels in external documents
\usepackage{titlesec}% to insert a page break before sections
\newcommand{\sectionbreak}{\clearpage}
\begin{document}
\title{My Title}
\author{Martin}
\maketitle
Some text.
\thispagestyle{empty}
\tableofcontents
\pagenumbering{roman}
\clearpage
\pagenumbering{arabic}
\subfile{part1MWE}
\subfile{part2MWE}
\end{document}

第 1 部分 MWE.tex

\documentclass[mainMWE]{subfiles}
% set page number if compiling sub file
\ifcsname preamble@file\endcsname
  \externaldocument[main-]{mainMWE}
  \setcounter{page}{\getpagerefnumber{main-part1}}
\fi
\begin{document}
\section{First Section}
\label{part1}
Some more meaningless text.
\end{document}

part2MWE.tex

\documentclass[mainMWE]{subfiles}
% set page number if compiling sub file
\ifcsname preamble@file\endcsname
  \externaldocument[main-]{mainMWE}
  \setcounter{page}{\getpagerefnumber{main-part2}}
\fi
\begin{document}
\section{Second Section}
\label{part2}
Even more meaningless text.
\end{document}

相关内容