I memoir
manual side 183, dette eksempel er givet:
\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 forsøgt at finde ud af, hvad forskellen mellem \hspace*{\fill}
og \hfill
er !?
\hfill
definition og \hspace
definition hjalp mig ikke meget.
Kommentarer
Svar
Ved hjælp af dit kodestykke som eksempel har \centering
kun indflydelse på \caption
.
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
er dog beregnet til at indstille ILLUSTRATION 1
og ILLUSTRATION 2
endda 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}
Ved at erstatte \hspace*{\fill}
med \hfill
er mellemrummet fra højre margen dog " 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}
giver værdi til kommandodefinitionen for \hspace*
:
LaTeX fjerner vandret rum, der kommer i slutningen af en linje. Hvis du ikke ønsker, at LaTeX skal fjerne dette mellemrum, skal du medtage det valgfri argument
*
. Derefter fjernes rummet aldrig.
Et alternativ til brug, hvis \hfill
er mere intuitivt end \hspace*{\fill}
, er at indsætte dummy-tekst (som \null
eller \mbox{}
) i (start og) slutningen af linjen. På den måde vil \hfill
altid har " noget, der uendeligt strækker sig mod ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
I ovenstående eksempler fremhævede showframe
kun tekstblokken.
Kommentarer
- Er
\hspace{\fill}
og\hfill
det samme? Hvorfor er der ingen\hfill*
? - Hvorfor har du brug for
\null
i starten af linjen? Jeg kan ' t se forskellen med eller uden. - @adl: Du behøver ikke ' behøver det ikke i starten af linjen. Det giver bare symmetrisk kodning.
Svar
Der er en meget god diskussion og svar på Hvad er forskellen mellem ' fil ' og ' fyld '? .
Som relateret til detaljerne i dit spørgsmål er \hfill
TeX-primitiv, der udvides til
\hfill = \hskip 0pt plus 1fill minus 0pt
hvorimod \hspace*{\fill}
er en LaTeX-makro, der efterlader et mellemrum svarende til a 1fill
. Stjernversionen af kommandoen bruges, hvis limen skal indsættes i begyndelsen af en linje.
a\hfill b\hfill \hspace{0.01mm}