En cualquier punto de su procesamiento, TeX está en algún modo. Hay seis modos, divididos en tres categorías:
- modo horizontal y modo horizontal restringido,
- modo vertical y modo vertical interno, y
- matemáticas modo y mostrar el modo matemático.
Cuando no está escribiendo matemáticas, TeX está en modo horizontal o vertical. El modo horizontal se utiliza normalmente para crear líneas de texto; El modo vertical se usa típicamente para apilar las líneas de un párrafo una encima de la otra.
\vskip
inserta un pegamento en una lista vertical de líneas. Por lo tanto, \vskip
rompe el modo horizontal y pasa al modo vertical.
\vspace
puede funcionar en modo horizontal y vertical modo. En modo horizontal, \vspace 1mm
es equivalente a \vadjust{\vskip 1mm \vskip 0pt}
e inserta un espacio después de la línea actual. En modo vertical \vspace 1mm
es equivalente a \vskip 1mm \vskip 0pt
\vskip 0pt
es necesario para que \removelastskip
no pueda eliminar su espacio vertical.
Definición completa:
\vspace : -> \@ifstar \@vspacer \@vspace
Sin *
caso (\vspace 1mm
):
\@vspace: #1->\ifvmode \vskip #1 \vskip \z@skip \else \@bsphack \vadjust {\@restore par \vskip #1 \vskip \z@skip }\@esphack \fi
Nota \z@skip
igual a 0pt
, se necesita \@bsphack
para ahorrar un gran espacio horizontal después de un período. \@esphack
es necesario para devolver la configuración de gran espacio.
Con *
case (\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
Comentarios
\vspace
es un comando LaTeX y \vskip
es un comando TeX. Ambos se pueden usar en LaTeX. Cuando se usa \vspace
dentro de un párrafo, inserta un espacio después de la línea actual. Pero si \vskip
se usa dentro de un párrafo, termina el párrafo e inserta el espacio inmediatamente.
Comentarios
La diferencia por ejemplo:
\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}
Exactamente como dice Rob; para reformular, \vskip
debe usarse cuando esté en modo vertical, o desee comenzar a configurarlo, y \vspace
tiene sentido dentro de un párrafo.
La implementación (¿una?) de \vspace
se analiza en Eijkhout 1990, TUGboat 11 (4 ), pág. 618 .