我有两个表格,但我不知道为什么表格右侧没有垂直线。你能告诉我我哪里犯了错误吗?
第一:
\newline
\begin{center}
\begin{tabular}{||c c c c c c||}
\hline
$\emph{p}$ & $\emph{q}$ & $([\emph{p} \wedge$ & $(\emph{p} \Rightarrow \emph{q]})$ & $\Rightarrow$ & $\emph{q}$ \\ [0.5ex]
\hline\hline
0 & 0 & 0 & 1 & 1\\
\hline
0 & 1 & 0 & 1 & 1\\
\hline
1 & 0 & 0 & 0 & 1\\
\hline
1 & 1 & 1 & 1 & 1\\
\hline
\end{tabular}
\end{center}
第二个:
\newline
\begin{center}
\begin{tabular}{||c c c c c c c c c||}
\hline
$\emph{p}$ & $\emph{q}$ & $\neg$ & $(\emph{p} \vee \emph{q})$ & $\leftrightarrow$ & $(\neg\emph{p}$ & $\wedge$ & $\neg\emph{q})$ \\ [0.5ex]
\hline\hline
0 & 0 & 1 & 0 & 1 & 1 & 1 & 1\\
\hline
0 & 1 & 0 & 1 & 1 & 1 & 0 & 0\\
\hline
1 & 0 & 0 & 1 & 1 & 0 & 0 & 1\\
\hline
1 & 1 & 0 & 1 & 1 & 0 & 0 & 0\\
\hline
\hline
\end{tabular}
\end{center}
答案1
您的问题与指定了太多列然后又没有使用它们有关。您的第一个表的列规范中有 6 个c
输入列,而您在终止行(用\\
)之前每行只提供了 5 个值。这使得最后一列(也包含右边的||
)不在行中,因此右侧没有垂直规则。第二个表适用同样的原则。通常,您可以使用一种*{<num>}{<col spec>}
方法来定义<num>
列,每个列都有一个<col spec>
规范。例如,*{5}{c}
将相当于c c c c c
,并且*{3}{| c p{2cm}}
将相当于| c p{2cm} | c p{2cm} | c p{2cm}
。有时使用缩写形式更容易确保规范和表中的列数相同。
这里展示内容的方法略有不同,使用booktabs
。 表明:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\[
\begin{array}{ c c c @{\,} c c c @{\,} c c c }
\toprule
p & q & [ & p & \wedge & (p \Rightarrow q) & ] & \Rightarrow & q \\
\midrule
0 & 0 & & 0 & 0 & 1 & & 1 & 0 \\
0 & 1 & & 0 & 0 & 1 & & 1 & 1 \\
1 & 0 & & 1 & 0 & 0 & & 1 & 0 \\
1 & 1 & & 1 & 1 & 1 & & 1 & 1 \\
\bottomrule
\end{array}
\]
\[
\begin{array}{ c c c @{} c c c @{\,} c c c @{\,} c }
\toprule
p & q & \neg & (p \vee q) & \leftrightarrow & ( & \neg p & \wedge & \neg q & ) \\
\midrule
0 & 0 & 1 & 0 & 1 & & 1 & 1 & 1 & \\
0 & 1 & 0 & 1 & 1 & & 1 & 0 & 0 & \\
1 & 0 & 0 & 1 & 1 & & 0 & 0 & 1 & \\
1 & 1 & 0 & 1 & 1 & & 0 & 0 & 0 & \\
\bottomrule
\end{array}
\]
\end{document}
请注意,@{<stuff>}
在列规范中,相邻列之间的间距更改为<stuff>
。因此,在上述情况下,我插入一个小的水平空间 \,
两列之间。