具有不同元素的均匀间距对齐矩阵

具有不同元素的均匀间距对齐矩阵

bmatrix我有 8 个向量,它们在对齐环境中显示如下:

但如您所见,第一个向量略细,导致其余向量也未对齐。如何使第一个向量与其他向量一样宽?如果有人知道如何使高度也相同,那就更棒了!

以下是 MWE:

\documentclass[preview, border = 2pt]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{align*}
b_1 &= \begin{bmatrix} 0 \\ 0 \end{bmatrix}, \quad b_2 = \begin{bmatrix} \frac{1}{3} \\ 0 \end{bmatrix}, \quad
b_3 = \begin{bmatrix} 0 \\ \frac{1}{3} \end{bmatrix}, \quad b_4 = \begin{bmatrix} \frac{1}{3} \\[.1cm] \frac{2}{3} \end{bmatrix} \\
b_5 &= \begin{bmatrix} \frac{2}{3} \\[.1cm] \frac{2}{3} \end{bmatrix}, \quad b_6 = \begin{bmatrix} \frac{2}{3} \\ 0 \end{bmatrix}, \quad
b_7 = \begin{bmatrix} 0 \\ \frac{2}{3} \end{bmatrix}, \quad b_8 = \begin{bmatrix} \frac{2}{3} \\[.1cm] \frac{1}{3} \end{bmatrix}
\end{align*}
\end{document}

编辑:以下解决方案(也由 Ignasi 提供)不符合我的需要,因为我也有一些不需要align环境的单行情况,并且它在方程之间看起来很奇怪。

\documentclass[preview, border = 2pt]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{align*}
b_1 &= \begin{bmatrix} 0 \\ 0 \end{bmatrix}, 
&
b_2 &= \begin{bmatrix} \frac{1}{3} \\ 0 \end{bmatrix}, 
&
b_3 &= \begin{bmatrix} 0 \\ \frac{1}{3} \end{bmatrix}, 
&
b_4 &= \begin{bmatrix} \frac{1}{3} \\ \frac{2}{3} \end{bmatrix} \\
b_5 &= \begin{bmatrix} \frac{2}{3} \\ \frac{2}{3} \end{bmatrix}, 
&
b_6 &= \begin{bmatrix} \frac{2}{3} \\ 0 \end{bmatrix}, 
&
b_7 &= \begin{bmatrix} 0 \\ \frac{2}{3} \end{bmatrix}, 
&
b_8 &= \begin{bmatrix} \frac{2}{3} \\ \frac{1}{3} \end{bmatrix}
\end{align*}
\end{document}

答案1

这里有两个不同的间距问题。第一个是 的0宽度不如\frac{2}{3}。可以通过将 中的第一个数字 0 设置\makebox为与 相同的宽度来纠正此问题。

第二个问题是您有两个不同的括号大小。当您用 修正间距时\\[.1cm],您会得到一个分数项的难看的对齐,以及两个分数项的下一个更大的括号大小。好吧,如果这两个括号大小前面的间距相同,那么这不会是一个问题。不幸的是,事实并非如此。较大的括号在其前面占据了更多的空间。

最简单的方法是将所有向量放大到相同的大小。这样做,您将获得所需的水平对齐。

我使用了一些 Stefan Kottwitz 魔法为每个矩阵提供了一个可选的拉伸参数。我添加了该lua-visual-debug包以证明完美对齐。您可以删除它并改用 PDFLaTeX 进行编译。

% arara: lualatex

\documentclass{article}
\usepackage{amsmath}
\usepackage{calc}
\usepackage{lua-visual-debug}
\makeatletter
\renewcommand*\env@matrix[1][\arraystretch]{%
    \edef\arraystretch{#1}%
    \hskip -\arraycolsep
    \let\@ifnextchar\new@ifnextchar
    \array{*\c@MaxMatrixCols c}}
\makeatother

\begin{document}
\begin{align*}
    b_1 &= \begin{bmatrix}[1.2] \makebox[\widthof{$\frac{1}{2}$}][c]{0} \\ 0 \end{bmatrix}, \quad 
    b_2 = \begin{bmatrix}[1.2] \frac{1}{3} \\ 0 \end{bmatrix}, \quad
    b_3 = \begin{bmatrix}[1.2] 0 \\ \frac{1}{3} \end{bmatrix}, \quad 
    b_4 = \begin{bmatrix}[1.2] \frac{1}{3}\\\frac{2}{3}\end{bmatrix}\\
    %%%%%%%%%%
    b_5 &= \begin{bmatrix}[1.2] \frac{2}{3} \\ \frac{2}{3} \end{bmatrix}, \quad 
    b_6 = \begin{bmatrix}[1.2] \frac{2}{3} \\ 0 \end{bmatrix}, \quad
    b_7 = \begin{bmatrix}[1.2] 0 \\ \frac{2}{3} \end{bmatrix}, \quad 
    b_8 = \begin{bmatrix}[1.2] \frac{2}{3} \\ \frac{1}{3} \end{bmatrix}
\end{align*}
\end{document}

在此处输入图片描述

答案2

align可以有任意多个对齐点,而不只有一个:

\documentclass[preview, border = 2pt]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{align*}
b_1 &= \begin{bmatrix} 0 \\ 0 \end{bmatrix}, 
&
b_2 &= \begin{bmatrix} \frac{1}{3} \\ 0 \end{bmatrix}, 
&
b_3 &= \begin{bmatrix} 0 \\ \frac{1}{3} \end{bmatrix}, 
&
b_4 &= \begin{bmatrix} \frac{1}{3} \\ \frac{2}{3} \end{bmatrix} \\
b_5 &= \begin{bmatrix} \frac{2}{3} \\ \frac{2}{3} \end{bmatrix}, 
&
b_6 &= \begin{bmatrix} \frac{2}{3} \\ 0 \end{bmatrix}, 
&
b_7 &= \begin{bmatrix} 0 \\ \frac{2}{3} \end{bmatrix}, 
&
b_8 &= \begin{bmatrix} \frac{2}{3} \\ \frac{1}{3} \end{bmatrix}
\end{align*}
\end{document}

在此处输入图片描述

相关内容