Care este problema reală cu acest tabel?
\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}
Comentarii
Răspuns
În plus față de inserarea \\
instrucțiunii lipsă de linie, ar trebui să vă gândiți să efectuați următorii pași:
-
Implementați pe deplin sugestiile @egreg a făcut cu privire la postarea dvs. anterioară , inclusiv utilizarea
array
în loc de și utilizarea macrocomenzilor, mai degrabă decât a literelor codificate pentru„ Adevărat ”și„ Fals ”. (De asemenea, gândiți-vă bine de ce folosiți literaF
atât ca variabilă, cât și ca simbol pentru „fals”. Este atât de dificil să veniți cu un nume de variabilă mai bun decât „F”?) -
Scăpați de toate barele verticale și utilizați macro-urile de desenare a liniei booktabs pentru a insera câteva linii orizontale, dar bine distanțate.
-
Adăugați un pic de spațiu vertical suplimentar după fiecare al patrulea rând în corpul tabelului, deoarece patru rânduri la un moment dat oferă o grupare naturală pentru tabelul aflat la îndemână.
\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}
Răspuns
În cazul meu, s-a întâmplat pentru că nu am declarat numărul corect de coloane
exemplu:
\ begin {tabular} {| c | c | c |}
Comentarii
- Acest răspuns mi-a salvat mult timp căutând probleme semantice cu longtabu, tabu și așa mai departe. La urma urmei, a fost doar o simplă greșeală.
Răspuns
Actualizare 2017
De când xintexpr 1.1 (2014/10/28)
este preferabil să folosiți ||
și &&
, unicul |
și &
pot schimba semnificația față de cele actuale ca Boolean or
resp. and
. Se pot utiliza și cuvintele cheie "or"
resp. "and"
(ghilimele obligatorii). Răspunsul a fost actualizat pentru a anticipa posibile schimbări viitoare de semnificație ale operatorilor infix simpli |
și &
.
doriți ca tabelul să fie completat automat?
Actualizarea adaugă cod pentru 1ex
săriți vertical la fiecare patru rânduri.
\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}
Cu salturi suplimentare:
\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}
Răspuns
Am avut acest lucru deoarece am copiat unele lucruri lipite dintr-un alt tabel din documentul meu, foloseam următoarea sintaxă pentru a crea o linie orizontală sub doar o parte a tabelului:
\\\cline{2-3}
I copia lipită
\\\cline{2-5}
dintr-un tabel cu mai multe coloane și a dat această eroare până când am corectat l-a respectat.
Comentarii
- Aceasta este probabil o soluție la o altă problemă care are ca rezultat aceeași eroare. Din punct de vedere tehnic, nu ‘ nu răspunde la această întrebare, deoarece OP nu ‘ este utilizator
\cline
.
Răspuns
Trebuie să schimbi |c|c|c|
în crcrcr
. Am creat acest tabel după cum urmează.
\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}
Notă: Pentru regula de sus și de jos, am folosit comanda \hline
\\
la sfârșitul primului rând.array
,\True
și\False
definit în mod similar. Apropo, ‘ reutilizați „F” în două înțelesuri foarte diferite, care pot fi complet confuze. În prima linie aveți „B” și celelalte variabile care apar cu forme diferite, sporind confuzia.