![对齐并匹配 \rightarrow 和 \xrightarrow 的长度](https://linux22.com/image/415883/%E5%AF%B9%E9%BD%90%E5%B9%B6%E5%8C%B9%E9%85%8D%20%5Crightarrow%20%E5%92%8C%20%5Cxrightarrow%20%E7%9A%84%E9%95%BF%E5%BA%A6.png)
在下面的例子中,我想使\rightarrow
与 的长度相同\xrightarrow
,同时将两者对齐。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
A &\xrightarrow{\mathrm{closed\, loop}} B \\
C &\rightarrow D
\end{split}
\end{equation}
\end{document}
我发现我可以改变长度\rightarrow
,使用calc
's\widthof
来获取正确的长度:
\documentclass{article}
\usepackage{amsmath}
\usepackage{calc}
\begin{document}
\begin{equation}
\begin{split}
A &\xrightarrow{\mathrm{closed\, loop}} B \\
C &\parbox{\widthof{$\xrightarrow{\mathrm{closed\, loop}}$}}{\rightarrowfill} D
\end{split}
\end{equation}
\end{document}
但是我随后失去了两个箭头的对齐(并且我$...$
对在 中使用 感到不高兴equation
。有没有办法将这两个箭头对齐?有没有更好的方法让两个箭头长度相同?
答案1
答案2
这个答案其实和@Schrödinger的答案是一样的,我添加了两个命令,方便使用。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\firstarrow}[2][default]{
\expandafter\gdef\csname arrow@content@#1\endcsname{#2}
\xrightarrow{\@nameuse{arrow@content@#1}}
}
\newcommand{\alignarrow}[1][default]{\xrightarrow{\hphantom{\@nameuse{arrow@content@#1}}}}
\makeatother
\begin{document}
\begin{equation}
\begin{split}
A &\firstarrow{\mathrm{closed\, loop}} B \\
A &\alignarrow B\\
C &\firstarrow[test]{a_c} D\\
A &\alignarrow B\\
C &\alignarrow[test] D\\
\end{split}
\end{equation}
\end{document}