¿Cómo cambiar globalmente el espacio alrededor de las ecuaciones?

¿Cómo cambiar globalmente el espacio alrededor de las ecuaciones?

¿Cómo podría configurar los espacios virtuales "arriba" y "abajo" en todo el equationentorno?

Si se pudiera hacer lo mismo con los entornos subequationso gather, sería una ventaja.

Respuesta1

Puede ajustar los valores de \abovedisplayskip, \belowdisplayskip, \abovedisplayshortskip, \belowdisplayshortskip. Las shortskipversiones se utilizan en situaciones en las que aparece una línea de texto corta antes de la ecuación mostrada: si el texto termina antes de que comience la ecuación mostrada, es bueno agregar menos espacio vertical.

Dado que las clases de documentos a menudo definen esos saltos, \normalsizepodría redefinir esta macro, parchearla o simplemente agregarle algo, porque simplemente establecer los valores en el preámbulo no funcionaría en ese caso.

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\g@addto@macro\normalsize{%
  \setlength\abovedisplayskip{40pt}
  \setlength\belowdisplayskip{40pt}
  \setlength\abovedisplayshortskip{40pt}
  \setlength\belowdisplayshortskip{40pt}
}
\makeatother
\begin{document}
text
\begin{gather}
  1 + 1 = 2
\end{gather}
text
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{document}

Lo mismo se puede hacer sin \g@addto@macro, es decir, sin ninguno @y sin requerir \makeatlettery \makeatother, usando \expandafter:

\expandafter\def\expandafter\normalsize\expandafter{%
    \normalsize
    \setlength\abovedisplayskip{40pt}
    \setlength\belowdisplayskip{40pt}
    \setlength\abovedisplayshortskip{40pt}
    \setlength\belowdisplayshortskip{40pt}
}

Prefiero la forma de agregar \normalsize, porque tanto la redefinición como el parcheo requieren conocer la definición exacta de lo \normalsizeque utiliza la clase de documento. Las formas de bot que describí anteriormente en elForo de la comunidad LaTeX, en respuesta aNo se pueden establecer espacios en blanco verticales en el preámbulo.

Más información está disponible en el excelentemodo matemáticodocumentación.

Respuesta2

Como una actualización de la respuesta de Stefan.

Sus preguntas deben cerrarse como duplicadas. Aquí encontrará muchas preguntas y respuestas. P.ej:

Espaciado diferente alrededor de la ecuación y alineación

Antes de mostrar algunos otros enfoques aquí un dato muy importante:

¡Que no te falte el pegamento! La longitud \abovedisplayskip, etc. se puede definir con pegamento y así permite que LaTeX configure el espacio de manera más flexible. Por favor lea esta pregunta/respuesta: ¿Qué es el estiramiento del pegamento?

Sin embargo, quiero mostrar otra posibilidad para configurar la longitud. En primer lugar puedes utilizar el comando \AtBeginDocument. La fuente se configurará al principio del documento, por lo que el gancho ejecutará el material más tarde:

\AtBeginDocument{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}

El comando \g@addto@macroes una macro interna. Paquetes como etoolboxel más nuevo xpatchproporcionan versiones más robustas del comando \g@addto@macro. Mostrar en lugar de usar el comando interno y sin manejo especial del @puedes usar:

\usepackage{etoolbox}
\apptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

o

\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

Ese es el trabajo que recogemos aquí con un ejemplo sencillo. Deberías jugar con las longitudes.:

\documentclass{article}
\usepackage{kantlipsum}
\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}
\usepackage{amsmath}
\begin{document}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{subequations}
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{subequations}
\kant[1]
\kant[1]
\end{document}

información relacionada