我对 Tex 还很陌生,但我做了一些教程,但现在我陷入了困境,因为谷歌搜索已经没有帮助了。
我的代码:
\bgroup
\def\arraystretch{1.75}
\begin{tabularx}{\textwidth}{ | l | @{\extracolsep{\fill}} l | l | l | l | l |}
\hline
\textbf{col 1} & & col 3 & col 4 & & col 6
\\
\hline
some stuff & & & & other stuff &
\\
\hline
text thats pretty & & & & important &
\\
\hline
\multicolumn{5}{r|}{combined } & \\ \cline{6-6}
\end{tabularx}
\egroup
我的问题是这样的:
我不知道该如何修复它。我习惯使用 HTML 的简单性,即使用“width: 100%;”,然后列会自动调整大小。我怎样才能在 Tex 中获得类似的效果?
答案1
您使用的是tabularx
环境,但未包含任何可扩展的列。因此tabularx
尝试将表格填充到的宽度\textwidth
,但找不到任何可扩展的列。
这tabularx
赋予你创造的能力可扩展列。它们在列声明中用 标记X
。这些列会扩展以填充由环境指定的宽度提供的可用空间。扩展的列被视为\parbox
扩展至的宽度。
因此应该选择一个可扩展的列:
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{tabularx}
\pagestyle{empty}
\begin{document}
\noindent
\bgroup
\def\arraystretch{1.75}%
\begin{tabularx}{\textwidth}{ | l | @{\extracolsep{\fill}} l | l | l | l | X |}
\hline
\textbf{col 1} & & col 3 & col 4 & & col 6 \\\hline
some stuff & & & & other stuff & \\\hline
text thats pretty & & & & important & \\\cline{6-6}
\multicolumn{5}{r|}{combined } & \\\cline{6-6}
\end{tabularx}
\egroup
\end{document}
您不仅限于一个可扩展列。您可以根据需要指定任意多个。例如,
\begin{tabularx}{\textwidth}{ | l | @{\extracolsep{\fill}} X | X | X | X | X |}
您将需要将其\noindent
放在组的前面,以防止出现任何段落的缩进。
根据 @egreg 的评论,此表的内容似乎不值得填满整个页面宽度。以下内容似乎应该适合您:
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{tabularx}
\pagestyle{empty}
\begin{document}
\noindent
\hspace*{\fill}
\bgroup
\def\arraystretch{1.75}%
\begin{tabular}{ | l | l | l | l | l | l |}
\hline
\textbf{col 1} & & col 3 & col 4 & & col 6 \\\hline
some stuff & & & & other stuff & \\\hline
text thats pretty & & & & important & \\\cline{6-6}
\multicolumn{5}{r|}{combined } & \\\cline{6-6}
\end{tabular}
\egroup
\hspace*{\fill}
\end{document}