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

  • Vous pouvez utiliser: a\hfill b\hfill \hspace{0.01mm}

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:

entrez la description de limage ici

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

entrez la description de limage ici

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *