Hvad er det virkelige problem med denne 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} 

Kommentarer

  • Du ‘ mangler en \\ i slutningen af første række.
  • @dcmst: Se Formatering af sandkasse og denne kommentar .
  • Jeg ser dig ‘ følger ikke mine forslag til brug af array, \True og den tilsvarende definerede \False. Forresten bruger du ‘ “F” i tilsyneladende to meget forskellige betydninger, hvilket kan være fuldstændig forvirrende. I den første linje har du “B” og de andre variabler, der vises med forskellige former, hvilket føjer til forvirring.

Svar

Ud over at indsætte den manglende \\ linjeskiftinstruktion, skal du overveje at udføre følgende trin:

  • Implementer forslagene fuldt ud @egreg lavet med hensyn til dit tidligere indlæg , herunder brug af array i stedet for tabular og brugen af makroer snarere end hårdkodede bogstaver til” Sandt “og” Falsk “. (Tænk også hårdt hvorfor du bruger bogstavet F både som en variabel og som symbolet for “falsk”. Er det så svært at komme op med et bedre variabelnavn end “F”?)

  • Slip af med alle lodrette bjælker, og brug stregtegningsmakroerne i booktabs -pakke for at indsætte et par, men vandret placerede vandrette linjer.

  • Tilføj lidt ekstra lodret hvidt mellemrum efter hver fjerde række i selve tabellen, da fire rækker ad gangen giver en naturlig gruppering af den aktuelle tabel.

indtast billedbeskrivelse her

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

Svar

I mit tilfælde er det sket, fordi jeg ikke erklærede det rigtige antal kolonner

eksempel:

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

Kommentarer

  • Dette svar sparede mig en masse tid på at søge efter semantiske problemer med longtabu, tabu og så videre. Det var trods alt kun en simpel fejltagelse.

Svar

2017-opdatering

Siden xintexpr 1.1 (2014/10/28) det foretrækkes at bruge || og &&, den eneste | og & kan ændre betydning fra deres nuværende som boolsk or resp. and. Man kan også bruge nøgleordene "or" resp. "and" (citater obligatoriske). Svar opdateret for at forudse mulig fremtidig ændring af betydning af enkelt | og & infix-operatorer.


Måske ønsker du, at tabellen automatisk udfyldes?

Opdateringen tilføjer kode til 1ex lodret spring over hver fjerde række ting.

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

sandhedstabel

Med ekstra spring:

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

sandhedstabel med ekstra lodrette mellemrum

Svar

Jeg fik dette til at ske fordi jeg kopierede nogle ting fra en anden tabel i mit dokument og brugte følgende syntaks til at lave en vandret linje under kun en del af tabellen:

\\\cline{2-3} 

I kopi indsat

\\\cline{2-5} 

fra en tabel med flere kolonner, og det gav denne fejl, indtil jeg rettede valgte det.

Kommentarer

  • Dette er sandsynligvis en løsning på et andet problem, der resulterer i den samme fejl. Teknisk set svarer det ikke ‘ dette spørgsmål, da OP ikke ‘ t bruger \cline .

Svar

Du skal ændre |c|c|c| til crcrcr. Jeg lavede denne tabel som følger.

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

Bemærk: For øverste og nederste regel brugte jeg \hline kommando

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *