空行のある \shortstack

空行のある \shortstack

空行を強制的に保存するにはどうすればよいでしょうか\shortstack? たとえば、

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

提供するプレビュー

ただし、中央の空行は残しておきたいと思います。

答え1

\shortstack文字の高さと奥行きのみを考慮し、文字間に 3pt を追加するだけなので、文字を均一に積み重ねるのにはまったく適していません。

結果を見てみましょう

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

関連情報