Abstand zu \hline

Tabellen und Grafiken erstellen und anordnen


dako5004
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 90
Registriert: Fr 24. Apr 2009, 04:05
Wohnort: Lebach

Abstand zu \hline

Beitrag von dako5004 »

Hallo!

Für eine Tabelle, die ich wie folgt anfertigen muss, verhält sich \hline nicht so, wie ich das gerne hätte. Daher suche ich nach einer Lösung.

(Ich weiß, die Tabelle sieht beschissen aus, aber ich muss sie dennoch so machen und möchte wirklich keine Diskussion über das Für und Wider entfachen. Ja, sie sieht wirklich beschissen aus, sie muss aber so.)

Hier ein Minimalbeispiel:
\documentclass[DIV=0,final]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{Ragged2e}
\usepackage{calc}
\begin{document}
\begin{tabularx}{.25\textwidth+.15\textwidth+.6\textwidth}{>{\centering}m{.25\textwidth}|>{\RaggedRight}m{.15\textwidth}|>{\RaggedRight\arraybackslash}m{.6\textwidth-4\columnsep}}
\hline
\fbox{\parbox{.25\textwidth}{Wieder ein Text und noch mehr Text}} & Text & Noch ein Text\\\hline
\end{tabularx}
\end{document}
Die \fbox um die \parbox habe ich nur genommen, um das Problem zu verdeutlichen. Tatsächlich wird hier eine Grafik mit \includegraphics eingebunden, das Problem ist dasselbe:

Die Grafik beginnt direkt unterhalb der oberen \hline. Genau das möchte ich verhindern, es soll also ein Abstand von ein oder zwei Millimetern zwischen \fbox (Grafik) und der \hline sein.
Das booktabs-Paket mit \midrule scheidet leider aus. Zwar ist der Abstand zwischen horizontaler Linie und \fbox dann schön, aber \midrule durchtrennt die vertikalen Linien:
\documentclass[DIV=0,final]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{Ragged2e}
\usepackage{calc}
\begin{document}
\begin{tabularx}{.25\textwidth+.15\textwidth+.6\textwidth}{>{\centering}m{.25\textwidth}|>{\RaggedRight}m{.15\textwidth}|>{\RaggedRight\arraybackslash}m{.6\textwidth-4\columnsep}}
\toprule
\fbox{\parbox{.25\textwidth}{Wieder ein Text und noch mehr Text}} & Text & Noch ein Text\\\midrule
\fbox{\parbox{.25\textwidth}{Wieder ein Text und noch mehr Text}} & Text & Noch ein Text\\\bottomrule
\end{tabularx}
\end{document}
Hat hier jemand einen Lösungsansatz?

Besten Dank im Voraus und Gruß
Daniel
Ich weiß, dass ich nichts weiß. (Sokrates)

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

In Deinen Beispielen ist ein Tippfehler: es muss ragged2e heißen. Außerdem ist Deine Tabelle um 2\tabcolsep breiter als \textwidth und vor ihr wird der Absatzeinzug eingefügt. Letzterer lässt sich mit \noindent entfernen. Bei Verwendung von tabularx ist es immer sinnvoll, wenigstens eine X Spalte zu verwenden.

Für einen Abstand oberhalb eines eingefügten Bildes lässt sich das erste optionale Argument von \raisebox verwenden. Hier ist ein Vorschlag dazu, wobei mir nicht klar ist, wie die vertikale Ausrichtung der Spalten sein soll:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{calc}

\usepackage{mwe}% für example-image
\begin{document}
\noindent\begin{tabularx}{\textwidth}{>{\centering}m{.25\textwidth}%
  |>{\RaggedRight}p{.15\textwidth}|>{\RaggedRight\arraybackslash}X}
\hline
\raisebox{0pt}[\height+\dp\strutbox]{%
    \includegraphics[width=\linewidth]{example-image}} 
  & Text & Noch ein Text\\\hline
\end{tabularx}
\end{document}
Gruß
Elke

Bild
Dateianhänge
gl_rbtab.png
gl_rbtab.png (7.15 KiB) 2706 mal betrachtet

dako5004
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 90
Registriert: Fr 24. Apr 2009, 04:05
Wohnort: Lebach

Danke.

Beitrag von dako5004 »

Besten Dank!

Ich habe das mit einem eigenen Befehl gelöst und vor und hinter das Bild jeweils ein vspace{} gesetzt. Und danke für den Hinweis mit den 2\tabcolsep.
Dass ich ein X in einer tabularx haben sollte, ist mir klar, in diesem Fall aber nicht machbar.

Danke nochmal und Gruß
Daniel
Ich weiß, dass ich nichts weiß. (Sokrates)

Besserwisser

Beitrag von Besserwisser »

Ohne X-Spalte brauchst du auch keine tabularx, sondern eines tabular genügt. Und wenn du tatsächlich die gesamte Textbreite ausfüllen will, ist schwer einzusehen, warum man nicht min. eine p-, m oder b-Spalte durch eine X-Spalte ersetzen können sollte. Zur internen Verwendung von m statt p für die X-Spalten siehe einfach die [d]tabularx[/d]-Anleitung (unten auf Seite 2).

Antworten