Ik probeer een set lange vergelijkingen uit te lijnen, die zelf align -omgevingen, aangezien de meeste zich over meerdere lijnen verspreiden.

Momenteel heb ik alleen een reeks align omgevingen, met elke vergelijking erin om de delen van elke vergelijking uit te lijnen. Ik voeg een screenshot toe van het resultaat:

Niet uitgelijnd

Wat zou in plaats daarvan iets willen krijgen dat er meer uitziet als

Uitgelijnd

wat dezelfde set vergelijkingen is nadat het door het kopieerbureau van een tijdschrift is gegaan en ziet er veel beter uit.

Hier is een MWE. Ik wil dat alle drie de vergelijkingen op het gelijkteken worden uitgelijnd.

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

Opmerkingen

  • Welkom bij TeX.sx! Voeg als nieuwe gebruiker zonder rechten voor het plaatsen van afbeeldingen de afbeelding toe zoals normaal en verwijder de ! vooraan ervan om er een link van te maken. Een moderator of een andere gebruiker met bewerkingsrechten kan de ! opnieuw invoegen om er weer een afbeelding van te maken.
  • Het zou een stuk eenvoudiger zijn als je de code zou opgeven in termen van een volledig compileerbare MWE die het probleem illustreert, inclusief de \documentclass en de juiste pakketten zodat degenen die proberen help niet ‘ om het opnieuw te maken.
  • Misschien Hoe uitlijnen over gewone tekst; zoals bij het breken van matrices, sets van vergelijkingen, tabellen kan nuttig zijn.
  • Ik denk dat het ‘ beter is om split voor enkele lange vergelijkingen in plaats van align. volgens het document is split voor enkele lange vergelijkingen, align voor meerdere vergelijkingen. De nummering moet worden beïnvloed.

Antwoord

zonder een echt voorbeeld, hier is hoe ik interpreteer wat u want.

uitvoer van voorbeeldcode

en hier is de invoer:

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

het langste linker element wordt aan het begin ingevoegd als een \phantom en de lengtes van de linker elementen van het individuele aligned segmenten worden” onzichtbaar “gemaakt door ze naar links te lappen met \mathllap van het mathtools pakket.

het oorspronkelijke antwoord werd (correct) genoteerd om de segmenten alleen correct uit te lijnen als de linkerzijden dezelfde lengte hadden. deze wijziging lost dat probleem op.

Opmerkingen

  • oeps! vergat een paar ampersands. bijgewerkte versie komt eraan.
  • werkt alleen als de linkerkant even lang is?
  • @ user1834164 – – jij ‘ corrigeer over de lengte van de linker elementen. maar het kan worden gered. toe te voegen …
  • waarom hebben we \ phantom {i + j + k} nodig .. ik kon het niet begrijpen ..
  • @PraphullaKoushik – de \phantom is nodig zodat de breedte van de linkerkant van de groep vergelijkingen wordt meegenomen in de breedte van de hele groep, zodat de groep gecentreerd wordt.

Antwoord

U kunt ook de split -omgeving gebruiken binnen de align omgeving, gebruikmakend van een ampersand (&) waar je wilt dat de uitlijning plaatsvindt. Hier is een 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} 

Merk op dat de laatste vergelijking zich niet binnen een split -omgeving bevindt, maar nog steeds is uitgelijnd met de rest, aangezien het zich nog steeds in de align omgeving bevindt.

De uitvoer ziet er als volgt uit:

Uitvoer van een gesplitste omgeving binnen een align-omgeving

Let op de lege groepen ({}) voor de ampersands. Zonder deze zouden er Er mag geen tekenspatiëring worden toegepast tussen de gelijktekens en het teken achteraf, omdat de uitlijning het kader breekt. Terwijl de lege groepen zelf niets doen, voegen de symbolen ervoor in de wiskundige modus tekenspatiëring toe alsof de lege groepen gewone tekens zijn. Hierdoor kan TeX de meest geschikte tussenruimte kiezen. Als de ampersands vóór de gelijktekens zouden worden geplaatst, zou de uitlijnomgeving rond de gelijktekens staan zoals het zou moeten zonder dergelijk gedoe, maar dan zou het optelteken van de gesplitste vergelijking ongemakkelijk ver naar achteren liggen, waardoor een soort handmatige aanpassing van de eigen.

Opmerkingen

  • Het leuke van deze oplossing is dat er geen reden is om met \phantom of \mathllap.
  • Wauw!In feite lijkt het erop dat je ‘ zelfs de splitsingen niet nodig hebt, door &= te vervangen door ={}& doet het!
  • Als ik dat probeer, krijg ik de fout ” Extra uitlijningstab is gewijzigd in \ cr. ” Ik krijg deze foutmelding als ik probeer om meer dan één ampersand binnen split te gebruiken. Enig idee?
  • @Blaisorblade – de reden voor de splitsingen is om de vergelijkingsnummers correct op elke groep toe te passen. ja, \notag zou kunnen worden gebruikt, maar het geeft niet ‘ de gewenste uitvoer als het vergelijkingsnummer gecentreerd moet zijn op de groep.
  • Ik heb deze techniek geprobeerd en het werkte bij het converteren naar PDF, maar werkte niet goed bij het converteren naar HTML met de mk4ht htlatex test.tex "xhtml,mathml" workflow. Ik neem aan dat het ‘ een bug is in de html-converter.

Answer

Als uitbreiding op het antwoord van barbara, zou je alleen de rechterkant van je vergelijkingen in aligned subomgevingen kunnen plaatsen. Hiermee kun je de gelijkwaardige tekens van de afzonderlijke vergelijkingen onafhankelijk van de grootte van de linker- of rechterkant.

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

Het plusteken op de tweede regel van de tweede vergelijking komt niet exact overeen omdat het “sa mathbin -symbool. Misschien kan iemand met meer TeX-kennis een opmerking maken over hoe dat het beste kan worden opgelost.

Opmerkingen

  • Bedankt, dat werkt ook. Het verschil dat ik zie, is dat vergelijkingsnummers op de bovenste regel van elke vergelijking staan, terwijl wanneer de hele vergelijking in de ‘ uitgelijnde ‘ omgeving zijn de vergelijkingsnummers verticaal gecentreerd. Is er een manier om dat te controleren?
  • @eldering – om de overeenkomende spatiëring na het eerste plusteken in de laatste regel te krijgen, laat deze voorafgaan door een lege groep, {}.

Antwoord

Hier is een align -alleen versie van uw vergelijkingen:

voer hier de afbeeldingbeschrijving in

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

Enkele van de aanpassingen zijn:

  • Het gebruik van \mathrel voor de juiste afstand rond verborgen = (opgenomen via \phantom);
  • Enkele negatieve \nulldelimiter tekenspatiëring rond ontbrekende \left. scheidingstekens (anders er zou extra afstand worden geïntroduceerd tussen operator / operand);
  • Hoogteaanpassing voor meerlijnige \left\{ en \right\} paren.

Als een rode draad kan het nuttig zijn om Herbert Voß “ mathmode document .

Antwoord

Dit is een manier om dit voor kleine hoeveelheden tekst te bereiken door het \intertext commando te gebruiken.

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

Reacties

  • Het relevante deel gaat over \qquad, die ik ‘ heb gebruikt, maar dat doet ‘ werkt niet goed genoeg.
  • (+1) Ah! 🙂 Ik was al een tijdje op zoek naar zoiets. Erg bedankt. 🙂
  • Wat is de beste oplossing in het geval dat alineas de uit te lijnen vergelijkingen splitsen?

Antwoord

Als u in plaats van de volgvergelijkingen uit te lijnen, ze rechts wilt uitvullen (vergelijkbaar met de manier waarop de \multiline -omgeving volgvergelijkingen verwerkt), kunt u het volgende gebruiken truc, die ik heb opgepikt van dit antwoord door 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} 

weglaten + hfill

Antwoord

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

zal de volgende output leveren voer hier een beschrijving van de afbeelding in

Reacties

  • Hoe adresseert dit het originele bericht op zon manier dat ‘ t al is aangepakt door de andere antwoorden?

Antwoord

Dit antwoord werkt wanneer u de

pakket. Het onderstaande voorbeeld definieert twee LaTeX-macros\mymidlineen\mylastline. Beide macros breiden zich in wezen uit naar hun eerste argument binnenalign*-omgevingen. De\mymidlinemacro centreert het en de\mylastlinemacro lijnt het rechts uit. Daardoor wordt de breedte van het spul in het tweede argument afgetrokken van de beschikbare “weergavebreedte”. Vooralign*omgevingen zou dat gewoon de (langste) linkerkant van de vergelijking moeten zijn. Het onderstaande voorbeeld laat zien hoe u dat het meest efficiënt kunt doen met een 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}  

Meerdere regels zoals opmaak binnen align *

Als u de genummerde versie align* hebt, moet u ook rekening houden met de breedte van het vergelijkingslabel en het labelscheidingsteken in het tweede argument van \mymidline en \mylastline. Ik heb geen voorgedefinieerde maat voor de labelbreedte gevonden. Na wat testen bleek dat \quad\quad(1) een geschikte tijdelijke aanduiding voor het label is.

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

voer hier een beschrijving van de afbeelding in

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *