\shortstack mit leerer Zeile

\shortstack mit leerer Zeile

Wie kann ich \shortstackdie Beibehaltung einer leeren Zeile erzwingen? Beispiel:

\shortstack[c]{hoge \\ foo \\ bar}
\shortstack[c]{hoge \\  \\ bar}

bietetVorschau

. Die leere Zeile in der Mitte möchte ich aber behalten.

Antwort1

\shortstackist wirklich ungeeignet für das gleichmäßige Stapeln von Zeichen, da es nur die Höhe und Tiefe des Zeichens berücksichtigt und dazwischen nur 3pt hinzufügt.

Betrachten Sie das Ergebnis mit

\documentclass{article}

\begin{document}

\shortstack{a\\c\\e}
\shortstack{g\\y\\q}
\shortstack{fg\\ly\\pt}
\shortstack{l\\a\\f}

\end{document}

Bildbeschreibung hier eingeben

Das Ergebnis ist sicherlich nicht das, was Sie erwartet haben. Der Befehl ist nur dann sinnvoll, wenn sein Argument nur aus Großbuchstaben besteht (ohne diakritische Zeichen).

\documentclass{article}

\newcommand{\bettershortstack}[2][c]{%
  \begin{tabular}[b]{@{}#1@{}}#2\end{tabular}%
}

\begin{document}

\bettershortstack{a\\c\\e}
\bettershortstack{g\\y\\q}
\bettershortstack{fg\\ly\\pt}
\bettershortstack{l\\a\\f}

\end{document}

Bildbeschreibung hier eingeben

Und nun Ihr Beispiel:

\documentclass{article}

\newcommand{\bettershortstack}[2][c]{%
  \begin{tabular}[b]{@{}#1@{}}#2\end{tabular}%
}

\begin{document}

\bettershortstack{hoge \\ foo \\ bar}
\bettershortstack{hoge \\  \\ bar}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Damit alles richtig ausgerichtet wird, verwenden Sie ein \vphantom, da die Zeilenhöhen relativ zum Eintrag sind:

Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{stackengine}

\begin{document}

\shortstack[c]{hoge \\ foo \\ bar}
\shortstack[c]{hoge \\  \\ bar}
\shortstack[c]{hoge \\ \vphantom{foo} \\ bar}

\end{document}

verwandte Informationen