如何将这样的表格放在一页上(这样它就不会太宽)?我想我希望在每一列的名称中有一个换行符,并且在整个第一列的每个单元格中也有一个换行符。我该怎么做?(或者还有其他建议吗?)
\begin{table}
\centering
\begin{tabular}{lccccc}
\toprule
8 characters & 27 characters & 27 characters & 15 characters & 15 characters \\
\midrule
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 1 & 2 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 3 & 4 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 1 & 2 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 3 & 4 \\
\bottomrule
\end{tabular}
\caption{test}
\label{test}
\end{table}
答案1
您还可以tabulary
使用J
、、C
或列,或将它们与标准列类型相结合(如果您需要了解标准列的类型,L
请运行、、、... )R
c
l
r
p
textoc array
使用上的优势tabularx
在于,设置对齐方式只需在 、 或 之间进行选择J
,C
默认L
情况R
下会根据内容量调整每列的宽度,即在两个 J 列中,文本越多的列越宽,而在两个 X 列中,无论其中一个列的文本多于另一个列,宽度始终相同(除非进行一些特殊处理)。您还可以为此自动调整固定最小和最大宽度,以获得更好的效果(参见\tymax
示例中的效果)。
\documentclass{article}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{tabulary,lipsum}
\begin{document}
\begin{table}
\tymax=300pt
\begin{tabulary}{\linewidth}{@{}JLCCC@{}}
\toprule
xxxxxxxx & xxxxxxx xxxxx xxxxxxxxx xxxxxx & xxxxxxxxx xxxxxxx xxxxxx xxxxx & xxxxxx xxxxx xxxx & xxxxxx xxxxx xxxx \\
\midrule
\lipsum[1][1-3] & yyy yyy yyyy & zzzzzz & 1 & 2 \\\addlinespace
\lipsum[1][4-6] & yyyy yyyyyy & zz zzzz & 3 & 4 \\\bottomrule
\end{tabulary}
\end{table}
\end{document}
答案2
我认为这可以是一个想法,tabularx
但仍需要根据您的具体文档设置和表格中的文本调整一些细节。
P
您需要根据您的要求设置列的宽度 。(P
定义为居中p
)X
类型也将适合宽度。
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{tabularx}
\usepackage{lipsum}
\usepackage{booktabs} % for better table control
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} % centered p
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabularx}{\linewidth}{XP{2.5cm}P{2cm}P{1cm}P{1cm}}
\toprule
xxxxxxxx & xxxxxxx xxxxx xxxxxxxxx xxxxxx & xxxxxxxxx xxxxxxx xxxxxx xxxxx & xxxxxx xxxxx xxxx & xxxxxx xxxxx xxxx \\
\midrule
\lipsum[1][1-3] & yyyyyyyyyy & zzzzzz & 1 & 2 \\
\lipsum[1][1-3] & yyyyyyyyyy & zzzzzz & 3 & 4 \\
\lipsum[1][1-3] & yyyyyyyyyy & zzzzzz & 1 & 2 \\
\lipsum[1][1-3] & yyyyyyyyyy & zzzzzz & 3 & 4 \\
\bottomrule
\end{tabularx}
\caption{test}
\label{test}
\end{table}
\end{document}
产生
答案3
这是一个使用tabularx
环境并X
在前三列中使用允许自动换行的列类型解决方案。目前,前三列的宽度相同。如果您需要不同的方法,请告知。
\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx,ragged2e}
\newcolumntype{C}{>{\Centering}X} % centered version of X column type
\newcolumntype{L}{>{\RaggedRight}X} % ragged-right version of X col. type
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{} L CC cc @{}}
\toprule
8 characters & 27 characters & 27 characters & 15 characters & 15 characters \\
\midrule
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 1 & 2 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 3 & 4 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 1 & 2 \\
longish text (150 characters) & short text (10 characters) & short text (6 characters) & 3 & 4 \\
\bottomrule
\end{tabularx}
\caption{test} \label{tbl:test}
\end{table}
\end{document}