PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : addmargin in Tabelle erzeugt vertikalen Abstand



rstuby
07-08-2014, 18:47
Hallo!
Mein Text hat Passagen, wo viel eingerückt werden muss. Zum größten Teil innerhalb von Tabellen.
Dazu wollte ich mir einen eigenen Befehl verfassen. Zunächst wollte ich einfach mit \hspace* vorn Abstand hinzufügen, aber das geht nicht, da die Textteile oft auch zweizeilig sind, und auch wenn man mehrere Zeilen zusammenfassen kann, ist das praktisch.
Daher wollte ich addmargin benutzen. Aber wenn so eine Passage am Anfang oder Ende der Tabellenzeile zu stehen kommt, erzeugt sie einen zusätzlichen Abstand. Besonders groß ist dieser am Ende. Um das zu verdeutlichen, habe ich die Tabelle hier mit Linien versehen.

Das passiert unabhängig davon, ob ich einen selbstdefinierten Befehl nutze oder direkt addmargin.
Was kann ich machen, um Text einzurücken, auch innerhalb von Tabellen, ohne dass zusätzliche vertikale Abstände entstehen?


\documentclass{scrbook}
\setlength{\parindent}{0pt}
\usepackage[T1,]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}


\newcommand{\tn}[1]{\begin{addmargin}[6em]{0em}#1\end{addmargin}}

\begin{document}

\begin{tabular}{|p{.6\textwidth}|}
\hline
blablabla text text text
\tn{bla}\cr\hline
blupp text text text text

blablabla text text text\cr\hline
\tn{blabla eingerückt

blupp}

noch ein Versuch\cr\hline
\end{tabular}


\tn{bla}

blupp text text text text


\begin{tabular}{|p{.6\textwidth}|}
blablabla text text text
\begin{addmargin}{6em}
bla
\end{addmargin}\cr
blupp text text text text

blablabla text text text\cr
\end{tabular}


\tn{bla}

blupp text text text text
\end{document}

esdd
07-08-2014, 23:21
Ich glaube nicht, dass addmargin für eine Verwendung innerhalb von Tabellen gedacht ist. Aber du kannst doch
\hmargin*{6em} gefolgt von einer parbox mit der Option t (=top) verwenden:


\documentclass{scrbook}
\setlength{\parindent}{0pt}
\usepackage[T1,]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}


\newcommand{\tn}[1]{%
\hspace*{6em}\parbox[t]{\dimexpr\linewidth-6em}{\strut#1\strut}%
}

\begin{document}

\begin{tabular}{|p{.6\textwidth}|}
\hline
blablabla text text text\par
\tn{bla}\cr
\hline
blupp text text text text\par
blablabla text text text\cr
\hline
\tn{blabla eingerückt\par
blupp}

noch ein Versuch\cr\hline
\end{tabular}

\tn{bla}
\end{document}

Gruß
Elke

rstuby
08-08-2014, 06:41
Danke, Elke, das scheint ganz wunderbar zu funktionieren! Ich dachte irgendwie, das Berechnen der Breite würde schwieriger, habe nicht an \linewidth gedacht und dass das innerhalb von Tabellenspalten die entsprechende Textbreite der einzelnen Spalte bezeichnet. Und dass es vertikale Positionierungsoptionen für Parboxen gibt, wusste ich auch nicht, Gleich noch mal durchforsten, ob ich da noch die ein oder andere Minipage durch etwas Einfacheres ersetzen kann.