对特定表格单元格进行换行的简单方法

对特定表格单元格进行换行的简单方法

我有一张包含长文本的表格,并找到了一种方法来摆脱必须手动换行的问题。以下是此布局的一个非常简单版本的代码:

\usepackage{booktabs} % for toprule, midrule and bottomrule

\begin{table*}[t]
  \centering
  \begin{tabular}{l l}
    \toprule
    Category & Description \\
    \midrule
    \parbox[t]{.10\textwidth}{A} & \parbox[t]{.90\textwidth}{PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.}\\
    \bottomrule
  \end{tabular}
  \caption{A table that adapts}
\end{table*}

我经常创建具有这种一般格式的表格:两列扩展到整个页面的文本宽度并分为两部分(像这里,10-90,但也根据第一列中文本的大小进行调整)。

有没有办法将其转换为命令(或者可能已经有一个命令)以便我不必为每个单元编写 parbox?

此外,最好简化这个过程,这样我只需要声明一个单元格的大小(10%)就可以为所有单元格隐式定义余数(90%)。

有什么想法可以有效地做到这一点吗?

答案1

最简单的方法是使用普通p类型的列并使用\newline而不是\\在单元格中引入手动换行符:

\documentclass[]{article}

\usepackage{booktabs} % for toprule, midrule and bottomrule

\begin{document}
\begin{table*}[t]
  \centering
  \begin{tabular}{ p{.1\textwidth} p{\dimexpr.9\textwidth-4\tabcolsep\relax} }
    \toprule
    Category & Description \\
    \midrule
    A & PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\newline PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\\
    \bottomrule
  \end{tabular}
  \caption{A table that adapts}
\end{table*}

\end{document}

答案2

基于 的两种解决方案tabularx,一种具有固定的列宽比(必须通过反复试验将默认边距更改为 1:7),另一种具有l第一列的列说明符。

请注意,在第一个具有相对列宽比的解决方案中,系数的总和\hsize必须等于总列数X

\documentclass[]{article}
\usepackage{tabularx}
\usepackage{booktabs} % for toprule, midrule and bottomrule

\begin{document}

\begin{table*}[! htb]
  \centering
  \begin{tabularx}{\linewidth}{>{\hsize=0.25\hsize}X>{\hsize=1.75\hsize\arraybackslash}X}
    \toprule
    Category & Description \\
    \midrule
    A & PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\newline PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\\
    \bottomrule
  \end{tabularx}
  \caption{A table that adapts}
\end{table*}
\vspace{1cm}

\begin{table*}[!htb]
  \centering
  \begin{tabularx}{\linewidth}{l>{\arraybackslash}X}
    \toprule
    Category & Description \\
    \midrule
    A & PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\newline PUT DESCRIPTION HERE. PUT DESCRIPTION HERE. PUT DESCRIPTION HERE.\\
    \bottomrule
  \end{tabularx}
  \caption{A table that adapts}
\end{table*}

\end{document} 

在此处输入图片描述

相关内容