W instrukcji memoir dotyczącej strona 183, podano ten przykład:

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

Próbowałem dowiedzieć się, jaka jest różnica między \hspace*{\fill} a \hfill jest !?

Definicja \hfill i \hspace definicja niewiele mi pomogła.

Komentarze

  • Możesz użyć: a\hfill b\hfill \hspace{0.01mm}

Answer

Na przykładzie fragmentu kodu \centering ma wpływ tylko na \caption. Jednak

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

ma na celu ustawienie ILLUSTRATION 1 i ILLUSTRATION 2 równomiernie rozmieszczone w \textwidth:

tutaj wprowadź opis obrazu

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

Jednak zamiast \hspace*{\fill} z \hfill, spacja z prawego marginesu wynosi " gobbled ":

tutaj wprowadź opis obrazu

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

nadanie wartości definicji polecenia dla \hspace*:

LaTeX usuwa poziome odstępy, które pojawiają się na końcu linii. Jeśli nie chcesz, aby LaTeX usuwał tę spację, dołącz opcjonalny argument *. Wtedy spacja nigdy nie zostanie usunięta.

Alternatywą do użycia if \hfill jest bardziej intuicyjna niż \hspace*{\fill}, jest wstawienie fikcyjnego tekstu (np. \null lub \mbox{}) na (początku i) końcu wiersza. Dzięki temu \hfill będzie zawsze mieć " coś do nieskończonego rozciągania względem ":

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

W powyższych przykładach showframe jedynie podświetlił blok tekstu.

Komentarze

  • Czy \hspace{\fill} i \hfill to to samo? Dlaczego nie ma \hfill*?
  • Dlaczego potrzebujesz \null na początku wiersza? Mogę ' t zobacz różnicę erence z lub bez.
  • @adl: Nie ' nie potrzebujesz tego na początku wiersza. Po prostu zapewnia symetryczne kodowanie.

Odpowiedź

Bardzo dobra dyskusja i odpowiedzi na Jaka jest różnica między ' fil ' a ' fill '? .

W związku ze szczegółami w pytaniu \hfill to Prymityw TeX, który rozwija się do,

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

natomiast \hspace*{\fill} to makro LaTeX-a, które pozostawia spację równą a 1fill. Gwiazdkowa wersja polecenia jest używana, jeśli klej ma być wstawiony na początku wiersza.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *