Olen ”melko uusi käyttäjä Latexille, ja yritän ensimmäistä kertaa rakentaa taulukkoa opinnäytetyöni varten. haluaisi taulukon näyttävän tältä:
Seuratessani joitain Internetissä tehtyjä tutkimuksia keksin seuraava koodi (jätä huomiotta erot Latex-koodin ja Word-asiakirjan sarakeotsikoissa)
\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}
se ei toimi ollenkaan!
Kommentit
vastaus
Parempi versio:
\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}
Miksi koodisi ei kääntynyt?
-
Sinulta puuttui
&
tekemällä ensimmäisen merkinnän ensimmäiseen sarakkeeseen.
-
Sinulla on
&&
riviNumber of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses
Sen tulisi olla
&
ja sinun tulisi laittaa&
rivin alussa. Ja tämän rivin lopussa menetit\\
juuri ennen\cmidrule
.
Nyt muokkaukset
Korjattuani kaikki edellä mainitut, olen ottanut käyttöön uuden saraketyypin array
-paketin ohje .:
\usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\raggedright
lisätään välttää ruma perustelu vaikutuksia, koska sarakkeet voivat olla kapeita ja sanat voivat vaihdella. Tämä huolehtii myös virheellisistä laatikoista.
Olen käyttänyt tätä L
-saraketta, jonka leveys on
\dimexpr0.22\textwidth-2\tabcolsep\relax
kautta
*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}
toistamisen sijaan.
Lisähuomautuksena \cmidrule
voidaan lyhentää l
eft: stä tai r
ight: stä
\cmidrule(r{4pt}){2-3}
Tässä {4pt}
on summa, jolla lyhennämme. Se voidaan jättää pois kuten \cmidrule(r){4-5}
.
Kommentit
- Kiitos paljon. Toimii täydellisesti, ja kiitos perusteellisesta selityksestä. Vielä yksi nopea kysymys – taulukon otsikon suuntaus näyttää hieman typerältä – kuvani . Mitkä ovat vaihtoehdot, jotta se näyttää esteettisemmältä? Voisiko otsikko sopia yhdelle riville?
- @Chris I edit. Muutokset ovat marginaalissa ja sarakkeiden leveydessä. Tämä on parasta mahdollista niin pitkillä otsikoilla. : 0
- @Chris Kiitoksena sanominen on parasta välittää äänestämällä (kaikki hyvät vastaukset) ja hyväksymällä (hyödyllisempi vastaus). Haluat ehkä viitata artikkeliin Kuinka hyväksyt vastauksen? epäilystapauksissa 🙂
- hei @Harish Kumar, olen äänestänyt hyvin vastauksesi ja yksi muu :). Vielä yksi nopea kysymys – miten täytän tyhjän solun taulukossa ” – ”. Yritin ” \ – ”, mutta solu on tyhjä.
- @Chris Thanks. :). Laita vain
-
, (no \) tai parempi$-$
tai vielä parempi---
. Toivottavasti se auttaa.
Vastaa
Sen lisäksi, että käytät booktabs
-paketti (saadaksesi hyvännäköiset, ts. hyvin sijoitetut vaakasuorat viivat), suosittelen myös, että käytät tabularx
-pakettia neljän yhtä leveän työn saamiseksi sarakkeita.
\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}
Lisäys : Muuten, lähettämässäsi taulukossa olevaa ulkoasua ei voida saavuttaa käytettäessä booktabs
-paketin komentoja. Jos todella tarvitset kaikkia näitä pysty- ja vaakasuoria viivoja, älä käytä komentoa \toprule
, \bottomrule
, \midrule
ja \cmidrule
. Käytä sen sijaan vain perus-LaTeX \hline
-käskyä. (Voit tietenkin silti hyödynnä tabularx
-pakettia yksinkertaistamaan yhtä leveiden sarakkeiden luomista taulukon sarakkeisiin 2-5.)
Nämä muutokset johtavat alla oleva taulukko.Toivon, että olet samaa mieltä siitä, että ”välilehtien ulkoasu” – ei pystysuoria viivoja, vähemmän vaakasuoria viivoja ja hyvin sijoitettuja sääntöjä – on paljon parempi kuin mitä voidaan kutsua ”laskentataulukon ulkoasuksi”.
\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}
kommentit
- Hei – kyllä olen samaa mieltä siitä, että välilehtien ulkonäkö on paljon parempi. Kuva, joka minulla oli OP-ohjelmassani, on peräisin Wordista, ja olin kiire lähettämään, koska minun piti mennä pois jostakin. Pystyviivat olivat siellä, koska ne ovat vakiona Word ” table ” -työkalussa.
Vastaus
Katsokaa seuraavaa:
\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}
vastaus
Voit kokeilla
\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
-tietoja, sinulla on kirjoitusvirhe tässä: {{BCom} ja kukin rivin on päätyttävä \\ (puuttuu ” kurssimäärästä … ” -riviltä). Ja sarakkeiden yhteenlaskettu monisarakkeiden tulee olla yhtä suuri kuin taulukon sarakkeiden kokonaismäärä, joten laita vain & rivin alkuun, jotta saadaan tyhjä ensimmäinen sarake.