以下最小代码
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand*\mycircb[1]{%
\tikz[baseline=-1.5pt]\node[draw,circle,inner sep=0.8pt, scale=0.8]
{\upshape \footnotesize \textbf{#1}};\!\!
}
\newcommand*\Swtch[3]{%
\xrightarrow[{\text{\mycircb{#2} $>$ \mycircb{#3}}}]{\text{#1}}
}
\begin{document}
\[
\Swtch{Boo}{A}{B}
\]
\end{document}
产生以下图片
箭头下方的垂直间距有点太大。如何让“分母”更靠近除法箭头?我正在寻找类似负 \vphantom 命令的东西。同样,假设我想调整“分子”间距。可以使用 \vphantom 添加空格,但如何添加空格已删除?
答案1
尝试这个:
\newcommand*{\Swtch}[3]{%
\mathrel{\vcenter{\offinterlineskip%
\hbox{\phantom{\,\mycircb{#2}}{\scriptsize#1}}\vskip-0.4ex\hbox{\ensuremath{\xrightarrow[\hphantom{\text{\mycircb{#2} $>$ \mycircb{#3}}}]{}}}\vskip-1.8ex\hbox{\,\text{\mycircb{#2} $>$ \mycircb{#3}}}}}%
}
第一个\phantom
和第二个用法\,
有点像是用来将文本居中的 hack,但应该是您想要的。您可以通过将参数更改为两个来调整空间量\vskip
。
比较如下:
答案2
\vphantom
您可以不用使用它来\settoheight{\yourlengthcmd}{text}
获取参数的高度并将其应用为负空间。
答案3
您可以使用\smash
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand*\mycircb[1]{%
\tikz[baseline=-1.5pt]\node[draw,circle,inner sep=0.8pt, scale=0.8]
{\upshape \footnotesize \textbf{#1}};\!\!
}
\newcommand*\Swtch[3]{%
\xrightarrow[{\text{\mycircb{#2} $>$ \mycircb{#3}}}]{\text{#1}}
}
\newcommand*\Swtchnew[3]{%
\xrightarrow[\smash{\text{\mycircb{#2} $>$ \mycircb{#3}}}]{\text{#1}}
}
\begin{document}
\[
\Swtch{Boo}{A}{B} \Swtchnew{Boo}{A}{B}
\]
\end{document}