Größen Stimmen nicht

Tabellen und Grafiken erstellen und anordnen


onesunmirror
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 27. Sep 2018, 12:34

Größen Stimmen nicht

Beitrag von onesunmirror »

Hallo

ich versuche derzeit eine Tabelle zu erstellen, die 0.5 cm breite und 0.5 cm hohe Zellen hat. Dabei bin ich auf das Problem gestoßen, dass die Größenangaben nicht stimmen.

Wenn ich eine Tabelle mit dem Befehl
\begin{tabular}{|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|}
0 & 1 & 2 & 3 & 4 \\\hline
\end{tabular}
erzeuge, dann sind die Spalten nicht 0.5 cm breite. Auch habe ich versucht, die Größe einer Tabelle mit einer resizebox zu erzwingen. Dennoch stimmen die Maße nicht überein. Wenn die Resizebox 17 cm breit sein soll, ist sie nur 16.4 cm breit. Und eine 0.5 cm hohe Vorgabe erzeugt im Dokument 0.7 cm hohe Tabelle.

Ich hoffe, mir kann jemand erklären, was ich da falsch mache.

Ich erzeuge meine Latex-Dokument unter Linux mit dem Befehl pdflatex.

Mit folgendem Code arbeite ich:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{verbatim}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage{array}  
\geometry{a4paper, top=2cm, left=2cm, right=2cm, bottom=2cm, headsep=1cm}

\begin{document}
\centerline{{\huge Überschriftt}} 
\vspace{1cm}
\noindent Hier ist einiger Text


\vspace{1cm}
\noindent\begin{tabular}{|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|}
\hline
0 & 1 & 2 & 3 & 4 \\\hline
\end{tabular}


\vspace{1cm}
\noindent\begin{tabular}{|*{34}{p{0.5cm}|}}
\hline
0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3    \\\hline
\end{tabular}


\vspace{1cm}
\noindent\resizebox{17cm}{0.5cm} {\begin{tabular}{|*{34}{c|}}
\hline
0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3    \\\hline
\end{tabular}}
\end{document}

Gast

Beitrag von Gast »

Die Größe des Textbereiches der Spalten sollte schon stimmen (ich habs jetzt nicht ausgedruckt und nachgemessen).

Du musst bei der Berechnung der Breite Deiner Tabelle aber neben der Textbreite der Spalten noch zwei Dinge bedenken: (1) Damit die Zellen nicht aufeinander sitzen, fügt LaTeX den Abstand \tabcolsep vor und nach jeder Spalte ein (also ist zwischen zwei Spalten 2\tabcolsep Platz, in Deinem Beispiel ist \tabcolsep 6pt), (2) die vertikalen Linien zwischen den Spalten haben auch eine Breite.

Das kann sich in einem Beispiel mit 34 Spalten schon zu nicht zu vernachlässigenden Größen summieren.

onesunmirror
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 27. Sep 2018, 12:34

Beitrag von onesunmirror »

Danke für die Antwort. Ich habe mir schon gedacht, dass LaTeX zur Formatierungszwecke noch weitere Größen einfügt. Ich dachte nur, wenn ich die Tabelle mit einer Resizebox auf 17 cm zwinge, die Tabelle dann auch 17 cm breit wird.

Im Anhang ist die PDF von obigen Code. Man sieht deutlich, dass die Zellen der ersten Tabelle deutlich größer als 0.5 cm sind. Bei der dritten Tabelle sind die fast 0.5 cm. Leider auch nicht genau, wie erhofft.
Dateianhänge
simpleDoc.pdf
(21.73 KiB) 225-mal heruntergeladen

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Ich empfehle *nicht* \resizebox zu verwenden. Das führt zu uneinheitlichen Schriftgrößen.

Aber zum Verständnis: Deine Tabelle ist mit \resizebox 17cm breit. Sie ist aber ingesamt höher als 0.5cm weil \resizebox die Tiefe der Tabelle ignoriert. Du brauchst die *-Variante:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{verbatim}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage{array}
\geometry{a4paper, top=2cm, left=2cm, right=2cm, bottom=2cm, headsep=1cm}
\begin{document}

\noindent \rule{17cm}{0.5cm}

\noindent\resizebox*{17cm}{0.5cm} {\begin{tabular}{|*{34}{c|}}
\hline
0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3    \\\hline
\end{tabular}}
\end{document} 

onesunmirror
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 27. Sep 2018, 12:34

Beitrag von onesunmirror »

u_fischer hat geschrieben: Du brauchst die *-Variante:
Danke, diese Variante hat mir schon viel weiter geholfen. Jetzt fehlt mir nurnoch, dass bei einer Resizebox von 17 cm, die Tabelle nur 16.4 cm breit ist. Kann das daran liegen, dass zwischen der Tabelle und der Resizebox ein Abstand herrscht? Leider finde ich keine Möglichkeit, die Resizebox sichtbar zu machen.

Ich habe es mit
\setlength{\tabcolsep}{0pt}
versucht. Das ändert aber nix an der Gesamtlänge der Tabelle, sondern nur am Erscheinungsbild, siehe Anhang.
Dateianhänge
simpleDoc.pdf
(33.23 KiB) 238-mal heruntergeladen

Antworten