
この質問の最初の回答を読みました
テキストが右寄せ/中央寄せ/左寄せの固定幅のテーブル列を作成するにはどうすればよいですか?
私は試した
\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
以下の質問についてコメントで詳しく説明させてください:
- 文字
B
もb
2mm より広く、最初の列の幅として定義されます。 \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}
これにより、次のようになります。
もちろん、他の列幅を定義することもできますが、文字の幅よりも小さくしてはいけませんM
。1em
注: 今後は、コード スニペットだけでなく、常に 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}