如何实现包含一些带有长文本的单元格的表格?

如何实现包含一些带有长文本的单元格的表格?

我有一张包含 6 列和几行的表格。问题是某些列中的某些单元格包含长文本,因此它们看起来很奇怪,无法容纳文本宽度。我尝试使用 \makecell 手动拆分长文本单元格,但生成的表格看起来很糟糕。请参阅附图,这是我尝试生成的确切示例(但带有虚拟文本)。我不希望它像 Excel。我需要一种专业的方式来生成每个单元格多行的表格。

在此处输入图片描述

答案1

我不知道你想如何将你的文本分成几行,这里有我想出的两个选项:

选项1

\hspace{0pt}tabularx

第一个选项

正如您所见,它对于单词的分词位置非常挑剔。如果表格太窄,文本就会溢出。

选项 2

\collectcell\seqsplit...\endcollectcelltabularxseqsplitcollcell

第二种选择

这样,文本可以在任何地方中断。但看起来它会删除单词之间的空格。如果您想要此选项并且需要单词之间的空格,您可以将空格放在花括号内{ },这样它们就不会被中断/删除。

代码

\documentclass[]{article}

\usepackage[margin=1cm]{geometry} % Changing page margin
\usepackage{array}
\usepackage{tabularx}
\usepackage{seqsplit}
\usepackage{collcell}

% >{\hsize=.5\hsize} Insert this into the column type definition to change column width (produces some glitches if used incorrectly)
%\newcolumntype{s}{>{\hspace{0pt}\raggedright\arraybackslash}X} % OPTION 1 "Human"-like breaking
\newcolumntype{s}{>{\collectcell\seqsplit}>{\raggedright\arraybackslash}X<{\endcollectcell}} % OPTION 2 Breaks everything

\renewcommand{\tabularxcolumn}[1]{m{#1}} % Vertical centering in cells
\renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Inserts hyphens at the breakpoints

\begin{document}

\begin{tabularx}{250pt}{|s|s|s|s|s|} % 6 columns, table width = 250pt
\hline
Numbers & Long Strings & Numbers & Long Strings & Numbers \\
\hline
1000000000{ }Big{ }Number & VeryVeryLongString with Number 524 & 1000000000 Big Number & VeryVeryLongString with Number 524 & 1000000000 Big Number \\
\hline
\end{tabularx}

\end{document}

在此处输入图片描述

奖金

如果希望将文本置于单元格内居中,只需将\raggedright其更改\centering为列类型声明内即可。如果您需要具有不同样式的列,只需复制现有的声明,更改所需的内容,为其指定不同的字母,然后在表中使用它即可。

相关内容