Wat is het echte probleem met deze 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} 

Reacties

  • Je ‘ mist een \\ aan het einde van de eerste rij.
  • @dcmst: Zie Sand-Box formatteren en deze opmerking .
  • Ik zie dat je ‘ mijn suggesties voor het gebruik van array, \True en het soortgelijk gedefinieerde \False. Trouwens, je ‘ gebruikt “F” in ogenschijnlijk twee zeer verschillende betekenissen, wat volkomen verwarrend kan zijn. Op de eerste regel heb je “B” en de andere variabelen verschijnen met verschillende vormen, wat de verwarring vergroot.

Antwoord

Naast het invoegen van de ontbrekende \\ regelafbrekingsinstructie, moet u overwegen de volgende stappen uit te voeren:

  • Implementeer de suggesties volledig @egreg gemaakt met betrekking tot uw eerdere bericht , inclusief het gebruik van array in plaats van tabular en het gebruik van macros in plaats van hardgecodeerde letters voor” True “en” False “. (Denk ook goed na waarom u “de letter F zowel als variabele als als token voor” false “gebruikt. Is het zo moeilijk om met een betere variabelenaam dan “F”?)

  • Verwijder alle verticale balken en gebruik de lijntekeningmacros van de booktabs pakket om een paar maar goed gespatieerde horizontale regels in te voegen.

  • Voeg een beetje extra verticale witruimte toe na elke vierde rij in de body van de tabel, aangezien vier rijen tegelijk een natuurlijke groepering van de tabel vormen.

enter afbeelding beschrijving hier

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

Antwoord

In mijn geval is gebeurd omdat ik niet het juiste aantal kolommen heb aangegeven.

voorbeeld:

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

Opmerkingen

  • Dit antwoord heeft me veel tijd bespaard bij het zoeken naar semantische problemen met longtabu, tabu enzovoort. Het was tenslotte maar een simpele fout.

Antwoord

2017 update

Sinds xintexpr 1.1 (2014/10/28) het verdient de voorkeur || en &&, de enkele | en & kunnen de betekenis van hun huidige veranderen als Boolean or resp. and. Men kan ook de trefwoorden "or" resp. "and" (aanhalingstekens verplicht). Antwoord bijgewerkt om te anticiperen op mogelijke toekomstige betekeniswijzigingen van enkele | en & tussenvoegseloperatoren.


Misschien u wilt dat de tabel automatisch wordt ingevuld?

Update voegt code toe voor 1ex verticaal overslaan om de vier rijen.

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

waarheidstabel

Met extra overslaan:

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

waarheidstabel met extra verticale spaties

Antwoord

Ik had dit gebeuren omdat ik wat dingen uit een andere tabel in mijn document heb gekopieerd, gebruikte ik de volgende syntaxis om een horizontale lijn onder slechts een deel van de tabel te maken:

\\\cline{2-3} 

I copy geplakt

\\\cline{2-5} 

uit een tabel met meer kolommen, en het gaf deze fout totdat ik corr heeft het opgelost.

Opmerkingen

  • Dit is waarschijnlijk een oplossing voor een ander probleem dat resulteert in dezelfde fout. Technisch gezien beantwoordt het ‘ deze vraag niet, aangezien het OP geen ‘ gebruiker \cline .

Antwoord

Je moet |c|c|c| veranderen in crcrcr. Ik heb deze tabel als volgt gemaakt.

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

Opmerking: voor de bovenste en onderste regel heb ik \hline commando

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *