我想使用 pdfpages 包为插入的页面添加标签。目前它有点管用,但无法使用和链接到\ref
标签\pageref
命令链接到标签。尽管这不起作用,但它是可以使用hyperlink
hyperref 命令链接到该页面。
目标是编制一份课程阅读内容清单,然后说“从第 xx 页读到第 yy 页”。页码当然应该自动确定。
在下面的文档中,pageref 扩展为 ??,而文本 Hello 链接到正确的页面。
\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\begin{document}
See page \pageref{testing.1}.
\hyperlink{testing.1}{Hello.}
\includepdf[pages=-,link,linkname=testing]{test.pdf}
\end{document}
作为参考,插入的文档(test.pdf)可以是任何有效的 PDF 文档。
答案1
插入的link
是超链接,而不是 LaTeX \label
。因此\hyperlink
宏可以工作但 不可以\pageref
。我认为您无法从超链接获取页面信息,因此我认为您需要手动添加。使用键和自定义计数器\label
可以最好地完成此操作:pagecommand
\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\newcounter{includepdfpage}
\begin{document}
See page \pageref{testing.1} till \pageref{testing.10}.
\hyperlink{testing.1}{Hello.}
\includepdf[pages=-,link,linkname=testing,pagecommand={\refstepcounter{includepdfpage}\label{testing.\theincludepdfpage}}]{test.pdf}
\end{document}
答案2
仅供参考,这是我最终使用的解决方案。它基于 Martin Scharrer 的答案,但经过修改以适用于多个插入的文档。
\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\newcounter{includepdfpage}
\newcounter{currentpagecounter}
\newcommand{\addlabelstoallincludedpages}[1]{
\refstepcounter{includepdfpage}
\stepcounter{currentpagecounter}
\ifnum\value{currentpagecounter}=1 %
\label{#1}
\fi
\label{#1.\thecurrentpagecounter}}
\newcommand{\modifiedincludepdf}[3]{
\setcounter{currentpagecounter}{0}
\includepdf[pages=#1,pagecommand=\addlabelstoallincludedpages{#2}]{#3}}
\begin{document}
See page \pageref{one.1} till \pageref{two.3}.
See beginning of included PDF \pageref{one}.
\modifiedincludepdf{-}{one}{test.pdf}
\modifiedincludepdf{-}{two}{test.pdf}
\end{document}
答案3
也许迟到了。
迭代@martin-scharrer的想法,我们可以使用pdfpages
“变量\AM@linkname
,因此用户可以选择不更改链接名称。
\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\newcounter{includepdfpage}
\makeatletter
\newcommand{\stepincluded}{
\refstepcounter{includepdfpage}%
\label{\AM@linkname.\theincludepdfpage}%
}
\makeatother
\begin{document}
See page \pageref{test.pdf.1} till \pageref{test.pdf.10}.
\hyperlink{test.pdf.1}{Hello.}
\includepdf[pages=-,link,pagecommand={\stepincluded}]{test.pdf}
\end{document}