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

  • Můžete použít: a\hfill b\hfill \hspace{0.01mm}

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:

zde zadejte popis obrázku

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

zde zadejte popis obrázku

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *