Установка ширины таблицы точно по ширине линии

Установка ширины таблицы точно по ширине линии

Я пытаюсь создать таблицу точно такой же ширины, как и окружающий ее текст.

Я ожидал, что команда \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}

Связанный контент