Ich versuche, den Abstand zwischen den Zeilen der tabularx
Tabelle 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 + 2ex
ist 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 tabularx
und 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}
hline
s werden zur besseren Sichtbarkeit der vertikalen Entfernungen hinzugefügt)
Mit tabularray
Paket:
\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}
Antwort2
Sie können arraystretch
Zellen 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 arraystretch
ist 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 \multicolumn
die 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}
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}