2010-03-31 159 views
11

为什么下面的命令不会产生填充空格的水平规则直到行尾?LaTeX 规则填充行

Hello \rule[0.5em]{\fill}{1pt} 

这是我的理解,这应该打印文本“Hello”后跟一直延伸到行的末尾,类似于宏\hfill这实际上等同于\hspace\fill一条水平线。 - 但实际上,这个命令只是产生文本“Hello”,没有规则。

我知道效果可以通过\hrulefill产生,但它不能在这里使用,因为我想一个提出规则和\hrulefill\raisebox一起工作,我想我的规则挂上述基线(最好在线路中间)。

回答

11

我没有一个令人满意的答案,因为您提交的命令不起作用,但我可以提供有效的解决方法。把

% Raised Rule Command: 
% Arg 1 (Optional) - How high to raise the rule 
% Arg 2   - Thickness of the rule 
\newcommand{\raisedrule}[2][0em]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill} 

到文档的序言,然后你就可以完成你所期望用:

Hello \raisedrule[0.5em]{1pt} 
+0

不幸的是,我不明白这是如何工作的,因为'\ hfill'是* *之外的'\ hbox'但它的工作原理像一个魅力,谢谢。 – 2010-03-31 15:36:45

+4

这部分我可以解释。领导者是TeX胶水的一般情况;通常,胶水没有任何东西就填满了空间。但领导者可以随心所欲地填充空间。它的一般形式是'\ leaders {box或rule} \ hskip {glue}',因为'\ hfill'是一种特殊的无限可伸缩粘合剂,胶水告诉它有多远可以延长重复。 – RTBarnard 2010-03-31 15:46:58

+0

使用http://tex.stackexchange.com/a/17130/13450的一些代码,这也适用于将文本包围在双方:'\ newcommand {\ raisedrule} [2] [0em] {\ leavevmode \ leaders \ hbox {\规则[#1] {1点} {#2}} \ hfill \ kern0pt}'。 – Christian 2012-07-08 21:08:04

6

1点高度的水平线和1.5pt提高。

Hello \leaders\vrule height 2.5pt depth -1.5pt \hfill \null