在 LateX 中排版包含大段文本的表格的最佳方法是什么?

在 LateX 中排版包含大段文本的表格的最佳方法是什么?

我正在尝试放置一个有 3 行 2 列的表格,但第二列包含几句话的描述。我该如何编写表格命令以将表格相应地放入 Latex 文件中?下面是我想要放置的表格的示例:


\begin{table}[h]
    \captionsetup{justification=centering,skip=0pt}
    \caption{Arten der Reichweite von RFID-Systemen \cite{Internetquelle2}}
    \scriptsize 
    \resizebox{\textwidth}{!}{%
        \begin{tabular}{@{}|l|l|@{}}
            \toprule[1pt]
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text Text . Text Text ext Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Textext Text Text Text Text Text Text Text Text Text\\     
            \midrule
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.
            Text Text Text Text Text Text Text Text Text.\\ 
            \midrule
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.\\
            \bottomrule[1pt]
        \end{tabular}%
    }
\end{table}

这是输出:[1]:https://i.stack.imgur.com/YHYAM.png

非常感谢您的帮助!

答案1

首先要说的是:你提供了完美的最小工作示例!非常感谢。

尽管对于哪种方法才是最好的对于手头的表格的排版,必须几乎一致同意采用哪种方法最差:该方法不允许单元格换行,并\textwidth通过指令强制表格的宽度不超过(文本块的宽度)\resizeblock。如下面的屏幕截图所示,结果是一种令人厌恶的排版。

对于手头的表格,(希望)显而易见的是,任何好的方法必须首先允许第二列自动换行。这可以通过使用p列类型而不是l列类型来实现。我建议让 LaTeX 处理确定列宽度的任务,方法p是使用tabularx包、将环境的整体宽度设置tabularx\textwidth,并为第二列使用X列(这只不过是pLaTeX 动态执行宽度计算的列)。

在屏幕截图中,我将最差方法的结果与该tabularx方法进行了对比。我想这没什么可比性,不是吗?

请注意,对于第二个表格,我还省略了所有垂直和水平规则,并自动执行大胆的第一列的内容。

为了符合这一主题,很难确定哪种具体方法是最好的为了排版手头的材料,我提供了一个额外的解决方案,,一种使用description列表环境的方法。就手头的材料而言,我认为很难判断这种description方法是否比方法更好或更差tabularx。但可以肯定的是,两者都比第一种方法好得多。

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx} % for \resizebox macro
\usepackage{caption}  % for \captionsetup macro
\usepackage{booktabs} % for \toprule, \midrule, and \bottomrule macros
\usepackage{tabularx} % for tabularx environment and X column type
\captionsetup{justification=centering,skip=0.25\baselineskip}
\usepackage{enumitem}

\begin{document}

\begin{table}[h!]
    \caption{Version with \texttt{\string\scriptsize} \emph{and} \texttt{\string\resizebox} macros. Ouch!}
    \scriptsize 
    \resizebox{\textwidth}{!}{%
        \begin{tabular}{@{}|l|l|@{}}
            \toprule[1pt]
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text Text . Text Text ext Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Textext Text Text Text Text Text Text Text Text Text\\     
            \midrule
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.
            Text Text Text Text Text Text Text Text Text.\\ 
            \midrule
            \textbf{Text Text } & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.\\
            \bottomrule[1pt]
        \end{tabular}%
    }
\end{table}


\begin{table}[h]
    \caption{Version with \texttt{tabularx} environment}
    \begin{tabularx}{\textwidth}{@{} >{\bfseries}l X @{}}
    Text Text  
    & Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text\\     
    \addlinespace
    Text Text
    & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.\\ 
    \addlinespace
    Text Text
    & Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.
    \end{tabularx}
\end{table}


\begin{table}[h]
\caption{Version with \texttt{description} environment}
\begin{description}[topsep=0pt]
\item[Text Text] Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text
\item[Text Text] Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.
\item[Text Text] Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text.
\end{description}
\end{table}

\end{document}

相关内容