使用 Hyperref 包将表项向下移动

使用 Hyperref 包将表项向下移动

我想制作一个有两列的表格:左列列出右列解释的术语。我还想让左列的术语链接到自身。下面的最小工作示例显示了我想要的以及我遇到的问题。

\documentclass[letterpaper]{article}

\usepackage{geometry}
\usepackage{array,tabularx}
\usepackage[colorlinks,bookmarksnumbered,bookmarksopen,pdffitwindow]{hyperref}
\hypersetup{pdfview=FitB,pdfpagetransition=Dissolve}

\begin{document}
\tableofcontents\pagebreak

\section{Definitions}
The following terms are used in one or more books of these specifications.

\renewcommand{\arraystretch}{2}
\vspace*{\baselineskip}\noindent
\begin{tabularx}{\linewidth}{@{}>{\bfseries\raggedright\arraybackslash}p{0.2\linewidth}X}
\hypertarget{AR}{}\hyperlink{AR}{Accelerated Revocation} & A key revocation performed on a date sooner than the published key expiry date.\
\hypertarget{App}{}\hyperlink{App}{Application} & The application protocol between the card and the terminal and its related set of data.\
\hypertarget{AAC}{}\hyperlink{AAC}{Application Authentication Cryptogram} & An Application Cryptogram generated by the card when declining a transaction.\\
\end{tabularx}
\end{document}

在此处输入图片描述

可以看出,左侧列条目全部向下移动。我觉得手动添加垂直距离不是解决问题的正确方法。有什么建议吗?

答案1

\hypertarget本身不开始一个段落,但它仍然为框建立了参考点,因为它插入了一个“whatsit”。不开始一个段落是有充分理由的,因为它\hypertarget可以很好地用于指向页面中的某个位置,例如紧接在标题之前的位置。

这个东西是一个无法删除的技术特性。

解决方法:\leavevmode在 前添加\hypertarget

我仍然不明白为什么要创建指向同一个地方的链接。


发生的事情与这个例子类似:

\documentclass{article}
\begin{document}

X\parbox[t]{1cm}{\vspace{0pt}Y}

\end{document}

p{<dimen>}就像\parbox[t]{<dimen>}。在示例中,\vspace{0pt}不产生输出,但为框顶部建立参考点,即框中第一个项目的基线。 whatsit 的作用类似于\vspace{0pt},因此可见的效果是打印第一项似乎被向下移动了。

它是不是实际上是向下移动了:盒子的参考点比你预期的要高。

相关内容