
Я создаю список с перечислением как положительных, так и отрицательных чисел и хочу, чтобы числа были выровнены друг с другом, т. е. все в одном столбце. У меня также есть второй список с десятичными числами, и я хочу выровнять десятичные точки. Я попробовал использовать \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} allowed only in math mode. У меня загружен пакет 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
) требует меньше работы.