\shortstack с пустой строкой

\shortstack с пустой строкой

Как принудительно \shortstackсохранить пустую строку? Например,

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

обеспечиваетпредварительный просмотр

. Но я бы хотел оставить пустую строку посередине.

решение1

\shortstackсовершенно не подходит для равномерного размещения символов, поскольку учитывает только высоту и глубину символа, добавляя всего 3 пт между ними.

Посмотрите на результат с помощью

\documentclass{article}

\begin{document}

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

\end{document}

введите описание изображения здесь

Результат, конечно, не тот, что вы ожидали. Команда полезна только тогда, когда ее аргумент состоит только из заглавных букв (без диакритических знаков).

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

введите описание изображения здесь

А теперь ваш пример:

\documentclass{article}

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

\begin{document}

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

\end{document}

введите описание изображения здесь

решение2

Чтобы все было выстроено правильно, используйте \vphantom, поскольку высота строк указывается относительно записи:

введите описание изображения здесь

\documentclass{article}

\usepackage{stackengine}

\begin{document}

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

\end{document}

Связанный контент