Conflito Tabularx e colortbl dentro de um savebox

Conflito Tabularx e colortbl dentro de um savebox

Meu objetivo geral é construir uma tabela dentro de uma savebox para que eu possa preencher facilmente a página com várias cópias. Alguém recomendou usar tabularx, que funcionou bem até que eu também tentei usar o pacote colortbl para colorir algumas linhas.

No MWE abaixo, observe que ...

  1. Tabela 1: tabularx e colortbl funcionam bem juntos fora da savebox.
  2. Tabela 2: tabularx funciona bem quando armazenado em uma savebox.
  3. Tabela 3: Uma tentativa de armazenar a Tabela 1 em uma savebox resulta em um erro de 'Sequência de controle indefinida'.

É importante ressaltar que selecionar a opção "s" (pular) no console resulta em um documento compilado onde todas as três tabelas parecem ser renderizadas corretamente. Portanto, embora eu possa compor o documento, fico pensando se há uma “solução” para esse 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}

Responder1

A composição não está totalmente configurada até \begin{document}. Às vezes funciona salvar texto simples em uma caixa no preâmbulo, mas não aqui:

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

informação relacionada