I memoir
om sidan 183 ges det här exemplet:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Jag har försökt ta reda på vad skillnaden mellan \hspace*{\fill}
och \hfill
är !?
\hfill
definition och \hspace
definition hjälpte mig inte mycket.
Kommentarer
Svar
Med hjälp av kodavsnittet som exempel har \centering
bara en inverkan på \caption
.
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
är dock tänkt att ställa in ILLUSTRATION 1
och ILLUSTRATION 2
jämnt fördelat över \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}
Om du ersätter \hspace*{\fill}
med \hfill
är utrymmet från höger marginal dock " slog ":
\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}
ger värde till kommandodefinitionen för \hspace*
:
LaTeX tar bort horisontellt utrymme som kommer i slutet av en linje. Om du inte vill att LaTeX ska ta bort det här utrymmet ska du inkludera argumentet
*
. Då tas aldrig utrymmet bort.
Ett alternativ att använda om \hfill
är mer intuitivt än \hspace*{\fill}
, är att infoga dummytext (som \null
eller \mbox{}
) vid (början och) slutet av raden. På så sätt kommer \hfill
alltid ha " något att oändligt sträcka sig mot ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
I exemplen ovan markerade showframe
bara textblocket.
Kommentarer
- Är
\hspace{\fill}
och\hfill
samma? Varför finns det ingen\hfill*
? - Varför behöver du
\null
i början av raden? Jag kan ' t se skillnaden med eller utan. - @adl: Du behöver inte ' det i början av raden. Det ger bara symmetrisk kodning.
Svar
Det finns en mycket bra diskussion och svar på Vad är skillnaden mellan ' fil ' och ' fyll '? .
Som relaterat till detaljerna i din fråga \hfill
är TeX primitiv som expanderar till,
\hfill = \hskip 0pt plus 1fill minus 0pt
medan \hspace*{\fill}
, är ett LaTeX-makro som lämnar ett utrymme lika med a 1fill
. Stjärnaversionen av kommandot används om limet ska sättas in i början av en rad.
a\hfill b\hfill \hspace{0.01mm}