答案1
使用该mathtools
包,您可以使用增强版的matrix
环境。在此示例中,我使用星号版本,pmatrix
该版本接受一个可选参数,即单元格的对齐方式。为了保留减号的空间,我只需将\phantom{-}
其放在要隔开的条目前面即可。
\documentclass{article}
\usepackage{mathtools} % loads amsmath
\begin{document}
\begin{equation*}
\begin{pmatrix*}[l]
1 & \phantom{-}0 & 0 & 0 \\
0 & \phantom{-}2 & 2i & 0 \\
0 & -2i & 2 & 0 \\
0 & \phantom{-}0 & 0 & 1
\end{pmatrix*}
\end{equation*}
\end{document}
要在 处对齐i
,只需反向应用上述技巧,即\phantom{i}
在需要的地方添加。
\documentclass{article}
\usepackage{mathtools} % loads amsmath
\usepackage{dcolumn}
\begin{document}
\begin{equation*}
\begin{pmatrix*}[r]
1 & 0\phantom{i} & 0\phantom{i} & 0 \\
0 & 2\phantom{i} & 2i & 0 \\
0 & -12i & 2\phantom{i} & 0 \\
0 & 0\phantom{i} & 0\phantom{i} & 1
\end{pmatrix*}
\end{equation*}
\end{document}
使用 David 的dcolumn
包,您还可以实现对齐i
。 但这有个缺点,它i
甚至在没有的列中也为保留了空间i
(例如示例中的第一列和最后一列)。
\documentclass{article}
\usepackage{mathtools} % loads amsmath
\usepackage{dcolumn}
\newcolumntype{d}{D{i}{i}{0}}
\begin{document}
\begin{equation*}
\begin{pmatrix*}[d]
1 & 0 & 0 & 0 \\
0 & 2 & 2i & 0 \\
0 & -12i & 2 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix*}
\end{equation*}
\end{document}
答案2
好吧,您已经设置了一个四列左对齐的数组\begin{array}{llll}
- 这就是您的四个l
s 所做的。
为了对齐 2,我建议进行一些 hack
\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}
\newlength{\minuslength}
\settowidth{\minuslength}{$-$}
\begin{document}
\begin{equation*}
\left(
\begin{array}{llll}
1 & \hspace{\minuslength}0 & 0 & 0 \\
0 & \hspace{\minuslength}2 & 2i & 0 \\
0 & -2i & 2 & 0 \\
0 & \hspace{\minuslength}0 & 0 & 1
\end{array}
\right)
\end{equation*}
\end{document}
我在这里所做的是设置一个长度,称为\minuslength
:
\newlength{\minuslength}
然后我给这个长度赋予减号的宽度:
\settowidth{\minuslength}{$-$}
\settowidth{\minuslength}{$-$}
然后我可以在每个元素前插入一个减号宽度的空格。
不过这有点不雅。可能有更好的方法来实现这一点,但你确定居中不是更好的选择吗?
为了使列居中,您必须指定四个居中的列\begin{array}{cccc}
\begin{equation*}
\left(
\begin{array}{cccc}
1 & 0 & 0 & 0 \\
0 & 2 & 2i & 0 \\
0 & -2i & 2 & 0 \\
0 & 0 & 0 & 1
\end{array}
\right)
\end{equation*}
但老实说,使用pmatrix
(会更容易,对于括号,对于矩阵p
可以使用方括号 ( ),对于矩阵可以使用大括号 ( ) 等等):bmatrix
[]
Bmatrix
{}
\begin{equation*}
\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 2 & 2i & 0 \\
0 & -2i & 2 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}
\end{equation*}
答案3
使用\llap
如评论中所述,\llap{$-$}2i
单独使用时,列间距太紧。
但是,基于其他答案的想法,使用\phantom
,而不是在“减号”行以外的每一行中使用它,这里它只使用一次,通过在第一列中使用来更正列间距,在带有\llap
减号的行上使用一个 ,将减号向左翻转:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation*}
\begin{pmatrix*}[l]
1\phantom{-} & 0 & 0 & 0 \\
0 & 2 & 2i & 0 \\
0 & \llap{$-$}2i & 2 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix*}
\end{equation*}
\end{document}
这也适用于 2 位数字:
并通过操纵分组,例如\llap{$-$1}2i
可以在任何数字上对齐:
感谢 Henri Menke 耐心地纠正我最初的回答。我模仿了他的用法pmatrix*
并实施了他给出的建议。