
Problem & MWE
Ich möchte die Breite der folgenden longtblr
Tabelle auf die maximal zulässige Seitenbreite erhöhen, die - so schätze ich - so breit wie der Text sein sollte, also vom linken bis zum rechten Seitenrand. Mit anderen Worten: Ich möchte die folgende Tabelle so breit wie den Text machen, vom linken bis zum rechten Rand.
Allerdings hätte ich eine Einschränkung. Ich möchte die Breite der folgenden Spalten beibehalten
colspec={m{0.9cm} m{0.1cm} m{0.6cm} m{1cm} m{3cm} m{6cm} m{1.5cm}},
mit Ausnahme der 6. Spalte (die mit dem Namen Feature 2
) die jetzt 6cm
breit ist. Daher besteht die Idee darin, nur mit der Breite der 6. Spalte zu arbeiten.
Grundsätzlich möchte ich die Breite der 6. Spalte so erweitern/vergrößern, dass die gesamte Tabellenbreite die maximal zulässige Seitenbreite erreicht.
Gibt es dafür eine automatische Möglichkeit oder sollte ich die Breite der 6. Spalte vergrößern, solange ich mit dem Auge erkenne, dass die linken und rechten Ränder meiner Tabelle mit dem gesamten Dokumenttext ausgerichtet sind?
Ich hoffe, das ist ausreichend klar! Hier folgt mein MWE und die dazugehörige Abbildung:
\documentclass[twocolumn]{article}
% Some packages
\usepackage[margin=2cm]{geometry}
\usepackage[dvipsnames,table]{xcolor}
\definecolor{light-gray}{HTML}{FFFFFF}
\definecolor{light-blue}{HTML}{EBF5FB}
\usepackage{tabularray}
\usepackage{url}
% Other packages
\usepackage{lipsum}
\usepackage{tabulary,longtable,afterpage}
\usepackage{booktabs}
\makeatletter
\newcommand{\aftertwo}[1]{\afterpage{\if@firstcolumn #1
\else\afterpage{#1}\fi}}
\makeatother
% Start of the document
\begin{document}
% Some text
\lipsum[1-8]
% A "longtblr" table
\aftertwo{
\onecolumn
\begin{longtblr}[
caption = {This is a caption.},
]{
colspec={m{0.9cm} m{0.1cm} m{0.6cm} m{1cm} m{3cm} m{6cm} m{1.5cm}},
cells={font=\small},
row{1}={font=\itshape\small},
row{2,5-7}={bg=light-blue},
row{3-4}={bg=light-gray},
column{6}={preto={\minipage{6cm}}, appto={\endminipage}},
hlines
}
& Day
& Month
& Hours
& Feature 1
& Feature 2
& Feature 3\\
%-------------------------------------------------
Friday
& 5
& June
&
& This is a quite short text.
& This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times.
\begin{tblr}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tblr}
& Short text
\\
%-------------------------------------------------
\SetCell[r=2]{l} Saturday
& \SetCell[r=2]{l} 6
& \SetCell[r=2]{l} June
& 14 -- 21
& B\textsubscript{1}
&
& B\textsubscript{3}
\\
&
&
&
& C\textsubscript{1}
& C\textsubscript{2}
& C\textsubscript{3}
\\
% -------------------------------------------------
\SetCell[r=3]{l} Sunday
& \SetCell[r=3]{l} 7
& \SetCell[r=3]{l} June
& 08 -- 10
& D\textsubscript{1}
& D\textsubscript{2}
& D\textsubscript{3}
\\
&
&
& 10 -- 17
& E\textsubscript{1}
&
& E\textsubscript{3}
\\
&
&
&
& F\textsubscript{1}
& F\textsubscript{2}
& F\textsubscript{3}
\\
% -------------------------------------------------
\end{longtblr}
\twocolumn
}
% End of the document
\end{document}
Antwort1
- Sie können die Breite der 6. Spalte nur erhöhen, indem Sie die Breite der anderen Spalte verringern. In Ihrem Fall würde ich die Breite der 5. und letzten Spalte verringern, für die 6. Spalte würde ich einen
X
Spaltentyp verwenden, dessen Breite der\textwidth
Summe der Breiten der übrigen Spalten entspricht. - Für eine größere Breite der 6. Spalte können Sie diese reduzieren
colsep
. - Wie Sie sehen, habe ich in der 6. Spalte eine zentrierte
tblr
Tabelle eingefügt.
\documentclass[twocolumn]{article}
\usepackage[showframe,
margin=2cm]{geometry}
\usepackage{lipsum} %for dummy text
\usepackage[dvipsnames,table]{xcolor}
\definecolor{light-gray}{HTML}{FFFFFF}
\definecolor{light-blue}{HTML}{EBF5FB}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\usepackage{tabulary,longtable,afterpage}
\usepackage{url}
\makeatletter
\newcommand{\aftertwo}[1]{\afterpage{\if@firstcolumn #1
\else\afterpage{#1}\fi}}
\makeatother
\begin{document}
% Some text
\lipsum[1-8]
% A "longtblr" table
\aftertwo{
\onecolumn
\begin{longtblr}[
caption = {This is a caption.},
]{colspec = {llll Q[l,22mm] X[h, j] Q[l, 3em] },
colsep=4pt,
column{6}={preto={\minipage{\linewidth}}, appto={\endminipage}},
cells={font=\small},
row{1}={font=\itshape\small},
row{2,5-7}={bg=light-blue},
row{3-4}={bg=light-gray},
hlines
}
& Day
& Month
& Hours
& Feature 1
& Feature 2
& Feature 3\\
%-------------------------------------------------
Friday
& 5
& June
&
& This is a quite short text.
& This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times. This is a long text that will be repeated many times.
\centering
\begin{tblr}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tblr}
& Short text \\
%-------------------------------------------------
\SetCell[r=2]{l} Saturday
& \SetCell[r=2]{l} 6
& \SetCell[r=2]{l} June
& 14 -- 21
& B\textsubscript{1}
&
& B\textsubscript{3}
\\
&
&
&
& C\textsubscript{1}
& C\textsubscript{2}
& C\textsubscript{3} \\
%--------------------------------------------------
\SetCell[r=3]{l} Sunday
& \SetCell[r=3]{l} 7
& \SetCell[r=3]{l} June
& 08 -- 10
& D\textsubscript{1}
& D\textsubscript{2}
& D\textsubscript{3}
\\
&
&
& 10 -- 17
& E\textsubscript{1}
&
& E\textsubscript{3}
\\
&
&
&
& F\textsubscript{1}
& F\textsubscript{2}
& F\textsubscript{3} \\
% -------------------------------------------------
\end{longtblr}
\twocolumn
}
% End of the document
\end{document}
Graue Linien zeigen das Seitenlayout an.