Jsem pro Latex relativně novým uživatelem a je to poprvé, co se pokouším vytvořit tabulku pro svoji diplomovou práci. chtěl bych, aby tabulka vypadala takto:
Po nějakém průzkumu na internetu jsem přišel s následující kód (ignorujte rozdíly v záhlaví sloupců mezi latexovým kódem a slovním dokumentem)
\begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{lrrrr} \toprule \multicolumn{2}{c}{{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule{2-3} \cmidrule{4-5} & Number of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table}
nefunguje vůbec!
Komentáře
Odpověď
Lepší verze:
\documentclass{article} \usepackage{booktabs} \usepackage[margin=1in]{geometry} \usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}p{0.12\textwidth}*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}@{}} \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule(r{4pt}){2-3} \cmidrule(l){4-5} & Number of courses required to pass & Cumulative Total of Courses & Number of courses & Cumulative Total of Courses\\ \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table} \end{document}
Proč váš kód nebyl zkompilován?
-
Na začátku
iv id =“ 8906241257 „vám chyběl
&
>
Provedení první položky pro vstup do prvního sloupce.
Máte &&
v řádek
Number of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses
Mělo by to být &
a měli byste umístit &
na začátku řádku. A na konci tohoto řádku jste minul \\
těsně před \cmidrule
.
Nyní úpravy
Po opravě výše uvedeného jsem zavedl nový typ sloupce s přidána pomoc array
balíčku .:
\usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\raggedright
je přidána vyhnout se ošklivým efektům ospravedlnění, protože sloupce mohou být úzké a slova mohou mít různou délku. Toto se stará také o špatná políčka.
Použil jsem tento L
sloupec se šířkou
\dimexpr0.22\textwidth-2\tabcolsep\relax
až
*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}
místo opakování.
Jako vedlejší poznámku lze uvést \cmidrule
lze zkrátit z l
eft nebo r
ight o
\cmidrule(r{4pt}){2-3}
Zde {4pt}
je částka, o kterou se zkrátíme. Může být ponecháno jako \cmidrule(r){4-5}
.
Komentáře
- Moc děkuji. Funguje perfektně a děkuji za důkladné vysvětlení. Jen další rychlá otázka – zarovnání záhlaví tabulky vypadá trochu hloupě – můj obrázek . Jaké jsou možnosti, aby vypadal estetičtěji? Bylo by možné upravit nadpis na jeden řádek?
- @Chris jsem upravil. Změny jsou v okraji a šířce sloupců. To je nejlepší možné s tak dlouhými záhlavími. : 0
- @Chris Jako vedlejší poznámku lze říci, že poděkování se nejlépe sděluje upvotingem (všechny dobré odpovědi) a přijetím (užitečnější odpověď). Možná budete chtít odkázat na Jak přijímáte odpověď? v případě pochybností 🙂
- ahoj @Harish Kumar, hlasoval jsem vaše odpověď a ještě jedna :). Jen další rychlá otázka – jak vyplním prázdnou buňku v tabulce pomocí “ – „. Zkusil jsem “ \ – „, ale buňka zůstane prázdná.
- @Chris Díky. :). Měli byste dát pouze
-
, (no \) nebo lepší$-$
nebo ještě lepší---
. Doufám, že to pomůže.
Odpověď
Kromě použití booktabs
(abyste získali dobře vypadající, tj. dobře rozmístěné vodorovné čáry), doporučil bych vám také použít balíček tabularx
ke zjednodušení práce se získáváním čtyř stejné šířky sloupce.
\documentclass{article} \usepackage{booktabs,tabularx} \usepackage[margin=1in]{geometry} % set margins to meet your document"s needs \newcolumntype{Y}{>{\raggedright\arraybackslash}X} % use ragged-right, not fully-justified, look in narrow columns \begin{document} \begin{table}[t] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \label{table:mr} %\centering % not needed, since table is as wide as text block \begin{tabularx}{\textwidth}{@{}lYYYY@{}} \toprule &\multicolumn{2}{c}{\bfseries BCom} &\multicolumn{2}{c}{\bfseries B.Bus Sci} \\ \cmidrule(lr){2-3} \cmidrule(l){4-5} &Number of courses required to pass &Cumulative Total of Courses & Number of courses & Cumulative Total of Courses\\ \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabularx} \end{table} \end{document}
Dodatek : Mimochodem, vzhled tabulky, kterou ve svém příspěvku zobrazujete, nelze dosáhnout použitím příkazů balíčku booktabs
. Pokud opravdu potřebujete všechny ty svislé a vodorovné čáry, neměli byste používat příkaz \toprule
, \bottomrule
, \midrule
a \cmidrule
. Místo toho stačí použít základní instrukci LaTeX \hline
. (Samozřejmě můžete použijte balíček tabularx
ke zjednodušení vytváření sloupců stejné šířky pro sloupce 2 až 5 tabulky.)
Tyto úpravy povedou k níže uvedená tabulka.Doufám, že budete souhlasit s tím, že „vzhled knih“ – žádné svislé čáry, celkově méně vodorovných čar a dobře rozmístěná pravidla – je mnohem lepší než to, co by se dalo nazvat „tabulkovým vzhledem“.
\documentclass{article} \usepackage{tabularx} \usepackage[margin=1in]{geometry} % choose margin as needed \newcolumntype{Y}{>{\raggedright\arraybackslash}X} \begin{document} \begin{table}[h!] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \label{table:mr} \begin{tabularx}{\textwidth}{|l|Y|Y|Y|Y|} \hline &\multicolumn{2}{c|}{\bfseries B. Com} &\multicolumn{2}{c|}{\bfseries B. Bus. Sci} \\ \hline & Number of courses required to pass & Cumulative Total of Courses & Number of courses required to pass & Cumulative Total of Courses \\ \hline First Year & 4 & 8 & 4 & 18 \\ \hline Second Year & 10 & 16 & 11 & 16 \\ \hline Third Year & 18 & 24 & 20 & 25 \\ \hline \end{tabularx} \end{table} \end{document}
Komentáře
- Ahoj – ano, souhlasím, že vzhled knih je mnohem lepší. Obrázek, který jsem měl ve svém OP, pochází z aplikace Word a byl jsem ve spěchu, abych mohl psát, protože jsem musel někam odejít. Svislé čáry tam byly, protože se standardně dodávají s nástrojem Word “ tabulka „.
Odpověď
Podívejte se na následující:
\documentclass{scrartcl} \usepackage{booktabs} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}} \\ \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B. Bus Scii} \\ \midrule & Number of courses required to pass & Cumulative Total of Courses & Number of courses & Cumulative Total of Courses \\ \midrule First year & 4 & 8 & 4 & 8 \\ Second year & 10 & 16 & 11 & 16 \\ Third year & 18 & 24 & 20 & 25 \\ \bottomrule \end{tabular} \end{table} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}} \\ \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B. Bus Scii} \\ \midrule & \multicolumn{1}{p{3.5cm}}{Number of courses required to pass} & Cumulative Total of Courses & \multicolumn{1}{p{2cm}}{Number of courses} & Cumulative Total of Courses \\ \midrule First year & 4 & 8 & 4 & 8 \\ Second year & 10 & 16 & 11 & 16 \\ Third year & 18 & 24 & 20 & 25 \\ \bottomrule \end{tabular} \end{table} \end{document}
Odpověď
Můžete zkusit
\documentclass{amsart} \usepackage{booktabs} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}lp{3cm}p{3cm}p{3cm}p{3cm}@{}} \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule(r){2-3} \cmidrule(l){4-5} \\ & Number of courses required to pass & Cumulative total of courses & Number of courses & Cumulative total of courses \\ \midrule \\ First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table} \newcommand*{\head}[1]{\parbox{2cm}{\begin{flushright}#1\end{flushright}}} \begin{table} \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}lrrr@{}} \toprule & Year & \head{Courses required to pass} & \head{Cumulative total} \\ \midrule \\ BCom & 1 & 4 & 8 \\ & 2 & 4 & 8 \\ & 3 & 4 & 8 \\ B.Bus Sci & 1 & 4 & 18 \\ & 2 & 4 & 8 \\ & 3 & 4 & 8 \\ \bottomrule \end{tabular} \label{table:mr.2} \end{table} \end{document}
bookstable
zde máte překlep: {{BCom} a každý řádek musí končit \\ (chybí ve vašem “ počtu kurzů … “ řádek). A celkový počet sloupců v více sloupců by se mělo rovnat vašemu celkovému počtu sloupců tabulky, takže stačí na začátek řádku umístit & a vytvořit první prázdný sloupec.