So passen Sie die Longtable an die Linienbreite an

So passen Sie die Longtable an die Linienbreite an

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

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

Bildbeschreibung hier eingeben

verwandte Informationen