Espacio espurio encima de alinear el entorno en la parte superior de la página/minipágina

Espacio espurio encima de alinear el entorno en la parte superior de la página/minipágina

Parece que el alignentorno agrega espacio vertical adicional si comienza en la parte superior de una página o minipage. A continuación se muestran dos páginas y dos minipagepáginas (en la página 1), donde la primera página/ minipagetiene texto seguido de un align*entorno, y la segunda página/ minipagecomienza con un align*entorno, y tenga en cuenta que las ecuaciones todavía están alineadas.

ingrese la descripción de la imagen aquí

Solución intentada:

La pregunta relacionada más cercana que encontré fue:

Intenté usar elsolución de Gonzalo Medinaa lo anterior agregando \setlength\abovedisplayskip{0pt}(después del preámbulo segúnEspacio vertical antes y después de alinear el entorno.). Aunque esto movió las ecuaciones verticalmente hacia arriba, todavía estaban alineadas verticalmente:

ingrese la descripción de la imagen aquí

Y dado que el problema también ocurre en la parte superior de una página, no creo que esto esté relacionado conEntendiendo las minipáginas: alineando en la parte superior

Pregunta:

  1. ¿Cómo puedo ajustar el alignentorno para que automáticamente no tenga espacio adicional en la parte superior de una página minipage?
  2. ¿Existe alguna razón para este comportamiento y quizás no debería cambiarse?

Código:

\documentclass{article}
\usepackage[showframe,paperwidth=3.5in,paperheight=2.2in,margin=0.5in]{geometry}
\usepackage{amsmath}

\begin{document}%\setlength\abovedisplayskip{0pt}
Top of Page 1
\begin{align*}% Text above at top of page
 e &= m c^2
\end{align*}

\hrule
\begin{minipage}[t]{0.45\linewidth}
    Top of minipage 1
    \begin{align*}% Text above this minipage
     e &= m c^2
    \end{align*}
\end{minipage}
\begin{minipage}[t]{0.45\linewidth}
    \begin{align*}% No text above in this minipage
     e &= m c^2
    \end{align*}
\end{minipage}

\newpage
\begin{align*}% No text above at top of page
 e &= m c^2
\end{align*}
\end{document}

Respuesta1

Los entornos de alineación dematemáticasno están diseñados para estar al comienzo de un párrafo. Si bien esto puede ser aceptable en situaciones normales, tiene malos efectos cuando usamos a minipagepara componer una alineación con un ancho reducido.

El minipageproblema se puede resolver parcheando el \start@aligncomando (y también \start@gathery \start@multline) con

\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align{%
  \if@minipage\kern-\topskip\kern-\abovedisplayskip\fi
}{}{}
\makeatother

Esto aprovecha el hecho de que al comienzo de un párrafo minipageel condicional \if@minipagees verdadero, pero al comenzar un párrafo se vuelve falso, por lo que alignlos entornos posteriores del mismo minipageno se verán afectados.

Hay un parche similar para "curar" los entornos al inicio del párrafo, pero soy algo reacio a mostrarlo, ya que creo que un párrafo deberíanuncacomience con una ecuación mostrada (con la excepción mencionada anteriormente).

información relacionada