Seite 1 von 1

Abstand zu \hline

Verfasst: Sa 20. Jun 2015, 19:13
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

Verfasst: So 21. Jun 2015, 01:36
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

Danke.

Verfasst: Do 25. Jun 2015, 11:41
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

Verfasst: Do 25. Jun 2015, 13:38
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).