关于表格代码的问题

关于表格代码的问题

我一直试图理解为什么我的代码不能生成表格:

  \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}

如您所见,即使您不使用$符号,该环境也可以在数学环境中工作。

使用 amsmath 的解决方案

答案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}

相关内容