V memoir
příručce k strana 183, uvádí se tento příklad:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Snažil jsem se přijít na to, jaký je rozdíl mezi \hspace*{\fill}
a \hfill
je !?
\hfill
definice a \hspace
definice mi moc nepomohla.
Komentáře
Odpovědět
S použitím fragmentu kódu jako příkladu má \centering
dopad pouze na \caption
.
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
je však určen k nastavení ILLUSTRATION 1
a ILLUSTRATION 2
dokonce distribuováno napříč \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}
Avšak nahrazením \hspace*{\fill}
za \hfill
je prostor od pravého okraje " pohltil ":
\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}
přiřazení hodnoty definici příkazu pro \hspace*
:
LaTeX odstraní vodorovný prostor, který je na konci řádku. Pokud si nepřejete, aby LaTeX odstranil tento prostor, uveďte volitelný argument
*
. Potom nebude prostor nikdy odstraněn.
Alternativou k použití, pokud je \hfill
intuitivnější než \hspace*{\fill}
, je vložit fiktivní text (například \null
nebo \mbox{}
) na (začátku a) konci řádku. Tímto způsobem \hfill
bude vždy mít " něco, co se může nekonečně protáhnout proti ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
Ve výše uvedených příkladech showframe
pouze zvýraznil textový blok.
Komentáře
- Je
\hspace{\fill}
a\hfill
stejný? Proč neexistuje\hfill*
? - Proč potřebujete
\null
na začátku řádku? Mohu ' t vidět rozdíl erence s nebo bez. - @adl: Nepotřebujete to ' na začátku řádku. Poskytuje pouze symetrické kódování.
Odpověď
Na stránce Jaký je rozdíl mezi ' fil ' a ' fill '? .
Ve vztahu ke specifikům vaší otázky \hfill
je TeX primitiv, které se rozšiřuje na,
\hfill = \hskip 0pt plus 1fill minus 0pt
zatímco \hspace*{\fill}
je makro LaTeX, které ponechává prostor rovný a 1fill
. Hvězdná verze příkazu se používá, pokud má být lepidlo vloženo na začátek řádku.
a\hfill b\hfill \hspace{0.01mm}