使用 tabularx 环境右对齐列

使用 tabularx 环境右对齐列

我正在尝试排版一个具有不同宽度条目的矩阵。但是,出于美观原因,我希望矩阵的每一列都具有相同的宽度,并且我还希望它们右对齐。

我在 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>}具有正常tabulararray环境的列,例如:

  \newcolumntype{P}{>{\raggedleft\arraybackslash}p{.2in}}
  \begin{array}{PPP}

在我的安装中,这给出的结果几乎与带有该列的第二个代码相同R

在此处输入图片描述

编辑: 回答您编辑的问题:

第一个可以用 来修复\hbox{-x},第二个可以用 来修复\!\!-x

我认为您无法避免手动调整。但是,尺寸这么小,结果看起来不会很好,而 LaTeX 通常具有良好的排版质量。

相关内容