![С tabularray rowspec ,Q[f] не выравнивает ячейку по нижнему краю. И как удалить заголовок?](https://rvso.com/image/456055/%D0%A1%20tabularray%20rowspec%20%2CQ%5Bf%5D%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%20%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D1%83%20%D0%BF%D0%BE%20%D0%BD%D0%B8%D0%B6%D0%BD%D0%B5%D0%BC%D1%83%20%D0%BA%D1%80%D0%B0%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA%3F.png)
Вот мой код:
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}
решение1
tabularray
опирается на шаблоны, поэтому вам нужно изменить либо шаблон по умолчанию, либо объявить и задать новый шаблон, а затем «связать» его с вашей таблицей. Для демонстрации я создал шаблон под названием nocaptemplate
. Он применяется к пользовательской теме mytheme
, которая в свою очередь применяется к mytblr
.
Выравнивание по нижнему краю можно осуществить несколькими способами, но f
мне помогло добавление к определениям последних трех столбцов.
В вашем коде есть ошибки. Например, вы не установили математический режим для 4-го столбца и используете математическое выражение \t_{...}
. Что касается многострочного содержимого, вы попытались использовать \\
внутри математической среды. Вам нужно использовать встроенный математический режим для каждой строки и, возможно, отключить математический режим для этого столбца или использовать многострочные среды, например aligned
; это, вероятно, самый удобный подход.
Используйте \newcommand
для создания новых макросов вместо \def...
, который предупреждает вас при попытке переопределить существующие макросы.
Если ваша таблица должна занимать несколько страниц, рассмотрите возможность добавления rowhead = m
и или rowfoot = n
, которые будут копировать первую 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}
решение2
- Ваш MWE ошибочен. При использовании
rowhead = {1}
table33 должно быть не менее двух строк! - Действительно ли стол длинный? Если нет, то проще придерживаться
tblr
окружения стола - Я подозреваю, что второй и третий столбец в вашей таблице на самом деле являются одним столбцом, где в ячейках находится
aligned
математика. Но я не уверен, потому что вы не предоставляете никакой информации о том, что такое id других строк таблицы.
Посмотрите, подойдет ли вам следующее решение.
\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}
Редактировать:
Теперь вставлено изображение, созданное с помощью вышеуказанного MWE!