打开 PDF 并指定书签

打开 PDF 并指定书签

背景:

我有一个页面文档顶部有页眉信息。我希望文档打开时自动滚动越过此页眉。

以下定理仅在您想知道为什么我不生成两个版本的文档时才有意义。


定理:我应该不是生成一个不包含此信息的版本(直到发布)。

证明:这些信息与我息息相关。所以我需要在那里有这些信息。但是,这对任何人来说都没什么用,因为他们开始审阅文档。但是,一旦审阅者想要向我提供反馈,那么这些信息就变得有意义了,因为他们需要告诉我他们正在评论哪个文档的哪个版本。

因此这些信息需要始终存在。QED。:-)


问题:

我想知道是否有某种\hyperset{}调用可以告诉 PDF 阅读器打开文档,在\phantomsection标签处start of doc(在下面的 MWE 中)。

下面的参考资料部分有一个类似标题问题的链接,但我不知道如何使用它打开特定书签。一种解决方案是计算坐标并使用\hypersetup{XYZ=left top zoom},但想知道是否有更简单的方法。

下面的 MWE 有一个书签,如果您单击它,它将带您到我希望文档自动打开的位置。

参考:


代码:

\documentclass{article}
\usepackage[paperwidth=6.0in, paperheight=25in]{geometry}
\usepackage{lipsum}
\usepackage{hyperref}

\hypersetup{pdfstartview=FitH}

\begin{document}
This part at the top of the file contain information related to
this file including:
\begin{itemize}
    \item file name,
    \item file version,
    \item edit history,
    \item list of things still to be completed, etc..
\end{itemize}
And this info can be quite long, in a few cases.
So the PDF should open with the following rule at the top.
\hrule\medskip

\phantomsection
\label{start of doc}
\pdfbookmark{Start of Doc}{start of doc}
\textbf{Begin of Actual Document:}

This is the start of the actual document, the info
above can be quite long, so I would prefer that the 
document open to this point in the page.

\bigskip
\textbf{Dummy text to fill page:}
\lipsum[1-8]
\end{document}

答案1

FitH有一个可以使用 计算的垂直位置参数\hypercalcbp。示例使用zref-savepospdfTeX 或 XeTeX 包(支持\pdfsavepos)来获取垂直位置:

\documentclass{article}
\usepackage[paperwidth=6.0in, paperheight=25in]{geometry}
\usepackage{lipsum}
\AtBeginDocument{%
  \hypersetup{pdfstartview=FitH \hypercalcbp{\zposy{start}sp}}%
}
\usepackage{hyperref}
\usepackage{zref-savepos}


\begin{document}
This part at the top of the file contain information related to
this file including:
\begin{itemize}
    \item file name,
    \item file version,
    \item edit history,
    \item list of things still to be completed, etc..
\end{itemize}
And this info can be quite long, in a few cases.
So the PDF should open with the following rule at the top.
\hrule\medskip

\phantomsection
\zsavepos{start}
\label{start of doc}
\pdfbookmark{Start of Doc}{start of doc}
\textbf{Begin of Actual Document:}

This is the start of the actual document, the info
above can be quite long, so I would prefer that the
document open to this point in the page.

\bigskip
\textbf{Dummy text to fill page:}
\lipsum[1-8]
\end{document}

相关内容