vbox 中超链接框的宽度问题(RTL 上下文)

vbox 中超链接框的宽度问题(RTL 上下文)

为什么在这个例子中,可点击框在 RTL 上下文中显得比我声明的要大得多(2cm),而在从左到右的上下文中框的宽度是正确的

% lualatex
\documentclass[12pt]{article}
\usepackage{hyperref}


\begin{document}

%\pardir TRT \textdir TRT \linedir TRT

a
{\hypersetup{pdfhighlight={/P},pdfborder={0 0 4}}%
\vbox{\hyperlink{thesentence}{\vbox to 3cm{\hbox  to 2cm{ \hfil}\vfil}}}}

\newpage

Text \hypertarget{thesentence}{this sentence}

\end{document}

LTR 上下文中的结果

在此处输入图片描述

RTL 上下文中的结果

在此处输入图片描述

答案1

虽然这是 LuaTeX 的一个错误,但在引擎中修复之前,有一个相当简单的解决方法:LuaTeX 有两个代码路径来计算链接的尺寸。一个更简单(更快)的代码(有错误)和一个更复杂的代码(正常工作)。因此,您只需强制 LuaTeX 使用更复杂的代码,例如通过设置 PDF 转换矩阵:

\documentclass[12pt]{article}
\usepackage{hyperref}

\AddToHook{shipout/background}{% Insert on every page
  \pdfextension setmatrix{1 0 0 1}% {1 0 0 1} describes an identity matrix and doesn't actually do anything, but it stops LuaTeX from using simpler link calculations.
}

\begin{document}

\pardir TRT \textdir TRT \linedir TRT

a
{\hypersetup{pdfhighlight={/P},pdfborder={0 0 4}}%
\vbox{\hyperlink{thesentence}{\vbox to 3cm{\hbox  to 2cm{ \hfil}\vfil}}}}

\newpage

Text \hypertarget{thesentence}{this sentence}

\end{document}

在此处输入图片描述

相关内容