建立小固定寬度和 raggedright/centered/raggedleft 的表格欄位?

建立小固定寬度和 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

讓我詳細闡述一下下面的問題:

  • 字母Bb寬於 2 毫米,這是定義的第一列寬度。
  • \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}

這使:

在此輸入影像描述

當然,您可以定義其他列寬,但它們不應小於 letter 的寬度M,即1em

注意:請今後始終提供 mwe,而不僅僅是程式碼片段。這樣你就會幫助我們幫助你。

答案2

為什麼不使用「禁忌」來代替?

一個例子可以是

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

相關內容