我想制作一个有两列的表格:左列列出右列解释的术语。我还想让左列的术语链接到自身。下面的最小工作示例显示了我想要的以及我遇到的问题。
\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}
,因此可见的效果是打印第一项似乎被向下移动了。
它是不是实际上是向下移动了:盒子的参考点比你预期的要高。