summaryrefslogtreecommitdiff
path: root/macros/generic/systeme/systeme.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/systeme/systeme.tex')
-rw-r--r--macros/generic/systeme/systeme.tex46
1 files changed, 39 insertions, 7 deletions
diff --git a/macros/generic/systeme/systeme.tex b/macros/generic/systeme/systeme.tex
index 9bda0ef046..833edf60f6 100644
--- a/macros/generic/systeme/systeme.tex
+++ b/macros/generic/systeme/systeme.tex
@@ -4,9 +4,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\SYSname {systeme} %
-\def\SYSver {0.32} %
+\def\SYSver {0.33} %
% %
-\def\SYSdate {2019/01/13} %
+\def\SYSdate {2020/04/13} %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -58,6 +58,7 @@
\long\def\SYS_execarg#1{#1}
\long\def\SYS_gobtwoargs#1#2{}
\def\SYS_addtotok#1#2{#1\expandafter{\the#1#2}}
+\def\SYS_xaddtotok#1#2{\SYS_expaddtotok#1{\expanded{#2}}}
\def\SYS_expaddtotok#1#2{\xs_exparg{\SYS_addtotok#1}{#2}}
\def\SYS_addtotab{\SYS_addtotok\SYS_systemecode}
\def\SYS_cslet#1{\expandafter\let\csname#1\endcsname}
@@ -155,6 +156,28 @@
\sysequivsign{<=}\leq
\sysequivsign{>=}\geq
+\def\syssignspace#1{\edef\SYS_signspace{\ifdim#1=0pt \else\hskip\dimexpr#1\relax\fi}}
+\def\syseqspace#1{\edef\SYS_eqspace{\ifdim#1=0pt \else\hskip\dimexpr#1\relax\fi}}
+\syssignspace{0pt}
+\syseqspace{0pt}
+
+\def\SYS_firsttonil#1#2\_nil{#1}
+\def\SYS_firstletter#1#2{\string#1\expandafter\SYS_firsttonil\detokenize{#2.}\_nil}
+\def\sysalign#1{%
+ \xs_ifempty{#1}{\sysalign_i r}{\sysalign_i#1},l,\_nil
+}
+\def\sysalign_i#1,#2,#3\_nil{%
+ \let\SYS_leftright\hfil
+ \if\SYS_firstletter c{#1}\let\SYS_leftleft\hfil \else
+ \if\SYS_firstletter l{#1}\let\SYS_leftleft\empty\else
+ \let\SYS_leftleft\hfil \let\SYS_leftright\empty\fi\fi
+ \let\SYS_rightleft\hfil
+ \if\SYS_firstletter c{#2}\let\SYS_rightright\hfil \else
+ \if\SYS_firstletter r{#2}\let\SYS_rightright\empty \else
+ \let\SYS_rightleft\empty \let\SYS_rightright\hfil\fi\fi
+}
+\sysalign{r,l}
+
% #1 est l'équation courante. La macro la sépare en 2 membres -> \SYS_leftmember et \SYS_rightmember
% le signe de séparation entre les 2 membres se trouve dans \SYS_currenteqsign
\def\SYS_splitinmembers#1{%
@@ -238,7 +261,7 @@
\fi
}
{\ifcsname SYS_term_\detokenize\expandafter{\SYS_letterfound}_\SYS_eqnumber\endcsname
- \errmessage{Package systeme Error: l'inconnue "\detokenize\expandafter{\SYS_letterfound}" a deja ete trouvee dans l'équation !}%
+ \errmessage{Package systeme Error: l'inconnue "\detokenize\expandafter{\SYS_letterfound}" a deja ete trouvee dans l'equation !}%
\fi
\ifSYS_sortvariable
\SYS_insletter\SYS_letterfound% l'insérer si besoin dans la liste ordonnée des variables
@@ -606,15 +629,16 @@
\SYS_makesyspreamble_i1%
}
+
\def\SYS_makesyspreamble_i#1{%
\xs_ifnum{#1<\SYS_preamblenum\relax}% tant qu'il reste des variables
- {\SYS_addtotok\SYS_systempreamble{\hfil$##$&\hfil$##$&}% une colonne pour le terme et une pour le signe
+ {\SYS_xaddtotok\SYS_systempreamble{\SYS_leftleft$##$\SYS_leftright&\hfil\SYS_signspace$##$\SYS_signspace\hfil&}% une colonne pour le terme et une pour le signe
\xs_exparg\SYS_makesyspreamble_i{\number\numexpr#1+1}%
}
{\ifSYS_constterm
- \SYS_addtotok\SYS_systempreamble{\hfil$##$&\hfil$##$&}% une colonne pour le terme constant et son signe
+ \SYS_xaddtotok\SYS_systempreamble{\SYS_leftleft$##$\SYS_leftright&\hfil\SYS_signspace$##$\SYS_signspace\hfil&}% une colonne pour le terme constant et son signe
\fi
- \SYS_addtotok\SYS_systempreamble{\hfil$##$&$##$&$##$\hfil\null}% ajouter 1 colonne pour le signe = et une pour le terme de droite
+ \SYS_xaddtotok\SYS_systempreamble{\SYS_leftleft$##$\SYS_leftright&\hfil\SYS_eqspace$##$\SYS_eqspace\hfil&\SYS_rightleft$##$\SYS_rightright\null}% ajouter 1 colonne pour le signe = et une pour le terme de droite
\ifSYS_extracol
\SYS_addtotok\SYS_systempreamble{&\SYS_extracolstart##\SYS_extracolend\hfil\null}% la colonne supplémentaire (pas de mode math)
\fi
@@ -686,4 +710,12 @@ v0.32 13/01/2019
les noms des termes.
- Correction d'un bug : si version étoilée et terme constant dans
membre de gauche, défaut d'alignement.
- - Nettoyage du code. \ No newline at end of file
+ - Nettoyage du code.
+----------------------------------------------------------------------
+v0.33 13/04/2020
+ - possibilité de choisir un espacement avant et après les signes
+ + et - avec \syssignspace{<skip>}. De même pour = avec
+ \syseqspace{<skip>}
+ - possibilité de choisir l'alignement des colonnes des termes à
+ gauche du signe = et celle à droite avec \sysalign{x,y} où
+ x et y sont "c", "r", ou "l" \ No newline at end of file