I memoir om sidan 183 ges det här exemplet:

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

Jag har försökt ta reda på vad skillnaden mellan \hspace*{\fill} och \hfill är !?

\hfill definition och \hspace definition hjälpte mig inte mycket.

Kommentarer

  • Du kan använda: a\hfill b\hfill \hspace{0.01mm}

Svar

Med hjälp av kodavsnittet som exempel har \centering bara en inverkan på \caption.

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

är dock tänkt att ställa in ILLUSTRATION 1 och ILLUSTRATION 2 jämnt fördelat över \textwidth:

ange bildbeskrivning här

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

Om du ersätter \hspace*{\fill} med \hfill är utrymmet från höger marginal dock " slog ":

ange bildbeskrivning här

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

ger värde till kommandodefinitionen för \hspace*:

LaTeX tar bort horisontellt utrymme som kommer i slutet av en linje. Om du inte vill att LaTeX ska ta bort det här utrymmet ska du inkludera argumentet *. Då tas aldrig utrymmet bort.

Ett alternativ att använda om \hfill är mer intuitivt än \hspace*{\fill}, är att infoga dummytext (som \null eller \mbox{}) vid (början och) slutet av raden. På så sätt kommer \hfill alltid ha " något att oändligt sträcka sig mot ":

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

I exemplen ovan markerade showframe bara textblocket.

Kommentarer

  • Är \hspace{\fill} och \hfill samma? Varför finns det ingen \hfill*?
  • Varför behöver du \null i början av raden? Jag kan ' t se skillnaden med eller utan.
  • @adl: Du behöver inte ' det i början av raden. Det ger bara symmetrisk kodning.

Svar

Det finns en mycket bra diskussion och svar på Vad är skillnaden mellan ' fil ' och ' fyll '? .

Som relaterat till detaljerna i din fråga \hfill är TeX primitiv som expanderar till,

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

medan \hspace*{\fill}, är ett LaTeX-makro som lämnar ett utrymme lika med a 1fill. Stjärnaversionen av kommandot används om limet ska sättas in i början av en rad.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *