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

  • ‘ lipsește un \\ la sfârșitul primului rând.
  • @dcmst: Consultați Formatare Sand-Box și acest comentariu .
  • Vă văd că ‘ nu urmați sugestiile mele despre utilizarea 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.

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 litera F 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ă.

introduceți descrierea imaginii aici

\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} 

tabel de adevăr

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} 

tabel de adevăr cu spații verticale suplimentare

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *