alignat* inside tabular: “此行有额外 &”

alignat* inside tabular: “此行有额外 &”

我已经为这个错误挣扎了好几个小时了,但还没有找到解决办法。

我有两个环境(一个是alignat*,一个是array),我需要将它们并排放置。如果我不将它们放在 中tabular,则一切正常。

我收到此错误:“Package amsmath 错误:此行上有多余的 &。”(该行是\end{alignat*}}:)代码如下:

\begin{tabular}{cc}
{\begin{alignat*}{3}
    41708 &= 2 \cdot 20854 &&+ \ \fbox{\textbf{0}}\\
    20854 &= 2 \cdot 10427 &&+ \ \fbox{\textbf{0}}\\
    10427 &= 2 \cdot 5213  &&+ \ \fbox{\textbf{1}}\\
    5213  &= 2 \cdot 2606  &&+ \ \fbox{\textbf{1}}\\
    2606  &= 2 \cdot 1303  &&+ \ \fbox{\textbf{0}}\\
    1303  &= 2 \cdot 651   &&+ \ \fbox{\textbf{1}}\\
    651   &= 2 \cdot 325   &&+ \ \fbox{\textbf{1}}\\
    325   &= 2 \cdot 162   &&+ \ \fbox{\textbf{1}}\\
    162   &= 2 \cdot 81    &&+ \ \fbox{\textbf{0}}\\
    81    &= 2 \cdot 40    &&+ \ \fbox{\textbf{1}}\\
    40    &= 2 \cdot 20    &&+ \ \fbox{\textbf{0}}\\
    20    &= 2 \cdot 10    &&+ \ \fbox{\textbf{0}}\\
    10    &= 2 \cdot 5     &&+ \ \fbox{\textbf{0}}\\
    5     &= 2 \cdot 2     &&+ \ \fbox{\textbf{1}}\\
    2     &= 2 \cdot 1     &&+ \ \fbox{\textbf{0}}\\
    1     &= 2 \cdot 0     &&+ \ \fbox{\textbf{1}}\\
\end{alignat*}}
&
$
  \begin{array}{cccc||>{\centering\arraybackslash\boldmath$}m{0.7cm}<{$}}
    x & y & z & w & f\\\hline
    0 & 0 & 0 & 0 & 1\\
    0 & 0 & 0 & 1 & 0\\
    0 & 0 & 1 & 0 & 1\\
    0 & 0 & 1 & 1 & 0\\%\hline

    0 & 1 & 0 & 0 & 0\\
    0 & 1 & 0 & 1 & 0\\
    0 & 1 & 1 & 0 & 1\\
    0 & 1 & 1 & 1 & 0\\%\hline

    1 & 0 & 0 & 0 & 1\\
    1 & 0 & 0 & 1 & 1\\
    1 & 0 & 1 & 0 & 1\\
    1 & 0 & 1 & 1 & 0\\%\hline

    1 & 1 & 0 & 0 & 1\\
    1 & 1 & 0 & 1 & 1\\
    1 & 1 & 1 & 0 & 0\\
    1 & 1 & 1 & 1 & 0\\
  \end{array}
$
\end{tabular}

答案1

如果您只是想将它们并排放置,则可以使用minipage而不是tabular

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\begin{minipage}{.475\textwidth}
\begin{alignat*}{3}
    41708 &= 2 \cdot 20854 &&+ \ \fbox{\textbf{0}}\\
    20854 &= 2 \cdot 10427 &&+ \ \fbox{\textbf{0}}\\
    10427 &= 2 \cdot 5213  &&+ \ \fbox{\textbf{1}}\\
    5213  &= 2 \cdot 2606  &&+ \ \fbox{\textbf{1}}\\
    2606  &= 2 \cdot 1303  &&+ \ \fbox{\textbf{0}}\\
    1303  &= 2 \cdot 651   &&+ \ \fbox{\textbf{1}}\\
    651   &= 2 \cdot 325   &&+ \ \fbox{\textbf{1}}\\
    325   &= 2 \cdot 162   &&+ \ \fbox{\textbf{1}}\\
    162   &= 2 \cdot 81    &&+ \ \fbox{\textbf{0}}\\
    81    &= 2 \cdot 40    &&+ \ \fbox{\textbf{1}}\\
    40    &= 2 \cdot 20    &&+ \ \fbox{\textbf{0}}\\
    20    &= 2 \cdot 10    &&+ \ \fbox{\textbf{0}}\\
    10    &= 2 \cdot 5     &&+ \ \fbox{\textbf{0}}\\
    5     &= 2 \cdot 2     &&+ \ \fbox{\textbf{1}}\\
    2     &= 2 \cdot 1     &&+ \ \fbox{\textbf{0}}\\
    1     &= 2 \cdot 0     &&+ \ \fbox{\textbf{1}}\\
\end{alignat*}
\end{minipage}
\hfill
\begin{minipage}{.475\textwidth}
\(
  \begin{array}{cccc||>{\centering\boldmath\arraybackslash}m{0.7cm}}
    x & y & z & w & f\\\hline
    0 & 0 & 0 & 0 & 1\\
    0 & 0 & 0 & 1 & 0\\
    0 & 0 & 1 & 0 & 1\\
    0 & 0 & 1 & 1 & 0\\%\hline

    0 & 1 & 0 & 0 & 0\\
    0 & 1 & 0 & 1 & 0\\
    0 & 1 & 1 & 0 & 1\\
    0 & 1 & 1 & 1 & 0\\%\hline

    1 & 0 & 0 & 0 & 1\\
    1 & 0 & 0 & 1 & 1\\
    1 & 0 & 1 & 0 & 1\\
    1 & 0 & 1 & 1 & 0\\%\hline

    1 & 1 & 0 & 0 & 1\\
    1 & 1 & 0 & 1 & 1\\
    1 & 1 & 1 & 0 & 0\\
    1 & 1 & 1 & 1 & 0\\
  \end{array}
\)
\end{minipage}
\end{document}

答案2

你可以使用更简单的代码, 在单个环境中嵌套使用alignedat和。请注意,使用需要 5 ,而不是 3 (除第一列外,每一列都必须由 引入,并且包含第二列作为此列内的对齐点)。我还认为使用数组看起来会更好:arrayalign*alignat(3)&&&hhline

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

\begin{document}

\begin{equation*}
\begin{alignedat}{3}     41708 &= 2 \cdot 20854 &&{} +{} & \ & \boxed{\mathbf{0}}\\
 20854 &= 2 \cdot 10427 && +{} && \boxed{\mathbf{0}}\\
 10427 &= 2 \cdot 5213 && +{} && \boxed{\mathbf{1}}\\
 5213 &= 2 \cdot 2606 && +{} && \boxed{\mathbf{1}}\\
 2606 &= 2 \cdot 1303 && +{} && \boxed{\mathbf{0}}\\
 1303 &= 2 \cdot 651 && +{} && \boxed{\mathbf{1}}\\
 651 &= 2 \cdot 325 && +{} && \boxed{\mathbf{1}}\\
 325 &= 2 \cdot 162 && +{} && \boxed{\mathbf{1}}\\
 162 &= 2 \cdot 81 && +{} && \boxed{\mathbf{0}}\\
 81 &= 2 \cdot 40 && +{} && \boxed{\mathbf{1}}\\
 40 &= 2 \cdot 20 & & +{} && \boxed{\mathbf{0}}\\
 20 &= 2 \cdot 10 && +{} && \boxed{\mathbf{0}}\\
 10 &= 2 \cdot 5 && +{} && \boxed{\mathbf{0}}\\
 5 &= 2 \cdot 2 && +{} && \boxed{\mathbf{1}}\\
 2 &= 2 \cdot 1 && +{} && \boxed{\mathbf{0}}\\
 1 &= 2 \cdot 0 && +{} && \boxed{\mathbf{1}}
\end{alignedat}
 \hspace{4em}
  \begin{array}{cccc||>{\centering\boldmath\arraybackslash}m{0.7cm}}
    x & y & z & w & f\\
    \hhline{----||-}
    0 & 0 & 0 & 0 & 1\\
    0 & 0 & 0 & 1 & 0\\
    0 & 0 & 1 & 0 & 1\\
    0 & 0 & 1 & 1 & 0\\%\hline
%
    0 & 1 & 0 & 0 & 0\\
    0 & 1 & 0 & 1 & 0\\
    0 & 1 & 1 & 0 & 1\\
    0 & 1 & 1 & 1 & 0\\%\hline
%
    1 & 0 & 0 & 0 & 1\\
    1 & 0 & 0 & 1 & 1\\
    1 & 0 & 1 & 0 & 1\\
    1 & 0 & 1 & 1 & 0\\%\hline
%
    1 & 1 & 0 & 0 & 1\\
    1 & 1 & 0 & 1 & 1\\
    1 & 1 & 1 & 0 & 0\\
    1 & 1 & 1 & 1 & 0\\
  \end{array}
\end{equation*}

\end{document} 

在此处输入图片描述

相关内容