Încerc să aliniez un set de ecuații lungi, care sunt ele însele align medii, deoarece cele mai multe dintre ele se răspândesc pe mai multe linii.

În prezent, am doar o secvență de medii align, cu fiecare ecuație în interior pentru a alinia piesele fiecărei ecuații. Atașez o captură de ecran a rezultatului:

Nealiniat

Ceea ce ar dori să obținem în schimb este ceva care arată mai mult ca

Aliniat

care este același set de ecuații după ce treci prin biroul de redactare al unui jurnal și arată mult mai bine.

Iată un MWE. Aș dori ca toate cele trei ecuații să se alinieze la semnul egal.

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

Comentarii

  • Bine ați venit la TeX.sx! În calitate de utilizator nou, fără privilegii de postare a imaginilor, includeți pur și simplu imaginea în mod normal și eliminați ! din față pentru a-l transforma într-un link. Un moderator sau alt utilizator cu privilegii de editare poate reintroduce ! pentru a-l transforma din nou în imagine.
  • Ar fi mult mai ușor dacă ați furniza codul în termeni de MWE complet compilabil care ilustrează problema, inclusiv \documentclass și pachetele corespunzătoare, astfel încât cei care încearcă să ajutor, nu ‘ nu trebuie să îl recreați.
  • Poate că Cum să vă aliniați textului obișnuit; ca și în cazul descompunerii matricilor, seturilor de ecuații, tabelelor ar putea fi utile.
  • Cred că ‘ este mai bine să folosiți split pentru ecuații lungi simple, mai degrabă decât align. conform documentului, split este pentru ecuații lungi simple, align este pentru ecuații multiple. Numerotarea ar trebui să fie afectată.

Răspuns

fără un exemplu real, iată cum interpretez ceea ce doresc.

ieșirea codului de exemplu

și iată intrarea:

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

cel mai lung element din stânga este inserat la început ca \phantom și lungimile elementelor din stânga individului sunt” invizibile „, făcându-le la stânga folosind \mathllap din pachetul mathtools.

răspunsul inițial a fost (corect) notat pentru a alinia corect segmentele numai atunci când laturile din stânga aveau aceeași lungime. această modificare depășește problema respectivă.

Comentarii

  • hopa! ați uitat câteva ampersands. vine versiunea actualizată.
  • funcționează numai dacă laturile din stânga au aceleași lungimi?
  • @ user1834164 – – tu ‘ re corectați lungimile elementelor din stânga. dar poate fi salvat. adăugând că …
  • de ce avem nevoie de \ phantom {i + j + k} .. Nu am putut înțelege …
  • @PraphullaKoushik – \phantom este necesar, astfel încât lățimea din partea stângă a grupului de ecuații să fie inclusă în lățimea întregului grup, astfel încât grupul să fie centrat.
  • Răspuns

    Puteți utiliza și mediul split din cadrul align mediu, utilizând un ampersand (&) unde doriți să aibă loc alinierea. Iată 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} 

    Observați că ultima ecuație nu se află într-un mediu split, dar se aliniază în continuare cu restul, deoarece se află încă în mediul align.

    Rezultatul arată astfel:

    Ieșirea unui mediu divizat într-un mediu de aliniere

    Rețineți grupurile goale ({}) înainte de ampersands. Fără acestea, ar exista să nu se aplice mai târziu între semnele egale și caracterul, deoarece alinierea rupe caseta. În timp ce grupurile goale nu fac nimic singure, în modul matematic simbolurile dinaintea lor adaugă kerning ca și cum grupurile goale ar fi caractere obișnuite. Aceasta permite TeX să aleagă spațiul cel mai potrivit. Dacă ampersand-urile ar fi plasate înaintea semnelor egale, mediul de aliniere s-ar învârti în jurul semnelor egale așa cum ar trebui, fără o astfel de complicație, dar atunci semnul de adăugare a ecuației împărțit ar sta neplăcut în spate, necesitând un fel de ajustare manuală a proprii.

    Comentarii

    • Lucrul plăcut la această soluție este că nu este nevoie să te amesteci cu \phantom sau \mathllap.
    • Uau!De fapt, se pare că nu aveți ‘ nici măcar nevoie de divizări, înlocuind &= cu ={}& face trucul!
    • Când încerc să fac asta, primesc eroarea ” Fila de aliniere suplimentară a fost schimbată în \ cr. ” Am primit această eroare atunci când încerc să folosesc mai mult de un semn de compresie în cadrul divizării. Aveți idei?
    • @Blaisorblade – motivul divizărilor este aplicarea corectă a numerelor de ecuație fiecărui grup. da, s-ar putea folosi \notag, dar nu ‘ nu oferă ieșirea dorită dacă numărul ecuației ar trebui să fie centrat pe grup.
    • Am încercat această tehnică și a funcționat la conversia în PDF, dar a funcționat defectuos la conversia în HTML utilizând fluxul de lucru mk4ht htlatex test.tex "xhtml,mathml". Presupun că ‘ este o eroare în convertorul html.

    Răspunde

    Ca o extensie a răspunsului barbarei, puteți înfășura doar partea dreaptă a ecuațiilor în submedii aligned. Acest lucru vă permite să aliniați semnele egale ale separării ecuații independente de dimensiunea laturilor din stânga sau din dreapta.

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

    Semnul plus de pe a doua linie a celei de-a doua ecuații nu se potrivește exact pentru că simbolul „sa mathbin. Poate că cineva cu mai multe cunoștințe TeX ar putea să comenteze cum se poate remedia cel mai bine acest lucru.

    Comentarii

    • Mulțumesc, și asta funcționează. Diferența pe care o văd este că numerele ecuației sunt pe linia superioară a fiecărei ecuații, în timp ce atunci când întreaga ecuație este în ‘ aliniat ‘ mediul numerele ecuației sunt centrate vertical. Există o modalitate de a controla acest lucru?
    • @eldering – pentru a obține spațierea potrivită după primul semn plus din ultima linie, precedați-l cu un grup gol, {}.

    Răspuns

    Iată un align -numai versiunea ecuațiilor dvs.:

    introduceți descrierea imaginii aici

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

    Unele dintre ajustări includ

    • Utilizarea \mathrel pentru spațierea corectă în jurul = ascuns (inclus prin \phantom);
    • Unele \nulldelimiter negative care lipsesc delimitatorii \left. negativi (altfel ar exista spațiu suplimentar introdus între operator / operand);
    • Ajustarea înălțimii pentru mai multe linii \left\{ și \right\} perechi.

    Ca fir comun, poate fi util să parcurgeți Herbert Voß „ mathmode document .

    Răspuns

    Acesta este un modalitate de a realiza acest lucru pentru cantități mici de text utilizând comanda \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} 

    Comentarii

    • Partea relevantă este despre \qquad, pe care l-am folosit ‘, dar asta nu ‘ nu funcționează suficient de bine.
    • (+1) Ah! 🙂 Am căutat așa ceva o vreme. Mulțumesc mult. 🙂
    • În cazul în care paragrafele împart ecuațiile care urmează să fie aliniate, care este cea mai bună soluție?

    Răspuns

    Dacă, în loc să aliniați ecuațiile finale, doriți să le justificați (în mod similar cu modul în care mediul \multiline gestionează ecuațiile finale), puteți utiliza următoarele truc, pe care l-am luat din acest răspuns 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} 

    omite + hfill

    Răspunde

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

    va furniza următoarea ieșire introduceți descrierea imaginii aici

    Comentarii

    • Cum se adresează acest lucru postării originale în așa fel încât ‘ nu a fost deja abordat de celelalte răspunsuri?

    Răspuns

    Acest răspuns funcționează când utilizați

    pachet. Exemplul de mai jos definește două macro-uri LaTeX\mymidlineși\mylastline. Ambele macro-uri se extind în esență la primul lor argument în mediilealign*. Macro-ul\mymidlineîl centrează și macro-ul\mylastlineîl aliniază la dreapta. Astfel, lățimea elementelor din al doilea argument este scăzută din „lățimea de afișare” disponibilă. Pentru mediilealign*care ar trebui să fie doar (cea mai lungă) parte din stânga a ecuației. Exemplul de mai jos arată cum puteți face acest lucru cel mai eficient cu un 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}  

    Formatare de tip multline în cadrul align *

    Dacă aveți versiunea numerotată align* ar trebui să luați în considerare și lățimea etichetei ecuației și a separatorului de etichete în al doilea argument al \mymidline și \mylastline. Nu am găsit o măsură predefinită pentru lățimea etichetei. După unele teste s-a dovedit că \quad\quad(1) este un substituent adecvat pentru etichetă.

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

    introduceți descrierea imaginii aici

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *