Tabellenbreite exakt auf Zeilenbreite einstellen

Tabellenbreite exakt auf Zeilenbreite einstellen

Ich versuche, eine Tabelle mit genau der gleichen Breite wie der umgebende Text zu erstellen.

Ich würde erwarten, dass der Befehl \resizebox{\linewidth}{!}{..table..}funktioniert. Die Tabellenbreite ist jedoch immer noch zu klein.

Bildbeschreibung hier eingeben

\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}

Antwort1

Ich denke, Sie haben zwei gute und eine (wahrscheinlich) schreckliche Möglichkeit:

  • Verwenden Sie eine tabular*Umgebung,

  • Verwenden Sie eine tabularxUmgebung (oder deren nahen Verwandten tabulary)

  • Verwenden Sie die Basisumgebung tabularund skalieren Sie sie mithilfe von nach oben (oder unten) \resizebox.

Die Ergebnisse sind wie folgt (die erste horizontale Linie dient nur zur Veranschaulichung der Breite des Textblocks; dieKörperder vier Tabellen sind identisch, d.h. sie unterscheiden sich "nur" im Layout):

Bildbeschreibung hier eingeben

Können Sie erklären, warum ich die verwendete Methode \resizeboxfür schlichtweg schrecklich halte?

\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}

verwandte Informationen