I memoir
på side 183 er dette eksemplet gitt:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Jeg har prøvd å finne ut hva forskjellen er på \hspace*{\fill}
og \hfill
er !?
\hfill
definisjon og \hspace
definisjon hjalp meg ikke så mye.
Kommentarer
Svar
Ved å bruke kodebiten som eksempel, har \centering
bare innvirkning på \caption
.
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
er imidlertid ment å angi ILLUSTRATION 1
og ILLUSTRATION 2
til og med fordelt på \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}
Når du erstatter \hspace*{\fill}
med \hfill
, er imidlertid mellomrommet fra høyre marg " 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}
gir verdi til kommandodefinisjonen for \hspace*
:
LaTeX fjerner vannrett plass som kommer på slutten av en linje. Hvis du ikke vil at LaTeX skal fjerne denne plassen, må du inkludere det valgfrie argumentet
*
. Da blir plassen aldri fjernet.
Et alternativ å bruke hvis \hfill
er mer intuitivt enn \hspace*{\fill}
, er å sette inn dummy-tekst (som \null
eller \mbox{}
) på (start og) slutten av linjen. På den måten vil \hfill
alltid ha " noe å uendelig strekke mot ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
I eksemplene ovenfor markerte showframe
bare tekstblokken.
Kommentarer
- Er
\hspace{\fill}
og\hfill
det samme? Hvorfor er det ingen\hfill*
? - Hvorfor trenger du
\null
i begynnelsen av linjen? Jeg kan ' t se forskjellen erence med eller uten. - @adl: Du trenger ikke ' det trenger du ikke ved starten av linjen. Det gir bare symmetrisk koding.
Svar
Det er en veldig god diskusjon og svar på Hva er forskjellen mellom ' fil ' og ' fyll '? .
Som relatert til detaljene i spørsmålet ditt, er \hfill
en TeX-primitiv som utvides til
\hfill = \hskip 0pt plus 1fill minus 0pt
mens \hspace*{\fill}
, er en LaTeX-makro som etterlater et mellomrom som tilsvarer a 1fill
. Stjerneversjonen av kommandoen brukes hvis limet skal settes inn i begynnelsen av en linje.
a\hfill b\hfill \hspace{0.01mm}