控制 amsmath 对齐环境中每个“单元”的对齐

控制 amsmath 对齐环境中每个“单元”的对齐

amsmathaligned环境中,每个“单元格”或每个“列”的对齐方式都是预先确定的,并且似乎按以下方式工作:第一个“列”向右对齐,第二个向左对齐,第三个再次向右对齐,依此类推。

我的问题是,有什么方法可以调整每个“单元格”的对齐方式(左对齐、居中对齐或右对齐)?例如,我尝试使用以下内容创建图表aligned

  \[                                                                            
  \begin{aligned}                                                               
    \sigma  & \colon & F(\alpha) & \overset{\sim}{\to} & F'(\beta)\\                 
            &        & |         &                     & |\\                         
    \varphi & \colon & F         & \overset{\sim}{\to} & F'                          
  \end{aligned}                                                                 
  \]

期望的行为非常明显,但实际输出是 灾难

答案1

您可能更适合使用tikz-cd或.....但是在这里,您可以使用newcommand

 \newcommand*{\mbc}[2]{\makebox[\widthof{$F(\alpha)$}][#1]{$#2$}}

这使得盒子的宽度与包装$F(\alpha)$的宽度相同calc

\documentclass{article}
\usepackage{amsmath,calc}
\newcommand*{\mbc}[2]{\makebox[\widthof{$F(\alpha)$}][#1]{$#2$}}
\begin{document}
   \[
  \begin{aligned}
    \mbc{r}{\sigma} & \colon & \mbc{c}{F(\alpha)} & \overset{\sim}{\to} & F'(\beta)\\
           &        & \mbc{c}{|}     &                     & \mbc{c}{|}\\
    \phi    & \colon & \mbc{c}{F}     & \overset{\sim}{\to} & \mbc{c}{F'}
  \end{aligned}
  \]
\end{document}

在此处输入图片描述

用于c中心、l左对齐和r右对齐。

答案2

一次tikz-cd尝试

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
\sigma\colon\hspace*{-4.5em} & F(\alpha) \arrow{r}{\sim} \arrow[dash]{d}
& F'(\beta) \arrow[dash]{d} \\
\varphi\colon\hspace*{-4.5em} & F \arrow{r}{\sim}
& F'
\end{tikzcd}
\end{document} 

在此处输入图片描述

代码肯定可以改进,我tikz根本不是专家......

dash这是用以下方法替换的结果equal

在此处输入图片描述

答案3

对于这种简单的构造,您可以使用旧的CD环境:

\documentclass{article}
\usepackage{amsmath,amscd}
\begin{document}
\[
\begin{CD}
\sigma\colon @. F(\alpha) @>\sim>> F'(\beta) \\
@. @| @| \\
\varphi\colon @. F @>\sim>> F'
\end{CD}
\]
\end{document}

然而,最好还是切换到tikz-cd更灵活、更强大的现代软件包。

在此处输入图片描述

相关内容