Anzeige:
Ergebnis 1 bis 3 von 3

Thema: addmargin in Tabelle erzeugt vertikalen Abstand

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468

    addmargin in Tabelle erzeugt vertikalen Abstand

    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?

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

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    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:

    Code:
    \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

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    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.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •