Im Handbuch memoir Auf Seite 183 wird dieses Beispiel gegeben:

\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} 

Ich habe versucht herauszufinden, was der Unterschied zwischen \hspace*{\fill} ist und \hfill ist!?

Die \hfill Definition und \hspace Definition hat mir nicht viel geholfen.

Kommentare

  • Sie können Folgendes verwenden: a\hfill b\hfill \hspace{0.01mm}

Antwort

Am Beispiel Ihres Code-Snippets hat \centering nur Auswirkungen auf \caption.

\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} 

soll jedoch ILLUSTRATION 1 und ILLUSTRATION 2 setzen gleichmäßig verteilt auf \textwidth:

Geben Sie hier die Bildbeschreibung ein

\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} 

Wenn Sie jedoch \hspace*{\fill} durch \hfill ersetzen, ist der Abstand vom rechten Rand " verschlungen ":

Geben Sie hier die Bildbeschreibung ein

\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} 

Geben der Befehlsdefinition für \hspace*:

LaTeX entfernt den horizontalen Raum am Ende einer Zeile. Wenn Sie nicht möchten, dass LaTeX diesen Speicherplatz entfernt, fügen Sie das optionale Argument * ein. Dann wird der Speicherplatz niemals entfernt.

Eine Alternative, die verwendet werden kann, wenn \hfill intuitiver als \hspace*{\fill} ist, besteht darin, Dummy-Text einzufügen (wie \null oder \mbox{}) am (Anfang und) Ende der Zeile. Auf diese Weise wird die \hfill immer " etwas haben, das sich unendlich gegen " strecken kann:

\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null% 

In den obigen Beispielen hat showframe lediglich den Textblock hervorgehoben.

Kommentare

  • Ist \hspace{\fill} und \hfill dasselbe? Warum gibt es kein \hfill*?
  • Warum benötigen Sie \null am Zeilenanfang? Ich kann ' t sehen die diff mit oder ohne.
  • @adl: Sie benötigen es ' am Zeilenanfang nicht. Es ist nur eine symmetrische Codierung vorgesehen.

Antwort

Unter Was ist der Unterschied zwischen ' fil ' und ' fülle '? .

In Bezug auf die Einzelheiten in deiner Frage ist \hfill a Das TeX-Grundelement, das auf

 \hfill = \hskip 0pt plus 1fill minus 0pt 

erweitert wird, während \hspace*{\fill} ein LaTeX-Makro ist, das ein Leerzeichen gleich lässt a 1fill. Die Sternversion des Befehls wird verwendet, wenn der Kleber am Zeilenanfang eingefügt werden soll.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.