In de memoir
handleiding over pagina 183, wordt dit voorbeeld gegeven:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Ik heb geprobeerd uit te zoeken wat het verschil is tussen \hspace*{\fill}
en \hfill
is !?
De \hfill
definitie en \hspace
definitie hielpen me niet veel.
Reacties
Antwoord
Als u uw codefragment als voorbeeld gebruikt, heeft \centering
alleen een impact op de \caption
.
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
is echter bedoeld om ILLUSTRATION 1
en ILLUSTRATION 2
zelfs verdeeld over \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}
Als u echter \hspace*{\fill}
vervangt door \hfill
, is de spatie vanaf de rechtermarge " slokt ":
\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}
waarde geven aan de commandodefinitie voor \hspace*
:
LaTeX verwijdert horizontale ruimte die aan het einde van een regel komt. Als u niet wilt dat LaTeX deze ruimte verwijdert, voegt u het optionele
*
-argument toe. Dan wordt de spatie nooit verwijderd.
Een alternatief om te gebruiken als \hfill
intuïtiever is dan \hspace*{\fill}
, is om dummy-tekst in te voegen (zoals \null
of \mbox{}
) aan het (begin en) einde van de regel. Op die manier zal de \hfill
altijd " iets hebben om oneindig uit te rekken tegen ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
In de bovenstaande voorbeelden heeft showframe
alleen het tekstblok gemarkeerd.
Opmerkingen
- Is
\hspace{\fill}
en\hfill
hetzelfde? Waarom is er geen\hfill*
? - Waarom heb je
\null
nodig aan het begin van de regel? Ik kan ' t zie het verschil erence met of zonder. - @adl: Je hebt het ' niet nodig aan het begin van de regel. Het zorgt alleen voor symmetrische codering.
Antwoord
Er is een zeer goede discussie en antwoorden op Wat is het verschil tussen ' fil ' en ' fill '? .
In verband met de details in uw vraag is \hfill
een TeX-primitief die zich uitbreidt tot,
\hfill = \hskip 0pt plus 1fill minus 0pt
terwijl \hspace*{\fill}
, een LaTeX-macro is, die een spatie laat gelijk aan een 1fill
. De sterversie van het commando wordt gebruikt als de lijm aan het begin van een regel moet worden ingevoegd.
a\hfill b\hfill \hspace{0.01mm}