我正在嘗試創建一個與周圍文字寬度完全相同的表格。
我希望該命令\resizebox{\linewidth}{!}{..table..}
能夠完成這項工作。然而,表格寬度仍然太小。
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\setlength{\parindent}{0pt}
\usepackage[
top=0.600cm,
bottom=0.600cm,
left=0.600cm,
right=0.600cm]
{geometry}
\begin{document}
bla blub blaaa bla blub blaaabla blub blaaa bla blub blaaa bla blub blaaa bla blub blaaaa
bla blub blaaa bla blub blaaabla blub blaaa bla blub blaaa bla blub blaaa bla blub blaaaa
bla blub blaaa bla blub blaaabla blub blaaa bla blub blaaa bla blub blaaa bla blub blaaaa
bla blub blaaa bla blub blaaabla blub blaaa bla blub blaaa bla blub blaaa bla blub
\resizebox{\linewidth}{!}{
\begin{tabular}{|l|l|l|l|}
\hline
test entry & test entry & test entry & test entry \\
test entry & test entry & test entry & test entry \\
test entry & test entry & test entry & test entry \\
\hline
\end{tabular}
}
\end{document}
答案1
我認為你有兩個好的選擇和一個(可能)可怕的選擇:
使用
tabular*
環境,使用
tabularx
環境(或其近親,tabulary
)使用基本
tabular
環境並使用 放大(或縮小)它\resizebox
。
結果如下(第一條水平線只是為了說明文字區塊的寬度;身體四個表中的一個是相同的,即它們“僅”在佈局上有所不同):
你能告訴我為什麼我認為這種方法\resizebox
非常可怕嗎?
\documentclass{scrartcl}
\usepackage{graphicx} % for '\resizebox` macro
\usepackage{tabularx} % for 'tabularx' environment
\setlength{\parindent}{0pt}
\usepackage[margin=0.6cm]{geometry}
\newcommand\TestTable{% define body of test table
\hline
test entry & test entry & test entry & test entry \\
test entry & test entry & test entry & test entry \\
test entry & test entry & test entry & test entry \\
\hline}
\begin{document}
\hrule
\subsubsection*{Unscaled}
\begin{tabular}{llll}
\TestTable
\end{tabular}
\subsubsection*{Using \texttt{tabular*}}
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}lll}
\TestTable
\end{tabular*}
\subsubsection*{Using \texttt{tabularx}}
\begin{tabularx}{\textwidth}{XXXX}
\TestTable
\end{tabularx}
\subsubsection*{Scaled with \texttt{\textbackslash resizebox}}
\resizebox{\linewidth}{!}{%
\begin{tabular}{llll}
\TestTable
\end{tabular}}
\end{document}