summaryrefslogtreecommitdiff
path: root/macros/generic
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-04-14 03:02:32 +0000
committerNorbert Preining <norbert@preining.info>2020-04-14 03:02:32 +0000
commitc7235aafe4ddb8f9800cdf784212d4c53bb53e32 (patch)
tree3485e2d65f65d8128206c5a1c45c842b26e84705 /macros/generic
parentc98e9ebef816f09dc54c52a01df4f978e1b210fc (diff)
CTAN sync 202004140302
Diffstat (limited to 'macros/generic')
-rw-r--r--macros/generic/random/README.md11
-rw-r--r--macros/generic/random/random-doc.pdfbin0 -> 76332 bytes
-rw-r--r--macros/generic/random/random-doc.tex74
-rw-r--r--macros/generic/random/random.tex (renamed from macros/generic/misc/random.tex)16
-rw-r--r--macros/generic/systeme/README4
-rw-r--r--macros/generic/systeme/systeme.tex46
-rw-r--r--macros/generic/systeme/systeme_fr.pdfbin454193 -> 77724 bytes
-rw-r--r--macros/generic/systeme/systeme_fr.tex33
8 files changed, 164 insertions, 20 deletions
diff --git a/macros/generic/random/README.md b/macros/generic/random/README.md
new file mode 100644
index 0000000000..471963a7e1
--- /dev/null
+++ b/macros/generic/random/README.md
@@ -0,0 +1,11 @@
+#random.tex ver 0.2 (Donald Arseneau)
+
+Generating "random" numbers in TeX.
+
+ `\setrannum {<`*counter*`>} {<`*minimum*`>} {<`*maximum*`>}`
+ `\setrandimen {<`*dimen-register*`>} {<`*minimum*`>} {<`*maximum*`>}`
+
+This software is contributed to the public domain.
+
+Definitions are in `random.tex`. Documentation is in comments of
+`random.tex` and in `random-doc.tex` and `random-doc.pdf`
diff --git a/macros/generic/random/random-doc.pdf b/macros/generic/random/random-doc.pdf
new file mode 100644
index 0000000000..a27c7bd90b
--- /dev/null
+++ b/macros/generic/random/random-doc.pdf
Binary files differ
diff --git a/macros/generic/random/random-doc.tex b/macros/generic/random/random-doc.tex
new file mode 100644
index 0000000000..59520b62b9
--- /dev/null
+++ b/macros/generic/random/random-doc.tex
@@ -0,0 +1,74 @@
+% plain TeX
+
+\def\cmd#1{\leavevmode\hbox{\tt\string#1}}
+\edef\{{\string{}
+\edef\}{\string}}
+
+\noindent{\bf RANDOM.TEX }\qquad\qquad ver 0.2 \qquad\qquad (Donald Arseneau)
+
+\bigskip
+
+\noindent Generating ``random'' numbers in \TeX.
+
+\medskip
+
+ {\tt \string\setrannum \thinspace\{$\langle \it counter\rangle$\}\thinspace\{$\langle\it minimum\rangle$\}\thinspace\{$\langle\it maximum\rangle$\}}
+
+ {\tt \string\setrandimen \thinspace\{$\langle \hbox{\it dimen-register}\rangle$\}\thinspace\{$\langle\it minimum\rangle$\}\thinspace\{$\langle\it maximum\rangle$\}}
+
+\medskip
+\noindent This software is released to the public domain.
+\bigskip
+\noindent Random integers are generated in the range 1 to 2147483646 by the
+macro \cmd\nextrandom. The result is returned in the counter \cmd\randomi.
+Do not change \cmd\randomi\ except, perhaps, to initialize it at some
+random (or specific) value. If you do not initialize it, it will be initialized
+using the time and date. (This is a sparse initialization, giving
+fewer than a million different starting values, but you should use
+other sources of numbers if they are available---just remember that
+most of the numbers available to \TeX\ are not at all random.)
+
+The \cmd\nextrandom\ command is not very useful by itself, unless you
+have exactly 2147483646 things to choose from. Much more useful
+is the \cmd\setrannum\ command which sets a given counter to a random
+value within a specified range. There are three parameters:
+\medskip
+{\tt \string\setrannum \thinspace\{$\langle \it counter\rangle$\}\thinspace\{$\langle\it minimum\rangle$\}\thinspace\{$\langle\it maximum\rangle$\}}
+\medskip
+\noindent For example, to simulate a die-roll:
+\medskip
+{\tt \string\setrannum\{\string\die\}\{1\}\{6\} \string\ifcase\string\die...}
+\medskip
+
+If you need random numbers that are not integers, you will have to
+use dimen registers instead with \cmd\setrandimen. For example, to set a random
+page width between 3 and 6.5 inches:
+\medskip
+\cmd\setrandimen \cmd\hsize{\tt\{3in\}\{6.5in\}}
+\medskip\noindent
+The ``\cmd\pointless'' macro
+will remove the ``{\tt pt}'' that \TeX\ gives so you can use the dimensions
+as pure ``real'' numbers. In that case, specify the range in {\tt pt} units.
+For example,
+\medskip
+ {\tt\string\setrandimen\string\answer\{2.71828pt\}\{3.14159pt\}}
+ \hfill\break\indent
+ {\tt The answer is \string\pointless\string\answer.}
+\medskip
+
+The random number generator is the one by Lewis, Goodman, and Miller
+(1969) and used as ``ran0'' in ``Numerical Recipies'' using Schrage's
+method for avoiding overflows. The multiplier is 16807 ($7^5$), the
+added constant is 0, and the modulus is 2147483647 ($2^{31}-1$).
+
+See CACM, Vol.~36, no. 7, (July 1993), p.~109. The original authors
+Park and Miller have since concluded that a better multiplier is 48271,
+rather than their original 16807.
+
+The range of integers generated is $1 - 2147483646$. A smaller range would
+reduce the complexity of the macros a bit, but not much---most of the
+code deals with initialization and type-conversion. On the other hand,
+the large range may be wasted due to the sparse seed initialization.
+
+
+\bye
diff --git a/macros/generic/misc/random.tex b/macros/generic/random/random.tex
index d1a818558b..2ea4c82eca 100644
--- a/macros/generic/misc/random.tex
+++ b/macros/generic/random/random.tex
@@ -1,6 +1,11 @@
-% RANDOM.TEX v.1 (Donald Arseneau)
+% RANDOM.TEX v 0.2 (Donald Arseneau)
% Generating "random" numbers in TeX.
%
+% \setrannum {<counter>} {<minimum>} {<maximum>}
+% \setrandimen {<dimen-register>} {<minimum>} {<maximum>}
+%
+% This software is released to the public domain.
+%
% Random integers are generated in the range 1 to 2147483646 by the
% macro \nextrandom. The result is returned in the counter \randomi.
% Do not change \randomi except, perhaps, to initialize it at some
@@ -29,8 +34,13 @@
% The random number generator is the one by Lewis, Goodman, and Miller
% (1969) and used as "ran0" in "Numerical Recipies" using Schrage's
% method for avoiding overflows. The multiplier is 16807 (7^5), the
-% added constant is 0, and the modulus is 2147483647 (2^{31}-1). The
-% range of integers generated is 1 - 2147483646. A smaller range would
+% added constant is 0, and the modulus is 2147483647 (2^{31}-1).
+%
+% See CACM, Vol. 36, no. 7, (July 1993), p. 109. The original authors
+% Park and Miller have since concluded that a better multiplier is 48271,
+% rather than their original 16807.
+%
+% The range of integers generated is 1 - 2147483646. A smaller range would
% reduce the complexity of the macros a bit, but not much--most of the
% code deals with initialization and type-conversion. On the other hand,
% the large range may be wasted due to the sparse seed initialization.
diff --git a/macros/generic/systeme/README b/macros/generic/systeme/README
index d7310e3496..82192d1990 100644
--- a/macros/generic/systeme/README
+++ b/macros/generic/systeme/README
@@ -1,9 +1,9 @@
L'extension
systeme
- v0.32
+ v0.33
- 13 janvier 2019
+ 13 avril 2020
Author : Christian Tellechea
Email : unbonpetit@netc.fr (CT)
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
diff --git a/macros/generic/systeme/systeme_fr.pdf b/macros/generic/systeme/systeme_fr.pdf
index 7d81a5ae88..a6c4193f09 100644
--- a/macros/generic/systeme/systeme_fr.pdf
+++ b/macros/generic/systeme/systeme_fr.pdf
Binary files differ
diff --git a/macros/generic/systeme/systeme_fr.tex b/macros/generic/systeme/systeme_fr.tex
index 657911336d..0180cadf93 100644
--- a/macros/generic/systeme/systeme_fr.tex
+++ b/macros/generic/systeme/systeme_fr.tex
@@ -1,14 +1,10 @@
-% Documentation de systeme
+% !TeX TS-program = xelatex
\documentclass[10pt,french]{article}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=3cm,head=12pt,headsep=7mm,footskip=7mm]{geometry}
\usepackage[bottom]{footmisc}
-\usepackage{libertine,amsmath,fancybox,enumitem,systeme,xcolor,amssymb,array,longtable,fancyhdr}
-\renewcommand*\oldstylenums[1]{{\fontfamily{fxlj}\selectfont #1}}
-\usepackage[scaled=0.8]{luximono}
-\usepackage[libertine]{newtxmath}%
-\usepackage[protrusion=true,expansion,final,babel=true]{microtype}
+
+\usepackage{amsmath,fancybox,enumitem,systeme,xcolor,amssymb,array,longtable,fancyhdr,libertinus-otf}
+\setsansfont[Scale=0.8]{Luxi Mono}
\fancypagestyle{plain}{%
\fancyhead[L]{\small L'extension \bfseries systeme}
\fancyhead[C]{}
@@ -290,6 +286,18 @@ Par la suite, on peut supprimer ce signe ou n'importe quel autre déjà existant
\exemple{Coefficients décimaux}/\systeme[][:]{1,5x-0,45y=0,7:x-0,8y=1,4}/
Pour qui veut utiliser la virgule régulièrement dans les coefficients, on peut changer définitivement le séparateur par défaut pour n'importe quel autre caractère que l'on placera dans l'argument de la commande \verb-\syseqsep- et écrire par exemple \og\verb/\syseqsep{:}/\fg{} pour choisir \og\verb-:-\fg.
+\subsection{Alignement des termes}
+Par défaut, les termes dans le membre de gauche sont alignes à droite, tandis que le terme du membre de droite est aligné à gauche. On peut changer ces consignes d'alignement avec la macro \verb|\sysalign{x,y}| où \verb|x| représente la consigne d'alignement des termes du membre de gauche et \verb|y| celle du terme du membre de droite. Ces consignes doivent être «\verb|c|» pour «centré», «\verb|r|» pour alignement à droite (right) ou «\verb|l|» pour gauche (left).
+\exemple{Alignement des termes}|\systeme{3x-y=-12,x+4y=3}
+ \quad(par défaut, droite/gauche)\par
+\sysalign{l,l}\systeme{3x-y=-12,x+4y=3}
+ \quad(alignement gauche/gauche)\par
+\sysalign{r,r}\systeme{3x-y=-12,x+4y=3}
+ \quad(alignement droite/droite)\par
+\sysalign{l,r}\systeme{3x-y=-12,x+4y=3}
+ \quad(alignement gauche/droite)\par
+\sysalign{c,c}\systeme{3x-y=-12,x+4y=3}
+ \quad(alignement centré/centré)|
\subsection{Espacement des lignes}\label{espacement.vertical}
On peut faire varier l'espacement entre les lignes avec la commande \verb-\syslineskipcoeff- dont l'argument est un nombre qui viendra multiplier la valeur de \verb-\baselinskip-. Par défaut, l'argument vaut \verb-1.25-.
@@ -297,6 +305,12 @@ On peut faire varier l'espacement entre les lignes avec la commande \verb-\sysli
\syslineskipcoeff{1.75}\quad
\systeme{x+2y-z=0,2x-y+z=1,x-3y+2z=1}/
+\subsection{Espaces autour des signes}
+Il est possible d'ajouter une espace avant et après tous les signes \verb|+| et \verb|-| séparant les termes du membre de gauche à l'aide de la macro \verb|\syssignspace{dim}| où \verb|dim| est la dimension du \emph{ressort} que l'on souhaite insérer. La macro \verb|\syseqspace{dim}| exécute la même action, mais pour le signe \verb|=|.
+\exemple{Espaces autour des signes}/\systeme{3x-y=-12,x+4y=3} puis
+\syssignspace{3pt}\syseqspace{10pt}
+\systeme{3x-y=-12,x+4y=3}/
+
\subsection{Colonne supplémentaire}
Lorsqu'une équation comporte le signe \og\verb-@-\fg{}, tout ce qui se trouve à droite de ce caractère sera mis dans une colonne supplémentaire au fer à gauche qui se trouvera à droite du système, en dernière position.
\exemple{Colonne supplémentaire}/\systeme{x+y=125@L_1,
@@ -387,6 +401,9 @@ Voici la liste de toutes les commandes définies par cette extension :
\verb-\systeme{<code système>}-&compose un système d'équations ou d'inéquations\\
\verb-\sysdelim<delim gauche><delim droit>-&modifie les délimiteurs extensibles placées à gauche et à droite du système\\
\verb-\syseqsep{<caractère>}-&définit le séparateur par défaut des équations\\
+\verb-\sysalign{x,y}-&définit l'alignement des termes dans les 2 membres\\
+\verb-\syssignspace{dim}-&définit l'espace ajoutée autour des signes dans le membre de gauche\\
+\verb-\syseqspace{dim}-&définit l'espace ajoutée autour du signe \verb-=-\\
\verb-\syslineskipcoeff{<coeff>}-&définit le coefficient multiplicateur de \verb-\baselinskip- pour modifier l'espacement vertical des équations\\
\verb-\+- et \verb|\-|&remplace "+" et "-" lorsqu'on veut éviter d'indiquer un nouveau terme\\
\verb-\sysequivsign{<signe>}{<substitution>}-&définit ce par quoi un \verb-<signe>- d'égalité doit être remplacé à l'affichage\\