从超链接导航到超链接超目标后的垂直位置似乎太低

从超链接导航到超链接超目标后的垂直位置似乎太低

\hypertarget从a 导航到 a 后的垂直滚动位置\hyperlink(在hyperref 手册) 似乎太低了。滚动位置在 的基线\hypertarget,因此单击 后看不到目标\hyperlink

如果我latex -output-format pdf document.tex在 Mac OS X 10.8.2 上运行两次以从该文档创建 PDF——

\documentclass{minimal}
\usepackage[colorlinks=true,raiselinks=true]{hyperref}
\usepackage{lipsum}
\begin{document}
\hyperlink{target1}{target1}
\hyperlink{target2}{target2}
%\hyperlink{target3}{target3}
\par\lipsum[1-7]
\lipsum*[8]
\hypertarget{target1}{target1}
\makeatletter\Hy@raisedlink{\hypertarget{target2}{target2}}\makeatother
%\raisebox{\ht\strutbox}{\hypertarget{target3}{target3}}
\end{document}

\hyperlink结果文档中的所有 s 都导航至其各自\hypertargets 的基线。

使用的示例\Hy@raisedlink取自超目标似乎瞄准得太低了。使用的示例\raisebox取自同一个问题,但我将其注释掉,因为它显示了不同的(但仍然是意外的)行为。

这个问题与某些超链接(memoir+hyperref)位置太低超目标似乎瞄准得太低了但我把它作为一个新问题来问,因为我没有使用回忆录,而且超目标似乎瞄准得太低了似乎对我有用。

这个问题似乎正是 hyperref 选项提高链接旨在解决,但该选项似乎对示例文档没有影响。

怎样才能制作\hypertarget出高于基线的(或同等的)东西呢?

我想,可以使用\Hy@raisedlink空的\hypertarget(即\hypertarget没有关联文本),但我希望有更好的方法。

答案1

TeX 中基线是众所周知的,但当前行的高度却不是。只有 TeX 在稍后的段落中断后才知道这一点。通过装箱测量高度会丢失换行。pdfTeX\vadjust pre的稳定性不够(现在是否如此?),某些情况下会导致分段错误。在某种程度上,LuaTeX 的属性可能会有所帮助,但代价是完全不同的非平凡实现。回到问题,当前的解决方法已经提到(例如\Hy@raisedlink使用空的 \hypertarget)。

相关内容