Hjelp med en tabell med bokfelt

Jeg er relativt ny bruker til Latex, og dette er første gang jeg prøver å lage en tabell for oppgaven. ønsker at tabellen skal se slik ut:

skriv inn bildebeskrivelse her

Etter litt undersøkelser på internett kom jeg opp med følgende kode (ignorer forskjellene i kolonneoverskriftene mellom 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} 

den fungerer ikke i det hele tatt!

Kommentarer

  • Uten å vite detaljene for bookstable, har du en skrivefeil her: {{BCom}, og hver raden må slutte med \\ (mangler i » Antall kurs … » -raden). Og totalt antall kolonner kombinert i multikolonner skal tilsvare det totale antallet kolonner i tabellen din, så bare sett en & i begynnelsen av raden for å produsere en tom første kolonne.

Svar

En bedre versjon:

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

skriv inn bildebeskrivelse her

Hvorfor kompilerte ikke koden din?

  1. Du savnet en & i begynnelsen av

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

    gjør den første oppføringen for å gå inn i den første kolonnen.

  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 bør sette en & i begynnelsen av linjen. Og på slutten av denne linjen savnet du \\ like før \cmidrule.

Nå har endringene

Etter å ha rettet opp alt ovenfor, har jeg introdusert en ny kolonnetype med hjelp av array pakke .:

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

\raggedright er lagt til for å unngå stygge begrunnelseseffekter siden kolonnene kan være smale og ordene kan variere i lengde. Dette tar også vare på dårlige bokser.

Jeg har brukt denne L kolonnen med en bredde

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

til

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

i stedet for å gjenta.

Som en sidemerknad er \cmidrule kan forkortes fra l eft eller r ight av

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

Her er {4pt} beløpet vi forkorter. Det kan utelates som \cmidrule(r){4-5}.

Kommentarer

  • Tusen takk. Fungerer perfekt, og takk for grundig forklaring. Bare et annet raskt spørsmål – justeringen av overskriften på tabellen ser litt dum ut – bildet mitt . Hva er alternativene for å få det til å se mer estetisk ut? Ville det være mulig å få overskriften til å passe på en linje?
  • @Chris jeg redigerte. Endringene er i margin og bredden på kolonnene. Dette er best mulig med så lange overskrifter. : 0
  • @Chris Som en sidemerknad, blir takk her kommunisert best ved å stemme (alle de gode svarene) og godta (det mer nyttige svaret). Det kan være lurt å referere til Hvordan godtar du et svar? i tvil 🙂
  • hei @ Harish Kumar, jeg har oppstemt svaret ditt og en annen :). Bare et annet raskt spørsmål – hvordan fyller jeg en tom celle i en tabell med en » – «. Jeg prøvde » \ – » men cellen forblir tom.
  • @Chris Takk. :). Du bør bare sette -, (no \) eller bedre $-$ eller enda bedre --- . Håper det hjelper.

Svar

I tillegg til å bruke booktabs -pakke (for å få flotte, dvs. godt plasserte, horisontale linjer), vil jeg også anbefale at du bruker tabularx -pakken for å forenkle jobben med å få fire like bredde kolonner.

skriv inn bildebeskrivelse 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 : Forøvrig kan utseendet på tabellen du viser i innleggingen din ikke oppnås når du bruker kommandoene til booktabs -pakken. Hvis du virkelig trenger alle de vertikale og horisontale linjene, bør du ikke bruke kommandoen \toprule, \bottomrule, \midrule og \cmidrule. I stedet er det bare å bruke grunnleggende-LaTeX \hline instruksjon. (Du kan selvfølgelig fortsatt bruk pakken tabularx for å forenkle opprettelsen av kolonner med like bredde for kolonnene 2 til 5 i tabellen.)

Disse endringene vil føre til tabellen vist nedenfor.Jeg håper du er enig i at «booktabs look» – ingen loddrette linjer, færre horisontale linjer generelt og godt avstandsregler – er mye å foretrekke fremfor det man kan kalle «regnearkutseende».

skriv inn bildebeskrivelse 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

  • Hei – ja, jeg er enig i at booktabs-utseendet er langt bedre. Bildet jeg hadde i OP-en min er fra Word, og jeg var i et rush for å poste fordi jeg måtte gå et sted. De vertikale linjene var der fordi de kommer som standard med ordet » tabellen » verktøyet.

Svar

Ta en titt 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} 

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *