\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 中
平均能量损失
\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}