Sto cercando di allineare un insieme di equazioni lunghe, che sono esse stesse align ambienti poiché la maggior parte di essi si diffonde su più righe.

Attualmente ho solo una sequenza di ambienti align, con ogni equazione allinterno per allineare i pezzi di ciascuna equazione. Allego uno screenshot del risultato:

Unaligned

Quello che vorrei ottenere invece è qualcosa che assomiglia di più a

Allineato

che è lo stesso insieme di equazioni dopo essere passato attraverso lufficio di redazione di una rivista e ha un aspetto molto migliore.

Ecco un MWE. Vorrei che tutte e tre le equazioni fossero allineate sul segno di uguale.

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

Commenti

  • Benvenuto in TeX.sx! Come nuovo utente senza privilegi di pubblicazione di immagini, includi semplicemente limmagine come di consueto e rimuovi il ! davanti di esso per trasformarlo in un collegamento. Un moderatore o un altro utente con privilegi di modifica può quindi reinserire ! per trasformarlo di nuovo in unimmagine.
  • Sarebbe molto più semplice se fornissi il codice in termini di un MWE completamente compilabile che illustra il problema, inclusi \documentclass e i pacchetti appropriati in modo che coloro che cercano di aiutare a don ‘ non doverlo ricreare.
  • Forse Come allineare il testo normale; come per spezzare matrici, insiemi di equazioni, tabelle potrebbe essere utile.
  • Penso che ‘ sia meglio usare split per singole equazioni lunghe anziché align. secondo il documento, split è per singole equazioni lunghe, align è per più equazioni. La numerazione dovrebbe essere influenzata.

Rispondi

senza un esempio reale, ecco come interpreto ciò che tu desidera.

output del codice di esempio

ed ecco linput:

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

lelemento di sinistra più lungo viene inserito allinizio come \phantom e le lunghezze degli elementi di sinistra del singolo aligned i segmenti vengono resi” invisibili “sovrapponendoli a sinistra utilizzando \mathllap dal pacchetto mathtools.

la risposta originale è stata annotata (correttamente) per allineare correttamente i segmenti solo quando i lati di sinistra avevano la stessa lunghezza. questa modifica supera questo problema.

Commenti

  • oops! Ho dimenticato un paio di e commerciali. Versione aggiornata in arrivo.
  • funziona solo se i lati di sinistra hanno la stessa lunghezza?
  • @ user1834164 – – tu ‘ correggere le lunghezze degli elementi di sinistra. ma può essere recuperato. aggiungendo che …
  • perché abbiamo bisogno di \ phantom {i + j + k} .. Non riuscivo a capire ..
  • @PraphullaKoushik – il \phantom è necessario in modo che la larghezza del lato sinistro del gruppo di equazioni sia inclusa nella larghezza dellintero gruppo, in modo che il gruppo sia centrato.

Risposta

Puoi anche utilizzare lambiente split allinterno di align ambiente, utilizzando una e commerciale (&) in cui desideri che abbia luogo lallineamento. Ecco un 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} 

Nota che lultima equazione non è allinterno di un ambiente split, ma si allinea comunque con il resto, dato che è ancora allinterno dellambiente align.

Loutput è simile a questo:

Output di un ambiente diviso allinterno di un ambiente di allineamento

Notare i gruppi vuoti ({}) prima della e commerciale. Senza questi, ci sarebbe non viene applicata alcuna crenatura tra i segni di uguale e il carattere in seguito, perché lallineamento rompe la scatola. Mentre i gruppi vuoti non fanno nulla da soli, in modalità matematica i simboli prima di loro aggiungono crenatura come se i gruppi vuoti fossero caratteri normali. Ciò consente a TeX di scegliere la spaziatura più appropriata. Se le e commerciali fossero posizionate prima dei segni di uguale, lambiente di allineamento si concentrerebbe attorno ai segni di uguale come dovrebbe senza problemi, ma poi il segno di addizione dellequazione di divisione si troverebbe scomodamente molto indietro, richiedendo una sorta di modifica manuale proprio.

Commenti

  • La cosa bella di questa soluzione è che non cè bisogno di scherzare con \phantom o \mathllap.
  • Wow!In effetti, sembra che tu non ‘ ne abbia nemmeno bisogno, sostituendo &= con ={}& fa il trucco!
  • Quando provo a farlo, ottengo lerrore ” La scheda di allineamento extra è stata modificata in \ cr. ” Ottengo questo errore quando provo a utilizzare più di una e commerciale allinterno di una divisione. Qualche idea?
  • @Blaisorblade – il motivo delle divisioni è applicare correttamente i numeri delle equazioni a ciascun gruppo. sì, \notag potrebbe essere utilizzato, ma ‘ non fornisce loutput desiderato se il numero dellequazione deve essere centrato sul gruppo.
  • Ho provato questa tecnica e ha funzionato durante la conversione in PDF, ma non funzionava correttamente durante la conversione in HTML utilizzando il flusso di lavoro mk4ht htlatex test.tex "xhtml,mathml". Presumo che ‘ sia un bug nel convertitore html.

Risposta

Come estensione alla risposta di barbara, puoi racchiudere solo il lato destro delle tue equazioni in aligned sottoambienti. Ciò ti consente di allineare i segni di uguale dei separati equazioni indipendenti dalla dimensione dei lati sinistro o destro.

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

Il segno più sulla seconda riga della seconda equazione non corrisponde esattamente perché esso “sa mathbin simbolo. Forse qualcuno con più conoscenza di TeX potrebbe commentare come risolverlo al meglio.

Commenti

  • Grazie, funziona anche questo. La differenza che vedo è che i numeri di equazione si trovano sulla riga superiore di ogni equazione, mentre quando lintera equazione è in ‘ allineato ‘ ambiente i numeri delle equazioni sono centrati verticalmente. Cè un modo per controllarlo?
  • @eldering – per ottenere la spaziatura corrispondente dopo il primo segno più nellultima riga, anteponilo a un gruppo vuoto, {}.

Risposta

Ecco un align -sola versione delle tue equazioni:

inserisci qui la descrizione dellimmagine

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

Alcuni degli aggiustamenti include

  • Utilizzo di \mathrel per una corretta spaziatura intorno a = (incluso tramite \phantom);
  • Alcuni \nulldelimiter crenatura negativa intorno ai delimitatori \left. mancanti (altrimenti sarebbe stata introdotta una spaziatura aggiuntiva tra operatore / operando);
  • Regolazione dellaltezza per \left\{ e \right\} coppie.

Come filo conduttore, può essere utile leggere attentamente Herbert Voß “ mathmode documento .

Risposta

Questo è un modo per ottenere questo risultato per piccole quantità di testo utilizzando il 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} 

Commenti

  • La parte pertinente riguarda \qquad, che ‘ ho utilizzato, ma ‘ t funziona abbastanza bene.
  • (+1) Ah! 🙂 Stavo cercando una cosa del genere per un po . Grazie molto. 🙂
  • In caso di paragrafi che dividono le equazioni da allineare, qual è la soluzione migliore?

Risposta

Se invece di allineare le equazioni finali desideri giustificarle a destra (in modo simile al modo in cui lambiente \multiline gestisce le equazioni finali), puoi utilizzare quanto segue trucco, che ho preso da questa risposta di 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} 

omit + hfill

Risposta

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

fornirà il seguente output inserisci la descrizione dellimmagine qui

Commenti

  • In che modo questo indirizza il post originale in modo tale che ‘ non sia già stato affrontato dalle altre risposte?

Risposta

Questa risposta funziona quando usi

pacchetto. Lesempio seguente definisce due macro LaTeX\mymidlinee\mylastline. Entrambe le macro si espandono essenzialmente al loro primo argomento allinterno degli ambientialign*. La macro\mymidlinela centra e la macro\mylastlinela allinea a destra. In tal modo, la larghezza del contenuto nel secondo argomento viene sottratta dalla “larghezza di visualizzazione” disponibile. Per gli ambientialign*, dovrebbe essere solo il lato sinistro (più lungo) dellequazione. Lesempio seguente mostra come farlo in modo più efficiente con una 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}  

Formattazione simile a più righe allinterno di align *

Se hai la versione numerata align* dovresti anche considerare la larghezza delletichetta dellequazione e del separatore delletichetta nel secondo argomento di \mymidline e \mylastline. Non ho trovato una misura predefinita per la larghezza delletichetta. Dopo alcuni test si è scoperto che \quad\quad(1) è un segnaposto appropriato per letichetta.

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

inserisci qui la descrizione dellimmagine

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *