Jessaie daligner un ensemble déquations longues, qui sont elles-mêmes align
car la plupart dentre eux sétalent sur plusieurs lignes.
Actuellement, jai juste une séquence denvironnements align
, avec chaque équation à lintérieur afin daligner les morceaux de chaque équation. Je joins une capture décran du résultat:
Ce que jaimerais obtenir à la place, cest quelque chose qui ressemble plus à
qui est le même ensemble déquations après avoir traversé le bureau de rédaction dun journal et qui a lair beaucoup mieux.
Voici un MWE. Je voudrais que les trois équations salignent sur le signe égal.
\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}
Commentaires
Réponse
sans exemple réel, voici comment jinterprète ce que vous voulez.
et voici lentrée:
\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}
lélément de gauche le plus long est inséré au début en tant que \phantom
et les longueurs des éléments de gauche de lindividu aligned
les segments sont rendus » invisibles « en les recouvrant vers la gauche en utilisant \mathllap
du package mathtools
.
la réponse originale a été (correctement) notée pour aligner correctement les segments uniquement lorsque les côtés gauche avaient la même longueur. cette modification résout ce problème.
Commentaires
- oups! Jai oublié quelques esperluettes. Version mise à jour à venir.
- ne fonctionne que si les côtés gauche ont la même longueur?
- @ user1834164 – – vous ‘ corrigez la longueur des éléments de gauche. mais il peut être récupéré. en ajoutant ça …
- pourquoi avons-nous besoin de \ phantom {i + j + k} .. Je ne pouvais pas comprendre ..
- @PraphullaKoushik – le
\phantom
est nécessaire pour que la largeur du côté gauche du groupe déquations soit incluse dans la largeur du groupe entier, de sorte que le groupe soit centré.
Réponse
Vous pouvez également utiliser lenvironnement split
à lintérieur de align
, en utilisant une esperluette (&
) où vous voulez que lalignement ait lieu. Voici 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}
Notez que la dernière équation ne se trouve pas dans un environnement split
, mais saligne toujours avec le reste, puisquil « est toujours dans lenvironnement align
.
Le résultat ressemble à ceci:
Notez les groupes vides ({}
) avant les esperluettes. Sans eux, il y aurait aucun crénage nest appliqué entre les signes égaux et le caractère par la suite, car lalignement casse la boîte. Alors que les groupes vides ne font rien eux-mêmes, en mode mathématique, les symboles avant eux ajoutent un crénage comme si les groupes vides étaient des caractères ordinaires. Cela permet à TeX de choisir lespacement le plus approprié. Si les esperluettes étaient placées avant les signes égaux, lenvironnement dalignement serait crénelé autour des signes égaux comme il se doit sans un tel tracas, mais le signe additionnel de léquation de division serait inconfortablement loin en arrière, nécessitant une sorte de réglage manuel de son propre.
Commentaires
- Ce quil y a de bien avec cette solution, cest quil nest pas nécessaire de jouer avec
\phantom
ou\mathllap
. - Wow!En fait, il semble que vous n’avez même pas besoin ‘ des divisions, en remplaçant
&=
par={}&
fait laffaire! - Quand jessaye de faire ça, jobtiens lerreur » Longlet dalignement supplémentaire a été changé en \ cr. » Jobtiens cette erreur lorsque jessaie dutiliser plus dune esperluette dans la division. Des idées?
- @Blaisorblade – la raison des divisions est dappliquer correctement les numéros déquation à chaque groupe. oui,
\notag
pourrait être utilisé, mais il ne ‘ t donne pas la sortie souhaitée si le numéro déquation doit être centré sur le groupe. - Jai essayé cette technique et elle a fonctionné lors de la conversion en PDF, mais elle a mal fonctionné lors de la conversion en HTML en utilisant le flux de travail
mk4ht htlatex test.tex "xhtml,mathml"
. Je suppose que ‘ est un bogue dans le convertisseur html.
Réponse
En tant quextension de la réponse de barbara, vous pouvez envelopper uniquement le côté droit de vos équations dans des sous-environnements aligned
. Cela vous permet daligner les signes égaux des différents équations indépendantes de la taille des côtés gauche ou droit.
\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}
Le signe plus sur la deuxième ligne de la deuxième équation ne correspond pas exactement car il « sa mathbin
symbole. Peut-être que quelquun avec plus de connaissances TeX pourrait commenter la meilleure façon de résoudre ce problème.
Commentaires
- Merci, cela fonctionne aussi. La différence que je vois est que les numéros déquation sont sur la ligne supérieure de chaque équation, alors que lorsque léquation entière est dans le ‘ aligné ‘ environnement les nombres déquations sont centrés verticalement. Y a-t-il un moyen de contrôler cela?
- @eldering – pour obtenir lespacement correspondant après le premier signe plus de la dernière ligne, faites-le précéder dun groupe vide,
{}
.
Réponse
Voici une align
-une seule version de vos équations:
\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}
Certains des ajustements incluent
- Utilisation de
\mathrel
pour un espacement approprié autour de=
masqué (inclus via\phantom
); - Quelques
\nulldelimiter
crénage autour des délimiteurs\left.
manquants (sinon il y aurait un espacement supplémentaire introduit entre lopérateur / lopérande); - Réglage de la hauteur pour
\left\{
et\right\}
En tant que fil conducteur, il peut être utile de consulter Herbert Voß « mathmode
document .
Réponse
Ceci est un moyen daccomplir cela pour de petites quantités de texte en utilisant la commande \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}
Commentaires
- La partie pertinente concerne
\qquad
, que jai ‘ utilisée, mais cela ne le fait pas ‘ t fonctionne assez bien. - (+1) Ah! 🙂 Je cherchais une telle chose depuis un moment. Merci beaucoup. 🙂
- En cas de paragraphes fractionnant les équations à aligner, quelle est la meilleure solution?
Réponse
Si au lieu daligner les équations de fin, vous souhaitez les justifier à droite (de la même manière que lenvironnement \multiline
gère les équations de fin), vous pouvez utiliser ce qui suit astuce, que jai reprise de cette réponse par 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}
Réponse
\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}
fournira la sortie suivante
Commentaires
- Comment cela traite-t-il le message dorigine de telle manière que les autres réponses ‘ t aient déjà été traitées?
Réponse
Cette réponse fonctionne lorsque vous utilisez le
package. Lexemple ci-dessous définit deux macros LaTeX\mymidline
et\mylastline
. Les deux macros se développent essentiellement jusquà leur premier argument dans les environnementsalign*
. La macro\mymidline
le centre et la macro\mylastline
laligne à droite. Ainsi, la largeur de la substance dans le deuxième argument est soustraite de la « largeur daffichage » disponible. Pour les environnementsalign*
qui devraient juste être le côté gauche (le plus long) de léquation. Lexemple ci-dessous montre comment vous pouvez le faire plus efficacement avec une 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}
Si vous avez la version numérotée align*
, vous devez également prendre en compte le largeur de létiquette déquation et du séparateur détiquette dans le deuxième argument de \mymidline
et \mylastline
. Je nai pas trouvé de mesure prédéfinie pour la largeur de létiquette. Après quelques tests, il sest avéré que \quad\quad(1)
est un espace réservé approprié pour létiquette.
\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}
!
devant de celui-ci pour en faire un lien. Un modérateur ou un autre utilisateur avec des privilèges de modification peut alors réinsérer le!
pour le transformer à nouveau en image.\documentclass
et les packages appropriés afin que ceux qui essaient de aidez à ne pas ‘ avoir à le recréer.split
pour les équations longues simples plutôt quealign
. selon le document,split
est pour les équations longues simples,align
est pour les équations multiples. La numérotation devrait être affectée.