Jaký je skutečný problém s touto tabulkou?

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

Komentáře

  • Chybí vám ‚ \\ na konci prvního řádku.
  • @dcmst: Viz Formátování karantény a tento komentář .
  • vidím, že ‚ nedodržuje mé návrhy ohledně používání array, \True a podobně definované \False. Mimochodem, ‚ používáte „F“ ve zjevně dvou velmi odlišných významech, což může být naprosto matoucí. Na prvním řádku je písmeno „B“ a další proměnné, které se objevují v různých tvarech, což zvyšuje zmatek.

Odpovědět

Kromě vložení chybějící \\ instrukce pro zalomení řádku byste měli uvažovat o provedení následujících kroků:

  • Plně implementujte návrhy @egreg vytvořeno s ohledem na vaše dřívější zveřejnění , včetně použití array namísto a použití maker spíše než pevně zakódovaných písmen pro„ True “a„ False “. (Také si dobře promyslete proč používáte písmeno F jak jako proměnnou, tak jako token pro „false“. Je tak těžké přijít s lepším názvem proměnné než „F“?)

  • Zbavte se všech svislých pruhů a použijte makra pro kreslení čar booktabs pro vložení několika vodorovných řádků s dobrým rozestupem.

  • Po každém čtvrtém řádku přidejte trochu extra svislých mezer / em> v těle tabulky, protože čtyři řádky najednou poskytují přirozené seskupení pro danou tabulku.

vstoupit popis obrázku zde

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

odpověď

V mém případě to stalo se to, protože jsem nedeklaroval správný počet sloupců

příklad:

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

komentáře

  • Tato odpověď mi ušetřila spoustu času hledáním sémantických problémů s longtabu, tabu atd. Nakonec to byla jen jednoduchá chyba.

Odpověď

Aktualizace 2017

Od xintexpr 1.1 (2014/10/28) je lepší použít || a &&, jediný | a & mohou změnit význam od svých současných významů jako booleovské or resp. and. Lze také použít klíčová slova "or" resp. "and" (uvozovky povinné). Odpověď aktualizována, aby se předvídala možná budoucí změna významu jednotlivých | a & operátorů infix.


Možná chcete, aby se tabulka vyplňovala automaticky?

Aktualizace přidává kód pro 1ex přeskočit každé čtyři řádky.

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

pravdivostní tabulka

S extra vynecháním:

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

pravdivostní tabulka s extra svislé mezery

odpověď

stalo se mi to protože jsem zkopíroval vložené věci z jiné tabulky v mém dokumentu, používal následující syntaxi k vytvoření vodorovné čáry pod pouze částí tabulky:

\\\cline{2-3} 

I zkopírujte vložené

\\\cline{2-5} 

z tabulky s více sloupci a tato chyba se zobrazila, dokud jsem provedl to.

Komentáře

  • Toto je pravděpodobně řešení jiného problému, jehož výsledkem je stejná chyba. Technicky na tuto otázku neodpovídá ‚ t, protože OP ‚ t uživatel \cline .

Odpověď

Musíte změnit |c|c|c| na crcrcr. Tuto tabulku jsem vytvořil následovně.

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

Poznámka: Pro horní a dolní pravidlo jsem použil příkaz \hline

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *