次のコマンドが、行の終わりまでスペースを埋める水平方向のルールを生成しないのはなぜですか?
Hello \rule[0.5em]{\fill}{1pt}
これにより、テキスト「Hello
」の後に、実質的に\hfill
と同等のマクロ\hspace\fill
と同様に、行の終わりまで延びる水平方向のルールが出力されるはずです。 –ただし、実際には、このコマンドは「Hello
」というテキストを生成するだけで、ルールはありません。
効果は\hrulefill
によって生成されることは承知していますが、raisedルールが必要であり、\hrulefill
が\raisebox
と連携せず、ルールをハングさせたいため、ここでは使用できません- 上ベースライン(せいぜい行の真ん中)。
提示したコマンドが機能しない理由について満足のいく答えはありませんが、効果的な回避策を提供できます。プット
% 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}
高さ1パイント、1.5パイント上げた水平方向のルール。
Hello \leaders\vrule height 2.5pt depth -1.5pt \hfill \null
これを行う lem というパッケージがあります
% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = xelatex
\documentclass{article}
\usepackage[normalem]{ulem}
\begin{document}
normal text \uline{\textit{underline text}\hfill}
\end{document}
生成されます
好奇心のために、パッケージulemのオプションnormalem
は、ulemが\em
または\emph
で余分な下線を生成するのを防ぎます。