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:
Î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
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}
De ce nu a fost compilat codul dvs.?
-
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ă.
-
Aveți un
&&
în liniaNumber 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.
\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”.
\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}
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}
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ă.