我经常在表格中使用以下类型的构造,以创建由右箭头分隔的从左到右的顺序序列 - 我使用 stackrel 和 longrightarrow 的组合来完成基本的“外观”:
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} &
$\stackrel{\phi_{1}}{\longrightarrow}$ &
\textbf{2} & $\stackrel{\phi_{2}}{\longrightarrow}$ &
\textbf{3}
\end{tabular}
\end{center}
生成以下内容:
然而,出于各种审美原因,我有兴趣让 longrightarrow 更长一些。我的方法是使用 xrightarrow。诀窍是,我想要 xrightarrow 的固定长度(而不是动态长度)。如果我尝试类似
\newcommand*{\barrow}{\xrightarrow{\hspace*{0.8cm}}}
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} &
$\barrow$ &
\textbf{2} & $\barrow$ &
\textbf{3}
\end{tabular}
\end{center}
我得到了一些带有较长右箭头的东西,
如果我使用 stackrel 将标签放在每个较长的箭头上,
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} &
$\stackrel{\phi_{1}}{\barrow}$ &
\textbf{2} & $\stackrel{\phi_{2}}{\barrow}$ &
\textbf{3}
\end{tabular}
\end{center}
看起来效果不错(它们居中,这正是我想要的)。但是,标签太小了(同样,出于愚蠢的审美原因)。
由于标签总是数学,我使用 scalebox 将它们放大:
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} &
$\stackrel{\scalebox{0.91}{$\phi_{1}$}}{\barrow}$ &
\textbf{2} & $\stackrel{\scalebox{0.91}{$\phi_{2}$}}{\barrow}$ &
\textbf{3}
\end{tabular}
\end{center}
但是,标签不再居中:
那么,有没有办法从这里到达那里——更长的右箭头,居中,更大的标签,几乎总是处于数学模式?
出于各种原因,我希望继续使用表格(因为事实上,我有这种特殊构造的多行),但这可能行不通。欢迎在另一个“包”中进行演示(或者,更好的是——最欢迎在表格中演示如何做到这一点!)
提前致谢。
答案1
由于您已经在使用tabular
它,tikz-cd
如果可以选择,那么更改为就不会有太大麻烦:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
\textbf{1} \arrow[rr,"\phi_1"] && \textbf{2} \arrow[rr,"\phi_2"] && \textbf{3}
\end{tikzcd}
\end{document}
每&
添加一个都会生成一个新列,例如tabular
,并且\arrow[rr]
向右添加两列r
。
对于较短的箭,您可以使用\arrow[r,"\phi_1"] &
,对于更长的箭,可以使用\arrow[rrr,"\phi_1"] &&&
。
答案2
\displaystyle
只需在 s之前添加\phi
,使用 OP 的第 3 个代码块。
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\barrow}{\xrightarrow{\kern0.8cm}}
\begin{document}
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} &
$\stackrel{\displaystyle\phi_{1}}{\barrow}$ &
\textbf{2} & $\stackrel{\displaystyle\phi_{2}}{\barrow}$ &
\textbf{3}
\end{tabular}
\end{center}
\end{document}
如果您希望在设置垂直间隙时有更多控制权,这里有一个替代方法,实际上需要更少的输入,使用堆栈和语法\barrow[<overset>]
。在 MWE 中,我缩小了垂直间隙。
\documentclass{article}
\usepackage{stackengine,amsmath}
\stackMath
\newcommand*{\barrowaux}{\xrightarrow{\kern0.8cm}}
\newcommand\barrow[1][]{\mathrel{\stackon[-1pt]{\barrowaux}{#1}}}
\begin{document}
\begin{center}
\begin{tabular}{ccccc}
\textbf{1} & $\barrow[\phi_{1}]$ & \textbf{2} & $\barrow[\phi_{2}]$ & \textbf{3}
\end{tabular}
\end{center}
\end{document}