Ich bin ein relativ neuer Benutzer von Latex, und dies ist das erste Mal, dass ich versuche, eine Tabelle für meine Abschlussarbeit zu erstellen Die Tabelle soll folgendermaßen aussehen:
Nach einigen Recherchen im Internet habe ich mir etwas ausgedacht Der folgende Code (ignorieren Sie die Unterschiede in den Spaltenüberschriften zwischen dem Latex-Code und dem Word-Dokument)
\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}
funktioniert überhaupt nicht!
Kommentare
- Ohne die Besonderheiten von
bookstable
zu kennen, haben Sie hier einen Tippfehler: {{BCom} und jeden Zeile muss mit \\ enden (fehlt in Ihrer “ Anzahl der Kurse … “ Zeile). Und die Summe der Spalten in Mehrspalten sollten Ihrer Gesamtzahl der Spalten Ihrer Tabelle entsprechen. Fügen Sie daher einfach ein & am Anfang der Zeile ein, um eine leere erste Spalte zu erstellen.
Antwort
Eine bessere Version:
\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}
Warum wurde Ihr Code nicht kompiliert?
-
Sie haben zu Beginn von
iv id =“ 8906241257 „eine
&
verpasst. >
macht den ersten Eintrag in der ersten Spalte.
Sie haben eine &&
in die Zeile
Number of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses
Es sollte &
sein und Sie sollten eine &
am Zeilenanfang. Und am Ende dieser Zeile haben Sie \\
kurz vor \cmidrule
verpasst.
Nun die Änderungen
Nachdem ich alle oben genannten Punkte korrigiert habe, habe ich einen neuen Spaltentyp mit dem eingeführt Hilfe des Pakets array
:
\usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\raggedright
wird hinzugefügt um hässliche Rechtfertigungseffekte zu vermeiden, da die Spalten eng sein können und die Länge der Wörter variieren kann. Dies kümmert sich auch um fehlerhafte Boxen.
Ich habe diese L
-Spalte mit einer Breite
\dimexpr0.22\textwidth-2\tabcolsep\relax
bis
*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}
anstatt zu wiederholen.
Als Randnotiz wird die \cmidrule
kann von l
eft oder r
ight um
\cmidrule(r{4pt}){2-3}
Hier ist {4pt}
der Betrag, um den wir verkürzen. Es kann wie \cmidrule(r){4-5}
weggelassen werden.
Kommentare
- Vielen Dank. Funktioniert perfekt und danke für die gründliche Erklärung. Nur eine weitere kurze Frage – die Ausrichtung der Überschrift der Tabelle sieht etwas albern aus – mein Bild . Welche Möglichkeiten gibt es, um es ästhetisch ansprechender zu gestalten? Wäre es möglich, die Überschrift in eine Zeile einzufügen?
- @Chris Ich habe sie bearbeitet. Änderungen betreffen den Rand und die Breite der Spalten. Dies ist bei so langen Headern am besten möglich. : 0
- @Chris Als Randnotiz wird das Danken hier am besten durch Upvoting (alle guten Antworten) und Akzeptieren (die nützlichere Antwort) kommuniziert. Vielleicht möchten Sie sich auf beziehen. Wie akzeptieren Sie eine Antwort? im Zweifelsfall 🙂
- hi @Harish Kumar, ich habe gestimmt deine Antwort und eine andere :). Nur eine weitere kurze Frage: Wie fülle ich eine leere Zelle in einer Tabelle mit einem “ – „. Ich habe versucht, “ \ – „, aber die Zelle bleibt leer.
- @Chris Danke. :). Sie sollten nur
-
, (no \) oder besser$-$
oder noch besser---
eingeben . Hoffe, es hilft.
Antwort
Zusätzlich zur Verwendung der booktabs
-Paket (um gut aussehende, dh gut verteilte, horizontale Linien zu erhalten), würde ich auch empfehlen, das Paket tabularx
zu verwenden, um das Erhalten von vier gleich breiten Paketen zu vereinfachen Säulen.
\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}
Nachtrag : Übrigens kann das Aussehen der Tabelle, die Sie in Ihrem Beitrag anzeigen, nicht erreicht werden, wenn Sie die Befehle des Pakets booktabs
verwenden. Wenn Sie wirklich alle diese vertikalen und horizontalen Linien benötigen, sollten Sie den Befehl \toprule
, \bottomrule
, und \cmidrule
. Verwenden Sie stattdessen einfach die Anweisung basic-LaTeX \hline
(Sie können dies natürlich auch weiterhin tun Verwenden Sie das Paket tabularx
, um die Erstellung von Spalten gleicher Breite für die Spalten 2 bis 5 der Tabelle zu vereinfachen.)
Diese Änderungen führen zu Tabelle unten gezeigt.Ich hoffe, Sie stimmen zu, dass das „Booktabs-Aussehen“ – keine vertikalen Linien, insgesamt weniger horizontale Linien und weit auseinander liegende Regeln – dem sogenannten „Tabellenkalkulations-Look“ weit vorzuziehen ist.
\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}
Kommentare
- Hallo – ja, ich stimme zu, dass das Aussehen der Booktabs weitaus besser ist. Das Bild, das ich in meinem OP hatte, stammt von Word, und ich hatte es eilig zu posten, weil ich irgendwohin musste. Die vertikalen Linien waren vorhanden, da sie standardmäßig mit dem Tool “ table “ geliefert werden.
Antwort
Sehen Sie sich Folgendes an:
\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}
Antwort
Sie könnten versuchen,
\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}