让 pax/pdfpages 与 xelatex 一起工作吗?

让 pax/pdfpages 与 xelatex 一起工作吗?

请考虑以下 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.texxelatex如示例所示),我会得到:

! 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@escapenamepdftexcmds

\usepackage{pdftexcmds}
\makeatletter
\let\pdfescapename=\pdf@escapename
\let\pdfstrcmp=\pdf@strcmp
\makeatother
\usepackage{pax}

可以工作。与 没有任何相似之处xetex,它使用完全不同的模型来插入超链接。

相关内容