memoir
のマニュアル183ページ、この例を示します。
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
\hspace*{\fill}
の違いを理解しようとしました。および\hfill
は!?
\hfill
の定義と \hspace
の定義はあまり役に立ちませんでした。
コメント
回答
例としてコードスニペットを使用すると、\centering
は\caption
にのみ影響します。ただし、
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
は、ILLUSTRATION 1
とILLUSTRATION 2
を設定するためのものです。 \textwidth
全体に分散:
\documentclass{article} \usepackage{showframe}% http://ctan.org/pkg/showframe \begin{document} \begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} \end{document}
ただし、\hspace*{\fill}
を\hfill
に置き換えると、右マージンからのスペースは" gobbled ":
\documentclass{article} \usepackage{showframe}% http://ctan.org/pkg/showframe \begin{document} \begin{figure} \centering \hfill%\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill%\hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} \end{document}
\hspace*
のコマンド定義に値を与える:
LaTeXは、行末にある水平方向のスペースを削除します。 LaTeXでこのスペースを削除したくない場合は、オプションの
*
引数を含めます。そうすると、スペースは削除されません。
\hfill
が\hspace*{\fill}
よりも直感的である場合に使用する別の方法は、ダミーテキスト(\null
または\mbox{}
)行の(開始および)終了。このようにすると、\hfill
は常に"に対して無限に伸びる何かがある":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
上記の例では、 showframe
は単にテキストブロックを強調表示しただけです。
コメント
-
\hspace{\fill}
と\hfill
は同じですか?? - 行の先頭に
\null
が必要なのはなぜですか?' tはdiffを見る - @adl:'行の先頭では必要ありません。対称的なコーディングを提供するだけです。
回答
' fil 'と' fill '?。
質問の詳細に関連して、\hfill
はに展開されるTeXプリミティブ
\hfill = \hskip 0pt plus 1fill minus 0pt
一方、\hspace*{\fill}
はLaTeXマクロであり、次のスペースを残します。 1fill
。接着剤を行の先頭に挿入する場合は、コマンドのスターバージョンが使用されます。
a\hfill b\hfill \hspace{0.01mm}