Hulp bij een tafel met boeken tabs

Ik “ben een relatief nieuwe gebruiker van Latex, en dit is de eerste keer dat ik probeer een tafel te maken voor mijn proefschrift. zou willen dat de tabel er zo uitziet:

voer hier de beschrijving van de afbeelding in

Na wat onderzoek op internet, kwam ik op de volgende code (negeer de verschillen in de kolomtitels tussen de latexcode en het Word-document)

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

het werkt helemaal niet!

Reacties

  • Zonder de details van bookstable te kennen, heb je hier een typefout: {{BCom}, en elk rij moet eindigen op \\ (ontbreekt in uw ” Aantal cursussen … ” rij). En het totaal van de kolommen gecombineerd in meerdere kolommen moeten gelijk zijn aan uw totale aantal kolommen van uw tabel, dus plaats een & aan het begin van de rij om een lege eerste kolom te produceren.

Answer

Een betere versie:

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

voer de beschrijving van de afbeelding hier in

Waarom is uw code niet “gecompileerd?

  1. Je hebt een & gemist aan het begin van

    \multicolumn{2}{c}{{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ 

    de eerste vermelding maken om naar de eerste kolom te gaan.

  2. Je hebt een && in de regel

    Number of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses 

    Het zou & moeten zijn en je zou een & aan het begin van de regel. En aan het einde van deze regel miste je \\ net voor \cmidrule.

Nu de wijzigingen

Na het corrigeren van al het bovenstaande, heb ik een nieuw kolomtype geïntroduceerd met de hulp van array pakket .:

\usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} 

\raggedright is toegevoegd om lelijke rechtvaardigingseffecten te voorkomen, aangezien de kolommen smal kunnen zijn en woorden in lengte kunnen variëren. Dit zorgt ook voor slechte dozen.

Ik heb deze L kolom met een breedte

\dimexpr0.22\textwidth-2\tabcolsep\relax 

tot en met

*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}} 

in plaats van te herhalen.

Als een kanttekening: de \cmidrule kan worden ingekort van l eft of r ight door

\cmidrule(r{4pt}){2-3} 

Hier is {4pt} het bedrag waarmee we inkorten. Het kan worden weggelaten zoals \cmidrule(r){4-5}.

Reacties

  • Heel erg bedankt. Werkt perfect, en bedankt voor de gedegen uitleg. Nog een korte vraag – de uitlijning van de kop van de tabel ziet er een beetje raar uit – mijn afbeelding . Wat zijn de opties om het er esthetischer uit te laten zien? Zou het mogelijk zijn om de kop op één regel te laten passen?
  • @Chris heb ik bewerkt. Wijzigingen zijn in marge en de breedte van kolommen. Dit is het best mogelijk met zulke lange headers. : 0
  • @Chris Even terzijde: hier bedanken kan het beste worden gecommuniceerd door upvoting (alle goede antwoorden) en te accepteren (het nuttiger antwoord). Misschien wil je verwijzen naar Hoe accepteer je een antwoord? in geval van twijfel 🙂
  • hoi @Harish Kumar, ik heb upvoted uw antwoord en een andere :). Nog een korte vraag – hoe vul ik een lege cel in een tabel met een ” – “. Ik heb ” \ – ” geprobeerd, maar de cel blijft leeg.
  • @Chris Bedankt.Je mag alleen -, (no \) of beter $-$ of zelfs beter --- . Ik hoop dat het helpt.

Antwoord

Naast het gebruik van de booktabs -pakket (om er goed uit te zien, dwz goed gespatieerde, horizontale lijnen), zou ik u ook aanraden het tabularx -pakket te gebruiken om het verkrijgen van vier gelijke breedte kolommen.

voer hier de beschrijving van de afbeelding in

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

Addendum : Overigens kan het uiterlijk van de tabel die je in je bericht laat zien niet worden bereikt met de commandos van het booktabs pakket. Als je al die verticale en horizontale lijnen echt nodig hebt, mag je het commando \toprule, \bottomrule, en \cmidrule. Gebruik in plaats daarvan gewoon de basis-LaTeX \hline instructie. (U kunt natuurlijk nog steeds maak gebruik van het tabularx -pakket om het maken van kolommen met gelijke breedte voor kolommen 2 tot 5 van de tabel te vereenvoudigen.)

Deze wijzigingen zullen leiden tot de onderstaande tabel.Ik hoop dat u het ermee eens bent dat de “booktabs-look” – geen verticale lijnen, minder horizontale lijnen in het algemeen en goed gespatieerde regels – veel te verkiezen is boven wat men de “spreadsheet-look” zou kunnen noemen.

voer hier de beschrijving van de afbeelding in

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

Reacties

  • Hallo – ja, ik ben het ermee eens dat de look van de boekenplank veel beter is. De afbeelding die ik in mijn OP had, is van Word, en ik had haast om te posten omdat ik ergens heen moest. De verticale lijnen waren er omdat ze standaard worden geleverd met de Word ” -tabel ” -tool.

Antwoord

Bekijk het volgende eens:

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

voorbeeld

Antwoord

Je zou het kunnen proberen

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *