Tabularx y colortbl entran en conflicto dentro de un savebox

Tabularx y colortbl entran en conflicto dentro de un savebox

Mi objetivo general es crear una tabla dentro de un cuadro de guardado para poder llenar fácilmente la página con varias copias. Alguien recomendó usar tabularx, que funcionó bien hasta que también intenté usar el paquete colortbl para colorear algunas de las filas.

En el MWE a continuación, tenga en cuenta que...

  1. Tabla 1: tabularx y colortbl funcionan muy bien juntos fuera del cuadro de guardado.
  2. Tabla 2: tabularx funciona bien cuando se almacena en una caja de almacenamiento.
  3. Tabla 3: Un intento de almacenar la Tabla 1 en un cuadro de guardado genera un error de "Secuencia de control no definida".

Es de destacar que al seleccionar la opción "s" (omitir) en la consola se obtiene un documento compilado donde las tres tablas parecen representarse correctamente. Entonces, aunque puedo componer el documento, me pregunto si hay una "solución" para este problema.

MWE:

\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\usepackage{xcolor}

\newsavebox{\tabularxInBox}
\sbox{\tabularxInBox}{
    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        Row 2& No Colored Background\\
    \end{tabularx}
}

\newsavebox{\tabularxAndColortblInBox}
\sbox{\tabularxAndColortblInBox}{
    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        \rowcolor{lightgray}
        Row 2& Colored Background\\
\end{tabularx}
}

\begin{document}
No conflict with tabularx and colortbl normally:\\

    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        \rowcolor{lightgray}
        Row 2& Colored Background\\
\end{tabularx}
\vskip 1cm

No conflict with tabularx and sbox:\\

\usebox{\tabularxInBox}
\vskip 1cm

However, using both tabularx and colortble inside an \sbox throws an error:\\
\usebox{\tabularxAndColortblInBox}

\end{document}

Respuesta1

La composición tipográfica no estará completamente configurada hasta \begin{document}. A veces funciona guardar texto simple en un sbox en el preámbulo, pero no aquí:

\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\usepackage{xcolor}

\newsavebox{\tabularxInBox}
\newsavebox{\tabularxAndColortblInBox}

\begin{document}

\sbox{\tabularxInBox}{%%%dont forget  eol
    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        Row 2& No Colored Background\\
    \end{tabularx}%%%dont forget  eol
}


\sbox{\tabularxAndColortblInBox}{%%%dont forget  eol
    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        \rowcolor{lightgray}
        Row 2& Colored Background\\
\end{tabularx}%%%dont forget  eol
}


No conflict with tabularx and colortbl normally:\\
    \begin{tabularx}{\textwidth}{cX}
        Col 1 & Col 2\\
        \hline
        Row 1& No Colored Background\\
        \rowcolor{lightgray}
        Row 2& Colored Background\\
\end{tabularx}
\vskip 1cm

No conflict with tabularx and sbox:\\
\usebox{\tabularxInBox}
\vskip 1cm

However, using both tabularx and colortble inside an \verb|\sbox| throws an error:\\
\usebox{\tabularxAndColortblInBox}

\end{document}

información relacionada