考虑这个测试用例:
\documentclass[twoside]{article}
\usepackage[a4paper, vmargin={350pt, 350pt}]{geometry}
\usepackage[linktocpage=true]{hyperref}
\usepackage{titling}
\title{Title}\author{}\date{}
\usepackage[title, titletoc]{appendix}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{styletoc}{
\fancyhead[RE]{Project Name}
\fancyhead[LE,RO]{\thepage}
\pagenumbering{roman}
}
\fancypagestyle{stylemain}{
\fancyhead[RE]{Project Name}
\fancyhead[LO]{Chapter \nouppercase\leftmark}
\fancyhead[LE,RO]{\thepage}
\pagenumbering{arabic}
}
\begin{document}
\maketitle
\newpage
this page intentionally left blank
\newpage
\pagestyle{styletoc}
\tableofcontents
\newpage
\pagestyle{stylemain}
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\end{document}
根据stylemain
页面样式定义,此类页面的页眉应包含 [章节名称左边,页码右]在奇数页,并且[页码左边,项目名右] 均匀。
不幸的是,stylemain
它用在了 ToC 之后,而 ToC 的大小随文档中的节数而变化。因此,如果 ToC 的页数为偶数,则一切正常;如果为奇数,则变得一团糟(\section{Test}\newpage
从测试用例中删除至少一行即可发现问题)。
对于这种情况,印前处理中的常见规则是什么?例如,如果目录页数为奇数,则在目录后添加空白页,或者其他情况。当目录大小经常变化时,如何通过 TeX 自动执行此操作。
答案1
\newpage
将后面的替换\tableofcontents
为\cleardoublepage
。这样,如果目录的页数为奇数,则会自动添加空白页,但如果目录的页数为偶数,则不会自动添加空白页。
在下面的例子中,您将看到包含第一部分的页面出现在 pdf 的第五页上,并且如果您删除至少一个,它仍保留在同一页面上\section{Test}\newpage
。
\documentclass[twoside]{article}
\usepackage[a4paper, vmargin={350pt, 350pt}]{geometry}
\usepackage[linktocpage=true]{hyperref}
\usepackage{titling}
\title{Title}\author{}\date{}
\usepackage[title, titletoc]{appendix}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{styletoc}{
\fancyhead[RE]{Project Name}
\fancyhead[LE,RO]{\thepage}
\pagenumbering{roman}
}
\fancypagestyle{stylemain}{
\fancyhead[RE]{Project Name}
\fancyhead[LO]{Chapter \nouppercase\leftmark}
\fancyhead[LE,RO]{\thepage}
\pagenumbering{arabic}
}
\begin{document}
\maketitle
\newpage
this page intentionally left blank
\newpage
\pagestyle{styletoc}
\tableofcontents
\cleardoublepage
\pagestyle{stylemain}
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\section{Test}\newpage
\end{document}