Hilfe mit einer Booktabs-Tabelle

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:

Geben Sie hier die Bildbeschreibung ein.

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} 

Geben Sie hier die Bildbeschreibung ein.

Warum wurde Ihr Code nicht kompiliert?

  1. 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.

    Geben Sie hier die Bildbeschreibung ein.

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

    Geben Sie hier die Bildbeschreibung ein.

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

    Beispiel

    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} 

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.