我想将文本在 \fbox 中水平居中:
\fbox{\vbox{\hbox{Words,}\hbox{words,}\hbox{and only words again}}}
我该如何做呢?
答案1
为堆栈量身定制。我在左侧显示了一个普通堆栈,在中间显示了一个底层堆栈,在右侧显示了一个中心堆栈。此外,左侧堆栈使用空格(默认)作为行尾分隔符,而在右侧 2 个堆栈中,我已将行尾 (EOL) 分隔符重置为\cr
。
\documentclass{article}
\usepackage{stackengine}
\begin{document}
\fbox{\Longstack{Words, words, {and only words again}}}
or
\setstackEOL{\cr}%
\fbox{\Longunderstack{Words,\cr words,\cr and only words again}}
or
\fbox{\Centerstack{Words,\cr words,\cr and only words again}}
\end{document}
行间基线跳过可以用 重置\setstackgap{L}{<length>}
。还要注意,中心堆栈会\strut
向每行添加一个,这样垂直居中就不会受到降部的影响。也可以通过调用 使支撑成为其他堆栈的默认设置\strutlongstacks{T}
。
答案2
用一个tabular
。
\documentclass{article}
\begin{document}
\fbox{%
\begin{tabular}{@{}c@{}}
words, \\
words,\\
and only words again
\end{tabular}%
}
\begin{tabular}{|@{\hspace{\dimexpr\fboxsep+0.5\arrayrulewidth}}c@{\hspace{\dimexpr\fboxsep+0.5\arrayrulewidth}}|}\hline
words, \\
words,\\
and only words again \\\hline
\end{tabular}%
\end{document}