如何在 PDF 中生成“命名目的地”?

如何在 PDF 中生成“命名目的地”?

根据 Evince 帮助,可以在“指定目的地”的位置打开 PDF:

SYNTAX
       evince [--help]  [--page-label=PAGE |  --page-index=NUM‐
       BER | --named-dest=DEST] [--fullscreen] [--presentation]
       [--preview] [--find=STRING] [filename(s)...]
...
       -n, --named-dest=DEST
              Open the document on the specified named destina‐
              tion.

在 Acrobat 中 (acroread ) 中,相应的命令是 (文档

acroread /a "nameddest=pos2" hyperref.pdf

我怎样才能产生这样的指定目的地在 LaTeX 的 PDF 中?

过去,(主要针对 Acrobat)我使用zref-savepos软件包在所需位置(编译时设置)打开文档。这似乎与 Evince 配合得不太好。

问题并不在于 Evince,而在于 Evince 所称的“命名目的地”是什么以及如何生成它们。

下面是我所做的一系列尝试。运行 Evince 时,我收到以下消息:

$ evince hyperref.pdf -n pos3 #or pos2
failed to look up pos3
failed to look up pos3

平均能量损失

\documentclass[]{article}
\usepackage{hyperref}
\hypersetup{pdfstartview=FitBH \hypercalcbp{\zposy{pos2}sp}} %open at pos2 (works only in Acrobat)
\usepackage{bookmark}
\usepackage{zref-savepos}
\begin{document}

\zsavepos{pos1}

Bla

\zsavepos{pos2}

Ble

\belowpdfbookmark{Pos3}{pos3}

Bli

\end{document}

答案1

在我看来,设置一个\hypertarget{destname}{}并使用 destname 作为 evince--named-dest选项的参数就足够了。这至少在我的 evince 版本中有效(3.6.1,我认为很旧了)

它也适用于 Acrobat Reader,但是调用语法略有不同:

acroread /a "nameddest=pos2" nameddestexample.pdf

打开位于命名目标(超目标)“pos2”的文件。

\documentclass[]{article}

\usepackage{blindtext}
\usepackage{hyperref}
%\hypersetup{pdfstartview=FitBH \hypercalcbp{\zposy{pos2}sp}} %open at pos2 (works only in Acrobat)
\usepackage{bookmark}
\begin{document}


Bla

\blindtext[1]
\hypertarget{pos1}{}%



Ble
\blindtext[5]
\hypertarget{pos2}{}%


Bli

\blindtext[10]
\hypertarget{pos3}{Blue}

\blindtext[10]

\hypertarget{pos4}{Blofeld}



\end{document}

相关内容