El título longtblr se reduce a medida que disminuye el ancho de la tabla.

El título longtblr se reduce a medida que disminuye el ancho de la tabla.

Encontré algunos pequeños problemas al usar "TblrTemplates redefinidos". Esta plantilla redefinida se utilizó para alinear los títulos largos a la izquierda.

Si el título de la tabla es lo suficientemente largo, mi formato requiere que se cuelgue en la siguiente línea. Si el ancho de la tabla es igual al ancho del texto, el título de la tabla colgará perfectamente en la siguiente línea. El problema se produjo cuando el ancho de la tabla no era igual al ancho del texto. Como puede ver, el título se redujo a medida que disminuyó el ancho de la tabla.

Probé la solución con el paquete de títulos,

\captionsetup{width=1\textwidth}

pero no funcionaría porque longtblr operaba en su propio entorno.

Investigué un poco y descubrí algunas respuestas.aquí. Esta solución parece resolver el problema con el ancho de los subtítulos, pero por alguna razón los subtítulos ya no se cuelgan. Además, esta respuestaaquíresolvió el problema con el título colgado pero también lo redujo. Fallé cuando intenté combinar estos dos métodos.

No tengo conocimientos suficientes de programación para modificar el código fuente de Tabularray. Para lograr un título de tabla que cuelgue en la siguiente línea y tenga el ancho del texto, necesito mucha ayuda. Cualquier sugerencia o respuesta se agradece.

\documentclass{article}
\usepackage{tabularray}
\usepackage[singlelinecheck=off]{caption}
    \captionsetup[table]{format=hang}

% Redefined TblrTemplates
\ExplSyntaxOn
\DefTblrTemplate{caption}{normal}{
    \hbox_set:Nn \l__tblr_caption_box{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        }
    \dim_compare:nNnTF{\box_wd:N \l__tblr_caption_box}>{\hsize}{
        \UseTblrAlign{caption}
        \UseTblrIndent{caption}
        \hbox_set:Nn \l__tblr_caption_left_box{
            \UseTblrTemplate{caption-tag}{default}
            \UseTblrTemplate{caption-sep}{default}
            }
        \hangindent=\box_wd:N \l__tblr_caption_left_box
        \hangafter=1
        \UseTblrHang{caption}
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
        }{
        \centering
        \makebox[\hsize][l]{\box_use:N \l__tblr_caption_box}
        \par
        }}
  
\DefTblrTemplate{capcont}{normal}{
    \hbox_set:Nn \l__tblr_caption_box{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        \space
        \UseTblrTemplate{conthead-text}{default}
        }
    \dim_compare:nNnTF{\box_wd:N \l__tblr_caption_box}>{\hsize}{
        \UseTblrAlign{capcont}
        \UseTblrIndent{capcont}
        \hbox_set:Nn \l__tblr_caption_left_box{
            \UseTblrTemplate{caption-tag}{default}
            \UseTblrTemplate{caption-sep}{default}
            }
        \hangindent=\box_wd:N \l__tblr_caption_left_box
        \hangafter=1
        \UseTblrHang{capcont}
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
        }{
        \centering
        \makebox[\hsize][l]{\box_use:N \l__tblr_caption_box}
        \par
        }}
  
\SetTblrTemplate{caption}{normal}
\SetTblrTemplate{capcont}{normal}
\ExplSyntaxOff

\begin{document}

\begin{table}[h]
    \caption{This is a normal table caption using a table environment. If the table's caption is long enough, the formatting requires it to hang on the next line}
    \centering
\begin{tblr}{
    width=0.5\linewidth,
    colspec={XXX},
    hlines, vlines
    }
Head & Head & Head \\
Head & Data & Data \\
\end{tblr}
\end{table}

\begin{longtblr}[
    caption={This is a long table that uses "Redefined TblrTemplates" suggested by @samcarter\_is\_at\_topanswers.xyz. The table caption was hanging perfectly on the next line with no problems}
    ]{
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\begin{longtblr}[
    caption={The problem occurred when the width of the table didn't equal the text width. As you can see, the caption shrunk as the table width decreased}
    ]{
    colspec={*3{X[2cm]}},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}


\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

Aquí tienes una solución que mantiene el centrado de la mesa. Basado enhttps://tex.stackexchange.com/a/630675/113546

\documentclass{article}
\usepackage{tabularray}
\usepackage[singlelinecheck=off]{caption}
    \captionsetup[table]{format=hang}

% Redefined TblrTemplates
\ExplSyntaxOn
\DefTblrTemplate{caption}{normal}{
\makebox[\hsize][c]{% see https://tex.stackexchange.com/a/630675/113546
  \parbox{\textwidth}{%
    \hbox_set:Nn \l__tblr_caption_box{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        }
    \dim_compare:nNnTF{\box_wd:N \l__tblr_caption_box}>{\hsize}{
        \UseTblrAlign{caption}
        \UseTblrIndent{caption}
        \hbox_set:Nn \l__tblr_caption_left_box{
            \UseTblrTemplate{caption-tag}{default}
            \UseTblrTemplate{caption-sep}{default}
            }
        \hangindent=\box_wd:N \l__tblr_caption_left_box
        \hangafter=1
        \UseTblrHang{caption}
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
        }{
        \centering
        \makebox[\hsize][l]{\box_use:N \l__tblr_caption_box}
        \par
        }}
    }
  }
  
\DefTblrTemplate{capcont}{normal}{
\makebox[\hsize][c]{% see https://tex.stackexchange.com/a/630675/113546
  \parbox{\textwidth}{%
    \hbox_set:Nn \l__tblr_caption_box{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        \space
        \UseTblrTemplate{conthead-text}{default}
        }
    \dim_compare:nNnTF{\box_wd:N \l__tblr_caption_box}>{\hsize}{
        \UseTblrAlign{capcont}
        \UseTblrIndent{capcont}
        \hbox_set:Nn \l__tblr_caption_left_box{
            \UseTblrTemplate{caption-tag}{default}
            \UseTblrTemplate{caption-sep}{default}
            }
        \hangindent=\box_wd:N \l__tblr_caption_left_box
        \hangafter=1
        \UseTblrHang{capcont}
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
        }{
        \centering
        \makebox[\hsize][l]{\box_use:N \l__tblr_caption_box}
        \par
        }}
    }
  }
  
\SetTblrTemplate{caption}{normal}
\SetTblrTemplate{capcont}{normal}
\ExplSyntaxOff

\begin{document}

\begin{table}[h]
    \caption{This is a normal table caption using a table environment. If the table's caption is long enough, the formatting requires it to hang on the next line}
    \centering
\begin{tblr}{
    width=0.5\linewidth,
    colspec={XXX},
    hlines, vlines
    }
Head & Head & Head \\
Head & Data & Data \\
\end{tblr}
\end{table}

\begin{longtblr}[
    caption={This is a long table that uses "Redefined TblrTemplates" suggested by @samcarter\_is\_at\_topanswers.xyz. The table caption was hanging perfectly on the next line with no problems}
    ]{
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\begin{longtblr}[
    caption={The problem occurred when the width of the table didn't equal the text width. As you can see, the caption shrunk as the table width decreased}
    ]{
    colspec={*3{X[2cm]}},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}


\end{document}

ingrese la descripción de la imagen aquí

información relacionada