在枚举环境中使用对齐时出现问题

在枚举环境中使用对齐时出现问题

我正在创建一个包含正数和负数的枚举列表,并希望这些数字彼此对齐,即全部位于同一列中。我还有第二个包含小数的列表,我想将小数点对齐。我尝试在枚举列表中使用 \begin{align},如下所示

\begin{enumerate}
\begin{align*}[t]
\item $-&2$
\item $3$
\item $-18$
\item $83.2$
\item $-112.2$
\end{align*}
\end{enumerate}

但它给了我错误 \begin{aligned} 仅在数学模式下允许。我已加载 amsmath 包,并使用 xelatex 进行编译。

编辑:即使我已经注释掉问题区域,xelatex 现在仍然出现此错误。

答案1

\item您不能在数学模式下使用,因此您的构造:

\begin{enumerate}
\begin{align*}[t]
\item $-&2$
\item $3$
...
\end{enumerate}

会产生错误。

为了获得所需的排列(具有枚举行的表格状材料,以及某些列的小数点对齐),您可以使用环境tabular;可以使用siunitx包裹:

\documentclass{article}
\usepackage{siunitx}

\newcounter{tmp}

\begin{document}

\noindent\begin{tabular}{>{\stepcounter{tmp}\thetmp}lSS[table-format = 3.4]}
& 6 & 2.3456 \\
& -7 & 34.2345 \\
& 20 & -6.7835 \\
& -12 & 90.473 \\
\end{tabular}

\end{document}

在此处输入图片描述

这里还有另外两个选项:一是仅使用align(来自amsmath包),另一个是使用标准tabular

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}

\newcounter{tmp}

\begin{document}

\noindent Using \texttt{align*}:
\begin{align*}
1 && 6 && 2.3456 \\
2 && -7 && 34.2345 \\
3 && 20 && -6.7835 \\
4 && -12 && 90.473\phantom{0} \\
5 && 10 && 3.4\phantom{000} 
\end{align*}

\noindent Using \texttt{tabular}:

\setcounter{tmp}{0}
\noindent\begin{tabular}{@{}>{\stepcounter{tmp}\thetmp}lrr@{.}l}
& 6 & 2 &3456 \\
& -7 & 34 & 2345 \\
& 20 & -6 & 7835 \\
& -12 & 90 & 473 \\
& 10 & 3 & 4 
\end{tabular}
\end{document}

在此处输入图片描述

请注意,第一个解决方案(使用siunitx)所需的工作量较少。

相关内容