
Tenho várias equações curtas e quero mostrá-las em duas colunas. Essencialmente:
A = B (1) || C = D (2)
E = F (3) || G = H (4)
Tentei primeiro o flalign
ambiente (prefiro isso align
, mas não é necessário), mas não consegui numerar as equações da maneira que queria. O align
ambiente trata cada linha como uma equação.
Exemplo:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\begin{document}
\begin{flalign}
A = & B & C = & D \\
E = & F & G = & H
\end{flalign}
\end{document}
Outra abordagem foi um multicolumn
ambiente simples, com quebra de coluna forçada:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{align}
A = & B \\
E = & F
\end{align}
\columnbreak
\begin{align}
C = & D \\
G = & H
\end{align}
\end{multicols}
\end{document}
No entanto, existem vários problemas:
- As equações parecem estar verticalmente mal colocadas
- A numeração é vertical e não horizontal (isso seria aceitável para mim)
Eu apreciaria qualquer ajuda sobre isso.
Responder1
Eu acho que você só deve numerar equações se pretende consultá-las mais tarde, então, alinhado com essa filosofia, por que não definir uma macro que insira o número da equação e também faça o rótulo:
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
Isso primeiro incrementa o equation
contador, imprime-o e depois há alguns truques para fazer o rótulo (os ambientes amsmath imprimem mensagens de erro quando vários rótulos aparecem em uma linha e precisamos evitar isso). Por causa disso @
, isso precisa ser embrulhado dentro \makeatletter...\makeatother
.
Possivelmente imprudentemente, incluí &
's dentro da macro e, portanto, assumi implicitamente que \Label
sempre será usado dentro de algo como um align*
ambiente - observe que *
você não deseja que o ambiente forneça rótulos adicionais. Por outro lado, foi necessário um pouco mais de esforço para impedir align*
que ocorresse um erro (já que align*
suprime os números das equações), portanto esta macro não funcionará fora de um ambiente de alinhamento ams.
Usar esta macro fornece:
Aqui está o código completo:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\makeatletter
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
\makeatother
\begin{document}
\begin{align*}
A &= B \Label{one}& C &= D \Label{two}\\
E &= F \Label{three}& G &= H \Label{four}
\end{align*}
See equations \ref{one}, \ref{two}, \ref{three} and \ref{four}.
\end{document}
Como eu disse acima, provavelmente não é aconselhável colocar os dois &
dentro da \Label
macro, pois isso esconde parte da estrutura do align*
ambiente, o que pode eventualmente confundir alguém.
Aliás, isso funciona igualmente bem com flalign*
ambientes.
Responder2
Não consigo adicionar um comentário à resposta, então adiciono-o como uma resposta para qualquer pessoa que tenha um problema semelhante ao \Label
usar apenas a primeira letra.
Eu adicionei uma variável fictícia \tmpLabel
usando primitivo \def
para que ela possa ser expandida adequadamente dentro de \ltx@label
.
\makeatletter
\newcommand{\allignLabel}[1]{&\refstepcounter{equation}(\theequation)\def\tmplab{#1}\ltx@label\tmplab&}
\makeatother
Tenho certeza de que existe uma solução mais elegante para isso, então comente ou edite esta resposta com uma solução adequada.