\ vspace vs. \ vskip [duplicate] (Magyar)

Erre a kérdésre már itt vannak válaszok :

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:

  1. vízszintes és korlátozott vízszintes mód,
  2. függőleges és belső függőleges mód és
  3. 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? "

  • @Geoff: \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} 

    írja ide a kép leírását

    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 .

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük