Seite 1 von 1

[tabu] \newline ignoriert inneren Rand

Verfasst: Mo 13. Jun 2016, 10:46
von MoonKid
Bild

Hier sieht man in Zeile 3 der zweiten Spalte einen einzeiligen Zelleninhalt mit adäquatem Leerraum über und unter den Buchstaben.
In Zeile 1 und 2 der gleichen Spalte sieht man, dass der Leerraum unter dem Text nicht vorhanden ist, wenn der Inhalt mehrzeilig ist.

Mit \tabulinesep könnte ich das aufhübschen. Nach meinem Verstädnis wäre das aber nur ein workaround. Ich versuche zu verstehen, warum das überhaupt so passiert.

Dazu der Code.
\documentclass{article}
\usepackage{xltxtra}

\usepackage{tabu}

\begin{document}
\newcommand{\mymacro}[2]{%
    \texttt{#1}\linebreak
    #2%
}
\noindent
\begin{tabu*} spread \textwidth {X|X|X}
    \everyrow{\tabucline{-}}
    1&i\mymacro{Eins}{Zweig}&a\\
    2&i\mymacro{zwei}{xxxx}&b\\
    3&zwei&c\\
\end{tabu*}
\end{document}

Verfasst: Mo 13. Jun 2016, 11:02
von MoonKid
Nebenbei viel mir das geniale makecell in die Hände, welches das Problem an sich lösen würde.

Im Übringen findet sich mein Problem, bei vielen Beispielen im Netz, die erklären wie man mehrzeilige Zelleninhalte generiert - nicht nur mi tabu.

Aber zum Verständnis, würde ich einfach gerne wissen, warum das so passiert?

Verfasst: Mo 13. Jun 2016, 11:23
von DADABBI
Das ist einer der bekannten Bugs in tabu, für das der Support bekanntlich eingestellt ist. Er kommt daher, dass das Paket in diesem Fall die tatsächliche Höhe/Tiefe der Box für die Platzierung des Inhalts verwendet. Man kann diese mit einer unsichtbaren Stütze \strut am Ende des Inhalts korrigieren:
\newcommand{\mymacro}[2]{%
    \texttt{#1}\linebreak
    #2\unskip\strut
}

Verfasst: Mo 13. Jun 2016, 12:19
von MoonKid
Danke. Hab ich gleich mal für die Zukunft "notiert".