\shortstack com linha vazia

\shortstack com linha vazia

Como posso forçar \shortstacka preservação de uma linha vazia? Por exemplo,

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

fornecevisualização

. Mas eu gostaria de manter a linha vazia no meio.

Responder1

\shortstacké realmente inadequado para empilhar caracteres uniformemente, pois leva em consideração apenas a altura e a profundidade do personagem, adicionando apenas 3 pontos entre eles.

Veja o resultado com

\documentclass{article}

\begin{document}

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

\end{document}

insira a descrição da imagem aqui

O resultado certamente não é o que você esperava. O comando só é útil quando seu argumento consiste apenas em letras maiúsculas (sem diacríticos).

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

insira a descrição da imagem aqui

E agora seu exemplo:

\documentclass{article}

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

\begin{document}

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

\end{document}

insira a descrição da imagem aqui

Responder2

Para que as coisas se alinhem corretamente, use a \vphantom, já que as alturas das linhas são relativas à entrada:

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{stackengine}

\begin{document}

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

\end{document}

informação relacionada