答案1
您有几个选择。最简单的是,如果您确实想使用tabularx
,则必须使用至少一个“X”列。例如:
\documentclass{article}
\usepackage{tabularx}
\usepackage{pdflscape}
\begin{document}
\small
\begin{tabularx}{1.33\textwidth}{|c|c|c|X|}
\hline
Date & Type & Color & Notes \\
\hline
\end{tabularx}
\end{document}
答案2
- 目前尚不清楚,您的表格内容是什么。
- 每个表格的单元格是否只有一行文本?如果是这样,那么 tabular` 将解决您的问题:
\documentclass{article}
\usepackage{tabularx}
\usepackage{pdflscape}
\begin{document}
\small
\begin{tabular}{|c|c|c|c|}
\hline
Date & Type & Color & Notes \\
\hline
\end{tabular}
\end{document}
- 在某些情况下,例如,最后一列单元格的内容是多行文本,那么使用
tabularx
可能是方便的解决方案。在这种情况下,至少有一列必须是X
(或从中派生,如下例所示)类型:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{pdflscape}
\usepackage{lipsum}
\begin{document}
\small
\begin{tabularx}{\linewidth}{|c|c|c|X|}
\hline
Date & Type & Color & Notes \\
\hline
today & Unknown & b/w & \lipsum[66] \\
\hline
\end{tabularx}
\end{document}
(观察确定表格宽度的区别,\linewidth
它总是适应表格的可用空间;无论它是纵向还是横向)
- 您可以考虑使用
tabularray
,这是一个功能强大的新 LaTeX-3 包,用于编写表格。使用它,第二个示例(略微重新设计)可以是:
\documentclass{article}
\usepackage{tabularray}
\usepackage{lipsum}
\begin{document}
\begin{table}[ht]
\begin{tblr}{hline{1,2,Z} = 0.6pt, hline{3-Y}=solid,
vlines,
colspec = {c c c X[j]},
row{1} = {font=\bfseries}
}
Date & Type & Color & Notes \\
yesterday& Unknown & b/w & \lipsum[11] \\
today & Unknown & b/w & \lipsum[66] \\
\end{tblr}
\end{table}
\end{document}
(如您所见,使用tabularray
包时不需要指定表格宽度,如果需要,其宽度等于可用空间)