小さな固定幅と、raggedright/centered/raggedleft のテーブル列を作成しますか?

小さな固定幅と、raggedright/centered/raggedleft のテーブル列を作成しますか?

この質問の最初の回答を読みました

テキストが右寄せ/中央寄せ/左寄せの固定幅のテーブル列を作成するにはどうすればよいですか?

私は試した

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

結果は以下の通りです。なぜ小さいサイズではこのような効果が出るのでしょうか? どうすれば修正できるでしょうか?

ここに画像の説明を入力してください

答え1

以下の質問についてコメントで詳しく説明させてください:

  • 文字Bb2mm より広く、最初の列の幅として定義されます。
  • \hspace{0pt}列定義のオプションによりC、セルの内容が次の列に溢れるのを防ぎます。その結果、latexこの制限が適用されない次の行にセルの内容が押し出されます。その結果、目的の結果が得られました。

考えられる治療法:

  • 省略する\hspace{0pt}と、セルの内容が\tabcolsepセルの右側のスペースを使用でき、必要に応じて次の列に溢れ出すことができます。
  • セルの幅を広げます。たとえば、列幅の比率を2:5にしたい場合(コードスニペットからわかるように)、列幅を次のように定義できます。\begin{tabular}{|C{1em}|C{2.5em}|}

完全な小さなドキュメントの例 (最小限の動作例: 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}

これにより、次のようになります。

ここに画像の説明を入力してください

もちろん、他の列幅を定義することもできますが、文字の幅よりも小さくしてはいけませんM1em

注: 今後は、コード スニペットだけでなく、常に mwe を提供してください。これにより、私たちがあなたを助けることができます。

答え2

代わりに「tabu」を使わないのはなぜですか?

例えば

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

関連情報