我想要一些文本左右两侧各有一条水平线,宽度最多为一行。这些行应大小相等,以便填充剩余的水平空间(例如\hfill
a 中的两个 s \hbox
)。
如果不清楚我想要什么,此页面顶部有一排按钮标有问题 | 标签 | 用户 | 徽章 | 未回答。那排按钮上方是两条水平线,填充了符号周围的剩余空间。这就是我想在 LaTeX 中实现的。
答案1
您可以使用 添加线条\hrulefill
,然后使用 创建线条\makebox[\linewidth]
。垂直对齐有点棘手。我不知道如何提高填充物,所以一种方法是先降低文本,然后再使用线条将其提高。
\documentclass{article}
\newcommand*\ruleline[1]{\par\noindent\raisebox{.8ex}{\makebox[\linewidth]{\hrulefill\hspace{1ex}\raisebox{-.8ex}{#1}\hspace{1ex}\hrulefill}}}
\begin{document}
\hrule
Before\\
\ruleline{TestXg}
After
\end{document}
结果:
答案2
\documentclass{minimal}
\def\headline#1{\hbox to \hsize{\hrulefill\quad\lower.3em\hbox{#1}\quad\hrulefill}}
\begin{document}
\headline{Centered \ddag{} Symbol}
\end{document}
诚然,这是一个 TeX 解决方案,但我认为它很合适,因为 TeX 在这方面真的很出色。如果您在标题后需要一些垂直空间,您可以在定义\medskip
的最后一个右括号前添加一个右括号\headline
。再想想:.3em
应该使用 更好地表达维度ex
。