Dans le manuel memoir
sur page 183, cet exemple est donné:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Jai essayé de comprendre quelle est la différence entre \hspace*{\fill}
et \hfill
est !?
La \hfill
définition et \hspace
définition ne ma pas beaucoup aidé.
Commentaires
Réponse
En utilisant votre extrait de code comme exemple, \centering
na un impact que sur \caption
. Cependant,
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
est censé définir ILLUSTRATION 1
et ILLUSTRATION 2
même répartis sur \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}
Cependant, en remplaçant \hspace*{\fill}
par \hfill
, lespace de la marge de droite est " 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}
donner une valeur à la définition de commande pour \hspace*
:
LaTeX supprime lespace horizontal qui vient à la fin dune ligne. Si vous ne voulez pas que LaTeX supprime cet espace, incluez largument optionnel
*
. Ensuite, lespace nest jamais supprimé.
Une alternative à utiliser si \hfill
est plus intuitive que \hspace*{\fill}
, est dinsérer du texte factice (comme \null
ou \mbox{}
) au (début et) fin de la ligne. De cette façon, \hfill
sera toujours avoir " quelque chose à étirer à linfini par rapport à ":
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
Dans les exemples ci-dessus, showframe
a simplement mis en évidence le bloc de texte.
Commentaires
- Est-ce que
\hspace{\fill}
et\hfill
sont identiques? Pourquoi ny a-t-il pas de\hfill*
? - Pourquoi avez-vous besoin de
\null
au début de la ligne? Je peux ' t voir le diff érence avec ou sans. - @adl: Vous nen avez ' pas besoin au début de la ligne. Il fournit juste un codage symétrique.
Réponse
Il y a une très bonne discussion et des réponses à Quelle est la différence entre ' fil ' et ' fill '? .
En relation avec les détails de votre question, \hfill
est un Primitive TeX qui se développe en,
\hfill = \hskip 0pt plus 1fill minus 0pt
alors que \hspace*{\fill}
, est une macro LaTeX, qui laisse un espace égal à a 1fill
. La version en étoile de la commande est utilisée si la colle doit être insérée au début dune ligne.
a\hfill b\hfill \hspace{0.01mm}