Ich habe ein Problem mit der korrekten Anzeige der folgenden Tabelle:
\documentclass[12pt]{report}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{float,lscape}
\usepackage{longtable}
\usepackage{tabularx}
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 \futurelet
\reserved@a\@xhline}
\makeatother
\usepackage{multirow}
\usepackage{bigstrut}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\scriptsize
\begin{tabulary}{\textwidth}{LLLLLLLLLLLLLLLLL}
\hlinewd{1.25pt}
\textbf{a. Time period 1886 - 1892:} & \textbf{} & \textbf{} & & & & & & & & & & & & & & \bigstrut\\
\cline{1-8} \multicolumn{1}{C}{86} & \multicolumn{1}{C}{87} & \multicolumn{1}{C}{88} & \multicolumn{1}{C}{89} & \multicolumn{1}{C}{90} & \multicolumn{1}{C}{91} & \multicolumn{1}{C}{92} & \multicolumn{1}{C}{AVG} & & & & & & & & & \bigstrut\\
\cline{1-8} \multicolumn{1}{C}{485} & \multicolumn{1}{C}{229} & \multicolumn{1}{C}{372} & \multicolumn{1}{C}{401} & \multicolumn{1}{C}{488} & \multicolumn{1}{C}{261} & \multicolumn{1}{C}{444} & \multicolumn{1}{C}{383} & & & & & & & & & \bigstrut\\
\cline{1-8} & & & & & & & & & & & & & & & & \bigstrut[t]\\
\textbf{b. Time period 1911 - 1926:} & \textbf{} & \textbf{} & & & & & & & & & & & & & & \bigstrut[b]\\
\hline
\multicolumn{1}{C}{11} & \multicolumn{1}{C}{12} & \multicolumn{1}{C}{13} & \multicolumn{1}{C}{14} & \multicolumn{1}{C}{15} & \multicolumn{1}{C}{16} & \multicolumn{1}{C}{17} & \multicolumn{1}{C}{18} & \multicolumn{1}{C}{19} & \multicolumn{1}{C}{20} & \multicolumn{1}{C}{21} & \multicolumn{1}{C}{22} & \multicolumn{1}{C}{23} & \multicolumn{1}{C}{24} & \multicolumn{1}{C}{25} & \multicolumn{1}{C}{26} & \multicolumn{1}{C}{AVG} \bigstrut\\
\hline
\multicolumn{1}{C}{338} & \multicolumn{1}{C}{929} & \multicolumn{1}{C}{528} & \multicolumn{1}{C}{1'426} & \multicolumn{1}{C}{-301} & \multicolumn{1}{C}{117} & \multicolumn{1}{C}{375} & \multicolumn{1}{C}{293} & \multicolumn{1}{C}{652} & \multicolumn{1}{C}{2'671} & \multicolumn{1}{C}{1'370} & \multicolumn{1}{C}{544} & \multicolumn{1}{C}{786} & \multicolumn{1}{C}{479} & \multicolumn{1}{C}{440} & \multicolumn{1}{C}{800} & \multicolumn{1}{C}{715} \bigstrut\\
\hlinewd{1.25pt}
\end{tabulary}%
\label{tab:addlabel}%
\end{table}%
Das Ergebnis sieht wie im folgenden Bild aus:
Obwohl die Positionierung der Tabelle in Ordnung ist, verstehe ich nicht, warum Latex, nachdem es mit der ersten Zahlenreihe begonnen hat, den Rest nach rechts setzt. Die Zahlen auf der rechten Seite (87, 88, 89, ...) sollten auch linksbündig ausgerichtet sein. Wie kann ich das für diese Tabelle erreichen?
Vielen Dank wie immer für Ihre Hilfe!
Antwort1
Für die spaltenübergreifenden Einträge sollten Sie tabular
und verwenden:\multicolumn{17}{l}{...}
\documentclass[12pt]{report}
\usepackage{booktabs}
\usepackage{caption}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\label{tab:addlabel}
\scriptsize
\addtolength{\tabcolsep}{-1.8pt}
\begin{tabular}{*{17}{c}}
\toprule
\multicolumn{17}{l}{\textbf{a. Time period 1886--1892}} \\
\cmidrule[\lightrulewidth]{1-8}
86 & 87 & 88 & 89 & 90 & 91 & 92 & AVG & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 & AVG \\
\midrule
338 & 929 & 528 & 1426 & $-301$ & 117 & 375 & 293 & 652 & 2671 & 1370 & 544 & 786 &
479 & 440 & 800 & 715 \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\label{tab:addlabel-double}
\footnotesize
\addtolength{\tabcolsep}{-3.1pt}
\begin{tabular}{*{17}{c}}
\toprule
\multicolumn{17}{l}{\textbf{a. Time period 1886--1892}} \\
\cmidrule[\lightrulewidth]{1-8}
86 & 87 & 88 & 89 & 90 & 91 & 92 & AVG & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 & AVG \\
\midrule
338 & 929 & 528 & 1426 & $-301$ & 117 & 375 & 293 & 652 & 2671 & 1370 & 544 & 786 &
479 & 440 & 800 & 715 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Kein Bedarf \bigstrut
oder komplizierter Code für umfangreichere Regeln.
Ich habe zwei Versionen der Tabelle bereitgestellt, die zweite verwendet \footnotesize
.
Wie habe ich die -3.1pt
Lösung berechnet?
Ich habe das Dokument ohne ausgeführt \addtolength
und im zweiten Fall eine Überfüllung von 104,69522 pt erhalten. Da 104,69522/34 ungefähr 3,079 entspricht, habe ich aufgerundet.
Gleiches gilt für die erste Version.
Wenn Sie oberhalb der zweiten Überschrift etwas vertikalen Abstand wünschen, verwenden Sie\addlinespace
...
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\addlinespace[\medskipamount]
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
...
Antwort2
Die späteren Spalten sind alle linksbündig ausgerichtet, aber die erste Spalte ist sehr breit aufgrund
\textbf{a. Time period 1886 - 1892:}
wodurch die Breite der Spalte erzwungen wird. Vielleicht wollten Sie es \multicolumn
so verwenden, dass es sich über alle Spalten erstreckt, anstatt die Breite der ersten Spalte zu erzwingen?
tabulary
(und tabularx
) sind für diese Art von Tisch ungeeignet, sie funktionieren durch Ändern derZeilenumbruchBreite in jeder Spalte angegeben. Da Ihre Spalten hauptsächlich aus numerischen Daten bestehen, ist der Zeilenumbruch nicht relevant und Sie sollten besser einen Standard verwenden tabular
.