Esta es mi primera publicación, espero que no sea demasiado redundante con el material existente. Habiendo usado Latex por un tiempo, pero siempre con un enfoque muy utilitario, siempre me confundo con el comando \vspace, que me parece algo contradictorio.
En el siguiente ejemplo mínimo, estoy buscando comandos para agregar manualmente espacios verticales en blanco (sí, ¡sé que es feo!) en las distintas ubicaciones indicadas por las macros de 'salto de espacio' comentadas.
\documentclass[a4paper,11pt]{article}
\newlength{\addspace}
\setlength{\addspace}{0mm} % play easily on the inserted length
\begin{document}
First paragraph~: starts off with some very interesting text,
until we encounter a first equation~:
%\skipspace1{\addspace}
$$
x=5,
$$
%\skipspace2{\addspace}
after what the paragraph continues, with some even more interesting
text, and finally ends with another equation~:
$$
x=5.
$$
%\skipspace3{\addspace}
Second paragraph~: we are going to encounter a line break
(don't ask why I like to have these from time to time).\\
%\skipspace4{\addspace}
This is the same paragraph continuing after the break.
%\skipspace5{\addspace}
Third paragraph~: whatever. As far as I'm concerned, the example is over,
but multiple-line paragraphs definitely look better.
\end{document}
Según mi experiencia, las ubicaciones "1" y "5" son bien manejadas por \vspace, mientras que las ubicaciones "2", "3" y "4" requieren algunos ajustes cada vez (porque \vspace no funciona intuitivamente en el comienzo de una nueva línea). Por el momento, utilizo un truco feo basado en una línea con un único espacio en blanco:
Para los casos 2 y 4, funciona lo siguiente:
\ \vspace{\addspace}\\[-\baselineskip]
Para el caso 3, lo siguiente funciona:
\ \vspace{\addspace}\\[-2\baselineskip]
Ahora mi pregunta es: ¿existe una macro general (más bonita que mi truco) que se encargará conjuntamente de los casos "2", "3 y "4"? O incluso mejor (solo soñando), ¿hay una macro general que podría manejar directamente los 5 casos?
Gracias de antemano por su tiempo y explicaciones,
Howard
EDITAR: Puedes encontrar mi autorespuesta más abajo, gracias a la respuesta de David Carlisle.
Respuesta1
Si \vspace
se usa en modo vertical el espacio se agrega en ese punto. Si se agrega en modo horizontal, se difiere hasta que el párrafo se divide en líneas y luego se agrega el espacio después de la línea que contenía el nodo que lleva el espacio diferido.
El comportamiento en modo horizontal es algo justificable pero rara vez se desea, por lo que la regla simple es siempre dejar una línea en blanco antes \vspace
.
La otra regla a tener en cuenta es que nunca debes dejar una línea en blanco antes de mostrar las matemáticas (que no deben estar marcadas con $$
látex, pero lo mismo se aplica a \[
).
\ \vspace{\addspace}\\[-2\baselineskip]
es una construcción muy extraña: si se usa en modo vertical, comenzará un párrafo con una sangría de párrafo, luego un espacio de palabra forzado y \
luego un salto forzado. \\
Si una línea en blanco sigue a la línea después del salto estará vacía y generará un espacio insuficiente. Advertencia de hbox. Luego, el párrafo terminará y se \addspace
agregará después de la primera línea blanca. Por lo tanto, generará dos hboxes blancos que no se descartan en un salto de página y tienen \addspace - 2\baselineskip
espacio entre ellos. Esto se verá similar a un espacio de \addspace
pero la interacción con el texto de arriba y de abajo será diferente y el comportamiento en un salto de página será completamente incorrecto, permitiendo un salto de página entre las dos líneas blancas y produciendo una línea blanca anómala en la parte superior de la página. siguiente página.
Respuesta2
Gracias a la respuesta de David Carlisle, pensé que el "Caso 3" (insertar espacio entre una ecuación y el siguiente párrafo) también se puede hacer fácilmente con \vspace, excepto que hay que insertarlo entre dos líneas en blanco. Entonces, si resumo mi solución actual, dice:
\documentclass[a4paper,11pt]{article}
\newlength{\addspace}
\setlength{\addspace}{0mm} % play easily on the inserted length
\newcommand{\myvspace}[1]{\ \vspace{#1}\\[-baselineskip]} % home-made ugly macro
\begin{document}
First paragraph~: starts off with some very interesting text,
until we encounter a first equation~:
\vspace{\addspace} % CASE 1
\[
x=5,
\]
\myvspace{\addspace} % CASE 2
after what the paragraph continues, with some even more interesting
text, and finally ends with another equation~:
\[
x=5.
\]
\vspace{\addspace} % CASE 3... blank lines above and below are important to enter vertical mode
Second paragraph~: we are going to encounter a line break
(don't ask why I like to have these from time to time).\\
\myvspace{\addspace} % CASE 4
This is the same paragraph continuing after the break.
\vspace{\addspace} % CASE 5
Third paragraph~: whatever.
\end{document}
Entonces parece que puedo hacer todo lo que quiera con \vspace (para los casos 1,3,5) y mi fea macro casera \myvspace (para los casos 2 y 4)... y eso está más o menos bien. Gracias a todos, y especialmente a David, por señalarme la diferencia entre el modo horizontal y vertical.
Howard