Estou tentando alinhar um conjunto de equações longas, que são elas mesmas align já que a maioria deles está se espalhando em várias linhas.

Atualmente, tenho apenas uma sequência de ambientes align, com cada equação dentro para alinhar as peças de cada equação. Estou anexando uma captura de tela do resultado:

Desalinhado

O que gostaria de obter no lugar é algo parecido com

Alinhado

que é o mesmo conjunto de equações após passar pelo escritório de edição de texto de um periódico e parece muito melhor.

Aqui está um MWE. Gostaria que todas as três equações se alinhassem com o sinal de igual.

\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d \nonumber \\ & \qquad + e + f + g \label{eq:1} \end{align} \begin{align} k & = l + m + n + m + n + m + n \nonumber \\ & \qquad + o + p + q \label{eq:2} \end{align} \begin{equation} r = s + t (u + v + w) \label{eq:3} \end{equation} \end{document} 

Comentários

  • Bem-vindo ao TeX.sx! Como novo usuário sem privilégios de postagem de imagem, basta incluir a imagem normalmente e remover o ! da frente dele para transformá-lo em um link. Um moderador ou outro usuário com privilégios de edição pode reinserir o ! para transformá-lo em uma imagem novamente.
  • Seria muito mais fácil se você fornecesse o código em termos de um MWE totalmente compilável que ilustra o problema, incluindo o \documentclass e os pacotes apropriados para que aqueles que estão tentando ajude a não ‘ a recriá-lo.
  • Talvez Como alinhar em texto comum; como quebrar matrizes, conjuntos de equações, tabelas pode ser útil.
  • Acho que ‘ é melhor usar split para equações longas únicas em vez de align. de acordo com o documento, split é para equações longas simples, align é para equações múltiplas. A numeração deve ser afetada.

Resposta

sem um exemplo real, aqui está como eu interpreto o que você deseja.

saída do código de exemplo

e aqui está a entrada:

\documentclass{article} \usepackage{mathtools} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \phantom{i + j + k} &\begin{aligned} \mathllap{a} &= b + c + d\\ &\qquad + e + f + g + x + y + z \end{aligned}\\ &\begin{aligned} \mathllap{i + j + k} &= l + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} \end{document} 

o elemento mais longo à esquerda é inserido no início como \phantom e os comprimentos dos elementos à esquerda do indivíduo aligned os segmentos tornam-se” invisíveis “dobrando-os para a esquerda usando \mathllap do pacote mathtools.

a resposta original foi anotada (corretamente) para alinhar os segmentos adequadamente apenas quando os lados esquerdos tinham o mesmo comprimento. esta modificação resolve o problema.

Comentários

  • oops! esqueci alguns “e” comerciais. versão atualizada chegando.
  • só funciona se os lados esquerdos tiverem o mesmo comprimento?
  • @ user1834164 – – você ‘ re correto sobre os comprimentos dos elementos do lado esquerdo. mas pode ser recuperado. adicionando isso …
  • por que precisamos de \ phantom {i + j + k} .. Não consegui entender ..
  • @PraphullaKoushik – o \phantom é necessário para que a largura do lado esquerdo do grupo de equações seja incluída na largura de todo o grupo, de modo que o grupo seja centralizado.

Resposta

Você também pode usar o ambiente split dentro do align ambiente, usando um E comercial (&) onde você deseja que o alinhamento ocorra. Aqui está um MWE:

\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} \begin{split}\label{eq:1} a ={}& b + c + d\\ & + e + f + g \end{split}\\ \begin{split}\label{eq:2} k ={}& l + m + n + m + n + m + n\\ & + o + p + q \end{split}\\ r ={}& s + t (u + v + w)\label{eq:3} \end{align} \end{document} 

Observe que a última equação não está dentro de um ambiente split, mas ainda se alinha com o resto, uma vez que “ainda está dentro do ambiente align.

A saída é semelhante a esta:

Saída de um ambiente dividido dentro de um ambiente de alinhamento

Observe os grupos vazios ({}) antes dos” e “comerciais. Sem eles, haveria não seja aplicado kerning entre os sinais de igual e o caractere depois, porque o alinhamento quebra a caixa. Enquanto os grupos vazios não fazem nada por si mesmos, no modo matemático os símbolos antes deles adicionam kerning como se os grupos vazios fossem caracteres comuns. Isso permite que o TeX escolha o espaçamento mais apropriado. Se o e comercial fosse colocado antes dos sinais de igual, o ambiente de alinhamento iria kern em torno dos sinais de igual como deveria, sem tal incômodo, mas então o sinal de adição da equação de divisão ficaria desconfortavelmente bem atrás, exigindo algum tipo de ajuste manual de seu próprio.

Comentários

  • O bom dessa solução é que não há necessidade de mexer com \phantom ou \mathllap.
  • Uau!Na verdade, parece que você não ‘ nem precisa das divisões, substituindo &= por ={}& faz o truque!
  • Quando tento fazer isso, recebo o erro ” A guia de alinhamento extra foi alterada para \ cr. ” Recebo este erro quando tento usar mais de um E comercial na divisão. Alguma ideia?
  • @Blaisorblade – a razão para as divisões é aplicar corretamente os números da equação a cada grupo. sim, \notag poderia ser usado, mas não ‘ dá a saída desejada se o número da equação deve ser centralizado no grupo.
  • Tentei essa técnica e funcionou ao converter para PDF, mas não funcionou corretamente ao converter para HTML usando o fluxo de trabalho mk4ht htlatex test.tex "xhtml,mathml". Presumo que seja ‘ um bug no conversor de html.

Resposta

Como uma extensão da resposta de barbara, você pode envolver apenas o lado direito de suas equações em aligned subambientes. Isso permite que você alinhe os sinais de igual de cada equações independentes do tamanho dos lados esquerdo ou direito.

\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} a &= \begin{aligned}[t] &b + c + d +\\ &c + e + f + g + h + i \end{aligned}\\ k &= \begin{aligned}[t] &l + m + n\\ &+ o + p + q \end{aligned} \end{align} \end{document} 

O sinal de mais na segunda linha da segunda equação não corresponde exatamente porque é o símbolo “sa mathbin. Talvez alguém com mais conhecimento de TeX possa comentar sobre a melhor forma de consertar isso.

Comentários

  • Obrigado, isso também funciona. A diferença que vejo é que os números das equações estão na linha superior de cada equação, enquanto a equação inteira está no ‘ alinhado ‘ ambiente os números da equação são centrados verticalmente. Existe uma maneira de controlar isso?
  • @eldering – para obter o espaçamento correspondente após o primeiro sinal de mais na última linha, preceda-o por um grupo vazio, {}.

Resposta

Aqui está uma align apenas a versão das suas equações:

insira a descrição da imagem aqui

\documentclass{article} \usepackage{amsmath}% http://ctan.org/pkg/amsmath \newcommand{\myvec}[1]{\hat{\mathbf{#1}}}% Vector notation \begin{document} \begin{align} f_{\textit{P},\textit{P}}\left(\myvec{n};\myvec{m}\right) &= \frac{\omega^2}{4\pi\rho\alpha^4} \textit{AF}\left(k_\alpha\left(\myvec{n}-\myvec{m}\right)\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)^2\eta_N+\left(\lambda+\mu\right)\mu\eta_N\left(\cos 2\phi+\cos 2\theta\right)\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace +\;\mu^2\eta_N\cos 2\phi\cos 2\theta+\mu^2\eta_T\sin 2\phi\sin 2\theta\cos\varphi\vphantom{\left(\lambda\right)^2}\right\}, \\ f_{\textit{P},\textit{SH}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left(-\mu^2\eta_T\right)\sin 2\phi\cos\theta\sin\varphi, \\ f_{\textit{P},\textit{SV}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)\mu\eta_N\sin 2\theta+\mu^2\eta_N\cos 2\phi\sin 2\theta\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace -\;\mu^2\eta_T\sin 2\phi\cos 2\theta\cos\varphi\right\}, \end{align} \end{document} ​ 

Alguns dos ajustes incluem

  • Usando \mathrel para espaçamento adequado entre = (incluído via \phantom);
  • Alguns \nulldelimiter kerning negativos em torno dos delimitadores \left. ausentes (caso contrário haveria espaçamento adicional introduzido entre operador / operando);
  • Ajuste de altura para multilinhas \left\{ e \right\} pares.

Como um tópico comum, pode ser útil examinar Herbert Voß “ mathmode documento .

Resposta

Este é um maneira de fazer isso para pequenas quantidades de texto usando o comando \intertext.

\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \begin{aligned} a &= b + c + d\\ &\qquad + e + f + g \end{aligned}\\ \begin{aligned} k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} This example shows text and equations within an \verb|align| environment. \begin{align} a &= b + c + d\\ &\qquad + e + f + g \intertext{A small amount of text can go here with $x=2$ inline math and $$\int_a^b f(x)\,dx=F(b)-F(a)$$ (even inline math). But not a lot of text. } k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{align} \end{document} 

Comentários

  • A parte relevante é sobre \qquad, que eu ‘ usei, mas não ‘ t funciona bem o suficiente.
  • (+1) Ah! 🙂 Eu estava procurando por uma coisa dessas há um tempo. Muito Obrigado. 🙂
  • No caso de parágrafos dividindo as equações a serem alinhadas, qual é a melhor solução?

Resposta

Se em vez de alinhar as equações finais você deseja justificá-las à direita (de forma semelhante à forma como o \multiline ambiente lida com as equações finais), você pode usar o seguinte truque, que aprendi esta resposta de Ulrike Fischer.

\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d + e + f + g + h \nonumber \\ & \hspace{7cm} + i + j + k \\ a & = b + c + d + e + f + g + h \nonumber \\ & \omit\hfill ${} + i + j + k$ \end{align} \end{document} 

omitir + hfill

Resposta

\begin{align} \ni Tdij (Ti,Tj,Sk,t) & = Tdij(Ti,Tj,Sk,t) \nonumber \\ & Tddir (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdrecom (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdiv (Ti,Tj,Sk,t) \label{eq:1} \end{align} 

fornecerá o seguinte resultado insira a descrição da imagem aqui

Comentários

  • Como isso aborda a postagem original de uma forma que não ‘ já foi abordada pelas outras respostas?

Resposta

Esta resposta funciona quando você usa o

pacote. O exemplo abaixo define duas macros LaTeX\mymidlinee\mylastline. Ambas as macros se expandem essencialmente para seu primeiro argumento dentro de ambientesalign*. A macro\mymidlineo centraliza e a macro\mylastlineo alinha à direita. Desse modo, a largura do material no segundo argumento é subtraída da “largura de exibição” disponível. Para ambientesalign*, que deve ser apenas o (mais longo) lado esquerdo da equação. O exemplo abaixo mostra como você pode fazer isso de forma mais eficiente com uma macro\LHS.

 \documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align*} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}\LHS\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}\LHS\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}\LHS\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}\LHS\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}\LHS\\ &= A[i+1:n,i+1:n]. \end{align*} \end{document}  

Multline like formatting within align *

Se você tiver a versão numerada align*, você também deve considerar o largura do rótulo da equação e o separador de rótulo no segundo argumento de \mymidline e \mylastline. Não encontrei uma medida predefinida para a largura do rótulo. Após alguns testes, descobri que \quad\quad(1) é um marcador apropriado para o rótulo.

 \documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\notag\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}{\LHS\quad\quad(1)}\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= A[i+1:n,i+1:n]. \end{align} \end{document}  

insira a descrição da imagem aqui

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *