\label 和 \includepdf 链接至上一页

\label 和 \includepdf 链接至上一页

似乎使用\includepdf\label可以链接到上一页。我尝试将 放在\label选项中pagecommand=,但这产生了相同的结果。我原本以为使用\label中的pagecommand=会将我链接到最后一页。

下面的 MWE 从\includepdf第二页开始。页码是正确的,但单击它会转到第一页。TeXShop 提供了链接页面的预览,它显示链接指向第 1 页,尽管应该是第 2 页。

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}

\def\PdfFile{/usr/local/texlive/2021/texmf-dist/doc/latex/mwe/mwe.pdf}%

\listfiles
\begin{document}
    \tableofcontents
    \clearpage\newpage
    \addcontentsline{toc}{section}{MWE Document}%
    \label{MWE Document}%
    \includepdf[
        frame,
        scale=0.90,
        page=-,
        nup=2x1,
        pagecommand={%
            \section*{MWE Document}%
            %\label{MWE Document}% <-- same result
        },
    ]{\PdfFile}
\end{document}

答案1

标签与链接完全无关。只有使用\ref某处时它才相关。

目录中的链接通常指向节标题。在这里,您希望它指向\addcontentsline。为此,您需要一个可以使用设置的锚点\phantomsection

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}

\def\PdfFile{example-image-a4-numbered}%

\listfiles
\begin{document}
    \tableofcontents
    \clearpage\newpage
    \phantomsection %<---------anchor
    \addcontentsline{toc}{section}{MWE Document}%
    \label{some-label}%
    \includepdf[
        frame,
        scale=0.90,
        pages=-,
        nup=2x1,
        pagecommand={%
            \section*{MWE Document}%
        },
    ]{\PdfFile}
\end{document}

pdfpages 有一些自动锚点的选项,请查看文档。

答案2

实现这一点的一种方法是将页面拆分成两个单独的页面\includepdf

  1. 第一页排版的页面(使用\addcontentsline\label)和页面的其余部分。由于我使用的是nup=2x1,所以这是page=1-2

  2. 其余页面不使用\addcontentsline\label。使用nup=2x1,这是page=3-

代码:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}

\def\PdfFile{/usr/local/texlive/2021/texmf-dist/doc/latex/mwe/mwe.pdf}%

\listfiles
\begin{document}
    \tableofcontents
    \clearpage\newpage
    \includepdf[
        frame,
        scale=0.90,
        page=1-2,
        nup=2x1,
        pagecommand={%
            \section*{MWE Document}%
            \addcontentsline{toc}{section}{MWE Document}%
            \label{MWE Document}%
        },
    ]{\PdfFile}
    \includepdf[
        frame,
        scale=0.90,
        page=3-,
        nup=2x1,
        pagecommand={%
            \section*{MWE Document}%
        },
    ]{\PdfFile}
\end{document}

相关内容