使用 \stackrel 垂直对齐字符

使用 \stackrel 垂直对齐字符

我从中学到斯蒂芬回复将一个角色置于另一个角色之上在数学模式下使用\stackrel即可实现这一点。我现在使用它来标记单词的片段具有高 (H) 或低 (L) 音调。但是,在某些单词中,我在上面放置 H 或 L 的字符高度不同。我如何垂直对齐凸起的字符 H 和 L?

\documentclass{article}
\usepackage{amsmath}
\begin{document}
h$\stackrel{\text{L}}{\text{a}}$nd$\stackrel{\text{H}}{\text{l}}$
\end{document}

在此处输入图片描述


编辑: 这接受的答案调整 \stackrel 中的垂直和水平间距建议(如下面的 Barbara)对每个元素使用\strut。但是,当使用双倍间距时,这会将字符抬高得太高。

\documentclass{article}
\usepackage{amsmath,setspace}
\doublespacing
\begin{document}
h$\stackrel{\text{L}}{\strut{\text{a}}}$nd$\stackrel{\text{H}}{\strut{\text{l}}}$
\end{document}

在此处输入图片描述

答案1

您可以添加\strut以使它们垂直对齐。或者\vphantom仅在必要时添加 。

这是一个相对低级的实现:

\documentclass{article}

% cf. \oalign and \mathstrut in LaTeX kernel
\newcommand\textoverset[3][(]{%
  \leavevmode\vbox{%
    \baselineskip0pt \lineskip.25ex
    \ialign{\hfil##\hfil\crcr
      \scriptsize#2\cr
      \vphantom{#1}#3\crcr}}}

\linespread{3}

\begin{document}

h\textoverset{L}{a}nd\textoverset{H}{l}

h\textoverset[l]{L}{a}nd\textoverset[]{H}{l}% add a template manually

\end{document}

在此处输入图片描述

相关内容