Nel manuale memoir
su pagina 183, viene fornito questo esempio:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Ho cercato di capire qual è la differenza tra \hspace*{\fill}
e \hfill
è !?
La \hfill
definizione e \hspace
definizione non mi hanno aiutato molto.
Commenti
Risposta
Utilizzando lo snippet di codice come esempio, \centering
ha un impatto solo su \caption
. Tuttavia,
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
ha lo scopo di impostare ILLUSTRATION 1
e ILLUSTRATION 2
distribuito anche su \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}
Tuttavia, sostituendo \hspace*{\fill}
con \hfill
, lo spazio dal margine destro è " 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}
dando valore alla definizione del comando per \hspace*
:
LaTeX rimuove lo spazio orizzontale che si trova alla fine di una riga. Se non vuoi che LaTeX rimuova questo spazio, includi largomento
*
facoltativo. Lo spazio non viene mai rimosso.
Unalternativa da utilizzare se \hfill
è più intuitivo di \hspace*{\fill}
, è inserire testo fittizio (come \null
o \mbox{}
) allinizio e alla fine della riga. In questo modo \hfill
sarà sempre avere " qualcosa su cui estendere allinfinito ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
Negli esempi precedenti, showframe
ha semplicemente evidenziato il blocco di testo.
Commenti
-
\hspace{\fill}
e\hfill
sono uguali? Perché\hfill*
? - Perché è necessario
\null
allinizio della riga? Posso ' t vedere il diff erenza con o senza. - @adl: ' non ne hai bisogno allinizio della riga. Fornisce solo una codifica simmetrica.
Answer
Cè unottima discussione e risposte su Qual è la differenza tra ' fil ' e ' fill '? .
In relazione alle specifiche della tua domanda, \hfill
è un Primitiva TeX che si espande a,
\hfill = \hskip 0pt plus 1fill minus 0pt
mentre \hspace*{\fill}
, è una macro LaTeX, che lascia uno spazio uguale a a 1fill
. La versione star del comando viene utilizzata se la colla deve essere inserita allinizio di una riga.
a\hfill b\hfill \hspace{0.01mm}