Criando colunas de tabela de pequena largura fixa e irregular à direita/centralizada/raggedleft?

Criando colunas de tabela de pequena largura fixa e irregular à direita/centralizada/raggedleft?

Eu li a primeira resposta sobre esta pergunta

Como criar colunas de tabela de largura fixa com texto irregular à direita/centralizado/raggedleft?

tentei

\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\begin{tabular}{|C{0.2cm}|C{0.5cm}|}
\hline
b & c \\
\hline
B & C \\
\hline
\end{tabular}

O resultado é mostrado abaixo. Por que temos esse efeito em tamanhos pequenos? Como corrigi-lo?

insira a descrição da imagem aqui

Responder1

deixe-me elaborar meu comentário abaixo da pergunta:

  • as letras Btambém bsão mais largas que 2 mm, o que é definido na largura da primeira coluna.
  • opção \hspace{0pt}na Cdefinição da coluna evita que o conteúdo das células se espalhe para a próxima coluna. conseqüentemente, latexempurra o conteúdo das células para a próxima linha onde esta limitação não está em vigor. conseqüentemente você obtém seu resultado.

as possíveis curas:

  • omitir \hspace{0pt}e assim permitir que o conteúdo da célula possa usar \tabcolsepespaço no lado direito das células e, se necessário, passar para a próxima coluna
  • aumentar a largura das células. por exemplo, se você deseja ter uma proporção de largura de colunas de 2: 5 (como pode ser concluído no seu snippet de código), você pode definir a largura da coluna como\begin{tabular}{|C{1em}|C{2.5em}|}

um exemplo de documento pequeno completo (chamado de exemplo de trabalho mínimo: mwe) é:

\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash}m{#1}}

\begin{document}
    \begin{center}
\renewcommand\arraystretch{1.2}% for more vertical space in cells
\begin{tabular}{|C{1em}|C{2.5em}|}
    \hline
b & c \\
    \hline
B & C \\
    \hline
\end{tabular}
    \end{center}
\end{document}

que dá:

insira a descrição da imagem aqui

é claro que você pode definir outras larguras de coluna, mas elas não devem ser menores que a largura de letter M, ou seja 1em.

observação: no futuro, sempre forneça mwe, não apenas o trecho de código. com isso você nos ajudará a ajudá-lo.

Responder2

por que não usar 'tabu'?

Um exemplo poderia ser

\documentclass{article}
\usepackage{tabu}

\begin{document}

\begin{tabu} to 3cm {|X[cm]|X[2cm]|}
    \hline
    b & c \cr
    \hline
    B & C \cr
    \hline
\end{tabu}

\end{document}

informação relacionada