我一直在使用
\newcommand{\lrscript}[3]{\raisebox{.5ex}{\llap{\scriptsize$#2$}}#1\raisebox{.5ex}{\rlap{\scriptsize$#3$}}}
产生如下中间部分:
制作
\[
\begin{array}{c}
[\Gamma]\\
\lrscript{\vdots}{\pi}{\exists\text{-free}}\\
\hline
\phi
\end{array}
\]
使用该amsmath
包。
它在大多数情况下都能正常工作,但我更愿意尽可能避免手动提升框,因此我一直在想是否有更智能的方法来实现这种水平和垂直对齐。(请注意,此命令通常深度嵌套在更复杂的构造中。)
答案1
您可以利用\vcenter
:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\lrscript}[3]{%
\vcenter{\llap{$\scriptstyle\mathstrut#2$}}
\vcenter{\hbox{$#1$}}
\vcenter{\rlap{$\scriptstyle\mathstrut#3$}}
}
\makeatletter % Hendrik Vogt (https://tex.stackexchange.com/a/4827)
\def\vcdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
\kern3\p@\hbox{.}\hbox{.}\hbox{.}\kern3\p@}}
\makeatother
\newcommand{\existsfree}{\exists\text{-free}}
\begin{document}
$\begin{array}{c}
[\Gamma] \\
\lrscript{\vcdots}{\pi}{\existsfree} \\
\hline
\phi
\end{array}$
\end{document}
宏\vcdots
是亨德里克·沃格特