%########################################################################## %######################## MACROS POUR LES SYSTÈMES ######################## %######################## v 0.1 du 28/12/2007 ######################## %########################################################################## % % Auteur : Christian TELLECHEA % Site : www.bricamath.net % \makeatletter \newcommand*\SiSousChaineDansChaine[2]{% est ce que la sous chaine #1 se trouve dans #2 ? \def\la@chaine##1#1##2\@nil{% \def\la@fin{##2}% on isole ce qu'il y a après la sous chaine \ifx\la@fin\@empty%qu'y a t-il apès la sous chaine ? \expandafter\@secondoftwo% rien -> on exécute #4 \else \expandafter\@firstoftwo% quelque chose -> on exécute #3 \fi }% \expandafter\la@chaine#2#1\@nil } \newcommand*{\MembreGauche}[1]{%renvoie le membre gauche : ce qui est à gauche de = \def\a@testergauche##1=##2\@nil{##1} \expandafter\a@testergauche#1\@nil } \newcommand*{\MembreDroite}[1]{%renvoie le membre gauche : ce qui est à droite de = et avant * \SiSousChaineDansChaine{*}{#1}{\def\a@testerdroite##1=##2*##3\@nil{##2}}{\def\a@testerdroite##1=##2\@nil{##2}} \expandafter\a@testerdroite#1\@nil } \newcommand*{\LeCoeff}[1]{%renvoie le coeff : ce qui est à droite de * \def\a@testercoeff##1*##2\@nil{##2}% \expandafter\a@testercoeff#1\@nil } \makeatother % ___________________________________________________ %| | %| Écrit un système 2x2 avec les coefficients | %| de la combinaison linéaire si besoin | %|___________________________________________________| \newcommand*{\Systeme}[3][0pt]{% % #1 : espacement entre les 2 équations (0pt par défaut) % #2 et #3 : les 2 équations avec éventuellement *coeff à la fin (utiliser \frac pour un coeff fractionnaire) \SiSousChaineDansChaine{=}{#2}{% \SiSousChaineDansChaine{=}{#3}{%on teste les signes = \ensuremath{ \left\lbrace \begin{aligned} \MembreGauche{#2}&=\MembreDroite{#2}\SiSousChaineDansChaine{*}{#2}{&\scriptstyle\times&\scriptstyle\LeCoeff{#2}}{}\\[#1] \MembreGauche{#3}&=\MembreDroite{#3}\SiSousChaineDansChaine{*}{#3}{&\scriptstyle\times&\scriptstyle\LeCoeff{#3}}{} \end{aligned} \right. } } {Pas de signe =} } {Pas de signe =} }