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 .