Snažím se sladit sadu dlouhých rovnic, které jsou samy align prostředí, protože většina z nich se šíří na více řádcích.

V současné době mám pouze sekvenci prostředí align s každou rovnicí uvnitř, abych zarovnal jednotlivé části každé rovnice. Přikládám snímek obrazovky s výsledkem:

Nezarovnáno

To, co bych místo toho chtěl získat, je něco, co vypadá spíše jako

Zarovnáno

, což je stejná sada rovnic po procházení redakční kanceláře časopisu a vypadá mnohem lépe.

Tady je MWE. Chtěl bych, aby všechny tři rovnice byly zarovnány na znaménko rovnosti.

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

Komentáře

  • Vítejte na TeX.sx! Jako nový uživatel bez oprávnění k odesílání obrázků jednoduše přidejte obrázek jako obvykle a odstraňte ! vpředu z toho proměnit odkaz. Moderátor nebo jiný uživatel s oprávněním k úpravám pak může ! znovu vložit do podoby obrázku.
  • Bylo by mnohem jednodušší, kdybyste zadali kód z hlediska plně kompilovatelné MWE , která ilustruje problém včetně \documentclass a příslušných balíčků, takže ti, kteří se snaží pomozte ‚ jej znovu vytvořit.
  • Možná Jak zarovnat napříč běžným textem; jako v dělení matic, sad rovnic, tabulek může být užitečné.
  • Myslím, že ‚ je lepší použít split spíše pro jednotlivé dlouhé rovnice než align. podle dokumentu je split pro jednotlivé dlouhé rovnice, align pro více rovnic. Mělo by to ovlivnit číslování.

Odpovědět

bez konkrétního příkladu, zde interpretuji to, co vy chcete.

výstup ukázkového kódu

a zde je vstup:

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

nejdelší levý prvek se na začátek vloží jako \phantom a délky levých prvků jednotlivých segmenty jsou„ neviditelné “jejich přeložením doleva pomocí \mathllap z balíčku mathtools.

Původní odpověď (správně) byla zaznamenána, aby se segmenty správně zarovnaly, pouze pokud měly levé strany stejnou délku. Tato úprava tento problém překonává.

Komentáře

  • Jejda! zapomněli jste několik ampersandů. Aktualizovaná verze se blíží.
  • Funguje pouze v případě, že mají levé strany stejnou délku?
  • @ user1834164 – – vy ‚ opravte délky levých prvků. ale dá se zachránit. dodává, že …
  • proč potřebujeme \ phantom {i + j + k} .. nerozuměl jsem ..
  • @PraphullaKoushik – \phantom je zapotřebí, aby šířka levé strany skupiny rovnic byla zahrnuta do šířky celé skupiny, takže skupina bude vystředěna.

Odpověď

Prostředí split můžete použít také uvnitř align prostředí pomocí ampersandu (&), kde chcete provést zarovnání. Zde je 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} 

Všimněte si, že poslední rovnice není v prostředí split, ale přesto se zarovná se zbytkem, protože je stále uvnitř prostředí align.

Výstup vypadá takto:

Výstup z děleného prostředí uvnitř zarovnávaného prostředí

Všimněte si prázdných skupin ({}) před ampersandy. Bez nich by mezi znaménky rovnosti a znakem se potom nebude používat vyrovnání párů, protože zarovnání rozbije rámeček. Zatímco prázdné skupiny samy nic nedělají, v matematickém režimu symboly před nimi přidají vyrovnání párů, jako by prázdné skupiny byly obyčejné znaky. To umožňuje TeXu zvolit nejvhodnější mezery. Pokud by byly ampersandy umístěny před znaménka rovnosti, prostředí pro zarovnání by se vyrovnalo znaménkům rovnice, jak by mělo bez takových potíží, ale potom by znaménko sčítání rozdělené rovnice leželo nepohodlně daleko vzadu a vyžadovalo by nějaké manuální vylepšení jeho vlastní.

Komentáře

  • Na tomto řešení je hezké to, že není třeba si dělat s nebo \mathllap.
  • Páni!Ve skutečnosti se zdá, že ani ‚ t rozdělení nepotřebujete, přičemž &= nahradíte ={}& dělá ten trik!
  • Když se o to pokusím, zobrazí se mi chyba “ Extra karta zarovnání byla změněna na \ cr. “ Tato chyba se zobrazí, když se pokusím použít více než jeden ampersand v rámci rozdělení. Nějaké nápady?
  • @Blaisorblade – důvodem rozdělení je správné použití čísel rovnic na každou skupinu. ano, \notag lze použít, ale nedává ‚ požadovaný výstup, pokud má být číslo rovnice vycentrováno na skupinu.
  • Tuto techniku jsem vyzkoušel a fungovala při převodu do PDF, ale selhal při převodu do HTML pomocí pracovního postupu mk4ht htlatex test.tex "xhtml,mathml". Předpokládám, že ‚ je chyba v převaděči html.

Odpovědět

Jako rozšíření odpovědi Barbary můžete zabalit pouze pravou stranu rovnic do aligned dílčích prostředí. To vám umožní sladit stejné znaky samostatných rovnice nezávislé na velikosti levé nebo pravé strany.

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

Znaménko plus na druhém řádku druhé rovnice se přesně neshoduje, protože to „sa mathbin symbol. Možná by někdo s více znalostmi TeX mohl komentovat, jak to nejlépe napravit.

Komentáře

  • Díky, to také funguje. Rozdíl vidím v tom, že čísla rovnic jsou na horním řádku každé rovnice, zatímco když je celá rovnice v ‚ zarovnaném ‚ prostředí jsou čísla rovnic vertikálně vycentrována. Existuje způsob, jak to ovládat?
  • @eldering – získat odpovídající mezery za prvním znaménkem plus v posledním řádku, předcházet mu prázdná skupina, {}.

Odpověď

Zde je align – pouze verze vašich rovnic:

zde zadejte popis obrázku

\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ěkteré z úprav patří

  • Použití \mathrel pro správné mezery kolem skrytých = (zahrnuto prostřednictvím \phantom);
  • Některé negativní \nulldelimiter kerning kolem chybějících \left. oddělovačů (jinak mezi operátorem / operandem by byly zavedeny další mezery);
  • Nastavení výšky pro víceřádkové \left\{ a \right\} páry.

Jako běžné vlákno může být užitečné prohlédnout si Herberta Voß „ mathmode dokument .

Odpověď

Toto je způsob, jak toho dosáhnout u malého množství textu pomocí příkazu \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} 

Komentáře

  • Relevantní část se týká části \qquad, kterou jsem ‚ použil, ale ‚ nefunguje dostatečně dobře.
  • (+1) Ah! 🙂 Nějakou dobu jsem něco takového hledal. Mnohokrát děkuji. 🙂
  • V případě, že odstavce rozdělují rovnice, které mají být zarovnány, jaké je nejlepší řešení?

Odpovědět

Pokud místo zarovnání koncových rovnic chcete je zarovnat doprava (podobně jako prostředí \multiline zpracovává koncové rovnice), můžete použít následující trik, který jsem zvedl od této odpovědi od 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} 

vynechat + hfill

odpovědět

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

poskytne následující výstup sem zadejte popis obrázku

Komentáře

  • Jak to řeší původní příspěvek takovým způsobem, že ostatní odpovědi už ‚ již neřešily?

Odpověď

Tato odpověď funguje, když použijete

balíček. Následující příklad definuje dvě makra LaTeXu\mymidlinea\mylastline. Obě makra se v podstatě rozšiřují na svůj první argument v prostředíalign*. Makro\mymidlinejej vycentruje a\mylastlinemakro jej zarovná doprava. Tím se šířka materiálu ve druhém argumentu odečte od dostupné „šířky zobrazení“. Pro prostředíalign*by měla být pouze (nejdelší) levá strana rovnice. Následující příklad ukazuje, jak toho nejefektivněji dosáhnout pomocí makra\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}  

Formátování více řádků v rámci zarovnání *

Pokud máte očíslovanou verzi align*, měli byste také zvážit šířka štítku rovnice a oddělovače štítků ve druhém argumentu \mymidline a \mylastline. Nenašel jsem předdefinovanou míru šířky štítku. Po několika testech se ukázalo, že \quad\quad(1) je vhodným zástupným symbolem štítku.

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

zde zadat popis obrázku

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *