答案1
中的默认堆栈类型stackengine
是“ S
hort”堆栈,它们保存堆栈中字母之间的垂直空隙量。但也有“ L
ong”堆栈,它们保存基线跳过量。因此,只需调用\renewcommand\stacktype{L}
。
默认的 baselineskip 是\normalbaselineskip
,但你可以用 重置它\setstackgap{L}{<length>}
。或者你可以将可选参数传递给特定堆栈:\stackon[<length>]{...}
。
\documentclass{article}
\usepackage{stackengine}
\begin{document}
\renewcommand\stacktype{L}
\stackon{a}{w}\stackon{b}{x} \stackon{c}{y}\stackon{d}{z}
\end{document}
软件包文档,https://ctan.org/pkg/stackengine,把这一切都阐述得很清楚。
答案2
答案3
以下是我的做法:
\documentclass{article}
\newcommand{\aw}[2]{%
\leavevmode\vbox{%
\offinterlineskip
\halign{%
\hfil##\hfil\cr
\vphantom{y}#2\cr
\noalign{\vskip0.4pt}
\vphantom{b}#1\cr
}%
}%
}
\begin{document}
\aw{a}{w}\aw{b}{x} \aw{c}{y}\aw{d}{z} \aw{d}{q}
\end{document}
顶部字母较小的版本:
\documentclass{article}
\makeatletter
\newcommand{\aw}[2]{%
\leavevmode\vbox{%
\check@mathfonts
\offinterlineskip
\halign{%
\hfil##\hfil\cr
\fontsize{\ssf@size}{0}\selectfont
\vphantom{y}#2\cr
\noalign{\vskip0.4pt}
\vphantom{b}#1\cr
}%
}%
}
\makeatother
\begin{document}
\aw{a}{w}\aw{b}{x} \aw{c}{y}\aw{d}{z} \aw{d}{q}
\end{document}