În manualul memoir
pe pagina 183, acest exemplu este dat:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Am încercat să dau seama, care este diferența dintre \hspace*{\fill}
și \hfill
este !?
\hfill
definiție și \hspace
definiție nu m-au ajutat prea mult.
Comentarii
Răspuns
Utilizând fragmentul de cod ca exemplu, \centering
are un impact numai pe \caption
. Cu toate acestea,
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
este menit să seteze ILLUSTRATION 1
și ILLUSTRATION 2
distribuit chiar în \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}
Cu toate acestea, înlocuind \hspace*{\fill}
cu \hfill
, spațiul de la marginea din dreapta este " înghițit ":
\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}
dând valoare definiției comenzii pentru \hspace*
:
LaTeX elimină spațiul orizontal care vine la sfârșitul unei linii. Dacă nu doriți ca LaTeX să elimine acest spațiu, includeți argumentul opțional
*
. Apoi spațiul nu este niciodată eliminat.
O alternativă de utilizat dacă \hfill
este mai intuitivă decât \hspace*{\fill}
, este inserarea unui text fals (cum ar fi \null
sau \mbox{}
) la (începutul și) sfârșitul liniei. În acest fel, \hfill
va fi întotdeauna au " ceva de întins infinit împotriva ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
În exemplele de mai sus, showframe
a evidențiat doar blocul de text.
Comentarii
- Este
\hspace{\fill}
și\hfill
la fel? De ce nu există\hfill*
? - De ce aveți nevoie de
\null
la începutul liniei? Pot ' t vezi diferența erență cu sau fără. - @adl: Nu aveți nevoie de ' de la începutul liniei. Oferă doar codificare simetrică.
Răspuns
Există o discuție foarte bună și răspunsuri la Care este diferența dintre ' fil ' și ' fill '? .
În legătură cu specificul din întrebarea dvs. \hfill
este un Primitiv TeX care se extinde la,
\hfill = \hskip 0pt plus 1fill minus 0pt
în timp ce \hspace*{\fill}
, este o macro LaTeX, care lasă un spațiu egal cu a 1fill
. Versiunea stelară a comenzii este utilizată dacă lipiciul trebuie introdus la începutul unei linii.
a\hfill b\hfill \hspace{0.01mm}