为什么链接框出现在小页面的左侧,而它应该出现在右侧

为什么链接框出现在小页面的左侧,而它应该出现在右侧

在此示例中,我在从右到左的上下文中在图像顶部创建了一个可点击区域,结果在 minipage 之外没有问题(可点击框出现在右侧)。但是,当在 minipage 内的图像上重复相同的代码时,左侧会出现可点击框。对此有什么解释吗?还是我遗漏了什么?

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[bidi=basic]{babel}
\babelprovide[import, main]{arabic}

\newbox\mybox

\parindent=0pt

\begin{document}

\setbox\mybox=\vbox{\hyperlink{top}{%
       \vbox to 2cm{%
        \hbox to 2cm{\hfil}%
        \vfil%
      }%
    }}%
    
\ht\mybox=0pt
\dp\mybox=0pt
\wd\mybox=0pt    

\copy\mybox%    
\includegraphics[width=.5\linewidth]{example-image}

\bigskip

\begin{minipage}{\linewidth}
\box\mybox%    
\includegraphics[width=.5\linewidth]{example-image}
\end{minipage}

\newpage

\hypertarget{top}{Text text Text}

\end{document}

在此处输入图片描述

更新

\includegraphics[width=.5\linewidth]{example-image}如果我们删除右侧出现的行链接框,那么在链接框后的同一行中添加任何内容时就会出现问题。

答案1

这与 hyperref 无关。没有其他可选参数的 minipage 用于\vcenter将框居中,因此您处于数学模式。由于您使用的是低级 TeX 框,因此这会保留并影响您的框。

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage[bidi=basic]{babel}
\babelprovide[import, main]{arabic}

\newbox\mybox

\parindent=0pt

\begin{document}
\newsavebox\myboxB
\sbox\myboxB{\mbox{.!.!.}}

% LaTeX boxes work:
\begin{minipage}{\linewidth}
\usebox\myboxB\par
xxx
\end{minipage}

\bigskip

\setbox\mybox=\vbox{\hbox{.!.!}}%

%Low-level fail
\begin{minipage}{\linewidth}
\copy\mybox%    
xxx
\end{minipage}
    
\bigskip

% [t] alignment works:
\begin{minipage}[t]{\linewidth}
\copy\mybox%    
xxx
\end{minipage}

\bigskip

% leaving vmode works:
\begin{minipage}{\linewidth}
\leavevmode\copy\mybox \par%    
xxx
\end{minipage}


\bigskip 
  
%changing mathdir works:
\mathdir TRT
\begin{minipage}[t]{\linewidth}
\copy\mybox%    
xxx
\end{minipage}

\end{document}

在此处输入图片描述

如果您删除图形,问题就会“消失”,因为小页面的宽度不符合您的预期(同样是因为您使用了不以段落开头的低级 TeX 框)。这与 bidi 无关:

\documentclass{article}
\newbox\mybox

\parindent=0pt

\begin{document}

\setbox\mybox=\vbox{\hbox{.!.!}}%

\fbox{%
\begin{minipage}{\linewidth}
\copy\mybox
\end{minipage}}
    
\fbox{%
\begin{minipage}{\linewidth}
\copy\mybox x
\end{minipage}}    
    
\fbox{%
\begin{minipage}{\linewidth}
\leavevmode\copy\mybox 
\end{minipage}}       
\end{document}

在此处输入图片描述

相关内容