
我對 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}