Deep boxes confuse the vertical alignment of multirow
and usually need to be corrected by using the optional fixup
argument, e.g. 15pt
correction can be given via
\multirow{3}{*}[-15pt]{....}
(Compare Vertical Alignment in multirow using cells with >1 lines).
Also extra space added at the end of a row with \\[...]
will not help the vertical spacing as you observe. One work around is to add a dummy column, cf. Why can I not vertically align the text in the 3rd table column?:
\documentclass[11pt,a4paper]{article}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{array}
\begin{document}
\noindent\begin{tabular}{|m{5cm}|m{5cm}|m{5cm}|m{0cm}}
\cline{1-3}
\multirow{3}{*}[-15pt]{Temperature ($^\circ$C/K)}
& Thermocouple & Depending
on the experimental set-up, type-K,T or other is used&\\[10ex]
\cline{2-3}
& Resistor Thermal Device (RTD) & Usually a PT100 or PT1000&\\[5ex]
\cline{2-3}
& Thermistor & \\ \cline{1-3}
\end{tabular}
\end{document}
When each cell has only a single line of text in a row, the vertical alignment options t
/m
/b
are the same for this row. This is true also for traditional tabular
environment (except that there is still an aligmment bug in tabular
environment).
Although mathtask
environment consists of a complicated table, TeX still treats it as a box, so those cells are of single line (you can see it more clearly by adding some text before and after mathtask
environment). Therefore in outer table for example colspec={Q[t]Q[b]}
and colspec={Q[b]Q[m]}
and colspec={Q[m]Q[t]}
will produce the same result.
I am not sure what you really want from your code. But you could change the alignment of the inner tables:
\documentclass{article}
\usepackage{tabularray}
\NewDocumentEnvironment{mathtask}{O{}+b}{%
\begin{tblr}[T]{
colspec={Q[r,#1,1cm] Q[c,#1,1cm] Q[l,mode=math,1cm]},
vlines,hlines,
}
#2
\end{tblr}}{}
\begin{document}
\centering
\begin{tblr}{
vlines, hlines,
columns = {0.5\textwidth-13pt, colsep=6pt},
rows = {4cm, rowsep=2pt},
colspec = {Q[l,t] Q[r,b]},
}
a\begin{mathtask}[t]
{aaa\\bbb\\ccc\\ddd} & {xx\\yy} & c
\end{mathtask}b
&
a\begin{mathtask}[t]
{aaa\\bbb} & xxxx & d
\end{mathtask}b
\\
a\begin{mathtask}[b]
{aaa\\bbb\\ccc\\ddd\\eee\\ff} & {xx\\yy} & e
\end{mathtask}b
&
a\begin{mathtask}[b]
{aaa\\bbb\\ccc} & {xx\\yy} & f
\end{mathtask}b
\end{tblr}
\end{document}
EDIT: For your original problem, you need to move \tasknumber
out of mathtask
and set vertical alignment h
for these new columns:
\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usepackage{tabularray}
\usepackage[showframe]{geometry}
\newlength{\cheight} \setlength{\cheight}{0.5\textheight-6.02pt}
\newcommand\tasknumber[1]{%
\begin{tikzpicture}[
inner sep=0pt,outer sep=0pt, minimum size=21pt,
baseline={([yshift=-3pt]current bounding box.center)},
]
\node [draw,circle,color=white,fill=white!45!black,] {#1};
\end{tikzpicture}}
\setlength{\tabcolsep}{3pt}
\NewDocumentEnvironment{mathtask}{+b}{%
\begin{tblr}{
colspec={ll},
column{1}={font=\bfseries},
column{2}={mode=math},
columns={colsep=3pt},
}
#1
\end{tblr}
}{}
\pagestyle{empty}
\begin{document}
\centering
\begin{tblr}{
colspec={Q[h,l]X[l]Q[h,l]X[l]},
colsep=3pt,
rows={\cheight, rowsep=3pt},
vline{3} = solid,
hline{2} = solid,
}
\tasknumber{1} &
\begin{mathtask}
Solve the system: &
\begin{cases}
x + y + = 1 \\
x + y + = 1 \\
x + y + = 1 \\
x + y + = 1 \\
x + y + z = 2
\end{cases}
\end{mathtask}
&
\tasknumber{2} &
\begin{mathtask}
Solve the system: &
\begin{cases}
x + y + = 1 \\
x + y + = 3 \\
x + y + z = 2
\end{cases}
\end{mathtask}
\\
\tasknumber{3} &
\begin{mathtask}
Solve the equation: &
x + y + z = 2
\end{mathtask}
&
\tasknumber{50} &
\begin{mathtask}
Solve the system: &
\begin{cases}
x + y + = 1 \\
x + y + z = 2
\end{cases}
\end{mathtask}
\end{tblr}
\end{document}
Best Answer
Probably the following is closer to the expcted output: