我试图在某些文本的右侧和页面的末尾画一条水平线,但由于文本长度是可变的,我选择使用\hrulefill
而不是\rule
,以便自动计算所画水平线的长度。
例如,下面的 MWE 1 显示了默认值的\hrulefill
工作方式。
微波能量吸收 1
\documentclass{article}
\begin{document}
Hi \hrulefill
Hello \hrulefill
\end{document}
随后,我想自定义它的粗细,并找到了一些代码来实现。具体来说,下面的 MWE 2 将线条的粗细从默认的 0.4 pt 更改为 1.5 pt。
微波辐射计 2
\documentclass{article}
\renewcommand{\hrulefill}{%
\leavevmode\leaders\hrule height 1.5 pt\hfill\kern 0 pt}
\begin{document}
Hi \hrulefill
Hello \hrulefill
\end{document}
最后,我希望线条从单词的中心开始绘制,即略高于上述 MWE 产生的线条。因此,我想知道如何进一步调整代码\renewcommand
以包括线条绘制的“高度”。
我注意到有人问过类似的问题,并且给出了一些解决方案这里,但我希望找到一个简单地调整\renewcommand
上述代码的解决方案!
任何直观的解释或建议都将不胜感激!
答案1
规则还有第三个字段(连同它们的宽度和高度),即深度。负深度将提高规则。具体来说,深度为d
、高度为 的规则h
似乎会降低d
,宽度为h+d
。因此,您可以将定义更改为:
\renewcommand{\hrulefill}[2][0pt]{%
\leavevmode\leaders\hrule height \dimexpr#1+#2\relax depth -#1\hfill\kern0pt}
这将创建\hrulefill
接受其宽度作为其强制参数并将其提升量作为其可选参数的实例。