这个问题是使用 pgfpagesuselayout{2 on 1} 在两页之间放置一条垂直线
考虑一下代码
\documentclass[14pt]{memoir}
\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}
\usepackage{lipsum,tocloft}
\begin{document}
\lipsum[1]
\addcontentsline{toc}{chapter}{TOC ENTRY 1.}
%\cleardoublepage
\newpage
\lipsum[1-2]
\addcontentsline{toc}{chapter}{TOC ENTRY 2.}
%\cleardoublepage
\newpage
\tableofcontents
\end{document}
生成具有正确页码的目录:
但是,当我使用 运行上述代码时\pgfpagesuselayout{2 on 1}
,我得到了一个目录不正确页码:
问题:有人知道为什么使用目录时\pgfpagesuselayout{2 on 1}
会显示错误的页码;以及如何更正它?
谢谢。
答案1
我不知道为什么会发生这种情况,但有一个解决方法。
\documentclass[12pt]{memoir}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}
\usepackage{lipsum}
\usepackage{tocloft}
%**************************** added <<<<<<<<<<<<<<
\newcounter{altpage}
\makeatletter
\def\addcontentsline#1#2#3{%
\setcounter{altpage}{\thepage}%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thealtpage}{}%
\protected@file@percent}}
\makeatother
%***************************
\begin{document}
\addcontentsline{toc}{chapter}{TOC ENTRY 1.} %before a pseudo chapter ?
\lipsum[1]
%\cleardoublepage
\newpage
\addcontentsline{toc}{chapter}{TOC ENTRY 2.}%before a pseudo chapter ?
\lipsum[1-8]
\newpage
\tableofcontents
\end{document}
我移动\addcontentsline
到文本前面是因为我认为这是您想要标记伪章节的开始的地方,也因为始终位于页面的开头才能正确获取页码。