我已经将文档设置为包含多个部分,并且我希望整个文档的页码始终一致且递增。我还希望能够排版单个文件以供打印并获得相同的页码(这样在分发给学生时就可以有目录)。
我让这个 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
如果需要,您可能会使用它],但展示了一种可行的方法。)
您需要为每个部分指定一个标签,并在主文档中加载xr
和refcount
包。然后根据主文档中的部分标签设置每个子文件中的页码
显然,您必须先构建一次主文档,这样您才知道第 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}