如何在纯 TeX 中定义 underleftarrow?

如何在纯 TeX 中定义 underleftarrow?

我想在 lim 符号下方排版一个箭头(指向左边或者右边)。

以下操作用于将箭头置于极限之上

\def\limleft{\mathop{\overleftarrow{\rm lim}}}

$\limleft_i a_i$
$$\limleft_i a_i$$

\bye

但我不知道如何定义underleftarrow

答案1

类似于\overleftarrow

奇怪的垂直字距是由于箭头的“特殊”边界框造成的。

\catcode`@=11
% modify \overleftarrow to make \underleftarrow
%\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
%      \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
%      $\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\underleftarrow#1{%
  \vtop{%
    \m@th
    \ialign{##\crcr
      $\hfil\displaystyle{#1}\hfil$\cr
      \noalign{\kern0.4ex\nointerlineskip}
      \leftarrowfill\cr
    }%
  }%
}
\catcode`@=12

\def\limleft{\mathop{\underleftarrow{\rm lim}}}

$$
\limleft
$$

\bye

在此处输入图片描述

您将获得与\vbox垂直框中最后一个项目相同的参考点;\vtop参考点是垂直材料中第一个项目的参考点。

答案2

您可以\underleftarrow\overleftarrow在 中定义的那样定义类比plain.tex

\def\underleftarrow#1{\vtop{\ialign{##\crcr
   $\hfil\displaystyle{#1}\hfil$\cr\noalign{\kern-1.3ex}
   \leftarrowfill\crcr}}}

\def\ulimleft{\mathop{\underleftarrow{\rm lim}}}

% Try this:
$\ulimleft_i a_i$
$$\ulimleft_i a_i$$

\bye

相关内容