Hozzászólások
- A kérdés lezárására szavaztam, mert @egreg kanonikus választ adott az eredetileg a tex.sx címen feltett " kérdésre ".
- Oké, de ez a kérdés először megkérdezték.
Válasz
A feldolgozás bármely pontján a TeX valamilyen módban van. Hatféle mód van, három kategóriába sorolva:
- vízszintes és korlátozott vízszintes mód,
- függőleges és belső függőleges mód és
- matematika mód és matematikai mód megjelenítése.
Ha nem írja be a matematikát, a TeX vízszintes vagy függőleges módban van. A vízszintes módot általában szövegsorok készítésére használják; A függőleges módot általában a bekezdések sorainak egymásra rakására használják.
\vskip
ragasztót illeszt a sorok függőleges listájába. Ezért a \vskip
megszakítja a vízszintes módot, és vertikális módra vált.
\vspace
vízszintes és függőleges módban is működhet mód. Vízszintes módban a \vspace 1mm
egyenértékű a \vadjust{\vskip 1mm \vskip 0pt}
szóval, és beszúr egy szóközt az aktuális sor után. Függőleges módban a \vspace 1mm
egyenértékű a \vskip 1mm \vskip 0pt
\vskip 0pt
szükséges, ezért \removelastskip
nem tudja eltávolítani a függőleges teret.
Teljes meghatározás:
\vspace : -> \@ifstar \@vspacer \@vspace
*
eset nélkül (\vspace 1mm
):
\@vspace: #1->\ifvmode \vskip #1 \vskip \z@skip \else \@bsphack \vadjust {\@restore par \vskip #1 \vskip \z@skip }\@esphack \fi
Megjegyzés \z@skip
egyenlő 0pt
, \@bsphack
szükséges a nagy vízszintes hely megtakarításához az időszak után. \@esphack
szükséges a nagy térbeállítások visszaadásához.
*
esetnél (\vspace* 1mm
):
\@vspacer:#1->\ifvmode \dimen@ \prevdepth \hrule \@height \z@ \nobreak \vskip #1 \v skip \z@skip \prevdepth \dimen@ \else \@bsphack \vadjust {\@restorepar \hrule @height \z@ \nobreak \vskip #1 \vskip \z@skip }\@esphack \fi
Megjegyzések
- Tehát ha bekezdésen kívül használják őket (vagyis függőleges módban), akkor a kimenet pontosan ugyanaz lenne?
Válasz
\vspace
egy LaTeX parancs, a \vskip
pedig egy TeX parancs. Mindkettő használható a LaTeX-ben. Ha a \vspace
elemet egy bekezdésen belül használja, akkor az aktuális sor után beszúr helyet. De ha a \vskip
elemet egy bekezdésen belül használjuk, akkor a bekezdés befejeződik, és azonnal beszúrja a szóközt. li> Miért kezdődik a \vskip
új sor? Ez egy mellékhatása annak, amit Charles " függőleges módnak nevez? "
\vskip
tervezzen új sort. A vskip
függőleges kihagyás. Donald Knuth így döntött. Válasz
A különbség példával:
\documentclass[preview, border=7mm]{standalone} \usepackage{xcolor} \usepackage{blindtext} \begin{document} \textcolor{red}{Line with \texttt{vspace} :} \vspace{1cm} \blindtext \hrulefill \textcolor{red}{Line with \texttt{vskip} :} \vskip 1cm \blindtext \end{document}
Válasz
Pontosan úgy, ahogy Rob mondja; az átfogalmazáshoz \vskip
-et kell használni, ha függőleges módban van, vagy el akarja kezdeni a beállítást, és a \vspace
-nek van értelme egy bekezdés.
A \vspace
(an?) megvalósítását az Eijkhout 1990, TUGboat 11 (4) tárgyalja. ), p618 .