Die linken Ränder sind für longtable und tabular unterschiedlich

Die linken Ränder sind für longtable und tabular unterschiedlich

Ich möchte in meinem Dokument a tabularund a verwenden longtable, aber die linken Ränder sind nicht ausgerichtet.

\documentclass[letterpaper,11pt]{article}

\usepackage{longtable}

\begin{document}

\begin{tabular}{p{2cm} p{15cm}}
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular
\end{tabular}

\begin{longtable}{p{2cm} p{15cm}}
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned 
\end{longtable}

\end{document}

Diese Frageist verwandt, und das gilt auchDieses hier.

Das Ersetzen \begin{longtable}{...}durch \begin{longtable}[l]{...}im obigen Code scheint nichts zu bewirken.

Durch Herumprobieren habe ich herausgefunden, dass \setlength{\LTleft}{18pt}meine Ränder bei Verwendung ziemlich gleich aussehen. Gibt es eine elegantere Möglichkeit, longtableslinksbündig auszurichten tabulars? Kann ich meine Tabellen ausrichten, ohne Zahlen anzugeben?

Antwort1

Bildbeschreibung hier eingeben

Wie von anderen Mitgliedern in den Kommentaren angemerkt, haben Sie eine Breite festgelegt, die größer ist als \textwidth. In diesem Fall tabularxkann die gesamte verfügbare Breite genutzt werden, indem die erste Spalte auf festgelegt wird p{2cm}und die restliche Breite in die zweite Spalte geht. \noindentwar auch für erforderlich tabularx.

Für longtablekönnen Sie dasselbe einstellen, aber für die zweite Spalte müssen wir die verbleibende Breite berechnen. Dies geschieht durch \dimexpr\linewidth-4\tabcolsep-2cm\relax. Um dies zu verstehen, stellen Sie sich die Zeile als vor |tabcolsep||p{2cm}||tabcolsep||tabcolsep||p{length}||tabcolsep|, dann lengthsollte gleich sein wie \linewidth-2cm-4\tabcolsep.

Zum Schluss habe ich \topruleund \bottomruleaus dem booktabsPaket verwendet, um den Tischen ein professionelles Aussehen zu verleihen.

\documentclass[letterpaper,11pt]{article}
\usepackage{tabularx,booktabs}
\usepackage{longtable}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{p{2cm} X}\toprule
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular \\ \bottomrule
\end{tabularx}

\begin{longtable}{p{2cm} p{\dimexpr\linewidth-4\tabcolsep-2cm\relax}}\toprule
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned  \\ \bottomrule
\end{longtable}

\end{document}

Antwort2

Wie in einem Kommentar erwähnt, longtableist zentriert tabularist eingerückt. Abschnitt 5 indie Paketdokumentationgibt die Lösung an. Durch das Hinzufügen \setlength\LTleft\parindentin der Präambel wird longtable linksbündig eingestellt, jedoch mit dem üblichen Absatzeinzug eingerückt.

\documentclass[letterpaper,11pt]{article}

\usepackage{longtable}
\setlength\LTleft\parindent

\begin{document}

\begin{tabular}{p{2cm} p{15cm}}
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular
\end{tabular}

\begin{longtable}{p{2cm} p{15cm}}
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned 
\end{longtable}

\end{document}

verwandte Informationen