2010-03-31 161 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