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

  • Je kunt gebruiken: a\hfill b\hfill \hspace{0.01mm}

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:

voer hier de afbeeldingsbeschrijving in

\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 ":

voer hier de afbeeldingsbeschrijving in

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *