Con tabularray rowspec, Q[f] no alinea la celda al pie. ¿Y cómo eliminar el título?

Con tabularray rowspec, Q[f] no alinea la celda al pie. ¿Y cómo eliminar el título?

ingrese la descripción de la imagen aquí

Este es mi código:

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}

Respuesta1

tabularrayse basa en plantillas, por lo que debe modificar la predeterminada o declarar y configurar una nueva plantilla y luego "vincularla" con su tabla. Para la demostración, creé una plantilla llamada nocaptemplate. Esto se aplica a un tema personalizado mytheme, que a su vez se aplica a mytblr.

La alineación inferior se puede lograr de varias maneras, pero agregar flas últimas tres definiciones de columnas funcionó para mí.

Hay errores en su código. Por ejemplo, no configuró el modo matemático para la cuarta columna y usó la expresión matemática \t_{...}. En cuanto al contenido de varias líneas, intentó utilizarlo \\dentro de un entorno matemático. Debe usar el modo matemático en línea para cada línea y posiblemente desactivar el modo matemático para esa columna o usar entornos de varias filas, por ejemplo aligned; Este es probablemente el enfoque más conveniente.

Úselo \newcommandpara crear nuevas macros en lugar de \def..., que le advierte cuando intenta redefinir macros existentes.

Si se supone que su tabla abarca varias páginas, considere agregar rowhead = my/o rowfoot = nque copiará la primera my la última nfila cuando abarque varias páginas.

ingrese la descripción de la imagen aquí

% **************************************************
% 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}

Respuesta2

  • Su MWE es erróneo. ¡Al usar la rowhead = {1}tabla 33 debe tener al menos dos filas!
  • ¿La mesa es realmente larga? Si no, es más sencillo seguir con tblrel entorno de la mesa.
  • Sospecho que la segunda y tercera columna de su tabla son en realidad una columna donde las celdas son alignedmatemáticas. Pero no estoy seguro, porque no proporciona ninguna información sobre la identificación de otras filas de la tabla.

Vea si la siguiente solución funciona para ustedČ

\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}

Editar:
¡Ahora se inserta la imagen producida con el MWE anterior!

ingrese la descripción de la imagen aquí

información relacionada