Vertikaler Abstand zwischen Tabellenzeilen

Vertikaler Abstand zwischen Tabellenzeilen

Ich versuche, den Abstand zwischen den Zeilen der tabularxTabelle zu vergrößern. Der folgende Code funktioniert einwandfrei und bewirkt, was ich will:

\begin{tabularx}{5ex}{X}
    text \\[2ex]
    x
\end{tabularx}

Wenn der Text jedoch zu lang ist und nicht in eine Zeile passt, funktioniert der vertikale Abstand nicht:

\begin{tabularx}{5ex}{X}
    text text \\[2ex]
    x
\end{tabularx}

Bitte sagen Sie mir, wie ich den Code so anpassen kann, dass er funktioniert. Die zu verwendende Variante (N - 1) * \baselineskip + 2exist nicht geeignet, da es auf die Anzahl der Textzeilen ankommt N.

UPDvollständiges Beispiel:

\documentclass{article}

\usepackage{tabularx}

\begin{document}
    % code above
\end{document}

Antwort1

Mit tabularxund cellspace:

\documentclass{article}
\usepackage[column=O]{cellspace}% better, than {} aren't necessary
    \setlength\cellspacetoplimit{2ex}
    \setlength\cellspacebottomlimit{2ex}
    \addparagraphcolumntypes{X}
\usepackage{tabularx}               % "tabularx" had to be after "cellspace"

\begin{document}
\begin{tabularx}{5ex}{OX}
\hline
    text text   \\ 
\hline
    x           \\
\hline
\end{tabularx}
\end{document}

hlines werden zur besseren Sichtbarkeit der vertikalen Entfernungen hinzugefügt)

Bildbeschreibung hier eingeben

Mit tabularrayPaket:

\documentclass{article}
\usepackage{tabularray}  

\begin{document}
\begin{tblr}{width=5ex,
             hlines, % for better visibility of vertical distances
             colspec = {X},
             rowsep=2ex}
    text text   \\ 
    x           \\
\end{tblr}
\end{document}

Das Ergebnis ist das gleiche wie zuvor.

Nachtrag:
Offenbar ist die Frage überhaupt nicht klar. Aus dem Kommentar unten geht hervor, dass nur zwischen einigen Zeilen der Abstand zwischen den Zeilen vergrößert werden soll. Der einfachste Weg, dies zu tun, ist die Verwendung von \addlinespace[<desired space>]:

\documentclass{article}
\usepackage{tabularx}   
\usepackage{booktabs}

\begin{document}
\begin{tabularx}{5ex}{X}
    text text   \\
    text text   \\
    \addlinespace[2ex] % you can omit this space, if its default value 3pt is ok
        x           \\
    text text   \\
\end{tabularx}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Sie können arraystretchZellen um einen Faktor strecken <F>:

\renewcommand\arraystretch{<F>}

wobei 1,0 der Standardwert ist. Der Effekt ist asymmetrisch, aber kleine Faktoren funktionieren gut.

Darüber hinaus arraystretchist es auch möglich, unsichtbare Elemente vor und nach dem Zellinhalt einzufügen und anzuhängen, z. B. vertikale Balken mit der Länge Null, deren Höhe und Tiefe größer als eine einzelne Textzeile ist. Die Balken bewirken, dass sich die Zellen an solche Inhalte anpassen und Sie erhalten den Effekt von mehr Platz.

Dies kann bei der Spaltendefinition automatisiert werden. Wenn der Effekt in einer bestimmten Zeile abgebrochen oder geändert werden soll, verwenden Sie \multicolumndie geänderten Einstellungen.

\documentclass{article}
\usepackage{tabularx}

\newcommand\upstrut[1][2ex]{\rule[1.5ex]{0pt}{#1}}
\newcommand\lostrut[1][2ex]{\rule[-#1]{0pt}{#1}}


\begin{document}
\begin{tabularx}{9ex}{>{\upstrut}X<{\lostrut}}
  \hline
  \multicolumn{1}{l}{\textbf{head}} \\
  \hline
  \multicolumn{1}{l<{\lostrut[4ex]}}{x} \\
  text text \\
  text text \\
  text text \\
  \multicolumn{1}{>{\upstrut[4ex]}l}{x} \\
  \hline
\end{tabularx}
\end{document}

Bildbeschreibung hier eingeben


BEARBEITEN. Wie inZarko's Antwort, Sie können die Dinge vereinfachen, indem Sie Folgendes verwenden tabularray:

\documentclass{article}
\usepackage{tabularray}

\begin{document}
\begin{tblr}{
    width = 9ex,
    colspec = {X},
    hline{1-2,Z},
    row{3-Y} = {rowsep=2ex},
  }
  \textbf{head} \\
  x \\
  text text \\
  text text \\
  text text \\
  x \\
\end{tblr}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen