我已经为这个错误挣扎了好几个小时了,但还没有找到解决办法。
我有两个环境(一个是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 (除第一列外,每一列都必须由 引入,并且包含第二列作为此列内的对齐点)。我还认为使用数组看起来会更好:array
align*
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}