请考虑以下 MWE,以批处理文件的形式,创建两个 tex 文件(其中一个\includepdf
在另一个中获取):
cat > insert.tex <<'EOF'
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue, citecolor=blue, filecolor=blue, urlcolor=blue} %
\begin{document}
A test of url: \href{http://www.example.com}{http://www.example.com}
A test of cite: \cite{mytest}
\begin{thebibliography}{9}
\bibitem{mytest} Just Testing, \emph{Just Testing}, 2012.
\end{thebibliography}
\end{document}
EOF
pdflatex insert.tex
pdflatex insert.tex
pdfannotextractor insert.pdf
cat > includer.tex <<'EOF'
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=red, citecolor=red, filecolor=red, urlcolor=red} %
\usepackage{pdfpages}
\usepackage{pax}
\begin{document}
\def\excerpt{\section{A test of inclusion}
Turns out we cannot just use includepdf in between section and
text, even if it is scaled down - must define the whole section
and use it as a pagecommand, see \url{http://tex.stackexchange.com/questions/5911/}.
}
\includepdf[pages=1,scale=0.6,frame,pagecommand={\excerpt},link]{insert.pdf}
\end{document}
EOF
# pdflatex includer.tex
# pdflatex includer.tex
xelatex includer.tex
xelatex includer.tex
includer.tex
如果我使用-编译第二个文件,pdflatex
那么所有的链接都可以在 中正常工作includer.pdf
。
但是,如果我尝试编译includer.tex
(xelatex
如示例所示),我会得到:
! Package pax Error: Missing pdfTeX in PDF mode.
See the pax package documentation for explanation.
... 此后,该过程可以继续 - 但所包含的 pdf 工作中没有链接。
错误信息实际上很清楚,因为pax
目前还不支持xelatex
- 但我想知道是否有人知道一种破解/解决方法,所以链接也可以使用xelatex
?
答案1
pax
使用以下pdftex
原语:
\pdfstartlink
\pdfendlink
\pdfescapename
\pdfdest
\pdfstrcmp
只有最后一个在 中有对应项xetex
。您可能更幸运luatex
,但\pdfstrcmp
和仅在加载时\pdfescapename
可用,因此可能\pdf@strcmp
\pdf@escapename
pdftexcmds
\usepackage{pdftexcmds}
\makeatletter
\let\pdfescapename=\pdf@escapename
\let\pdfstrcmp=\pdf@strcmp
\makeatother
\usepackage{pax}
可以工作。与 没有任何相似之处xetex
,它使用完全不同的模型来插入超链接。