Obtenir la largeur d'une colonne sur align

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Obtenir la largeur d'une colonne sur align

Messagepar yesugei » Mardi 24 Mai 2011, 17:22

Bonjour,

Je cherche à obtenir la largeur d'une colonne dans un environement de type "align".

Savez vous comment une telle longueur est codée et si c'est récupérable facilement ?

Je joins une situation ou j'en ai besoin.

--> j'ai besoin de cette longueur pour imposer à l'environement "multlined" d'écrire la deuxième ligne non pas en commençant par la fin de la ligne qui précede (celle qui est inclue dans le "multlined") mais en utilisant comme les limites du tableau créé par "align".

Je tiens a préciser que je suis confronté a cette situation de multiple fois et donc il me faudrait un truc automatisé et pas juste un petit arrangement en local.

Commentaires sur "multlined" : l'environement se code de la façon suivante : \begin{multlined}[<position sur la ligne (t,b,c)>][<longueur imposée pour écrire l'équation>] \text{une équation looooooooooooonnnn}\\\text{ gue, vraiment très longue}\end{multlined}

l'idéal pour moi serait de trouver une longueur a mettre dans le deuxième argument optionel comme \maxwidth= "la taille de ma colonne"

J'espère avoir été suffisamment clair dans mes explications.

Yesugei.


Code: Tout sélectionner
\documentclass[11pt,a4paper,leqno]{article}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[francais,english]{babel}

\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}

\usepackage{amsmath,amsthm,mathrsfs,amssymb,amsfonts,dsfont,nicefrac,stmaryrd,yhmath}
\usepackage{mathtools}

\usepackage{exscale}

%%% Ensembles classiques :

\renewcommand{\H}{\mathbb{H}}
%%%%%Raccourcis classiques :

\newcommand{\dis}{\displaystyle}
\newcommand{\abs}[1]{\left|#1\right|}
\newcommand{\norme}[1]{\left\|#1\right\|}
\newcommand{\scalaire}[2]{\left<#1,#2\right>}

\begin{document}

\begin{align*}
\scalaire{AV}{V}_\H&=  \scalaire{\Delta v_g}{v_g}_{L^2(\Omega_g)}+ \scalaire{\Delta v_d}{v_d}_{L^2(\Omega_d)}+{b_2}{b_1}+{b_2}\left({-b_1+\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2}\right)\\
&=\begin{multlined}[t]-\norme{\nabla v_g}^2_{L^2(\Omega_g)}-\norme{\nabla v_d}^2_{L^2(\Omega_d)}+\int_0^1\left[\partial_{x_1}v_g(\nicefrac{1}{2},x_2)v_g(\nicefrac{1}{2},x_2)-\partial_{x_1}v_d(\nicefrac{1}{2},x_2)v_d(\nicefrac{1}{2},x_2) \right]dx_2\\
+b_2\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2\end{multlined}\\
&=\begin{multlined}[t]-\norme{\nabla v_g}^2_{L^2(\Omega_g)}-\norme{\nabla v_d}^2_{L^2(\Omega_d)}+b_2\int_0^1\left[\partial_{x_1}v_g(\nicefrac{1}{2},x_2)-\partial_{x_1}v_d(\nicefrac{1}{2},x_2) \right]dx_2\\
+b_2\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2 \end{multlined}\\
&=-\big[\norme{\nabla v_g}^2_{L^2(\Omega_g)}+\norme{\nabla v_d}^2_{L^2(\Omega_d)}\big].
\end{align*}

\end{document}
Dernière édition par yesugei le Jeudi 26 Mai 2011, 07:04, édité 1 fois.
yesugei
Kilo-utilisateur
 
Messages: 116
Inscription: Mercredi 07 Février 2007, 23:05

Publicité

Re: Obtenir la largeur d'une colonne sur align

Messagepar yesugei » Mercredi 25 Mai 2011, 22:41

:?: Alors personne ne sait comment faire ?
yesugei
Kilo-utilisateur
 
Messages: 116
Inscription: Mercredi 07 Février 2007, 23:05

Re: Obtenir la largeur d'une colonne sur align

Messagepar un bon petit » Jeudi 26 Mai 2011, 06:19

Pas d'idée, ce qui n'est pas étonnant puisque ton l'ECM ne compile pas. Pas envie de chercher pourquoi :roll:
un bon petit
Giga-utilisateur
 
Messages: 719
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Obtenir la largeur d'une colonne sur align

Messagepar yesugei » Jeudi 26 Mai 2011, 07:06

Oups :oops: pardon, il manquait un petit package fourbe (exscale) c'est bon c'est corrigé....


Yesugei
yesugei
Kilo-utilisateur
 
Messages: 116
Inscription: Mercredi 07 Février 2007, 23:05

Re: Obtenir la largeur d'une colonne sur align

Messagepar yesugei » Mercredi 01 Juin 2011, 13:51

up
yesugei
Kilo-utilisateur
 
Messages: 116
Inscription: Mercredi 07 Février 2007, 23:05

Re: Obtenir la largeur d'une colonne sur align

Messagepar pg » Mercredi 01 Juin 2011, 23:57

Une solution semi-automatique : il faut utiliser la commande \alignpremiermembre pour rentrer le membre de gauche de {align} puis on accède à la largeur maximale de la colonne de droite avec \alignrightcolumnlength.

Code: Tout sélectionner
\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{amsmath,amsthm,mathrsfs,amssymb,amsfonts,dsfont,nicefrac,stmaryrd,yhmath}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs=true}

\renewcommand{\H}{\mathbb{H}}

\newcommand{\abs}[1]{\mathopen{}\mathclose{\left|#1\right|}}
\newcommand{\norme}[1]{\mathopen{}\mathclose{\left\|#1\right\|}}
\newcommand{\scalaire}[2]{\mathopen{}\mathclose{\left<#1,#2\right>}}

\newlength{\alignrightcolumnlength}

\newcommand{\alignpremiermembre}[1]{%
  \setlength{\alignrightcolumnlength}{\linewidth-\widthof{$#1 = {}$\hspace{13pt}}}
  \global\alignrightcolumnlength=\alignrightcolumnlength
  #1
}

\begin{document}
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
\begin{align}
\alignpremiermembre{\scalaire{AV}{V}_\H}
&=\scalaire{\Delta v_g}{v_g}_{L^2(\Omega_g)}+ \scalaire{\Delta v_d}{v_d}_{L^2(\Omega_d)} + {b_2}{b_1} \mathrlap{+ {b_2}\left(-b_1+\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2\right)}
\\
&=\!\begin{multlined}[t][\alignrightcolumnlength]\mathopen{}
-\norme{\nabla v_g}^2_{L^2(\Omega_g)}-\norme{\nabla v_d}^2_{L^2(\Omega_d)}+\mathrlap{\int_0^1\left[\partial_{x_1}v_g(\nicefrac{1}{2},x_2)v_g(\nicefrac{1}{2},x_2)-\partial_{x_1}v_d(\nicefrac{1}{2},x_2)v_d(\nicefrac{1}{2},x_2) \right]dx_2}
\\
+b_2\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2
\end{multlined}
\\
&=\!\begin{multlined}[t][\alignrightcolumnlength]\mathopen{}
-\norme{\nabla v_g}^2_{L^2(\Omega_g)}-\norme{\nabla v_d}^2_{L^2(\Omega_d)}+b_2\int_0^1\left[\partial_{x_1}v_g(\nicefrac{1}{2},x_2)-\partial_{x_1}v_d(\nicefrac{1}{2},x_2) \right]dx_2
\\
+b_2\int_0^1\left[\partial_{x_1}v_d(\nicefrac{1}{2},x_2)-\partial_{x_1}v_g(\nicefrac{1}{2},x_2) \right]dx_2
\end{multlined}
\\
&=-\big[\norme{\nabla v_g}^2_{L^2(\Omega_g)}+\norme{\nabla v_d}^2_{L^2(\Omega_d)}\big].
\end{align}
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
\end{document}

Quelques remarques :
  • l'environnement {multlined} introduit une espace parasite à son début, qu'on peut supprimer avec un \!
  • lorsque {multlined} commence par un signe unaire comme $-$, il faut corriger l'espacement en mettant un \mathopen{} au tout début
  • pour permettre à certaines formules du {align} de dépasser sans perturber l'espace entre les lignes, on peut utiliser \mathrlap
  • le \hspace{13pt} est nécessaire pour éviter des dépassements dans la marge.
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Obtenir la largeur d'une colonne sur align

Messagepar yesugei » Jeudi 02 Juin 2011, 20:10

Génial!! merci beaucoup !! c'est exactement ce que je cherchais...

Et merci pour les remarques sur certains détails que je n'avais pas vus !

Yesugei.
yesugei
Kilo-utilisateur
 
Messages: 116
Inscription: Mercredi 07 Février 2007, 23:05


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Majestic-12 [Bot] et 7 invités