![Mit tabularray rowspec richtet Q[f] die Zelle nicht am Fuß aus. Und wie entferne ich die Überschrift?](https://rvso.com/image/456055/Mit%20tabularray%20rowspec%20richtet%20Q%5Bf%5D%20die%20Zelle%20nicht%20am%20Fu%C3%9F%20aus.%20Und%20wie%20entferne%20ich%20die%20%C3%9Cberschrift%3F.png)
Dies ist mein Code:
latex
% **************************************************
% Document Class
% **************************************************
\documentclass[
paper=A4, %
11pt, % font size
]{scrreprt}
\usepackage{tabularray}
\usepackage[svgnames]{xcolor}
\usepackage{amssymb}
\begin{document}
\NewTblrEnviron{mytblr} % define a new environment
\SetTblrOuter[mytblr]{long}
\SetTblrInner[mytblr]{ % set the default styles
colspec = {|
X[4.0cm,l]|
X[0.7cm,r]|
X[l]|
X[0.7cm,r]|
X[1.2cm,r]|
X[1.0cm,l]|},
width = 1.00\linewidth,
column{2,3,6} = {mode=dmath},
column{5} = {fg=blue},
rowspec={|
Q[h]|
Q[h]|
Q[m]|
Q[f]|
Q[f]|
Q[f]|}
}
\def\s{454}
\def\k{0.00394}
\def\treq{1.7886}
\begin{mytblr}[
caption = {},
]{
% more specs
}
Factor
& t_{req}
& {= k \times s \\ = \k \times \s \\ = \treq}
& t_{req}
& 1.78876
& \mathrm{mm} \\
\end{mytblr}
\end{document}
Antwort1
tabularray
basiert auf Vorlagen, Sie müssen also entweder die Standardvorlage ändern oder eine neue Vorlage deklarieren und festlegen und diese dann an Ihre Tabelle „binden“. Für die Demonstration habe ich eine Vorlage namens erstellt nocaptemplate
. Diese wird auf ein benutzerdefiniertes Design angewendet mytheme
, das wiederum auf angewendet wird mytblr
.
Die untere Ausrichtung kann auf mehrere Arten erreicht werden, aber f
bei mir hat das Anhängen an die letzten drei Spaltendefinitionen funktioniert.
Ihr Code enthält Fehler. Sie haben beispielsweise den Mathematikmodus für die vierte Spalte nicht eingestellt und stattdessen einen mathematischen Ausdruck verwendet \t_{...}
. Was die mehrzeiligen Inhalte betrifft, haben Sie versucht, sie \\
in einer mathematischen Umgebung zu verwenden. Sie müssen für jede Zeile den Inline-Mathematikmodus verwenden und möglicherweise den Mathematikmodus für diese Spalte ausschalten oder mehrzeilige Umgebungen verwenden, z. B. aligned
; dies ist wahrscheinlich der bequemste Ansatz.
Verwenden Sie \newcommand
zum Erstellen neuer Makros anstelle von \def...
. Dadurch werden Sie gewarnt, wenn Sie versuchen, vorhandene Makros neu zu definieren.
Wenn Ihre Tabelle mehrere Seiten umfassen soll, fügen Sie ggf. „ rowhead = m
und“ oder „oder“ hinzu. Dadurch werden die erste und die letzte Zeile rowfoot = n
kopiert, wenn die Tabelle mehrere Seiten umfasst.m
n
% **************************************************
% Document Class
% **************************************************
\documentclass[
paper=A4, %
11pt, % font size
]{scrreprt}
\usepackage[svgnames]{xcolor}
\usepackage{tabularray}
\usepackage{amsmath,amssymb}
% Removes captions
\DeclareTblrTemplate{caption}{nocaptemplate}{}
\DeclareTblrTemplate{capcont}{nocaptemplate}{}
\NewTblrTheme{mytabletheme}{
\SetTblrTemplate{caption}{nocaptemplate}{}
\SetTblrTemplate{capcont}{nocaptemplate}{}
}
\NewTblrEnviron{mytblr} % define a new environment
\SetTblrOuter[mytblr]{
theme=mytabletheme,
long,
}
\SetTblrInner[mytblr]{ % set the default styles
width = \linewidth,
colspec = {
X[5,l] %<--- X only makes sense when using with proportions
X[1,r] %<--- Otherwise, behaves as a regular Q[...]
X[5,l]
X[1,r,f]
X[2,r,f]
X[2,l,f]
},
column{2-6} = {mode=dmath},
column{5} = {fg=blue},
hlines, vlines,
% row{1,Z} = {font=\bfseries}, %<--- the first and the last row in bold
% rowhead = 1, rowfoot = 1, %<--- would copy the first/last column on subsequent pages
}
\begin{document}
\newcommand\vars{454}
\newcommand\vark{0.00394}
\newcommand\treq{1.7886}
\begin{mytblr}{}
Factor
& t_{req}
& \begin{aligned}[t]&= k \times s\\&= \vark \times \vars\\&= \treq\end{aligned}
& t_{req}
& 1.7887
& \mathrm{mm} \\
\end{mytblr}
\end{document}
Antwort2
- Ihr MWE ist fehlerhaft. Bei Verwendung von
rowhead = {1}
table33 sollten mindestens zwei Zeilen vorhanden sein! - Ist der Tisch wirklich ein langer Tisch? Wenn nicht, ist es einfacher, bei
tblr
der Tischumgebung zu bleiben - Ich vermute, dass die zweite und dritte Spalte in Ihrer Tabelle eigentlich eine Spalte sind, in deren Zellen
aligned
mathematische Daten stehen. Aber ich bin mir nicht sicher, da Sie keine Informationen dazu liefern, was die anderen Tabellenzeilen sind.
Prüfen Sie, ob die folgende Lösung für Sie funktioniert.
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\DeclareMathOperator{\req}{req}
\begin{document}
\begingroup
\DefTblrTemplate{firsthead, middlehead,lasthead}{default}{} % <---
\def\s{454}
\def\k{0.00394}
\def\treq{1.7886}
\begin{longtblr}{
rowhead = {1},
colspec = {X[0.8, l] X[1.2, c]
Q[f] Q[c, f, fg=blue] Q[f]},
column{2,3} = {mode=dmath},
row{1} = {font=\bfseries, mode=text},
hline{1,2,Z} =1pt, hline{3-Y}=solid, vlines
}
& A & B & C & D \\
Factor & \begin{aligned}[t]
t_{\req} & = k \times s \\
& = \k \times \s \\
& = \treq
\end{aligned}
& t_{\req}
& 1.78876
& mm \\
text & p_{\req} = 2\cdot\treq
& p_{\req}
& 3.57752
& mm \\
\end{longtblr}
\endgroup
\end{document}
Bearbeiten:
Jetzt wird das mit dem obigen MWE erzeugte Bild eingefügt!