我一直试图理解为什么我的代码不能生成表格:
\begin{enumerate}[label=\bfseries Exercise \arabic*:]
\item 5 + 7 = 12
\item 9 + 1 = 10
\item 2 * 2 = 4
\end{enumerate}
我尝试使用 $ 符号,但不幸的是我不知道为什么我没有得到表格。我遗漏了什么或做错了什么?
答案1
嗯,该代码不适合表格,适合列表。您需要使用更合适的代码:
\documentclass{article}
\begin{document}
\section{Exercise}
\setlength{\arraycolsep}{0.3em} % default value: 5pt
$\begin{array}{r@{\qquad}rcrcr} % more spacing between first two columns
1. & 5 & + & 7 & = & 12 \\
2. & 9 & - & 1 & = & 8 \\
3. & 2 & * & 6 & = & 12 \\
\end{array}$
\end{document}
当然,这不是最好的解决方案。但是我还是要说明一下,因为这或多或少是你的想法,或者尝试用数学方法找出正确的环境。
但是,当您在数学环境中工作时,您可以使用该amsmath
包及其任何设置,例如align
(因此推荐 Johannes_B)允许您在不使用表格的情况下对齐数学表达式(尽管在内部,LaTeX
对齐它们的逻辑是相同的)。
附加物
好吧,上面的解决方案并不完美。最重要的原因是因为不是办法在 中输入数学运算LaTeX
。更好的想法是使用amsmath
,我们将得到如下结果:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\section{Exercises}
\begin{alignat*}{3}
\text{\textbf{i}} \quad & 5 + 7 & = 12 \\
\text{\textbf{ii}} \quad & 9 + 1 & = 10 \\
\text{\textbf{iii}} \quad & 2 * 2 & = \phantom{0}4
\end{alignat*}
\end{document}
如您所见,即使您不使用$
符号,该环境也可以在数学环境中工作。
答案2
您期待这样的事情吗?如果没有,请解释一下。
\documentclass{article}
\usepackage{enumitem}
\usepackage{array}
\newcounter{rowno}
\setcounter{rowno}{0}
\begin{document}
\begin{enumerate}[label=\bfseries Exercise \arabic*:]
\item 5 + 7 = 12
\item 9 + 1 = 10
\item 2 * 2 = 4
\end{enumerate}
\noindent
\begin{tabular}{@{}>{\bfseries Exercise \stepcounter{rowno}\therowno.}l >{$}c<{$}!{$=$}r}
& 5 + 7 & 12 \\
& 9 + 1 & 10 \\
& 2 * 2 & 4 \\
& 2 \times 2 & 4
\end{tabular}
\end{document}
如果你需要的话,这里有一个array
版本:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\newcounter{rowno}
\setcounter{rowno}{0}
\begin{document}
\noindent
$\begin{array}{@{}>{\text{\bfseries Exercise \stepcounter{rowno}\therowno.}}l c!{=}r}
& 5 + 7 & 12 \\
& 9 + 1 & 10 \\
& 2 * 2 & 4 \\
& 2 \times 2 & 4
\end{array}$
\end{document}