Ajutor cu un tabel de tabele de cărți

Eu sunt un utilizator relativ nou pentru Latex și este prima dată când încerc să construiesc un tabel pentru teza mea. aș dori ca tabelul să arate astfel:

introduceți descrierea imaginii aici

În urma unor cercetări pe internet, am venit cu următorul cod (ignorați diferențele dintre titlurile coloanelor dintre codul Latex și documentul Word)

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

nu funcționează deloc!

Comentarii

  • Fără a cunoaște specificul bookstable, aveți aici o greșeală de tipar: {{BCom} și fiecare rândul trebuie să se încheie cu \\ (lipsă în ” Numărul de cursuri … ” rând). Și numărul total de coloane combinate în multicolumns ar trebui să fie egal cu numărul total de coloane din tabelul dvs., așa că trebuie doar să puneți un & la începutul rândului pentru a produce o primă coloană goală.

Răspuns

O versiune mai bună:

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

introduceți descrierea imaginii aici

De ce nu a fost compilat codul dvs.?

  1. Ați ratat un & la începutul lui

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

    efectuarea primei intrări pentru a intra în prima coloană.

  2. Aveți un && în linia

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

    Ar trebui să fie & și ar trebui să puneți un & la începutul liniei. Și la sfârșitul acestei linii ați ratat \\ chiar înainte de \cmidrule.

Acum modificările

După corectarea tuturor celor de mai sus, am introdus un nou tip de coloană cu ajutorul pachetului array .:

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

\raggedright pentru a evita efectele urâte de justificare, deoarece coloanele pot fi înguste și cuvintele pot varia în lungime. Aceasta are grijă și de casetele defecte.

Am folosit această coloană L cu o lățime

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

prin

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

în loc să se repete.

Ca notă laterală, \cmidrule poate fi scurtat de la l eft sau r ight de

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

Aici {4pt} este suma cu care scurtăm. Poate fi lăsat ca \cmidrule(r){4-5}.

Comentarii

  • Mulțumesc foarte mult. Funcționează perfect și vă mulțumim pentru explicația amănunțită. Doar o altă întrebare rapidă – alinierea antetului tabelului arată puțin prostesc – imaginea mea . Care sunt opțiunile pentru a face să pară mai plăcut din punct de vedere estetic? Ar fi posibil ca titlul să se potrivească pe o singură linie?
  • @Chris I editat. Modificările sunt în marjă și lățimea coloanelor. Acesta este cel mai bun posibil cu anteturi atât de lungi. : 0
  • @Chris Ca o notă laterală, a spune mulțumiri aici este cel mai bine comunicat prin vot în sus (toate răspunsurile bune) și acceptarea (răspunsul mai util). Poate doriți să consultați Cum acceptați un răspuns? în caz de dubii 🙂
  • salut @Harish Kumar, am votat în sus raspunsul tau si inca unul :). Doar o altă întrebare rapidă – cum completez o celulă goală dintr-un tabel cu un ” – „. Am încercat ” \ – ” dar celula rămâne necompletată.
  • @Chris Mulțumesc. :). Ar trebui să puneți numai -, (nu \) sau mai bine $-$ sau chiar mai bine --- . Sper că vă va ajuta.

Răspuns

Pe lângă utilizarea booktabs pachet (pentru a obține un aspect frumos, adică linii orizontale bine distanțate), aș recomanda, de asemenea, să utilizați pachetul tabularx pentru a simplifica sarcina de a obține patru lățimi egale coloane.

introduceți descrierea imaginii aici

\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 : De altfel, aspectul tabelului pe care îl afișați în postare nu poate fi nu realizat atunci când se utilizează comenzile pachetului booktabs. Dacă într-adevăr aveți nevoie de toate acele linii verticale și orizontale, nu ar trebui să „utilizați comanda \toprule, \bottomrule, \midrule și \cmidrule. În schimb, utilizați doar instrucțiunea basic-LaTeX \hline. (Puteți, desigur, încă folosiți pachetul tabularx pentru a simplifica crearea coloanelor cu lățime egală pentru coloanele 2-5 ale tabelului.)

Aceste modificări vor duce la tabelul prezentat mai jos.Sper că veți fi de acord că „aspectul tabelelor de carte” – fără linii verticale, mai puține linii orizontale în general și reguli bine distanțate – este mult mai preferabil decât ceea ce s-ar putea numi „aspectul foii de calcul”.

introduceți descrierea imaginii aici

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

Comentarii

  • Bună – da, sunt de acord că aspectul tabelelor este mult mai bun. Imaginea pe care o aveam în PO este de la Word și mă grăbeam să postez pentru că trebuia să plec undeva. Liniile verticale erau acolo deoarece vin standard cu instrumentul Word ” tabel „.

Răspuns

Aruncați o privire la următoarele:

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

exemplu

Răspuns

S-ar putea să încercați

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *