\hrulefill 垂直对齐线,如同虚线

\hrulefill 垂直对齐线,如同虚线

\hrulefill将文本底部的线条垂直对齐。\xrfill包装中也有xhfill将线条凸起的,但对我来说凸起太多了。

我正在寻找一个与 类似的命令\hrulefill,但填充线就像拉长的破折号,因此垂直对齐方式与破折号相同。

编辑

需要澄清的是:我不想猜测线条的粗细,也不想猜测线条超出基线的量。我想要一个可以产生拉伸虚线的命令,与当前字体大小等无关。

答案1

你可以试试:

\def\myrulefillat{.65ex}
\def\myrulefill{\leaders \hrule height\myrulefillat 
                                depth-\dimexpr \myrulefillat-.3pt\relax \hfil}

test:

\hbox to3cm{a --\myrulefill -- b}

此规则的高度由\myrulefillat宏指定,厚度为 .3pt。您可以设置其他值。

答案2

由于规则是相对于基线绘制的,因此提高基线也会提高规则。

由于命令语法很长而且非常低级,因此将所有技术细节存储在具有短名称的宏中很有用,并且可以节省打字时间。

使用这个答案(David Carlisle + flow 的评论),在不使用盒子或 lua 的情况下提高基线,不使用盒子是否可以垂直移动基线?

给出:

\special在 xelatex 中

赛莱特

平均能量损失

\documentclass{article}
\newcommand\hrf{\special{pdf:literal 1 0 0 1 0 2 cm}\hrulefill\special{pdf:literal 1 0 0 1 0 -2 cm}}

\begin{document}
\textbackslash special with xelatex

no change x\hrulefill x

raised x\special{pdf:literal 1 0 0 1 0 2 cm}\hrulefill \special{pdf:literal 1 0 0 1 0 -2 cm}x

macro x\hrf x


\end{document}

或者\pdfliteral在 pdflatex 中

pdflatex

平均能量损失

\documentclass{article}
\newcommand\hrfp{\pdfliteral{ 1 0  0 1 0 2 cm}\hrulefill\pdfliteral{ 1 0  0 1 0 -2 cm}}

\begin{document}
\textbackslash pdfliteral with pdflatex

no change x\hrulefill x

raised x\pdfliteral{ 1 0  0 1 0 2 cm}\hrulefill\pdfliteral{ 1 0  0 1 0 -2 cm}x

macro x\hrfp x


\end{document}

相关内容