I memoir manual side 183, dette eksempel er givet:

\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} 

Jeg har forsøgt at finde ud af, hvad forskellen mellem \hspace*{\fill} og \hfill er !?

\hfill definition og \hspace definition hjalp mig ikke meget.

Kommentarer

  • Du kan bruge: a\hfill b\hfill \hspace{0.01mm}

Svar

Ved hjælp af dit kodestykke som eksempel har \centering kun indflydelse på \caption.

\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} 

er dog beregnet til at indstille ILLUSTRATION 1 og ILLUSTRATION 2 endda fordelt på \textwidth:

indtast billedebeskrivelse her

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

Ved at erstatte \hspace*{\fill} med \hfill er mellemrummet fra højre margen dog " gobbled ":

indtast billedbeskrivelse her

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

giver værdi til kommandodefinitionen for \hspace*:

LaTeX fjerner vandret rum, der kommer i slutningen af en linje. Hvis du ikke ønsker, at LaTeX skal fjerne dette mellemrum, skal du medtage det valgfri argument *. Derefter fjernes rummet aldrig.

Et alternativ til brug, hvis \hfill er mere intuitivt end \hspace*{\fill}, er at indsætte dummy-tekst (som \null eller \mbox{}) i (start og) slutningen af linjen. På den måde vil \hfill altid har " noget, der uendeligt strækker sig mod ":

\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null% 

I ovenstående eksempler fremhævede showframe kun tekstblokken.

Kommentarer

  • Er \hspace{\fill} og \hfill det samme? Hvorfor er der ingen \hfill*?
  • Hvorfor har du brug for \null i starten af linjen? Jeg kan ' t se forskellen med eller uden.
  • @adl: Du behøver ikke ' behøver det ikke i starten af linjen. Det giver bare symmetrisk kodning.

Svar

Der er en meget god diskussion og svar på Hvad er forskellen mellem ' fil ' og ' fyld '? .

Som relateret til detaljerne i dit spørgsmål er \hfill TeX-primitiv, der udvides til

 \hfill = \hskip 0pt plus 1fill minus 0pt 

hvorimod \hspace*{\fill} er en LaTeX-makro, der efterlader et mellemrum svarende til a 1fill. Stjernversionen af kommandoen bruges, hvis limen skal indsættes i begyndelsen af en linje.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *