Правило LaTeX \, заполняющее строку
Почему следующая команда не создает горизонтальное правило, заполняющее пробел до конца строки?
Hello \rule[0.5em]{\fill}{1pt}
Насколько я понимаю, это должно печатать текст "Hello
", за которым следует горизонтальное правило, которое продолжается до конца строки, аналогично макросу \hfill
, который фактически эквивалентен \hspace\fill
. - Но на самом деле эта команда просто создает текст "Hello
", не имеет правила.
Мне известно, что эффект может быть создан \hrulefill
, но он не может использоваться здесь, потому что я хочу, чтобы поднятое правило и \hrulefill
не работало вместе с \raisebox
, и я хочу, чтобы мое правило зависало выше базовой линии ( в лучшем случае в середине линии).
Ответы
Ответ 1
У меня нет удовлетворительного ответа, почему команда, которую вы представили, не работает, но я могу предложить эффективное обходное решение. Положите
% 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}
Ответ 2
Горизонтальное правило высоты 1pt и поднятое на 1,5 п.
Hello \leaders\vrule height 2.5pt depth -1.5pt \hfill \null
Ответ 3
Вы можете сделать это с помощью команды \hrulefill
см. http://en.wikibooks.org/wiki/LaTeX/Lengths#Fill_the_rest_of_the_line