
Ich bin vor einiger Zeit auf das Tabularray-Paket umgestiegen und habe kürzlich ein „Problem“ mit einer langen Tabelle festgestellt, die sich über zwei Seiten in einem Berichtsklassendokument mit Lualatex und PDFLatex erstreckt. Die Tabelle hat eine unterschiedliche Anzahl von Zeilen für die letzten Spalten und das Ziel besteht darin, die unerwünschten Zelllinien um die leeren Zellen in der letzten Zeile zu entfernen.
Allerdings ist die erste untere Linie (vor dem Seitenumbruch) nicht in voller Breite, wie in der Tabellenpräambel gefordert, sondern nur halb so breit wie die letzte Zeile der Tabelle (siehe Bild1produziert mit dem MWE und Bild2für die erwartete Ausgabe).
MWE:
\documentclass{report}
\usepackage{tabularray}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
]
{ vlines={solid},
vline{5-7} ={Z}{0pt},
vline{4} = {1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={1-3}{solid},
rowhead=1,
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & beta & Z & alpha & beta\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & & &
\end{longtblr}
\end{document}
Ich frage mich, ob die untere Linie vor jedem Seitenumbruch standardmäßig eine „Kopie“ der unteren Linie der Tabelle ist.
Ich habe auch versucht, nur Zeilennummern anstelle von Y und Z zu verwenden, ohne dass sich in der Ausgabe ein Unterschied ergeben hat.
Vielleicht habe ich etwas im Handbuch übersehen? Ich habe online noch kein ähnliches Problem gefunden.
BEARBEITEN: Ich habe versucht, was @Celdor vorgeschlagen hat. Das Problem beim Definieren der letzten Zeile als Fuß besteht darin, dass sie auf jeder Seite wiederholt wird und keine vollständige \hline druckt.
Die Wiederholung derselben Zeile im letzten MWE kann zu Verwirrung führen, daher habe ich das MWE mit Zeilennummern aktualisiert, die Spaltennummern reduziert und die Verwendung eines Phantom-Zeilenfußes (pink gefärbt) ohne Rand gezeigt.3.
Die gewünschte Ausgabe ist: letzte Zeile vor dem Seitenumbruch mit voller Halblinie, letzte Tabellenzeile, halbe Halblinie3
\documentclass{report}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
]{ rowfoot = 1,
vlines={solid},
vline{4-5} ={Y}{0pt},
vline{-} ={Z}{0pt},
vline{3} = {1-Y}{1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={2-4}{0pt},
rowhead=1,
cell{Z}{-}={red!10},
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & Z & beta\\
1 & alpha & 1 & beta\\
2 & alpha & 2 & beta\\
3 & alpha & 3 & beta\\
4 & alpha & 4 & beta\\
5 & alpha & 5 & beta\\
6 & alpha & 6 & beta\\
7 & alpha & 7 & beta\\
8 & alpha & 8 & beta\\
9 & alpha & 9 & beta\\
10 & alpha & 10 & beta\\
11 & alpha & 11 & beta\\
12 & alpha & 12 & beta\\
13 & alpha & 13 & beta\\
14 & alpha & 14 & beta\\
15 & alpha & 15 & beta\\
16 & alpha & 16 & beta\\
17 & alpha & 17 & beta\\
18 & alpha & 18 & beta\\
19 & alpha & 19 & beta\\
20 & alpha & 20 & beta\\
21 & alpha & 21 & beta\\
22 & alpha & 22 & beta\\
23 & alpha & 23 & beta\\
24 & alpha & 24 & beta\\
25 & alpha & 25 & beta\\
26 & alpha & 26 & beta\\
27 & alpha & 27 & beta\\
28 & alpha & 28 & beta\\
29 & alpha & 29 & beta\\
30 & alpha & 30 & beta\\
31 & alpha & 31 & beta\\
32 & alpha & 32 & beta\\
33 & alpha & 33 & beta\\
34 & alpha & 34 & beta\\
35 & alpha & 35 & beta\\
36 & alpha & 36 & beta\\
37 & alpha & 37 & beta\\
38 & alpha & 38 & beta\\
39 & alpha & 39 & beta\\
40 & alpha & 40 & beta\\
41 & alpha & 41 & beta\\
42 & alpha & 42 & beta\\
43 & gamma &\\
& & &
\end{longtblr}
\end{document}
Vielleicht ist es in diesem Fall nicht möglich, das Paket so zu verwenden. Abgesehen davon, dass man vermeiden kann, dass sich die Tabelle über mehrere Seiten erstreckt, könnte man sich auch die Neudefinition des Stils der letzten Zeile mit den Befehlen makeatletter/if/else/makeatother ansehen?
Wie zum Beispiel:
> wenn Seitenumbruch, dann vollständige Linienart (oder vom Benutzer für diese Zeile definierter Stil)
> sonst vom Benutzer definierten Linienstil verwenden
Antwort1
Ich möchte einen Workaround basierend auf einem Vorschlag des Paketbetreuers posten (danke an lvjr!). Im Wesentlichen können Sie eine benutzerdefinierte Vorlage erstellen, die \hrule
auf jeder Seite außer der letzten ein zum Tabellenfuß hinzufügt. Das folgende Beispiel könnte wahrscheinlich so angepasst werden, dass die Regel für die beiden linken Spalten nicht zweimal gezeichnet wird:
\documentclass{report}
\usepackage{tabularray}
\DefTblrTemplate{firstfoot,middlefoot}{mytemplate}{
\vskip -0.4pt
\hrule height 0.4pt width \tablewidth
}
\DefTblrTemplate{lastfoot}{mytemplate}{
}
\NewTblrTheme{mytheme}{
\SetTblrTemplate{foot}{mytemplate}
}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
theme=mytheme,
]
{ vlines={solid},
vline{5-7} ={Z}{0pt},
vline{4} = {1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={1-3}{solid},
rowhead=1,
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & beta & Z & alpha & beta\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & & &
\end{longtblr}
\end{document}