![小さな固定幅と、raggedright/centered/raggedleft のテーブル列を作成しますか?](https://rvso.com/image/370313/%E5%B0%8F%E3%81%95%E3%81%AA%E5%9B%BA%E5%AE%9A%E5%B9%85%E3%81%A8%E3%80%81raggedright%2Fcentered%2Fraggedleft%20%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E5%88%97%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
この質問の最初の回答を読みました
テキストが右寄せ/中央寄せ/左寄せの固定幅のテーブル列を作成するにはどうすればよいですか?
私は試した
\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}