14

次のコマンドで、行の終わりまでスペースを埋める水平方向のルールが生成されないのはなぜですか?

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

\hfillこれにより、「<code> Hello」というテキストの後に、実質的にと同等のマクロと同様に、行の終わりまで拡張される水平方向のルールが出力されるはずだと理解しています\hspace\fill。–ただし、実際には、このコマンドは「<code> Hello」というテキストを生成するだけで、ルールはありません。

効果はによって生成される可能性があることは承知していますが、\hrulefillここでは使用できません。これは、ルールを上げ\hrulefillて一緒に機能せず、ルールをベースラインより上に(せいぜい行の中央で)\raiseboxハングさせたいためです。)。

4

4 に答える 4

15

提示したコマンドが機能しない理由について満足のいく答えはありませんが、効果的な回避策を提供することはできます。置く

% 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}
于 2010-03-31T14:53:51.943 に答える
7

高さ1pt、1.5pt上げた水平方向のルール。

Hello \leaders\vrule height 2.5pt depth -1.5pt \hfill \null
于 2010-03-31T14:58:35.753 に答える
0

これは、コマンド\hrulefillを使用して実行できます。http://en.wikibooks.org/wiki/LaTeX/Lengths#Fill_the_rest_of_the_lineを参照してください

于 2015-04-13T04:23:02.280 に答える
0

これを行うulemと呼ばれるパッケージがあります

% !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}

を生成します

下線

好奇心のnormalemために、パッケージulemのオプションは、ulemが\emまたはで余分な下線を生成するのを防ぎます\emph

于 2019-12-20T20:36:55.197 に答える