
Ich arbeite mit ClassicThesis und habe ein ziemlich kompliziertes Gesamtdokument, sodass ich nicht wirklich ein MWE posten kann (tut mir leid, ich bin ziemlich neu bei LaTeX). Ich poste jedoch ein paar Pakete, von denen ich glaube, dass sie mit der Tabelle in Zusammenhang stehen könnten. Mein Problem: Ich verwende eine lange Tabelle, die sich automatisch über mehrere Seiten erstreckt. Alles funktioniert einwandfrei, außer dass sie die Breite des Textes überschreitet (trotz der Definition der Spalten mit \linewidth).
Können Sie mir helfen, herauszufinden, was ich falsch mache oder wie ich die Tabellenbreite an die Linienbreite anpassen kann?
Danke vielmals!
\usepackage{calc, longtable, ltablex, booktabs,array, caption, enumitem}
\keepXColumns
\newcolumntype{x}[1]{>{\raggedright}p{#1}}
\begin{spacing}{.7}
\footnotesize
\begin{longtable}{x{0.35\textwidth} x{0.25\textwidth} x{0.4\textwidth}}
\caption{Example table}\label{tab:example} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}}
\tabularnewline
\midrule
\endfirsthead
%%%%
\caption{Example table (cont.)} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}}
\tabularnewline
\midrule
\endhead
%%%%
\midrule[\heavyrulewidth]
\multicolumn{3}{r}{\footnotesize\itshape Continue on the next page}
\endfoot
%%%%
\bottomrule
\endlastfoot
%%%%
Content & Content & Content \tabularnewline
Content & Content & Content \tabularnewline
\end{longtable}
\end{spacing}
Antwort1
Du hast
\begin{longtable}
{x{0.35\textwidth} x{0.25\textwidth} x{0.4\textwidth}}
Aber jede Spalte hat \tabcolsep
auf beiden Seiten Platz (standardmäßig 6 pt), sodass Sie 36 pt zu breit sind.
versuchen
\begin{longtable}
{@{}x{0.35\textwidth} x{\dimexpr 0.25\textwidth - 24pt\relax} x{0.4\textwidth}@{}}
Sie entfernen also die Polsterung von den Seiten @{}
und sparen 24pt in der mittleren Spalte (oder Sie könnten es natürlich anders verteilen und etwas von jeder Spalte entfernen)
Antwort2
xltabular
Ich würde die Umgebung verwenden (das Paket lädt ltablex
, erspart aber das Hinzufügen von keepXColumns
), mit der Spezifikation, >{\hsize)xx\hsize
Spalten unterschiedlicher Breite zu haben):
\documentclass{report}
\usepackage{classicthesis}
\usepackage{array, setspace}
\usepackage{calc, longtable,xltabular, booktabs, array, caption, enumitem}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\begin{document}
\mbox{}
\begin{spacing}{.7}
\footnotesize
\begin{xltabular}{\linewidth}{>{\hsize=1.05\hsize}X >{\hsize=0.75\hsize}X >{\hsize=1.20\hsize\arraybackslash}X}
\caption{Example table}\label{tab:example} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}} \\
\midrule
\endfirsthead
%%%%
\caption{Example table (cont.)} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}} \\
\midrule
\endhead
%%%%
\midrule[\heavyrulewidth]
\multicolumn{3}{r}{\footnotesize\itshape Continue on the next page}
\endfoot
%%%%
\bottomrule
\endlastfoot
%%%%
Content & Content & Content \\
Content & Content & Content
\end{xltabular}
\end{spacing}
\end{document}