带箭头的框的高度

带箭头的框的高度

请考虑以下示例:

\documentclass{article}

\begin{document}

\fbox{$\longrightarrow$}

\end{document}

输出

可以看出,盒子的高度太小了。

我该如何纠正这个问题?

答案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}

在此处输入图片描述

答案2

您可以添加一个支柱,或者更好的是添加一个同样以数学轴为中心的零宽度规则,任意大小。

在此处输入图片描述

\documentclass{article}

\begin{document}

\fbox{.} \fbox{$a$} \fbox{$\longrightarrow$} \fbox{\strut$\longrightarrow$}

\fbox{$\vcenter{\hrule height 15pt width 0pt}{\longrightarrow}$}

\end{document}

答案3

这是一个解决方案:

\documentclass[12pt]{article}

\begin{document}

hkl \raisebox{2\fontdimen22\textfont2}{ \fbox{\raisebox{-2\fontdimen22\textfont2}{$ \longrightarrow $}}} amn 

\end{document} 

在此处输入图片描述

相关内容