Tengo el siguiente documento que es una tabla (tabularray) que quiero completar con líneas de puntos vacías. He definido el comando \fillwithdottedlines
como puedes ver en MWE. Aunque el comando funciona perfectamente en el exterior, tblr
no funciona en el interior. ¿Por qué sucede esto y cómo puedo solucionarlo? Descomente la línea con este comando dentro de la tabla para ver el error.
\documentclass[12pt]{article}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage{tabularray}
\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{9mm}
\def\fillwithdottedlines#1 {%
\begingroup
\ifhmode
\par
\fi
\hrule height \z@
\nobreak
\setbox0=\hbox to \hsize{\hskip \@totalleftmargin
\vrule height \dottedlinefillheight depth \z@ width \z@
\dotfill}%
\cleaders \copy0 \vskip #1 \hbox{}%
\endgroup
}
\makeatother
\begin{document}
\begin{tblr}{colspec={Q[0.5\linewidth-5pt,c]X[c]},row{1,2}={1cm,m},row{3}={15cm,m},vlines,hlines}
\SetCell[c=2]{c} \large \textbf{TITLE} \\
\textbf{Subtitle 1} & \textbf{Subtitle 2} \\
& \\
%\fillwithdottedlines{10cm} & \fillwithdottedlines{10cm} \\
\end{tblr}
\fillwithdottedlines{5cm}
\end{document}
Respuesta1
No estoy completamente seguro de qué es lo que realmente está mal aquí (y por lo tanto, esto es solo una respuesta parcial), pero al menos uno de los problemas surge de la definición de \fillwithdottedlines
que requiere que un espacio siga al argumento (porque el espacio delimita el argumento). . Puede verificar esto escribiendo en una de las celdas de la columna de la izquierda \fillwithdottedlines{5cm} {}
, lo que al menos no genera errores, pero aún así genera un resultado subóptimo con respecto a la alineación vertical. Por algunas razones que no puedo explicar, pero probablemente debido a la forma en que tblr
está construido, este truco no funciona para las celdas de la columna de la derecha.
Sin embargo, una solución sería envolver la \fillwithdottedlines
macro en un archivo \parbox
, por ejemplo usando \parbox{\linewidth}{\fillwithdottedlines{2cm} }
. ¡Cuide el espacio requerido antes de la última llave de cierre!
\documentclass[12pt]{article}
\usepackage[a4paper, total={180mm,257mm}, left=15mm, top=20mm]{geometry}
\usepackage{tabularray}
\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{9mm}
\def\fillwithdottedlines#1 {%
\begingroup
\ifhmode
\par
\fi
\hrule height \z@
\nobreak
\setbox0=\hbox to \hsize{\hskip \@totalleftmargin
\vrule height \dottedlinefillheight depth \z@ width \z@
\dotfill}%
\cleaders \copy0 \vskip #1 \hbox{}%
\endgroup
}
\makeatother
\begin{document}
\begin{tblr}{
colspec = { Q[0.5\linewidth-5pt, c] X[c] },
row{1,2} = {1cm, m},
row{3} = {15cm, m},
vlines,
hlines,
}
\SetCell[c=2]{c} \large \textbf{TITLE} \\
\textbf{Subtitle 1} & \textbf{Subtitle 2} \\
& \\
\parbox{\linewidth}{\fillwithdottedlines{2cm} } &
\parbox{\linewidth}{\fillwithdottedlines{2cm} } \\
\end{tblr}
%\fillwithdottedlines{5cm}
\end{document}