![使用 \stackrel 垂直对齐字符](https://linux22.com/image/270317/%E4%BD%BF%E7%94%A8%20%5Cstackrel%20%E5%9E%82%E7%9B%B4%E5%AF%B9%E9%BD%90%E5%AD%97%E7%AC%A6.png)
我从中学到斯蒂芬回复将一个角色置于另一个角色之上在数学模式下使用\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}