LaTeX多页目录与\pagenumbering{roman}交互页码异常问题
异常原因
report文档类默认启用openright规则,所有章(包括目录这类通过\chapter*生成的无编号章)强制从奇数页起始,跨页内容会进入LaTeX的输出队列延迟排版。- 直接将
\pagenumbering{arabic}写在\chapter{Chapter 1}前时,页码格式切换的执行时机早于目录剩余页面的最终落版:目录溢出的第二页还未完成排版,页码计数器就已经被重置为阿拉伯数字1,导致该页被错误套用新页码格式,后续第一章的页码就会从2开始计数。 - 未手动切换页码时无此异常,是因为全文档页码格式、计数器全程连续,延迟排版的页面不会出现页码格式错配。
可行解决方案
核心逻辑是在切换页码格式前,强制LaTeX输出前置部分所有待排版内容,避免页码切换影响前置部分尾页。
- 目录前的
\pagenumbering{roman}命令保持原有位置不变 - 将目录后、第一章前的代码替换为如下内容:
\tableofcontents \cleardoublepage % 强制输出所有待排内容,确保前置部分全部完成排版 \pagenumbering{arabic} \chapter{Chapter 1}
若文档类加载时指定了
openany选项(不强制章从奇数页开启),可将\cleardoublepage替换为\clearpage,效果一致。
最终效果
修改后连续编译两次即可达到预期排版结果:
- 标题页、摘要不显示页码
- 目录所有页面连续使用罗马数字编号,多页目录不会出现页码格式跳变
- 第一章第一页从阿拉伯数字1开始计数,后续正文页码连续递增
内容的提问来源于stack exchange,提问作者Hendrikto
相关产品推荐
相关产品推荐

