Megpróbálok összehangolni egy hosszú egyenleteket, amelyek maguk is align
környezetek, mivel többségük több vonalon terjed.
Jelenleg csak align
környezetek szekvenciája van, minden egyenlet belsejében az egyes egyenletek darabjainak összehangolása érdekében. Csatolok egy képernyőképet az eredményről:
Amit szeretne kapni, az inkább valami
amely ugyanaz az egyenletkészlet, miután átment egy napló másolási irodáján, és sokkal jobban néz ki.
Itt van egy MWE. Szeretném, ha mindhárom egyenlet igazodna az egyenlőségjelhez.
\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}
Megjegyzések
Válasz
tényleges példa nélkül, itt értelmezem, mit akar.
és itt van a bemenet:
\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}
a leghosszabb bal oldali elem beillesztésre kerül az elején, mint \phantom
, és az
szegmenseket” láthatatlanná “teszi azáltal, hogy balra csapja őket a\mathllap
segítségével amathtools
csomagból.
Az eredeti választ (helyesen) megjegyezték, hogy a szegmenseket csak akkor lehet megfelelően összehangolni, ha a bal oldal azonos hosszúságú. Ez a módosítás leküzdi ezt a problémát.
Megjegyzések
- hoppá! elfelejtettem pár jelet. megjelenik a frissített verzió.
- csak akkor működik, ha a bal oldal azonos hosszúságú?
- @ user1834164 – – te ‘ d korrigáljuk a bal oldali elemek hosszát. de megmenthető. hozzátéve, hogy …
- miért van szükségünk fantomra {i + j + k} .. Nem értettem ..
- @PraphullaKoushik – a
\phantom
szükséges, hogy az egyenletcsoport bal oldali szélessége beletartozzon az egész csoport szélességébe, hogy a csoport középre kerüljön.
Válasz
Használhatja a split
környezetet is a környezetet, ampersand (&
) használatával, ahol az igazítást szeretné végrehajtani. Itt van egy 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}
Figyelje meg, hogy az utolsó egyenlet nincs split
környezetben, de mégis igazodik a többivel, mivel még mindig a align
környezetben van.
A kimenet így néz ki:
Vegye figyelembe az üres csoportokat ({}
) az és jelek előtt. Ezek nélkül az egyenlőségjelek és a karakter között ne legyen kerning utána, mert az igazítás feldarabolja a négyzetet. Míg az üres csoportok nem csinálnak semmit, matematikai módban az előttük lévő szimbólumok úgy adják hozzá a rendszermagot, mintha az üres csoportok hétköznapi karakterek lennének. Ez lehetővé teszi a TeX számára, hogy kiválassza a legmegfelelőbb távolságot. Ha az és / vagy jeleket az egyenlőségjelek elé helyeznék, az igazodó környezet az egyenlőségjelek köré csavarodna, ahogy kellene, ilyen gond nélkül, de a felosztási egyenlet összeadási jele kényelmetlenül messze fekszik, és valamilyen manuális módosítást igényel. saját.
Hozzászólások
- A megoldásban az a jó, hogy nem kell vacakolni a vagy
\mathllap
. - Ejha!Valójában úgy tűnik, hogy nem is kell ‘ még a felosztás sem, a
&=
szöveget={}&
megcsinálja! - Amikor megpróbálom ezt megtenni, megkapom a ” hibát. Az Extra igazítás lap \ cr. ” Ezt a hibát akkor kapom, amikor egynél több és több jelet próbálok használni a felosztáson belül. Van valami ötlet?
- @Blaisorblade – a felosztás oka az egyenletszámok megfelelő alkalmazása az egyes csoportokra. igen,
\notag
használható, de nem ‘ nem adja meg a kívánt kimenetet, ha az egyenletszámot a csoport közepére kell állítani. / li> - Kipróbáltam ezt a technikát, és a PDF-be történő konvertáláskor működött, de hibásan működött, amikor a
mk4ht htlatex test.tex "xhtml,mathml"
munkafolyamat segítségével HTML-be konvertáltam. Feltételezem, hogy ‘ hibát jelent a html átalakítóban.
Válasz
A barbara válaszának kiterjesztéseként csak az egyenletek jobb oldalát tekerheti aligned
szuvenkörnyezetbe. Ez lehetővé teszi a különálló a bal vagy a jobb oldali oldal méretétől független egyenletek.
\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}
A második egyenlet második sorában található pluszjel nem pontosan egyezik, mert ez “sa mathbin
szimbólum. Lehet, hogy valaki, aki több TeX-ismerettel rendelkezik, megjegyzést fűzhetne a legjobb megoldásához.
Megjegyzések
- Köszönöm, ez is működik. Úgy látom, a különbség az, hogy az egyenletszámok az egyes egyenletek felső sorában vannak, míg ha az egész egyenlet a ‘ igazított ‘ környezetben az egyenletszámok függőlegesen középre kerülnek. Van-e mód ennek ellenőrzésére?
- @eldering – hogy az utolsó sorban az első pluszjel után megkapjuk a megfelelő távolságot, előtte egy üres csoportot kell megadni,
{}
.
Válasz
Itt van egy align
-csak az egyenletek verziója:
\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}
Néhány a kiigazítások közé tartozik
- A
\mathrel
használata a rejtett=
körüli megfelelő távolságra (\phantom
); - Néhány negatív
\nulldelimiter
kerning hiányzó\left.
elválasztók körül (különben további távolságot vezetnének be az operátor / operandus között); - magasságállítás többsoros
\left\{
és\right\}
párok.
Közös szálként hasznos lehet átnézni Herbert Voß “ mathmode
dokumentum .
Válasz
Ez egy Ennek módja kis mennyiségű szöveg esetén a \intertext
paranccsal.
\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}
Megjegyzések
- A releváns rész a
\qquad
-ről szól, amelyet ‘ használtam, de ez nem történik meg ‘ nem működnek elég jól. - (+1) Ah! 🙂 Egy ideig kerestem ilyet. Nagyon köszönöm. 🙂
- Abban az esetben, ha a bekezdések felosztják az igazítandó egyenleteket, mi a legjobb megoldás?
Válasz
Ha a záróegyenletek igazítása helyett jobbra kívánja igazolni őket (hasonlóan a \multiline
környezet kezeléséhez a záróegyenletekhez), akkor a következőket is használhatja: trükk, amelyet Ulrike Fischer e válaszából vettem át.
\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}
válasz
\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}
a következő kimenetet adja
Megjegyzések
- Hogyan kezeli ez az eredeti bejegyzést oly módon, hogy a többi válasz már nem foglalkozott vele ‘?
Válasz
Ez a válasz akkor működik, ha a
csomag. Az alábbi példa két LaTeX makrót határoz meg:\mymidline
és\mylastline
. Mindkét makróalign*
környezetekben lényegében kibővül az első argumentumig. Az\mymidline
makró központosítja, a\mylastline
makró pedig jobbra igazítja. Ezáltal a második argumentumban szereplő dolgok szélességét kivonjuk a rendelkezésre álló “megjelenítési szélességből”.align*
olyan környezeteknél, amelyeknek éppen az egyenlet (leghosszabb) bal oldala kell, hogy legyen. Az alábbi példa bemutatja, hogyan teheti ezt meg a leghatékonyabban egy\LHS
makróval.
\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}
Ha a számozott verziója van align*
, vegye figyelembe a az egyenletcímke és a címkeválasztó szélessége az \mymidline
és \mylastline
második argumentumban. Nem találtam egy előre meghatározott mértéket a címke szélességéhez. Néhány teszt után kiderült, hogy a \quad\quad(1)
megfelelő helyőrző a címkéhez.
\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}
!
-t belőle, hogy linkké váljon. Ezt követően egy moderátor vagy más szerkesztési jogosultsággal rendelkező felhasználó visszahelyezheti a!
fájlt, hogy újra képpé alakítsa.\documentclass
-t és a megfelelő csomagokat, hogy azok, akik megpróbálják segítsen, ne kelljen újra létrehozni.split
egyes hosszú egyenletek helyettalign
. a dokumentum szerint asplit
egyetlen hosszú egyenletre, aalign
több egyenletre vonatkozik. A számozásnak hatással kell lennie.