表格 - 额外的对齐标签已更改为 \cr

表格 - 额外的对齐标签已更改为 \cr

这张表的真正问题是什么?

\begin{table}[h]
\centering

\begin{tabular}{ c | c | c | c | c | c | c | c }

B & F & P & C &  $B \lor F$ & $P \lor C$ & $\neg(F \land C)$ & $\neg(B \land P)$
T & T & T & T & T & T & F & F \\ % Error l.37 T & T & T & T & T & T & F & F \\ ?
T & T & T & F & T & T & T & F \\
T & T & F & T & T & T & F & T \\
T & T & F & F & T & F & T & T \\
T & F & T & T & T & T & T & F \\ 
T & F & T & F & T & T & T & F \\
T & F & F & T & T & T & T & T \\
T & F & F & F & T & F & T & T \\
F & T & T & T & T & T & F & T \\
F & T & T & F & T & T & T & T \\
F & T & F & T & T & T & F & T \\
F & T & F & F & T & F & T & T \\
F & F & T & T & F & T & T & T \\
F & F & T & F & F & T & T & T \\
F & F & F & T & F & T & T & T \\
F & F & F & T & F & T & T & T \\
\end{tabular}

\end{table}

答案1

除了插入缺失的\\换行符指令外,您还应考虑采取以下步骤:

  • 全面落实@egreg 提出的关于你之前的帖子,包括使用array代替tabular以及使用宏而不是硬编码字母来表示“True”和“False”。(也请仔细思考为什么你既使用字母F作为变量,又将其作为“false”的标记。想出一个比“F”更好的变量名难道这么难吗?)

  • 删除所有竖线,并使用书签包中插入几条间距适当的水平线。

  • 添加一些额外的垂直空白每四行之后在表体中,因为每次四行可以为手头的表提供自然的分组。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\newcommand\T{\textrm{T}}  % "true"
\newcommand\F{\textrm{F}}  % "false"
\begin{document}
\begin{table}[h]
\centering
$\begin{array}{ *{8}{c} }
\toprule
B & F & P & C & B \lor F & P \lor C & \neg(F \land C) & \neg(B \land P)\\
\midrule
\T & \T & \T & \T & \T & \T & \F & \F \\ 
\T & \T & \T & \F & \T & \T & \T & \F \\
\T & \T & \F & \T & \T & \T & \F & \T \\
\T & \T & \F & \F & \T & \F & \T & \T \\[1ex]
\T & \F & \T & \T & \T & \T & \T & \F \\
\T & \F & \T & \F & \T & \T & \T & \F \\
\T & \F & \F & \T & \T & \T & \T & \T \\
\T & \F & \F & \F & \T & \F & \T & \T \\[1ex]
\F & \T & \T & \T & \T & \T & \F & \T \\
\F & \T & \T & \F & \T & \T & \T & \T \\
\F & \T & \F & \T & \T & \T & \F & \T \\
\F & \T & \F & \F & \T & \F & \T & \T \\[1ex]
\F & \F & \T & \T & \F & \T & \T & \T \\
\F & \F & \T & \F & \F & \T & \T & \T \\
\F & \F & \F & \T & \F & \T & \T & \T \\
\F & \F & \F & \T & \F & \T & \T & \T \\
\bottomrule
\end{array}$
\end{table}
\end{document}

答案2

就我而言,发生这种情况是因为我没有声明正确的列数

例子:

\开始{表格}{|c|c|c|}

答案3

2017 年更新

由于xintexpr 1.1 (2014/10/28)优先使用||and &&,单个|和的&含义可能会从当前布尔值orresp 发生变化。 and也可以使用关键字'or'resp。 (必须使用引号)。答案已更新,以预测单个和中缀运算'and'符含义未来可能发生的变化。|&


也许您希望表格自动填写?

更新添加了1ex每四行垂直跳过的代码。

\documentclass{article}
\usepackage{booktabs}
\usepackage{xintexpr}

\newcommand\T{\textrm{T}}  % "true"
\newcommand\F{\textrm{F}}  % "false"

\newcommand\TF[1]{\if1#1\T\else\F\fi}

\begin{document}
\begin{table}[h]
\centering

$\begin{array}{ *{8}{c} }
\toprule
B & F & P & C & B \lor F & P \lor C & \neg(F \land C) & \neg(B \land P)\\
\midrule
\xintFor #1 in {1,0}\do {%
  \xintFor #2 in {1,0}\do {%
    \xintFor #3 in {1,0}\do {%
      \xintFor #4 in {1,0}\do {%
 \TF#1 & \TF#2 & \TF#3 & \TF#4 &
 \xintifboolexpr {#1 || #2}{\T}{\F}& 
 \xintifboolexpr {#3 || #4}{\T}{\F} &
 \xintifboolexpr {not(#2 && #4)}{\T}{\F} & 
 \xintifboolexpr {not(#1 && #3)}{\T}{\F} \\ 
 }}}}
\bottomrule
\end{array}$

\end{table}
\end{document}

真值表

有额外跳过:

\documentclass{article}
\usepackage{booktabs}
\usepackage{xintexpr}

\newcommand\T{\textrm{T}}  % "true"
\newcommand\F{\textrm{F}}  % "false"

\newcommand\TF[1]{\if1#1\T\else\F\fi}

\begin{document}
\begin{table}[h]
\centering
$\begin{array}{ *{8}{c} }
\toprule
B & F & P & C & B \lor F & P \lor C & \neg(F \land C) & \neg(B \land P)\\
\midrule
\xintFor #1 in {1,0}\do {%
  \xintFor #2 in {1,0}\do {%
    \xintFor #3 in {1,0}\do {%
      \xintFor #4 in {1,0}\do {%
 \TF#1 & \TF#2 & \TF#3 & \TF#4 &
 \xintifboolexpr {#1 || #2}{\T}{\F}& 
 \xintifboolexpr {#3 || #4}{\T}{\F} &
 \xintifboolexpr {not(#2 && #4)}{\T}{\F} & 
 \xintifboolexpr {#3 || #4}% every four, add 1ex space
     {\xintifboolexpr {not(#1 && #3)}{\T}{\F}\\}
     {\xintifboolexpr {not(#1 && #3)}{\T}{\F}\\[1ex]}
 }}}}
\noalign{\addvspace{-1ex}}% compensate the last 1ex vskip
\bottomrule
\end{array}$
\end{table}
\end{document}

具有额外垂直空间的真值表

答案4

你必须改为|c|c|c|crcrcr我制作了这个表格,如下所示。

\begin{table}
\centering
\begin{tabular}{crcrcrcrcrcrcrcr}
\hline
B & F & P & C &  $B \lor F$ & $P \lor C$ & $\neg(F \land C)$ & $\neg(B \land P)$ \\
\hline
T & T & T & T & T & T & F & F \\ % Error l.37 T & T & T & T & T & T & F & F \\ ?
T & T & T & F & T & T & T & F \\
T & T & F & T & T & T & F & T \\
T & T & F & F & T & F & T & T \\
T & F & T & T & T & T & T & F \\ 
T & F & T & F & T & T & T & F \\
T & F & F & T & T & T & T & T \\
T & F & F & F & T & F & T & T \\
F & T & T & T & T & T & F & T \\
F & T & T & F & T & T & T & T \\
F & T & F & T & T & T & F & T \\
F & T & F & F & T & F & T & T \\
F & F & T & T & F & T & T & T \\
F & F & T & F & F & T & T & T \\
F & F & F & T & F & T & T & T \\
F & F & F & T & F & T & T & T \\
\hline
\end{tabular}
\end{table}

注意:对于顶部和底部规则,我使用了\hline命令

相关内容