A memoir
kézikönyvben 183. oldal, ez a példa meg van adva:
\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure}
Megpróbáltam kitalálni, mi a különbség a \hspace*{\fill}
között és a \hfill
is !?
A \hfill
definíció és \hspace
meghatározás nem sokat segítettek nekem.
Megjegyzések
Válasz
A kódrészletet példaként használva az \centering
csak a \caption
-re van hatással. A
\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill}
azonban a ILLUSTRATION 1
és ILLUSTRATION 2
sőt elosztva \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}
Ha azonban az \hspace*{\fill}
szöveget \hfill
helyettesíti, akkor a jobb margótól a szóköz " 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}
Értéket adva a parancs definíciójának a \hspace*
számára:
A LaTeX eltávolítja a vonal végén található vízszintes helyet. Ha nem szeretné, hogy a LaTeX eltávolítsa ezt a helyet, akkor adja meg az opcionális
*
argumentumot. Ezután a szóközt soha nem távolítja el.
Ha a \hfill
intuitívabb, mint a \hspace*{\fill}
, akkor a dummy szöveg beszúrása (például \null
vagy \mbox{}
) a sor elején (és végén). Így a \hfill
mindig van " valami, amivel végtelenül nyújtózkodhat " ellen:
\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null%
A fenti példákban a showframe
csupán a szövegblokkot emelte ki.
Megjegyzések
-
\hspace{\fill}
és\hfill
ugyanaz? Miért nincs\hfill*
? - Miért van szükség
\null
a sor elejére? Tudok ' t lásd a diff vagy anélkül. - @adl: A sor elején nem kell '. Csak szimmetrikus kódolást biztosít.
Válasz
Nagyon jó vita és válaszok vannak a Mi a különbség ' fil ' és ' fill '? .
A kérdésed sajátosságaihoz kapcsolódóan a \hfill
egy A TeX primitív, amelyre kiterjed,
\hfill = \hskip 0pt plus 1fill minus 0pt
míg \hspace*{\fill}
egy LaTeX makró, amely a következővel egyenlő helyet hagy: a 1fill
. A parancs csillag verzióját akkor használjuk, ha a ragasztót egy sor elejére akarjuk beilleszteni.
a\hfill b\hfill \hspace{0.01mm}