为什么带有 \pgfpagesuselayout{2 on 1} 的目录显示错误的页码

为什么带有 \pgfpagesuselayout{2 on 1} 的目录显示错误的页码

这个问题是使用 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

我不知道为什么会发生这种情况,但有一个解决方法。

A

b

\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到文本前面是因为我认为这是您想要标记伪章节的开始的地方,也因为始终位于页面的开头才能正确获取页码。

相关内容