根据 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}