Я пытаюсь создать таблицу точно такой же ширины, как и окружающий ее текст.
Я ожидал, что команда \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}