Como alterar globalmente o espaçamento em torno das equações?

Como alterar globalmente o espaçamento em torno das equações?

Como eu poderia definir os vspaces 'acima' e 'abaixo' em todo o equationambiente?

Se o mesmo pudesse ser feito para os ambientes subequationsou gather, isso seria um bônus.

Responder1

Você pode ajustar os valores de \abovedisplayskip, \belowdisplayskip, \abovedisplayshortskip, \belowdisplayshortskip. As shortskipversões são utilizadas na situação em que uma linha curta de texto vem antes da equação exibida: se o texto termina antes do início da equação exibida, é bom adicionar menos espaço vertical.

Como as classes de documentos geralmente definem esses saltos, \normalsizevocê pode redefinir essa macro, corrigi-la ou simplesmente adicioná-la, porque apenas definir os valores no preâmbulo não funcionaria.

\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}

O mesmo pode ser feito sem \g@addto@macro, portanto, sem nenhum @e sem exigir \makeatlettere \makeatother, usando \expandafter:

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

Eu prefiro a forma de adicionar \normalsize, porque tanto a redefinição quanto a correção exigem o conhecimento da definição exata \normalsizeusada pela classe do documento. Maneiras de bot que descrevi anteriormente noFórum da comunidade LaTeX, em resposta aNão é possível definir espaços em branco verticais no preâmbulo.

Mais informações estão disponíveis no excelentemodo matemáticodocumentação.

Responder2

Como uma atualização da resposta de Stefan.

Suas perguntas devem ser encerradas como duplicadas. Você encontrará muitas perguntas/respostas aqui. Por exemplo:

Espaçamento diferente em torno da equação e alinhamento

Antes de mostrar algumas outras abordagens aqui, um fato muito importante:

Não perca a cola! O comprimento \abovedisplayskipetc. pode ser definido com uma cola e assim você permite que o LaTeX configure o espaço de forma mais flexível. Por favor, leia esta pergunta/resposta: O que é alongamento de cola?

Porém quero mostrar uma outra possibilidade de configurar o comprimento. Primeiro de tudo você pode usar o comando \AtBeginDocument. A fonte será configurada no início do documento e assim o gancho executará o material posteriormente:

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

O comando \g@addto@macroé uma macro interna. Pacotes semelhantes etoolboxou mais recentes xpatchfornecem versões mais robustas do comando \g@addto@macro. Mostrar em vez de usar o comando interno e sem tratamento especial do que @você pode 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
}{}{}

ou

\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
}{}{}

Esse é o trabalho de reunir aqui um exemplo simples. Você deve brincar com os comprimentos.:

\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}

informação relacionada