我正在尝试排版一个具有不同宽度条目的矩阵。但是,出于美观原因,我希望矩阵的每一列都具有相同的宽度,并且我还希望它们右对齐。
我在 tabularx 环境中工作(因为它能够统一调整列宽)。但是,如果我编译
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\[
\left[
\begin{tabularx}{1in}{XXX}
x & 0 & y\\
0 & y & -x
\end{tabularx}
\right]
\]
\end{document}
那么这些列就没有所需的对齐方式。我查看了 tabularx 文档,发现我应该定义一种新的列类型。所以我尝试了以下操作:
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\[
\left[
\begin{tabularx}{1in}{RRR}
x & 0 & y\\
0 & y & -x
\end{tabularx}
\right]
\]
\end{document}
这不会对输出产生任何变化。我遗漏了什么?
编辑:以下代码
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\newcolumntype{P}{>{\raggedleft\arraybackslash }p{.075in}}
\newcolumntype{Q}{>{\raggedleft\arraybackslash $}p{0.075in}<{$}}
$\left[\begin{array}{PPP}
x & 0 & y\\
0 & y & -x
\end{array}\right]$
\qquad
$\left[\begin{array}{QQQ}
x & 0 & y\\
0 & y & -x
\end{array}\right]$
\end{document}
产生这个输出:
答案1
首先,您的示例中缺少 mathmode。您需要在\[
/\]
周围使用\left[
/ \right]
。
这不会对输出产生任何变化。我遗漏了什么?
在我的计算机上,它产生了变化!列右对齐。
tabularx
如果对所有列都使用,则实际上没有意义。X
在这种情况下,只需使用p{<width>}
具有正常tabular
或array
环境的列,例如:
\newcolumntype{P}{>{\raggedleft\arraybackslash}p{.2in}}
\begin{array}{PPP}
在我的安装中,这给出的结果几乎与带有该列的第二个代码相同R
:
编辑: 回答您编辑的问题:
第一个可以用 来修复\hbox{-x}
,第二个可以用 来修复\!\!-x
。
我认为您无法避免手动调整。但是,尺寸这么小,结果看起来不会很好,而 LaTeX 通常具有良好的排版质量。