Não é possível usar simultaneamente makecell, threeparttable e tabulary

Sep 21 2020

Estou tentando realizar "três tabelas de partes" enquanto uso simultaneamente makecell(para obter quebras de linha dentro da célula) e tabulary(para fazer com que a tabela não exceda \linewidth). Mas enquanto eu posso conseguir com três tabelas de partes tabularyque não usam makecell(primeiro exemplo de código abaixo) e tabelas com tabularyesse uso, makecellmas não threeparttable(segundo exemplo de código abaixo), não posso construir um documento que combine os três (terceiro exemplo). O que fazer?

Estou ciente de que usar em tabularxvez de tabularycriar esta tabela específica, mas tenho muitas dessas tabelas. Prefiro não verificar cada tabela separadamente, mas sim usar tabulary. Além disso, usando 1 não sou casado com, makecellmas preciso ter quebras de linha dentro das células (e controlar seu alinhamento vertical).

Qualquer ajuda seria muito apreciada!

Primeiro exemplo ( threeparttablee tabularmas não makecell)

\documentclass{article}
\usepackage[para]{threeparttable}
\usepackage{tabulary}
\begin{document}
  \begin{table}
    \begin{threeparttable}
      \caption{Lorem ipsum dolor sit amet, consectetur}

      {
        \begin{tabulary}{\linewidth}{L r L r}
        \textbf{Aaa} & \textbf{Bbb} & \textbf{Ccc} \tabularnewline
         & & Ccc1 & Ccc2 \tabularnewline
        Adipisicing elit, sed do eiusmod tempor & \(0.40\) & Ut labore et dolore magna aliqua & \(7.77\) \tabularnewline
        Ut enim ad minim veniam, quis nostrud exercitation & \(0.93\) & Ullamco laboris nisi ut aliquip ex ea commodo consequat & \(62.6\) \tabularnewline
        \end{tabulary}
      }
    \end{tablenotes}
  \end{threeparttable}
\end{document}

Segundo exemplo ( tabularye makecellmas nãothreeparttable

\documentclass{article}
\usepackage{tabulary}
\usepackage{makecell}
\begin{document}
  \begin{table}
    \caption{Lorem ipsum dolor sit amet, consectetur}

    {
      \begin{tabulary}{\linewidth}{L r L r}
      \textbf{Aaa} & \textbf{Bbb} & \textbf{Ccc} \tabularnewline
       & & \makecell{Ccc1} & \makecell{Ccc2 \\ Ccc2} \tabularnewline
      Adipisicing elit, sed do eiusmod tempor & \(0.40\) & Ut labore et dolore magna aliqua & \(7.77\) \tabularnewline
      Ut enim ad minim veniam, quis nostrud exercitation & \(0.93\) & Ullamco laboris nisi ut aliquip ex ea commodo consequat & \(62.6\) \tabularnewline
      \end{tabulary}
    }
  \end{table}
\end{document}

Terceiro exemplo (todos os três, não funcionando)

\documentclass{article}
\usepackage[para]{threeparttable}
\usepackage{tabulary}
\usepackage{makecell}
\begin{document}
  \begin{table}
    \begin{threeparttable}
      \caption{Lorem ipsum dolor sit amet, consectetur}

      {
        \begin{tabulary}{\linewidth}{L r L r}
        \textbf{Aaa} & \textbf{Bbb} & \textbf{Ccc} \tabularnewline
         & & \makecell{Ccc1} & \makecell{Ccc2 \\ Ccc2} \tabularnewline
        Adipisicing elit, sed do eiusmod tempor & \(0.40\) & Ut labore et dolore magna aliqua & \(7.77\) \tabularnewline
        Ut enim ad minim veniam, quis nostrud exercitation & \(0.93\) & Ullamco laboris nisi ut aliquip ex ea commodo consequat & \(62.6\) \tabularnewline
        \end{tabulary}
      }

      \begin{tablenotes}
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      \end{tablenotes}
    \end{threeparttable}
  \end{table}
\end{document}

Respostas

2 Bernard Sep 21 2020 at 03:45

Você pode substituir \makecellpelo \Centerstackcomando de stackengine, que não tem conflito com outros pacotes;

\usepackage[latin]{babel} 
\usepackage[para]{threeparttable}
\usepackage{tabulary}
\usepackage[usestackEOL]{stackengine}

\begin{document}

  \begin{table}
    \begin{threeparttable}
      \caption{Lorem ipsum dolor sit amet, consectetur}

      {
        \begin{tabulary}{\linewidth}{L r L r}
        \textbf{Aaa} & \textbf{Bbb} & \textbf{Ccc} \tabularnewline
         & & \Centerstack{Ccc1} & \Centerstack{Ccc2\\ Ccc2} \tabularnewline
        Adipisicing elit, sed do eiusmod tempor & \(0.40\) & Ut labore et dolore magna aliqua & \(7.77\) \tabularnewline
        Ut enim ad minim veniam, quis nostrud exercitation & \(0.93\) & Ullamco laboris nisi ut aliquip ex ea commodo consequat & \(62.6\) \tabularnewline
        \end{tabulary}
      }

      \begin{tablenotes}\footnotesize
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      \end{tablenotes}
    \end{threeparttable}
  \end{table}

\end{document}