Wiki Forum

Encadrer une ligne dans align

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

Modérateur: Modérateurs_LaTeX

Règles du forum
Merci d'éviter le style SMS dans vos messages. Penser à utiliser les balises Code pour poster du code.
Penser à utiliser la fonction Recherche avant de poster un message.

Encadrer une ligne dans align

Messagede MB le Lundi 02 Mars 2009, 20:26

Bonjour,

je souhaite pouvoir encadrer le résultat final (dernière ligne) d'un calcul réalisé dans un environnement align. Je n'ai encore jamais vu de solution pour ce problème (j'ai regardé des extensions du genre empheq mais sans succès). Si quelqu'un a une idée ...

En passant, je viens de découvrir une solution (que certains connaissent peut être) qui permet de placer un environnement align dans un tabular (sans passer par une savebox). Il suffit de placer des accolades autour du align. Par exemple :

Code: Tout sélectionner
\begin{tabular}{c|c}
{\begin{align}
[...]
\end{align}} &
{\begin{align}
[...]
\end{align}} \\
end{tabular}


Sans les accolades supplémentaires, ça ne fonctionne pas. C'est simple, mais je l'ignorais jusqu'à maintenant. :wink:
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 5445
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encadrer une ligne dans align

Messagede pg le Lundi 02 Mars 2009, 21:17

Utiliser \boxed ne correspond pas à ce que tu veux ?

boxed_align.png


Code: Tout sélectionner
\documentclass{article}

\usepackage{amsmath}

\usepackage{calc}

\makeatletter
\newlength{\boxed@align@width}
\newcommand{\boxedalign}[2]{
#1 & \setlength{\boxed@align@width}{\widthof{$\displaystyle#1$}+1.4pt+1.4pt}
\hspace{-\boxed@align@width}\boxed{\vphantom{#1}\hspace{\boxed@align@width}#2}}
\makeatother

\begin{document}

\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
& = \boxed{A'+B' + C' + D' + E' + F'}
\end{align}

\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\end{document}
pg
Modérateur
 
Messages: 1052
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Encadrer une ligne dans align

Messagede MB le Lundi 02 Mars 2009, 21:21

Oui, je voulais bien sûr encadrer l'ensemble de la ligne.
La commande \boxedalign semble pas mal du tout ! (mais on dirait qu'on perd l'alignement au niveau des signes "égal")
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 5445
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encadrer une ligne dans align

Messagede pg le Lundi 02 Mars 2009, 21:41

Effectivement, je suis allé trop vite en besogne. Voici une version qui devrait avoir un alignement parfait pour toutes les valeurs de \fboxsep et \fboxrule :

Code: Tout sélectionner
\documentclass{article}

\usepackage{amsmath}

\usepackage{calc}

\makeatletter
\newlength{\boxed@align@width}
\newcommand{\boxedalign}[2]{
#1 & \setlength{\boxed@align@width}{\widthof{$\displaystyle#1$}+0.1389em+\fboxsep+\fboxrule}
\hspace{-\boxed@align@width}\addtolength{\boxed@align@width}{-\fboxsep-\fboxrule}\boxed{\vphantom{#1}\hspace{\boxed@align@width}#2}}
\makeatother

\begin{document}

\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=10pt\fboxrule=2pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=20pt\fboxrule=20pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\end{document}
pg
Modérateur
 
Messages: 1052
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Encadrer une ligne dans align

Messagede MB le Mardi 03 Mars 2009, 10:35

Ca semble fonctionner en effet. Merci pg. :D (bizarre qu'on ne trouve une extension proposant ça quand même non ?)
Sinon, le 0.1389em est une valeur expérimentale ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 5445
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encadrer une ligne dans align

Messagede pg le Mardi 03 Mars 2009, 10:51

Non, c'est 2.5/18em (la moitié de l'espace mise avant et après le signe =). En y réfléchissant, il vaut mieux l'enlever, cela rend l'espacement entre le bord gauche du cadre de boxedalign et de boxed homogène.
pg
Modérateur
 
Messages: 1052
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Encadrer une ligne dans align

Messagede MB le Mardi 03 Mars 2009, 19:34

Oui, c'est très bien sans en effet.
Merci en tout cas pg pour cette commande. :D
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 5445
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encadrer une ligne dans align

Messagede zorba le Vendredi 15 Janvier 2010, 04:14

Bonjour à tous,
je reviens sur la solution de PG :
Après examen du code de \boxedalign{}, très pratique pour mettre en évidence le résultat final d'une série de calculs, je me pose la question de faire le cadre et l'équation en couleur. Après quelques essais avec \textcolor je n'y parviens pas, certainement à cause du & de l'alignement des équations. Je suis encore très limité dans la compréhension du code Latex.
Est-ce qu'il est possible, simplement, d'ajouter, une couleur en premier paramètre optionnel de \boxedalign, pour l''appliquer au cadre et à l'équation?
J'ai pris l'habitude d'encadrer et d'écrire les réponses aux questions en bleu, c'est la seule couleur que j'utilise dans la rédaction de mes documents, en sus du noir pour tout ce qui n'est pas résultat.
Je remercie d'avance PG pour le soin qu'il apportera à cette demande.
Bonne journée à tous.
Pierre
Ce qui est affirmé sans preuve peut être nié sans preuve. Alain
zorba
Kilo-utilisateur
 
Messages: 154
Inscription: Lundi 01 Juin 2009, 10:35
Statut actuel: Actif et salarié

Re: Encadrer une ligne dans align

Messagede pg le Samedi 16 Janvier 2010, 01:14

Voici le code pour faire cela. J'en ai profité pour corriger un petit bug de centrage, qui faisait que la même formule dans un \boxed{...} et dans un \boxedalign{} n'était pas centrée de la même façon.

Code: Tout sélectionner
\documentclass[12pt]{article}

\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{calc}

\makeatletter
\newlength{\boxed@align@width}
\newcommand{\boxedalign}[3][black]{
  \hspace*{\fboxsep}\hspace*{\fboxrule}% pour que le centrage soit le même que la formule avec \boxed
  \color{#1}#2
  &
  \setlength{\boxed@align@width}{%
     \widthof{$\displaystyle#2$}+\fboxsep+\fboxrule}%
  \hspace{-\boxed@align@width}%
  \addtolength{\boxed@align@width}{-\fboxsep-\fboxrule}%
  \begingroup
    \color{#1}\boxed{\vphantom{#2}\hspace{\boxed@align@width}#3}%
  \endgroup
}
\makeatother

\begin{document}

\begin{align*}
A & = A' + B' + C' + D' + E' + F' \\
\boxedalign{A}{=A' + B' + C' + D' + E' + F'} \\
\boxedalign[blue]{A}{=A' + B' + C' + D' + E' + F'}
\end{align*}
\[A = A'+B' + C' + D' + E' + F'\]
\[\boxed{A = A'+B' + C' + D' + E' + F'}\]

\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=10pt\fboxrule=2pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign[green]{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=20pt\fboxrule=20pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign[violet]{\int_{0}^{1}{f(t)\,\mathrm{d}t}}{= A'+B' + C' + D' + E' + F' + G' + H' + I'}
\end{align}

\end{document}

Pour obtenir une syntaxe du type \boxedalign{A & = B} (voir le sujet Détails de mise en page), il y a des problèmes (la présence de l'argument optionnel perturbe l'argument délimité) ; j'essaierai de réfléchir à comment résoudre ce problème, mais ce n'est pas pour tout de suite.
pg
Modérateur
 
Messages: 1052
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Encadrer une ligne dans align

Messagede Valvino le Samedi 16 Janvier 2010, 10:55

Je propose une autre solution qui traine sur mon disque :

Code: Tout sélectionner
\documentclass{article}
\usepackage{amsmath}

\newlength\longueurboite
\newcommand{\encadre}[1]{%
\settowidth{\longueurboite}{#1~}%
\hspace{-\longueurboite}\fbox{\phantom{#1}}%
}

\begin{document}
\begin{align*}
    \overline{a}&=\{y\in G / a \mathcal{R} y\}\\
                &=\{y\in G / a^{-1}y\in H\}\\
                &=\{y\in G / \exists h \in H, \ a^{-1}y=h\}\\
                &=\{y\in G / \exists h \in H, \  y=ah\}\\
    \overline{a}&=aH\encadre{$\overline{a}=aH$}
\end{align*}

\end{document}
Magistère de mathématiques de la faculté d'Orsay en parallèle d'un M1 de Mathématiques Fondamentales et Appliquées.

Merci d'utiliser LaTeX, regardez cette page.

Pas d'aide par MP merci.

http://valentin.vinoles.free.fr
Valvino
Giga-utilisateur
 
Messages: 862
Inscription: Mercredi 21 Mars 2007, 10:59
Localisation: Gometz le Châtel (91 Essonne)
Statut actuel: Post-bac | Master

Re: Encadrer une ligne dans align

Messagede zorba le Samedi 16 Janvier 2010, 13:48

Bonjour,
merci d'avoir pris ma demande en compte et du développement qui va bien me servir. Je m'incline respectueusement devant la qualité de la réponse. Avec PG en Latex tout est possible.
Bon weekend.
Pierre
Ce qui est affirmé sans preuve peut être nié sans preuve. Alain
zorba
Kilo-utilisateur
 
Messages: 154
Inscription: Lundi 01 Juin 2009, 10:35
Statut actuel: Actif et salarié

Re: Encadrer une ligne dans align

Messagede pg le Mardi 09 Février 2010, 02:18

Voici une version de la commande avec la syntaxe \boxedalign[red]{A&=B} via une commande du package etextools qui permet de rendre le test d'un argument optionnel purement développable, contournant ainsi la difficulté mentionnée précédemment :

Code: Tout sélectionner
\documentclass[12pt]{article}

\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{calc}
\usepackage{etextools}

\makeatletter
\newlength{\boxed@align@width}
\newcommand{\boxedalign}[1]{\FE@testopt{#1}\boxed@align{black}}
\def\boxed@align[#1]#2{\boxed@align@process@ampersand[#1]#2\@nil}
\def\boxed@align@process@ampersand[#1]#2&#3\@nil{%
  \hspace*{\fboxsep}\hspace*{\fboxrule}% pour que le centrage soit le même que la formule avec \boxed
  \color{#1}#2
  &
  \setlength{\boxed@align@width}{%
     \widthof{$\displaystyle#2$}+\fboxsep+\fboxrule}%
  \hspace{-\boxed@align@width}%
  \addtolength{\boxed@align@width}{-\fboxsep-\fboxrule}%
  \begingroup
    \color{#1}\boxed{\vphantom{#2}\hspace{\boxed@align@width}#3}%
  \endgroup
}
\makeatother

\begin{document}

\begin{align}
A & = A' + B' + C' + D' + E' + F' \\
\boxedalign{A&=A' + B' + C' + D' + E' + F'} \\
\boxedalign[green]{A&=A' + B' + C' + D' + E' + F'}
\end{align}

\[\boxed{A= A'+B' + C' + D' + E' + F'}\]

\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F'} \\
\boxedalign[red]{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=10pt\fboxrule=2pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F'} \\
\boxedalign[blue]{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F'}
\end{align}

\fboxsep=20pt\fboxrule=20pt
\begin{align}
\int_{0}^{1}{f(t)\,\mathrm{d}t}
& = B + C + D + E + F \\
& = B' + C' + D' + E' + F' \\
\boxedalign{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F' + G' + H' + I'} \\
\boxedalign[violet]{\int_{0}^{1}{f(t)\,\mathrm{d}t}&= A'+B' + C' + D' + E' + F' + G' + H' + I'}
\end{align}

\end{document}

Je précise que la présence du & dans l'argument de \boxedalign est obligatoire.
pg
Modérateur
 
Messages: 1052
Inscription: Jeudi 14 Juin 2007, 23:31


Retourner vers LaTeX

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Google Adsense [Bot], un bon petit et 6 invités