TeX - LaTeX Asked on April 15, 2021
I would like to add labels to pages inserted with the pdfpages package.
It sort of works right now, but it is not possible to link to the labels with ref
and pageref
commands. In spite of that not working, it is possible to link to the page with the hyperlink
command from hyperref.
The goal is to compile a list of things to read in a course and then later say ‘read from page xx to yy’. The pagenumbers should of course be determined automatically.
In the document below, the pageref expands to ?? while the text Hello links to the correct page.
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}
For reference, the inserted document (test.pdf) can be any valid PDF document.
The inserted link
is a hyper-link, not a LaTeX label
. Therefore the hyperlink
macro works but not the pageref
. I don't think you can get the page information from a hyper-link, so I think you need to add label
s manually. This can be done best using the pagecommand
key and a custom counter:
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}
Correct answer by Martin Scharrer on April 15, 2021
Just for reference, here is the solution I ended up using. It is based on the answer of Martin Scharrer, but modified to work with several inserted documents.
documentclass{article}
usepackage{hyperref}
usepackage{pdfpages}
newcounter{includepdfpage}
newcounter{currentpagecounter}
newcommand{addlabelstoallincludedpages}[1]{
refstepcounter{includepdfpage}
stepcounter{currentpagecounter}
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}.
modifiedincludepdf{-}{one}{test.pdf}
modifiedincludepdf{-}{two}{test.pdf}
end{document}
Answered by midtiby on April 15, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP