点击页面链接后,PDF 视图从 100% 变为 71%

点击页面链接后,PDF 视图从 100% 变为 71%

启动PDF视图如下:

\usepackage{hyperref}

\hypersetup{pdfstartview={XYZ null null 1.0}}

\hypersetup{pdfremotestartview={XYZ null null 1.0}}

\hypersetup{pdfview={XYZ null null 1.0}}

我使用以下行链接一些外部页面:

\includepdf[pages=-,scale=.95,link=true,linkname=name_of_link,pagecommand=
{\refstepcounter{includepdfpage}\label{testing.\theincludepdfpage}}]{filename.pdf}

并使用以下行创建到该页面的链接:

\hyperlink{testing_17.1}{some_text_to_display}

链接正确反映在输出 pdf 文件中,即,当我单击文本时,它会将我带到页面link-name = testing_17.1(第 1 页testing_17),但 PDF 视图从 100% 更改为 71%。

有什么解决方案可以让视图保持设置状态,即此处的 100%?

答案1

默认情况下,pdfpages 使用 /Fit 作为其创建的目标。您可以使用选项更改此设置linkfit。除了记录的值 Fit、FitH 等之外,它还知道值XZY <number>(是 XZY,而不是 XYZ)。使用<number>= 1000,您可以获得 1 的缩放比例。

另一种可能性是重新定义 pdfpages 命令以使用 hyperref pdfview 选项。

\documentclass[a4paper]{book}
\usepackage{hyperref}

\newcounter{includepdfpage}
\hypersetup{pdfstartview={XYZ null null 1}}

\hypersetup{pdfremotestartview={XYZ null null 1}}

\hypersetup{pdfview={XYZ null null 1}}
\usepackage{lipsum}
\usepackage{pdfpages}
\pdfcompresslevel0

\makeatletter
% Alternative: patch pdfpages:
%\def\AM@dest@special{\AM@destination name {\AM@linkname.\AM@page} \@pdfview}
\makeatletter
\begin{document}
\lipsum

\hyperlink{xxx.1}{some text to display}

\includepdf[pages=-,scale=.95,link,
            linkname=xxx,linkfit=XZY 1000]{example-image-a4.pdf}
\end{document}

最后一个选择是不使用 pdfpages 创建的链接,但是无论如何都要设置 \labels 来引用这些标签:

\documentclass[a4paper]{book}
\usepackage{hyperref}

\newcounter{includepdfpage}
\hypersetup{pdfstartview={XYZ null null 1}}

\hypersetup{pdfremotestartview={XYZ null null 1}}

\hypersetup{pdfview={XYZ null null 1}}
\usepackage{lipsum}
\usepackage{pdfpages}

\begin{document}
\lipsum

\hyperref[xxx.1]{some text to display}

\includepdf[pages=-,scale=.95,
pagecommand={\refstepcounter{includepdfpage}\label{xxx.\number\value{includepdfpage}}}]{example-image-a4.pdf}
\lipsum 
\end{document}

相关内容