答案1
1992 年,计算机现代箭头进行了修改,使其头部更大;在旧版本中,边界框并未覆盖整个箭头尖端,而且为了向后兼容度量标准,在修改箭头尖端之后,边界框也没有改变。
通过这个old-arrow
包我们可以看出区别:
\documentclass{article}
\usepackage[old]{old-arrows}
\begin{document}
\setlength{\fboxrule}{0.1pt}
\setlength{\fboxsep}{0pt}
x \fbox{$\varrightarrow$} (old style)
x \fbox{$\rightarrow$} (new style)
\end{document}
您可以使用以下事实来修复边界框:笔杆位于数学轴上,笔尖的下部位于基线上。
\documentclass{article}
\newcommand{\srightarrow}{%
\mathrel{\mathpalette\strutarrow\rightarrow}%
}
% define similarly the other arrows you need
% the generic macro
\newcommand{\strutarrow}[2]{%
\vrule width 0pt height 2\fontdimen22
\ifx#1\displaystyle\textfont\else
\ifx#1\textstyle\textfont\else
\ifx#1\scriptstyle\scriptfont\else
\scriptscriptfont\fi\fi\fi 2
{#2}%
}
\begin{document}
\fbox{$\rightarrow$} \fbox{$\srightarrow$}
\setlength{\fboxrule}{0.1pt}
\setlength{\fboxsep}{0pt}
x \fbox{$\rightarrow$} (normal)
x \fbox{$\srightarrow$} (with strut)
\end{document}