创建宽度固定、右侧不规则/居中/左侧不规则的小表格列?

创建宽度固定、右侧不规则/居中/左侧不规则的小表格列?

我读了这个问题的第一个答案

如何创建带有文本“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}

这使:

在此处输入图片描述

当然你可以定义其他列宽,但它们不应该小于字母的宽度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}

相关内容