Hjælp med en bogtabeltabel

Jeg er relativt ny bruger til Latex, og det er første gang, jeg prøver at konstruere en tabel til min afhandling. vil gerne have, at tabellen ser sådan ud:

indtast billedbeskrivelse her

Efter nogle undersøgelser på internettet kom jeg op med følgende kode (ignorer forskellene i kolonneoverskrifterne mellem Latex-koden og orddokumentet)

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

det fungerer slet ikke!

Kommentarer

  • Uden at kende detaljerne i bookstable har du en tastefejl her: {{BCom} og hver række skal slutte med \\ (mangler i din ” Antal kurser … ” række). Og det samlede antal kolonner kombineret i multikolonner skal svare til dit samlede antal kolonner i din tabel, så læg bare en & i begyndelsen af rækken for at producere en tom første søjle.

Svar

En bedre 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} 

indtast billedebeskrivelse her

Hvorfor kompilerede din kode ikke?

  1. Du gik glip af en & i begyndelsen af

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

    gør den første post til at gå ind i den første kolonne.

  2. Du har en && i linjen

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

    Den skal være & og du skal sætte en & i starten af linjen. Og i slutningen af denne linje savnede du \\ lige før \cmidrule.

Nu er ændringerne

Efter at have rettet alle ovenstående, har jeg introduceret en ny kolonnetype med hjælp til array pakke .:

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

\raggedright tilføjes for at undgå grimme berettigelseseffekter, da kolonnerne kan være smalle, og ordene kan variere i længde. Dette tager sig også af dårlige kasser.

Jeg har brugt denne L kolonne med en bredde

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

til

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

i stedet for at gentage.

Som en sidebemærkning er \cmidrule kan forkortes fra l eft eller r ight med

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

Her er {4pt} det beløb, vi forkorter med. Det kan udelades som \cmidrule(r){4-5}.

Kommentarer

  • Mange tak. Fungerer perfekt, og tak for den grundige forklaring. Bare et andet hurtigt spørgsmål – justeringen af overskriften på tabellen ser lidt fjollet ud – mit billede . Hvad er mulighederne for at få det til at se mere æstetisk ud? Ville det være muligt at få overskriften til at passe på en linje?
  • @Chris, jeg redigerede. Ændringerne er i margen og bredden af kolonner. Dette er bedst muligt med så lange overskrifter. : 0
  • @Chris Som en sidebemærkning kommunikeres det bedst ved at sige tak her ved at opstemme (alle de gode svar) og acceptere (det mere nyttige svar). Det kan være en god idé at henvise til Hvordan accepterer du et svar? i tvivl 🙂
  • hej @ Harish Kumar, jeg har opstemt dit svar og en anden :). Bare et andet hurtigt spørgsmål – hvordan udfylder jeg en tom celle i en tabel med en ” – “. Jeg prøvede ” \ – ” men cellen forbliver tom.
  • @Chris Tak. :). Du skal kun sætte -, (no \) eller bedre $-$ eller endnu bedre --- . Håber det hjælper.

Svar

Ud over at bruge booktabs pakke (for at få flotte, dvs. vandrette linier med god afstand), vil jeg også anbefale, at du bruger tabularx -pakken for at forenkle jobbet med at få fire lige bredde kolonner.

indtast billedbeskrivelse her

\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 : I øvrigt kan udseendet af den tabel, du viser i dit indlæg, ikke opnås, når du bruger kommandoerne i booktabs -pakken. Hvis du virkelig har brug for alle disse lodrette og vandrette linjer, skal du ikke bruge kommandoen \toprule, \bottomrule, \midrule og \cmidrule. I stedet skal du bare bruge grundlæggende LaTeX \hline instruktion. (Du kan selvfølgelig stadig benyt tabularx -pakken for at forenkle oprettelsen af kolonner med samme bredde for kolonne 2 til 5 i tabellen.)

Disse ændringer vil føre til nedenstående tabel.Jeg håber, du er enig i, at “booktabs-udseendet” – ingen lodrette linjer, færre vandrette linjer generelt og velplacerede regler – er meget at foretrække frem for, hvad man kan kalde “regneark-look”.

indtast billedebeskrivelse her

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

Kommentarer

  • Hej – ja, jeg er enig i, at booktabs-udseendet er langt bedre. Det billede, jeg havde i min OP, er fra Word, og jeg skyndte mig at poste, fordi jeg var nødt til at gå et sted. De lodrette linjer var der, fordi de kommer som standard med ordet ” tabel ” værktøj.

Svar

Se på følgende:

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

eksempel

Svar

Du kan prøve

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *