summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-07-03 20:58:58 +0000
committerKarl Berry <karl@freefriends.org>2022-07-03 20:58:58 +0000
commit9e69ea0bcee4511423b695a3c95a531512ad1247 (patch)
treee398237a28f155271fc3f29cd05dd701c53421a8
parentd9b548bc058a1e7859398e11aced788196aca531 (diff)
simples-matrices (3jul22)
git-svn-id: svn://tug.org/texlive/trunk@63802 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md4
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md4
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/README.md4
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdfbin588298 -> 651623 bytes
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex335
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdfbin593202 -> 639703 bytes
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex338
-rw-r--r--Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdfbin551886 -> 552832 bytes
-rw-r--r--Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx656
-rw-r--r--Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins2
-rw-r--r--Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty2
11 files changed, 834 insertions, 511 deletions
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md b/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md
index 1f3b064cb9e..94b937d0397 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md
+++ b/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md
@@ -1,4 +1,4 @@
-<!-- Time-stamp: <2022-06-19 17:54:55 Yvon Henel (TdS)> -->
+<!-- Time-stamp: <2022-07-03 11:22:22 Yvon Henel (TdS)> -->
# simples-matrices
@@ -22,3 +22,5 @@ valeurs séparées par des virgules.
## Historique
* Version 1.0 — 2022-06-19 — Première version publique
+
+* Version 1.0.1 — 2022-07-03 — Quelques améliorations dans la documentation.
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md b/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md
index e24dad46441..c1406643545 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md
+++ b/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md
@@ -31,7 +31,6 @@ These files form part of the documentation but are not typeset. Generally they w
additional input files for the typeset documentation files listed above.
* LISEZMOI.md ‡
-* MANIFEST.md ‡
* README.md ‡
### Text files
@@ -39,7 +38,6 @@ additional input files for the typeset documentation files listed above.
Plain text files included as documentation or metadata.
* LISEZMOI.md ‡
-* MANIFEST.md ‡
* README.md ‡
### Derived files
@@ -80,7 +78,6 @@ All files included in the `simples-matrices/tex` directory.
All files included in the `simples-matrices/doc` directory.
* LISEZMOI.md
-* MANIFEST.md
* README.md
* simples-matrices-eng.pdf
* simples-matrices-fra.pdf
@@ -94,7 +91,6 @@ The following group lists the files included in the CTAN package.
### CTAN files
* LISEZMOI.md
-* MANIFEST.md
* README.md
* simples-matrices-eng.pdf
* simples-matrices-fra.pdf
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/README.md b/Master/texmf-dist/doc/latex/simples-matrices/README.md
index 2e06d4a1dce..f73600bf9ae 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/README.md
+++ b/Master/texmf-dist/doc/latex/simples-matrices/README.md
@@ -1,4 +1,4 @@
-<!-- Time-stamp: <2022-06-19 17:54:49 Yvon Henel (TdS)> -->
+<!-- Time-stamp: <2022-07-03 11:22:16 Yvon Henel (TdS)> -->
# simples-matrices
@@ -23,4 +23,4 @@ separated by commas.
* Version 1.0 — 2022-06-19 — First public version
-
+* Version 1.0.1 — 2022-07-03 — Some improvements in the documentation.
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf
index bdc2813d484..e0330d29390 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf
+++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex
index bca736cb73d..107da373b86 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex
+++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex
@@ -22,7 +22,7 @@
%% http://www.latex-project.org/lppl.txt
%%
\RequirePackage{expl3}[2020/01/12]
-\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $
+\GetIdInfo$Id: simples-matrices.dtx 1.0.1 2022-07-03 TdS $
{}
\documentclass[full]{l3doc}
\usepackage[utf8]{inputenc}
@@ -34,22 +34,65 @@
\usepackage{xspace}
\usepackage{csquotes}
\usepackage{fancyvrb,fancyvrb-ex}
+\usepackage{listings}
\usepackage{mathtools}
\usepackage{delarray}
\usepackage{nicematrix}
\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} }
+\colorlet{keyword20}{cyan} %!75!black
+\colorlet{keyword30}{teal}
+\colorlet{keycolor}{green!50!black}
+\colorlet{dollarcolor}{violet}
+\colorlet{cmdmuette}{blue}
+\colorlet{cmdcausante}{red}
+
+\lstset{frame=single,%
+ language=[LaTeX]{TeX},%
+ showspaces=false,%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ basicstyle=\ttfamily\bfseries,%
+ alsoletter={*-$},%
+ texcsstyle=*[2]\color{cmdcausante},%
+ texcs=[2]{matrice,declarermatrice*,lamatrice,matid,matnulle,MatriceInterieur,LaMatriceInterieur},%
+ texcsstyle=*[3]\color{cmdmuette},%
+ texcs=[3]{declarermatrice,simplesmatricessetup},%
+ keywordstyle=[20]\color{keyword20},%
+ keywordstyle=[30]\color{keyword30},%
+ keywordstyle=[40]\color{keycolor},%
+ keywordstyle=[50]\color{dollarcolor},%
+ keywords=[20]{tabular,array,matrix,matrix*,NiceArray},%
+ keywords=[30]{x,S,T,I,J,C,O,D},%
+ keywords=[40]{out-of-box,prefix,envir,typeord,argopt},%
+ keywords=[50]{$},%
+ escapeinside={\%*@}{@*)}%
+}
+
+\newcommand{\MacroPres}[2]{\textcolor{#1}{\textbf{\cs{#2}}}}
+\newcommand{\csmute}{\MacroPres{cmdmuette}}
+\newcommand{\csprint}{\MacroPres{cmdcausante}}
+\newcommand{\ObjetPres}[2]{\textcolor{#1}{\textbf{\texttt{#2}}}}
+\newcommand{\keyname}{\ObjetPres{keycolor}}
+\newcommand{\envir}{\ObjetPres{keyword20}}
+\newcommand{\TypeMat}{\ObjetPres{keyword30}}
+
\newcommand{\UnExemple}{%
\par \medskip \par \noindent
- \begin{minipage}[c]{0.58\linewidth}
- \VerbatimInput[gobble=0, frame=single]{code00.tex}
+ \begin{minipage}[c]{0.66\linewidth}
+ \lstinputlisting[gobble=0, frame=single, numbers=left, numberstyle={\small}]{code00.tex}
\end{minipage}
\hspace{\stretch{1}}
- \begin{minipage}[c]{0.38\linewidth}
+ \begin{minipage}[c]{0.32\linewidth}
+ \small
\input{code00}
\end{minipage}
- \par \medskip}
+ \par \medbreak}
+
+\newcommand*{\vliste}{liste\xspace}
+
+ \newcommand{\VoirEx}[1]{(see example on page~\pageref{#1})}
\begin{document}
\title{\pkg{simples-matrices} user guide\thanks{This file describes
@@ -104,42 +147,57 @@ ensuring a correct presentation of matrices.
\textbf{Beware}: you have to provide the suitable mathematical environment to
use the macros which print a matrix. Only the unstarred version of
-\cs{declarermatrice} may be used outside math-mode.
+\csmute{declarermatrice} may be used outside math-mode.
\section{The Macros}
\label{sec:macros}
-\pkg{simples-matrices} offers six main document macros.
+\pkg{simples-matrices} offers nine document macros.
+In the main text (syntaxes and examples), the name of a macro of this package is
+printed in red if the macro produces some text in the document, otherwise it is
+printed in blue.
+
\subsection{Main Macros}
\label{sec:main}
-This package has five main document macros viz.
+The six main document macros are the following:
+
\begin{function}{\matrice}
\begin{syntax}
- \cs{matrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{type}\marg{clist of coefficients}
+ \csprint{matrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{type}\marg{clist of coefficients}
\end{syntax}
- where \meta{prefix} has the same meaning as the key \texttt{prefix};
- \meta{clist of key-value pairs}, optional and void by default, can be used to
- redefined the matrix-like environment; \meta{type} is a string of character
+ where \meta{prefix} has the same meaning as the key \keyname{prefix} (see page~\pageref{key-prefix});
+ \meta{clist of key-value pairs} ---optional and void by default--- can be used to
+ redefined the \envir{matrix}-like environment; \meta{type} is a string of character
the usage of which is explained later ---see \ref{sec:matrix-type}--- and
\meta{clist of coefficients} is a clist of the coefficients of the matrix
given by row order.
The French \emph{matrice} means ``matrix''.
+\end{function}
- With \verb+\(\matrice{1, 2, 3, 4}\)+ we obtain \(\matrice{1, 2, 3, 4}\).
+ With
+\lstinline+$\matrice{1, 2, 3, 4}$+
+ we obtain
+\(\matrice{1, 2, 3, 4}\).
- With \verb+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\)+
- we obtain \(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
+ With
+\lstinline+$\matrice(b)[3]{1, 2, 3, 4, 5, 6}$+
+ we obtain
+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
+\begin{function}{\declarermatrice}
+ \begin{syntax}
+ \csmute{declarermatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
+ \end{syntax}
\end{function}
-\begin{function}{\declarermatrice}
+\begin{function}{\declarermatrice*}
\begin{syntax}
- \cs{declarermatrice*}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
+ \csprint{declarermatrice*}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
\end{syntax}
where \meta{matrix name} is the name of the matrix to be used afterwards. The
other arguments, optional or mandatory, have the same meaning than above. The
@@ -150,27 +208,31 @@ This package has five main document macros viz.
the same function. \textbf{No check is done} to ensure that one is not
redefining a previously defined matrix.
- The French \emph{déclarer une matrice} means ``declare a matrix''.
+ With the macro \csmute{declarermatrice}, the first two optional arguments have
+ no effect for they are not take into account to define the matrix \VoirEx{sec:declar}.
+ The French \emph{déclarer une matrice} means ``declare a matrix''.
\end{function}
+
\begin{function}{\lamatrice}
\begin{syntax}
- \cs{lamatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}
+ \csprint{lamatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}
\end{syntax}
prints the previously defined matrix the name of which is given by
- \meta{matrix name}. The two optional arguments have the meaning as before.
+ \meta{matrix name}. The two optional arguments have the meaning as before \VoirEx{sec:declar}.
The French \emph{la matrice} means ``the matrix''.
\end{function}
\begin{function}{\MatriceInterieur}
\begin{syntax}
- \cs{MatriceInterieur}
+ \csprint{MatriceInterieur}
\end{syntax}
- gives the inner part of the last printed ---via \cs{matrice}--- or defined
- ---via \cs{declarermatrice}--- matrix. It can be used inside an
- \env{array}-like environment.
+ gives the inner part of the last printed ---via \csprint{matrice} or
+ \csprint{declarermatrice*}--- or defined ---via \csmute{declarermatrice}---
+ matrix. It can be used inside an \envir{array}-like environment
+ \VoirEx{sec:matint}.
The French should be \emph{\foreignlanguage{french}{intérieur de la matrice}}
which means ``inside of the matrix''. What is implicit is the adjective
@@ -179,16 +241,15 @@ This package has five main document macros viz.
\begin{function}{\LaMatriceInterieur}
\begin{syntax}
- \cs{LaMatriceInterieur}\marg{matrix name}
+ \csprint{LaMatriceInterieur}\marg{matrix name}
\end{syntax}
gives the inner part of the matrix with name \meta{matrix name}. It can be
- used inside an \env{array}-like environment.
+ used inside an \envir{array}-like environment \VoirEx{sec:matint}.
- Again false French but the parallel with \cs{lamatrice} should suggest that,
+ Again false French but the parallel with \csprint{lamatrice} should suggest that,
now, the matrix has a name and we have to use it.
\end{function}
-See examples on page~\pageref{sec:examples}.
\subsection{Setting the Keys}
\label{sec:setting-keys}
@@ -196,7 +257,7 @@ See examples on page~\pageref{sec:examples}.
One can change the values of the keys of \pkg{simples-matrices} with
\begin{function}{\simplesmatricessetup}
\begin{syntax}
- \cs{simplesmatricessetup}\marg{clist of key-value pairs}
+ \csmute{simplesmatricessetup}\marg{clist of key-value pairs}
\end{syntax}
where \meta{clist of key-value pairs} is the usual clist of key-value pairs
setting one or many of the three keys of the package as presented on
@@ -205,8 +266,9 @@ One can change the values of the keys of \pkg{simples-matrices} with
To stick to established convention the name of this macro is created from the
name of the package (reduced to \TeX{} letters) followed by \emph{setup}. I
apologize for that strange linguistic mixture.
-
\end{function}
+
+\newpage{}
\subsection{Shortcuts}
\label{sec:shortcuts}
@@ -214,7 +276,7 @@ There are also two \emph{shortcut} macros:
\begin{function}{\matid}
\begin{syntax}
- \cs{matid}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
+ \csprint{matid}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
\end{syntax}
which write the identity matrix --- by default --- with \meta{number of
columns} columns. If \meta{coefficient} is given, we obtain a diagonal
@@ -223,13 +285,13 @@ There are also two \emph{shortcut} macros:
The two first optional arguments have the same functionality as in the
preceding macros.
- \emph{matid} stands for ``\foreignlanguage{French}{matrice identité}'' which means
+ \emph{matid} stands for \emph{\foreignlanguage{French}{matrice identité}} which means
``identity matrix''.
\end{function}
\begin{function}{\matnulle}
\begin{syntax}
- \cs{matnulle}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
+ \csprint{matnulle}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
\end{syntax}
writes the null matrix with \meta{number of columns} columns ---by default---
or a matrix containing with \meta{number of columns} columns and all
@@ -238,14 +300,14 @@ There are also two \emph{shortcut} macros:
The two first optional arguments have the same functionality as in the
preceding macros.
- \emph{matnulle} stands for ``\foreignlanguage{French}{matrice nulle}'' which means
+ \emph{matnulle} stands for \emph{\foreignlanguage{French}{matrice nulle}} which means
``null matrix''.
\end{function}
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matid{3}\)\qquad \(\matid[9]{3}\)
+$\matid{3}$\qquad $\matid[9]{3}$
\par \medskip
-\(\matnulle{3}\)\qquad \(\matnulle[2]{3}\)
+$\matnulle{3}$\qquad $\matnulle[2]{3}$
\end{VerbatimOut}
\UnExemple{}
@@ -253,39 +315,42 @@ There are also two \emph{shortcut} macros:
\label{sec:keys}
The package uses key-value options. There are four keys:
-\texttt{envir},
-\texttt{prefix},
-\texttt{typeord}
+\keyname{envir},
+\keyname{prefix},
+\keyname{typeord}
and
-\texttt{argopt}.
+\keyname{argopt}.
\begin{description}
-\item[\texttt{envir} (\textit{\texttt{string}})] the main and last part of the
+\item[\keyname{envir} (\textit{\texttt{string}})] the main and last part of the
name of the environment used to print the matrix. Its initial value is
- \texttt{matrix}.
+ \texttt{matrix}.\label{key-envir}
-\item[\texttt{prefix} (\textit{\texttt{string}})] a string which is prefixed to
+\item[\keyname{prefix} (\textit{\texttt{string}})] a string which is prefixed to
\texttt{envir} to obtain the complete name of the environment. Its initial
value is \texttt{p}. Therefore, by default, the environment used to print the
- matrix is \texttt{bmatrix} as defined by \pkg{amsmath}.
+ matrix is \envir{pmatrix} as defined by \pkg{amsmath}.\label{key-prefix}
-\item[\texttt{typeord} (\textit{\texttt{string}})] a string which is the
+\item[\keyname{typeord} (\textit{\texttt{string}})] a string which is the
ordinary ---i.~e. default--- value of the \meta{type} optional argument. The
- initial value of the key is \texttt{C}.
+ initial value of the key is \TypeMat{C}.\label{key-typeord}
-\item[\texttt{argopt} (\textit{\texttt{token list}})] for French
+\item[\keyname{argopt} (\textit{\texttt{token list}})] for French
\foreignlanguage{french}{\emph{argument optionnel}} (optional argument). That
- key is initially void. See page~\pageref{sec:delarray} for usage.
+ key is initially void. See page~\pageref{sec:delarray} for usage.\label{key-argopt}
\end{description}
Moreover, an other key is available which is not an option of the package:
-\texttt{out-of-box} which is a metakey.
+\keyname{out-of-box} which is a metakey.
-With |\simplesmatricessetup{out-of-box}| we obtain the same effect as with
-|\simplesmatricessetup{prefix=p,|\BOP| envir=matrix,|%
- \BOP| argopt=,|\BOP| typeord=C}|.
+ With
+\lstinline|\simplesmatricessetup{out-of-box}|
+ we obtain the same effect as with
+\lstinline|\simplesmatricessetup{prefix=p,|\BOP\lstinline| envir=matrix,|%
+ \BOP\lstinline| argopt=,|\BOP\lstinline| typeord=C}|.
+\newpage{}
\section{Examples}
\label{sec:examples}
\subsection{Without any special package}
@@ -298,101 +363,109 @@ That is with only \pkg{amsmath} loaded as done by this package.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{A}{1, 2, 300, 400}
-\(\declarermatrice*{B}{a, b, c, d}\)
-\qquad \(\lamatrice{A}\) \par \bigskip
-\(\lamatrice(V){A}\)
-\qquad \(\lamatrice(b){B}\)
+$\declarermatrice*{B}{a, b, c, d}$
+\quad $\lamatrice{A}$ \par \bigskip
+$\lamatrice(V){A}$
+\quad $\lamatrice(b){B}$
\end{VerbatimOut}
\UnExemple{}
+On the first line of this example, the matrix~\texttt{A} is defined but not
+printed. Then, on the second line, the matrix~\texttt{B} is defined and
+printed. We can afterwards call the~\texttt{A} or \texttt{B}-matrix with
+\csprint{lamatrice}.
+
\subsubsection{The ``\texttt{type}'' argument}
\label{sec:matrix-type}
-The last but one --- optional --- argument of macros \cs{matrice} and
-\cs{declarermatrice} defaults to \texttt{O}. In that case the value of the key
-\texttt{typeord} is used to determine the \emph{type} of the matrix input,
+The last but one --- optional --- argument of macros \csprint{matrice},
+\csmute{declarermatrice} and \csprint{declarermatrice*}
+defaults to \TypeMat{O}. In that case the value of the key
+\keyname{typeord} is used to determine the \emph{type} of the matrix input,
see~\pageref{sec:matrix-type-key}.
Its value can be a number, in which case it is the number of columns, or a
-string ---presently a one letter string--- among: \texttt{C}, \texttt{D},
-\texttt{I}, \texttt{J}, \texttt{S}, \texttt{T} and \texttt{x}.
+string ---presently a one letter string--- among: \TypeMat{C}, \TypeMat{D},
+\TypeMat{I}, \TypeMat{J}, \TypeMat{S}, \TypeMat{T} and \TypeMat{x}.
\medskip{}
- \texttt{C} means square matrix for French ``\texttt{C}arré'' means ``square''.
+ \TypeMat{C} means square matrix for French ``\texttt{C}arré'' means ``square''.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
-\matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
-\qquad
-\matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \quad
+ \matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
\]
\end{VerbatimOut}
\UnExemple{}
- \texttt{D} means \textbf{diagonal} matrix.
+ \TypeMat{D} means \textbf{diagonal} matrix.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice{1, 2, 3, 4}\qquad
- \matrice[D]{1, 2, 3, 4}
+ \matrice{1, 2, 3, 4}\quad
+ \matrice[D]{1, 2, 3, 4}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{I} means lower triangular matrix. French ``\texttt{I}nférieur'' means
-``lower''; \texttt{J} means lower triangular matrix with zeros on the diagonal.
+\TypeMat{I} means lower triangular matrix. French ``\texttt{I}nférieur'' means
+``lower''; \TypeMat{J} means lower triangular matrix with zeros on the diagonal.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[I]{1, 2, 3}\qquad
- \matrice[J]{1, 2, 3}
+ \matrice[I]{1, 2, 3}\quad
+ \matrice[J]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{S} means upper triangular matrix. French ``\texttt{S}upérieur'' means
-``upper''; \texttt{T} means upper triangular matrix with zeros on the diagonal.
+\TypeMat{S} means upper triangular matrix. French ``\texttt{S}upérieur'' means
+``upper''; \TypeMat{T} means upper triangular matrix with zeros on the diagonal.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[S]{1, 2, 3}\qquad
- \matrice[T]{1, 2, 3}
+ \matrice[S]{1, 2, 3}\quad
+ \matrice[T]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{x} means \texttt{xcas}. With that value, one can copy-paste from
+\TypeMat{x} means \texttt{xcas}\footnote{Free computer algebra system, see here:
+\url{https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac.html}.}. With that value, one can copy-paste from
\texttt{xcas} into the \LaTeX{} document.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
+ \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
\]
\end{VerbatimOut}
\UnExemple{}
+\pagebreak[3]
A number sets up the number of columns of the matrix.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[2]{1, 2, 3, 4, 5, 6}
- \quad
- \matrice[3]{1, 2, 3, 4, 5, 6}
+ \matrice[2]{1, 2, 3, 4, 5, 6}
+ \quad
+ \matrice[3]{1, 2, 3, 4, 5, 6}
\]
\end{VerbatimOut}
\UnExemple{}
-\subsubsection{Using the ``\texttt{typeord}'' Key}
+\subsubsection{Using the ``\keyname{typeord}'' Key}
\label{sec:matrix-type-key}
-In this document, the key \texttt{typeord} has the initial value of~\texttt{C}.
+In this document, the key \keyname{typeord} has the initial value of~\TypeMat{C}.
\medskip{}
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{typeord=3}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=2}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=C}
-\(\matrice{1, 2, 3, 4}\)
+$\matrice{1, 2, 3, 4}$
\end{VerbatimOut}
\UnExemple{}
@@ -400,33 +473,42 @@ The preceding code is but a mere illustration. In order to declare a type for
one matrix it's more convenient to use the optional argument. However if one
wants to write a lesson about upper triangular matrices\dots{}
-\subsubsection{Using the \cs{(La)MatriceInterieur} Macros}
+\subsubsection{Using the \csprint{(La)MatriceInterieur} Macros}
\label{sec:matint}
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{B}[4]{
-\hline ein, zwei, drei, vier,
-\hline unos, dos, tres, cuatro,
-\hline unu, du, tri, kvar}
-\declarermatrice{A}[3]{one, two, three,
-un, deux, trois, uno, due, tre}
+ \hline ein, zwei, drei, vier,
+ \hline unos, dos, tres, cuatro,
+ \hline unu, du, tri, kvar}%
+\declarermatrice{A}[3]{
+ one, two, three,
+ un, deux, trois,
+ uno, due, tre}%
\begin{tabular}{*{3}{l}}
-\MatriceInterieur
+ \MatriceInterieur %*@\label{anonyme}@*)
\end{tabular}
-\par \medskip
+\par \bigskip *** \par \bigskip
+\begin{tabular}{*{3}{l}}
+ \LaMatriceInterieur{A} %*@\label{parnom}@*)
+\end{tabular}
+\par \bigskip
\begin{tabular}{|*{4}{l|}}
-\LaMatriceInterieur{B}\hline
+ \LaMatriceInterieur{B}\hline
\end{tabular}
\end{VerbatimOut}
\UnExemple{}
+On lines~\ref{anonyme} and~\ref{parnom} we use the same \emph{internal} because
+the \texttt{A}-matrix is the last defined before line~\ref{anonyme}.
+
\subsection{Changing the Look}
\label{sec:changelook}
We can load other packages which deal with matrices such as \pkg{mathtools},
\pkg{delarray} or \pkg{nicematrix}. In that case we can change the look of our
-matrices thanks to the option-key \texttt{envir}, \texttt{prefix} and
-\texttt{argopt}.
+matrices thanks to the option-key \keyname{envir}, \keyname{prefix} and
+\keyname{argopt}.
This document loads the three packages \pkg{mathtools}, \pkg{delarray} and
\pkg{nicematrix} in order to give the following examples.
@@ -437,19 +519,18 @@ This document loads the three packages \pkg{mathtools}, \pkg{delarray} and
\label{sec:mathtools}
As already stated above there are two ways to use the option-keys: through
-\cs{simplesmatricesetup} or through the optional argument
-\darg{\string<}{clist of pairs of key-value}{\string>}. I show both.
-
+\csmute{simples}\BOP\ObjetPres{cmdmuette}{matrices}\BOP\ObjetPres{cmdmuette}{setup}
+or through the optional argument \darg{\string<}{clist of pairs of
+ key-value}{\string>}. I show both.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=matrix*, prefix=p, argopt=[r]}
-\(\matrice{1, 2, 30, 40}\) \qquad
+$\matrice{1, 2, 30, 40}$ \quad
\simplesmatricessetup{out-of-box}
-\(\matrice{1, 2, 30, 40}\)
+$\matrice{1, 2, 30, 40}$
\par \medskip
-\(\matrice(b)<envir=matrix*, argopt=[l]>
- {1, 2, 30, 40}\)
+$\matrice(b)<envir=matrix*,argopt=[l]> {1, 2, 30, 40}$
\end{VerbatimOut}
\UnExemple{}
@@ -460,10 +541,10 @@ As already stated above there are two ways to use the option-keys: through
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=array, prefix=,
- argopt=[c][{l c r}\}}
-\(\matrice{1, 2, 30, 40}\) \qquad
-\(\matid()<envir=array,
- argopt={[c][{@{}l c r@{}}\}}>{3}\)
+ argopt=[c][{l r}\}}
+$\matrice{1, 2, 30, 40}$ \quad
+$\matid()<envir=array,
+ argopt={[c][{@{}c c c@{}}\}}>{3}$
\end{VerbatimOut}
\UnExemple{}
\simplesmatricessetup{out-of-box}
@@ -472,37 +553,43 @@ As already stated above there are two ways to use the option-keys: through
\label{sec:nicematrix}
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{*{2}{c}|cc}}>{1, 2, 3, 4, 5, 6,
-7, 8, 9, 10, 11, 12, 13, 14, 15, 16}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={ {cc||rl} }>{1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}$
\end{VerbatimOut}
- %| emacs
\UnExemple{}
In that case we need to double the curly braces around the column descriptors of
-the \texttt{array} environment because the first level is stripped off by
+the \envir{array} environment because the first level is stripped off by
\LaTeX{} when valuating the key.
+\medskip{}
+
In the following example, for the second matrix, it is not necessary to surround
-the value of \texttt{argopt} with an extra pair of curly braces ---even if it is
-not dangerous--- for the presence of \texttt{[margin]} prevents \LaTeX{} to
-strip off the curly braces.
+the value of \keyname{argopt} with an extra pair of curly braces (see
+line~\ref{sansaccol}) ---even if it is not dangerous (see
+line~\ref{avecaccol})--- for the presence of \texttt{[margin]} prevents \LaTeX{}
+to strip off the curly braces.
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
+$\matrice<prefix=b, envir=NiceArray,
argopt={{l c r}}>{1, 2, 3, 40, 50, 60,
- 700, 800, 900}\)
+ 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={l c r}[margin]>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={l c r}[margin]>{1, 2, 3, %*@\label{sansaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{l c r}[margin]}>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={{l c r}[margin]}>{1, 2, 3, %*@\label{avecaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\end{VerbatimOut}
\UnExemple{}
+ \section{Thanks}
+Many thanks to Denis \textsc{Bitouzé} for his remarks about the initial state of
+this documentation. Thanks to him, some colours have appeared on these pages.
+
\vspace{\stretch{2}}
\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth}
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf
index b6cd4e15e18..3c6014c34ad 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf
+++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex
index e64f448a083..9a1cf8b02e2 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex
+++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex
@@ -22,7 +22,7 @@
%% http://www.latex-project.org/lppl.txt
%%
\RequirePackage{expl3}[2020/01/12]
-\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $
+\GetIdInfo$Id: simples-matrices.dtx 1.0.1 2022-07-03 TdS $
{}
\documentclass[full]{l3doc}
\usepackage[utf8]{inputenc}
@@ -34,22 +34,65 @@
\usepackage{xspace}
\usepackage{csquotes}
\usepackage{fancyvrb,fancyvrb-ex}
+\usepackage{listings}
\usepackage{mathtools}
\usepackage{delarray}
\usepackage{nicematrix}
\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} }
+\colorlet{keyword20}{cyan} %!75!black
+\colorlet{keyword30}{teal}
+\colorlet{keycolor}{green!50!black}
+\colorlet{dollarcolor}{violet}
+\colorlet{cmdmuette}{blue}
+\colorlet{cmdcausante}{red}
+
+\lstset{frame=single,%
+ language=[LaTeX]{TeX},%
+ showspaces=false,%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ basicstyle=\ttfamily\bfseries,%
+ alsoletter={*-$},%
+ texcsstyle=*[2]\color{cmdcausante},%
+ texcs=[2]{matrice,declarermatrice*,lamatrice,matid,matnulle,MatriceInterieur,LaMatriceInterieur},%
+ texcsstyle=*[3]\color{cmdmuette},%
+ texcs=[3]{declarermatrice,simplesmatricessetup},%
+ keywordstyle=[20]\color{keyword20},%
+ keywordstyle=[30]\color{keyword30},%
+ keywordstyle=[40]\color{keycolor},%
+ keywordstyle=[50]\color{dollarcolor},%
+ keywords=[20]{tabular,array,matrix,matrix*,NiceArray},%
+ keywords=[30]{x,S,T,I,J,C,O,D},%
+ keywords=[40]{out-of-box,prefix,envir,typeord,argopt},%
+ keywords=[50]{$},%
+ escapeinside={\%*@}{@*)}%
+}
+
+\newcommand{\MacroPres}[2]{\textcolor{#1}{\textbf{\cs{#2}}}}
+\newcommand{\csmute}{\MacroPres{cmdmuette}}
+\newcommand{\csprint}{\MacroPres{cmdcausante}}
+\newcommand{\ObjetPres}[2]{\textcolor{#1}{\textbf{\texttt{#2}}}}
+\newcommand{\keyname}{\ObjetPres{keycolor}}
+\newcommand{\envir}{\ObjetPres{keyword20}}
+\newcommand{\TypeMat}{\ObjetPres{keyword30}}
+
\newcommand{\UnExemple}{%
\par \medskip \par \noindent
- \begin{minipage}[c]{0.58\linewidth}
- \VerbatimInput[gobble=0, frame=single]{code00.tex}
+ \begin{minipage}[c]{0.66\linewidth}
+ \lstinputlisting[gobble=0, frame=single, numbers=left, numberstyle={\small}]{code00.tex}
\end{minipage}
\hspace{\stretch{1}}
- \begin{minipage}[c]{0.38\linewidth}
+ \begin{minipage}[c]{0.32\linewidth}
+ \small
\input{code00}
\end{minipage}
- \par \medskip}
+ \par \medbreak}
+
+\newcommand*{\vliste}{liste\xspace}
+
+ \newcommand{\VoirEx}[1]{(voir exemple en page~\pageref{#1})}
\begin{document}
\title{Guide de l'utilisateur de \pkg{simples-matrices}\thanks{Ce fichier décrit
@@ -104,78 +147,94 @@ définir ses macros et gérer les clés d'option. Elle charge également
\textbf{Attention}: vous devez fournir l'environnement mathématique adéquat pour
utiliser les macros qui écrivent les matrices. Seule la version non-étoilée de
-\cs{declarermatrice} peut être utilisée en dehors du mode mathématique.
+\csmute{declarermatrice} peut être utilisée en dehors du mode mathématique.
\section{Les macros}
\label{sec:macros}
-L'extension \pkg{simples-matrices} offre six macros de document.
+L'extension \pkg{simples-matrices} offre neuf macros de document.
+Dans le texte principal (syntaxes et exemples), le nom d'une macro de cette
+extension est écrit en rouge si la macro produit du texte dans le document,
+autrement il est écrit en bleu.
+
\subsection{Macros principales}
\label{sec:principales}
-Les cinq macros principales de document sont les suivantes:
-
+Les six macros principales sont les suivantes:
\begin{function}{\matrice}
\begin{syntax}
- \cs{matrice}\parg{prefixe}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{type}\marg{vliste des coefficients}
+ \csprint{matrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{type}\marg{\vliste des coefficients}
\end{syntax}
- où \meta{prefixe} a la même fonction que la clé \texttt{prefix}; \meta{vliste
- de paires de clé-valeur}, optionnel et vide par défaut, peut être utiliser
- pour redéfinit l'environnement de type \texttt{matrix};
+ où \meta{prefixe} a la même fonction que la clé \keyname{prefix} (voir page~\pageref{key-prefix});
+ \meta{\vliste de paires de clé-valeur} --- optionnel et vide par défaut ---
+ peut être utilisé pour redéfinir l'environnement de type \envir{matrix};
\meta{type} est une chaine de caractère dont l'utilisation sera expliquée
- ci-dessous --- voir~\ref{sec:matrix-type} --- et \meta{vliste des
- coefficients} est la vliste des coefficients de la matrice donnés ligne par
+ ci-dessous --- voir~\ref{sec:matrix-type} --- et \meta{\vliste des
+ coefficients} est la \vliste des coefficients de la matrice donnés ligne par
ligne.
+\end{function}
- Avec \verb+\(\matrice{1, 2, 3, 4}\)+ on obtient \(\matrice{1, 2, 3, 4}\).
+ Avec
+\lstinline+$\matrice{1, 2, 3, 4}$+
+ on obtient
+\(\matrice{1, 2, 3, 4}\).
- Avec \verb+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\)+
- on obtient \(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
+ Avec
+\lstinline+$\matrice(b)[3]{1, 2, 3, 4, 5, 6}$+
+ on obtient
+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
-\end{function}
\begin{function}{\declarermatrice}
\begin{syntax}
- \cs{declarermatrice*}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{vliste des coefficients}
+ \csmute{declarermatrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{\vliste des coefficients}
+ \end{syntax}
+\end{function}
+
+\begin{function}{\declarermatrice*}
+ \begin{syntax}
+ \csprint{declarermatrice*}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{\vliste des coefficients}
\end{syntax}
où \meta{nom} est le nom de la matrice pour utilisation future. Les autres
arguments, optionnels ou obligatoires, ont la même signification que
ci-dessus. La version étoilée définit et écrit la matrice. La version
non-étoilée ne fait que la définir.
- La définition est global mais on peut redéfinir une matrice nommée existante
+ La définition est globale mais on peut redéfinir une matrice nommée existante
avec la même fonction. \textbf{Aucun contrôle} n'est exercé pour s'assurer que
l'on n'est pas en train de redéfinir une matrice nommée précédemment définie.
+
+ Avec la macro \csmute{declarermatrice}, les deux premiers arguments optionnels
+ n'ont aucun effet car la définition de la matrice n'en tient pas compte \VoirEx{sec:declar}.
\end{function}
\begin{function}{\lamatrice}
\begin{syntax}
- \cs{lamatrice}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\marg{matrix name}
+ \csprint{lamatrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}
\end{syntax}
écrit la matrice nommée de nom \meta{nom}.
- Les deux arguments optionnels ont la même signification que ci-dessus.
+ Les deux arguments optionnels ont la même signification que ci-dessus \VoirEx{sec:declar}.
\end{function}
\begin{function}{\MatriceInterieur}
\begin{syntax}
- \cs{MatriceInterieur}
+ \csprint{MatriceInterieur}
\end{syntax}
- donne l'intérieur de la dernière matrice écrite --- via \cs{matrice} --- ou
- définie --- via \cs{declarermatrice}. On peut l'utiliser dans un environnement
- du genre \env{array}.
+ donne l'intérieur de la dernière matrice écrite --- via \csprint{matrice} ou
+ \csprint{declarermatrice*} --- ou définie --- via \csmute{declarermatrice}. On
+ peut l'utiliser dans un environnement du genre \envir{array} \VoirEx{sec:matint}.
\end{function}
\begin{function}{\LaMatriceInterieur}
\begin{syntax}
- \cs{LaMatriceInterieur}\marg{nom}
+ \csprint{LaMatriceInterieur}\marg{nom}
\end{syntax}
donne l'intérieur de la matrice de nom \meta{nom}. On peut l'utiliser dans un
- environnement du genre \env{array}.
+ environnement du genre \envir{array} \VoirEx{sec:matint}.
\end{function}
-Voir les exemples en page~\pageref{sec:exemples}.
\subsection{Valuer les clés}
\label{sec:setting-keys}
@@ -183,9 +242,9 @@ Voir les exemples en page~\pageref{sec:exemples}.
On peut changer les valeurs des clés de \pkg{simples-matrices} avec
\begin{function}{\simplesmatricessetup}
\begin{syntax}
- \cs{simplesmatricessetup}\marg{vliste de paires de clé-valeur}
+ \csmute{simplesmatricessetup}\marg{\vliste de paires de clé-valeur}
\end{syntax}
- où \meta{vliste de paires de clé-valeur} est l'habituelle vliste de paires de
+ où \meta{\vliste de paires de clé-valeur} est l'habituelle \vliste de paires de
clé-valeur valuant une ou plusieurs des trois clés de cette extension
telles que présentées ci-dessous en page~\pageref{sec:clefs}.
@@ -193,8 +252,8 @@ On peut changer les valeurs des clés de \pkg{simples-matrices} avec
consiste en le nom de l'extension --- réduite à ces lettres \TeX{}iennes ---
suivi de l'anglais \emph{setup}. Je demande pardon pour cette étrange mixture
linguistique.
-
\end{function}
+
\subsection{Raccourcis}
\label{sec:shortcuts}
@@ -202,7 +261,7 @@ L'extension propose deux macros \emph{raccourcis}:
\begin{function}{\matid}
\begin{syntax}
- \cs{matid}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
+ \csprint{matid}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
\end{syntax}
qui imprime la matrice identité --- par défaut --- avec
\meta{nombre de colonnes} colonnes.
@@ -215,7 +274,7 @@ L'extension propose deux macros \emph{raccourcis}:
\begin{function}{\matnulle}
\begin{syntax}
- \cs{matnulle}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
+ \csprint{matnulle}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
\end{syntax}
imprime la matrice nulle \meta{nombre de colonnes} colonnes --- par défaut ---
ou une matrice de \meta{nombre de colonnes} colonnes dont tous les
@@ -226,9 +285,9 @@ L'extension propose deux macros \emph{raccourcis}:
\end{function}
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matid{3}\)\qquad \(\matid[9]{3}\)
+$\matid{3}$\qquad $\matid[9]{3}$
\par \medskip
-\(\matnulle{3}\)\qquad \(\matnulle[2]{3}\)
+$\matnulle{3}$\qquad $\matnulle[2]{3}$
\end{VerbatimOut}
\UnExemple{}
@@ -237,33 +296,36 @@ L'extension propose deux macros \emph{raccourcis}:
\label{sec:clefs}
L'extension utilise le système de clefs-valeurs pour ses options. Elle possède
-quatre clés: \texttt{envir}, \texttt{prefix}, \texttt{typeord} et \texttt{argopt}.
+quatre clés: \keyname{envir}, \keyname{prefix}, \keyname{typeord} et \keyname{argopt}.
\begin{description}
-\item[\texttt{envir} (\textit{\texttt{chaine de caractères}})] la partie finale
- du nom de l'environnement utilisé pour imprimer la matrice. Sa valeur initiale
- est \texttt{matrix}.
+\item[\keyname{envir} (\textit{\texttt{chaine de caractères}})] est la partie
+ finale du nom de l'environnement utilisé pour imprimer la matrice. Sa valeur
+ initiale est \texttt{matrix}.\label{key-envir}
-\item[\texttt{prefix} (\textit{\texttt{chaine de caractères}})], caractères
- placés devant \texttt{envir} pour fournir le nom complet de l'environnement
- utilisé pour imprimer la matrice. Sa valeur initiale est \texttt{p}. Cela fait
- que l'environnement par défaut est \texttt{pmatrix} fourni par \pkg{amsmath}.
+\item[\keyname{prefix} (\textit{\texttt{chaine de caractères}})] contient les
+ caractères placés devant \texttt{envir} pour fournir le nom complet de
+ l'environnement utilisé pour imprimer la matrice. Sa valeur initiale est
+ \texttt{p}. Cela fait que l'environnement par défaut est \envir{pmatrix}
+ fourni par \pkg{amsmath}.\label{key-prefix}
-\item[\texttt{typeord} (\textit{\texttt{chaine de caractères}})] définit la
+\item[\keyname{typeord} (\textit{\texttt{chaine de caractères}})] définit la
valeur ordinaire --- c.-à-d. par défaut --- de l'argument optionnel
- \meta{type}. La valeur initiale de la clé est \texttt{C}.
+ \meta{type}. La valeur initiale de la clé est \TypeMat{C}.\label{key-typeord}
-\item[\texttt{argopt} (\textit{\texttt{liste de lexèmes}}, anglais:
- \foreignlanguage{english}{token list})]. Cette clé est vide par défaut. Voir
- page~\pageref{sec:delarray} pour son utilisation.
+\item[\keyname{argopt} (\textit{\texttt{liste de lexèmes}}, anglais:
+ \foreignlanguage{english}{token list})] est vide par défaut. Voir
+ page~\pageref{sec:delarray} pour son utilisation.\label{key-argopt}
\end{description}
De plus, une clé supplémentaire existe qui est une métaclé:
-\texttt{out-of-box}.
+\keyname{out-of-box}.
-Avec |\simplesmatricessetup{out-of-box}| on obtient le même effet qu'avec
-|\simplesmatricessetup{prefix=p,|\BOP| envir=matrix,|%
- \BOP| argopt=,|\BOP| typeord=C}|.
+ Avec
+\lstinline|\simplesmatricessetup{out-of-box}|
+ on obtient le même effet qu'avec
+\lstinline|\simplesmatricessetup{prefix=p,|\BOP\lstinline| envir=matrix,|%
+ \BOP\lstinline| argopt=,|\BOP\lstinline| typeord=C}|.
\section{Exemples}
\label{sec:exemples}
@@ -277,102 +339,111 @@ C'est-à-dire en chargeant uniquement \pkg{amsmath} comme le fait cette extensio
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{A}{1, 2, 300, 400}
-\(\declarermatrice*{B}{a, b, c, d}\)
-\qquad \(\lamatrice{A}\) \par \bigskip
-\(\lamatrice(V){A}\)
-\qquad \(\lamatrice(b){B}\)
+$\declarermatrice*{B}{a, b, c, d}$
+\quad $\lamatrice{A}$ \par \bigskip
+$\lamatrice(V){A}$
+\quad $\lamatrice(b){B}$
\end{VerbatimOut}
\UnExemple{}
+Sur la première ligne de l'exemple, la matrice~\texttt{A} est définie mais pas
+écrite. Ensuite, sur la seconde ligne, la matrice~\texttt{B} est définie et
+écrite. Nous pouvons ensuite appeler les matrices~\texttt{A} ou~\texttt{B} à
+l'aide de \csprint{lamatrice}.
+
\subsubsection{L'argument \og \texttt{type}\fg}
\label{sec:matrix-type}
-L'avant dernier argument --- optionnel --- des macros \cs{matrice} et
-\cs{declarermatrice} vaut par défaut \texttt{O}. Dans ce cas, c'est la valeur de
-la clé \texttt{typeord} qui est utilisée pour déterminer le \emph{type} des
-données de la matrice, voir~\pageref{sec:matrix-type-key}.
+L'avant dernier argument --- optionnel --- des macros \csprint{matrice},
+\csmute{declarermatrice} et \csprint{declarermatrice*} vaut par défaut
+\TypeMat{O}. Dans ce cas, c'est la valeur de la clé \keyname{typeord} qui est
+utilisée pour déterminer le \emph{type} des données de la matrice,
+voir~\pageref{sec:matrix-type-key}.
Sinon, il peut prendre une valeur numérique qui est le nombre de colonnes de la
matrice ou encore une chaine de caractères --- à ce jour, une seule lettre ---
-parmi: \texttt{C}, \texttt{D}, \texttt{I}, \texttt{J}, \texttt{S}, \texttt{T} et
-\texttt{x}.
+parmi: \TypeMat{C}, \TypeMat{D}, \TypeMat{I}, \TypeMat{J}, \TypeMat{S}, \TypeMat{T} et
+\TypeMat{x}.
\medskip{}
- \texttt{C} signifie matrice \textbf{carrée}.
+ \TypeMat{C} signifie matrice \textbf{carrée}.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
-\matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
-\qquad
-\matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \quad
+ \matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
\]
\end{VerbatimOut}
\UnExemple{}
- \texttt{D} signifie matrice \textbf{diagonale}.
+ \TypeMat{D} signifie matrice \textbf{diagonale}.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice{1, 2, 3, 4}\qquad
- \matrice[D]{1, 2, 3, 4}
+ \matrice{1, 2, 3, 4}\quad
+ \matrice[D]{1, 2, 3, 4}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{I} signifie matrice triangulaire \textbf{inférieure}; \texttt{J}
+\TypeMat{I} signifie matrice triangulaire \textbf{inférieure}; \TypeMat{J}
signifie matrice triangulaire inférieure avec des zéros sur la diagonale.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[I]{1, 2, 3}\qquad
- \matrice[J]{1, 2, 3}
+ \matrice[I]{1, 2, 3}\quad
+ \matrice[J]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{S} signifie matrice triangulaire \textbf{supérieure}; \texttt{T}
+\TypeMat{S} signifie matrice triangulaire \textbf{supérieure}; \TypeMat{T}
signifie matrice triangulaire supérieure avec des zéros sur la diagonale.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[S]{1, 2, 3}\qquad
- \matrice[T]{1, 2, 3}
+ \matrice[S]{1, 2, 3}\quad
+ \matrice[T]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
-\texttt{x} signifie \texttt{xcas}. Avec cette valeur, on peut copier-coller de
-\texttt{xcas} dans le document \LaTeX{}.
+\TypeMat{x} signifie \texttt{xcas}\footnote{Système de calcul formel libre
+ disponible ici:
+ \url{https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac_fr.html}}. Avec
+cette valeur, on peut copier-coller de \texttt{xcas} dans le document \LaTeX{}.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
+ \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
\]
\end{VerbatimOut}
\UnExemple{}
+\pagebreak[3]
Un nombre donne le nombre de colonnes de la matrice.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[2]{1, 2, 3, 4, 5, 6}
- \quad
- \matrice[3]{1, 2, 3, 4, 5, 6}
+ \matrice[2]{1, 2, 3, 4, 5, 6}
+ \quad
+ \matrice[3]{1, 2, 3, 4, 5, 6}
\]
\end{VerbatimOut}
\UnExemple{}
-\subsubsection{Utilisation de la clé \og \texttt{typeord}\fg}
+\subsubsection{Utilisation de la clé \og \keyname{typeord}\fg}
\label{sec:matrix-type-key}
-Dans ce document, la clé \texttt{typeord} a comme valeur initiale~\texttt{C}.
+Dans ce document, la clé \keyname{typeord} a comme valeur initiale~\TypeMat{C}.
\medskip{}
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{typeord=3}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=2}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=C}
-\(\matrice{1, 2, 3, 4}\)
+$\matrice{1, 2, 3, 4}$
\end{VerbatimOut}
\UnExemple{}
@@ -381,34 +452,44 @@ déclaration de type ne concernant qu'une seule matrice, on aura intérêt à
utiliser l'argument optionnel. Cependant si on veut rédiger un cours sur les
matrices triangulaires supérieures\dots{}
-\subsubsection{Utilisation des macros \cs{(La)MatriceInterieur}}
+\subsubsection{Utilisation des macros \csprint{(La)MatriceInterieur}}
\label{sec:matint}
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{B}[4]{
-\hline ein, zwei, drei, vier,
-\hline unos, dos, tres, cuatro,
-\hline unu, du, tri, kvar}
-\declarermatrice{A}[3]{one, two, three,
-un, deux, trois, uno, due, tre}
+ \hline ein, zwei, drei, vier,
+ \hline unos, dos, tres, cuatro,
+ \hline unu, du, tri, kvar}%
+\declarermatrice{A}[3]{
+ one, two, three,
+ un, deux, trois,
+ uno, due, tre}%
\begin{tabular}{*{3}{l}}
-\MatriceInterieur
+ \MatriceInterieur %*@\label{anonyme}@*)
\end{tabular}
-\par \medskip
+\par \bigskip *** \par \bigskip
+\begin{tabular}{*{3}{l}}
+ \LaMatriceInterieur{A} %*@\label{parnom}@*)
+\end{tabular}
+\par \bigskip
\begin{tabular}{|*{4}{l|}}
-\LaMatriceInterieur{B}\hline
+ \LaMatriceInterieur{B}\hline
\end{tabular}
\end{VerbatimOut}
\UnExemple{}
+En lignes~\ref{anonyme} et~\ref{parnom}, nous accédons aux mêmes
+\emph{entrailles} car la matrice~\texttt{A} est la dernière définie avant la
+ligne~\ref{anonyme}.
+
\subsection{Changer l'aspect}
\label{sec:aspect}
On peut charger d'autres extensions qui permettent de présenter des matrices
comme \pkg{mathtools}, \pkg{delarray} ou \pkg{nicematrix}. Dans ce cas on peut
-changer l'aspect de nos matrices grace aux clés d'option \texttt{envir},
-\texttt{prefix} et \texttt{argopt}.
+changer l'aspect de nos matrices grace aux clés d'option \keyname{envir},
+\keyname{prefix} et \keyname{argopt}.
Ce document charge les trois extensions \pkg{mathtools}, \pkg{delarray} et
\pkg{nicematrix} pour présenter les exemples suivants.
@@ -418,19 +499,17 @@ Ce document charge les trois extensions \pkg{mathtools}, \pkg{delarray} et
\label{sec:mathtools}
Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'aide de
-\cs{simplesmatricesetup} ou en utilisant l'argument optionnel
-\darg{\string<}{vliste de paires de clé-valeur}{\string>}. Je montre les deux.
-
+\csmute{simplesmatricessetup} ou en utilisant l'argument optionnel
+\darg{\string<}{\vliste de paires de clé-valeur}{\string>}. Je montre les deux.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=matrix*, prefix=p, argopt=[r]}
-\(\matrice{1, 2, 30, 40}\) \qquad
+$\matrice{1, 2, 30, 40}$ \quad
\simplesmatricessetup{out-of-box}
-\(\matrice{1, 2, 30, 40}\)
+$\matrice{1, 2, 30, 40}$
\par \medskip
-\(\matrice(b)<envir=matrix*, argopt=[l]>
- {1, 2, 30, 40}\)
+$\matrice(b)<envir=matrix*,argopt=[l]> {1, 2, 30, 40}$
\end{VerbatimOut}
\UnExemple{}
@@ -441,10 +520,10 @@ Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'a
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=array, prefix=,
- argopt=[c][{l c r}\}}
-\(\matrice{1, 2, 30, 40}\) \qquad
-\(\matid()<envir=array,
- argopt={[c][{@{}l c r@{}}\}}>{3}\)
+ argopt=[c][{l r}\}}
+$\matrice{1, 2, 30, 40}$ \quad
+$\matid()<envir=array,
+ argopt={[c][{@{}c c c@{}}\}}>{3}$
\end{VerbatimOut}
\UnExemple{}
\simplesmatricessetup{out-of-box}
@@ -453,37 +532,44 @@ Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'a
\label{sec:nicematrix}
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{*{2}{c}|cc}}>{1, 2, 3, 4, 5, 6,
-7, 8, 9, 10, 11, 12, 13, 14, 15, 16}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={ {cc||rl} }>{1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}$
\end{VerbatimOut}
- %| emacs
\UnExemple{}
Dans ce cas il faut doubler les accolades entourant les descripteurs de colonnes
-de l'environnement \texttt{array} car \LaTeX{} retire un niveau d'accolades en
+de l'environnement \envir{array} car \LaTeX{} retire un niveau d'accolades en
valuant la clé.
+\medskip{}
+
Dans l'exemple suivant, pour la deuxième matrice, il n'est pas nécessaire
-d'entourer la valeur de \texttt{argopt} d'une paire d'accolades --- même si ça
-n'est pas dangereux --- car la présence de \texttt{[margin]} empêche \LaTeX{} de
-supprimer une paire d'accolades.
+d'entourer la valeur de \keyname{argopt} d'une paire d'accolades (voir
+ligne~\ref{sansaccol}) --- même si ça n'est pas dangereux (voir
+ligne~\ref{avecaccol}) --- car la présence de \texttt{[margin]} empêche \LaTeX{}
+de supprimer une paire d'accolades.
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
+$\matrice<prefix=b, envir=NiceArray,
argopt={{l c r}}>{1, 2, 3, 40, 50, 60,
- 700, 800, 900}\)
+ 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={l c r}[margin]>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={l c r}[margin]>{1, 2, 3, %*@\label{sansaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{l c r}[margin]}>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={{l c r}[margin]}>{1, 2, 3, %*@\label{avecaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\end{VerbatimOut}
\UnExemple{}
+ \section{Remerciements}
+Mille mercis à Denis \textsc{Bitouzé} pour ses remarques à propos de l'état
+initial de cette documentation. C'est grâce à lui que quelques couleurs sont
+apparues sur ces pages.
+
\vspace{\stretch{2}}
\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth}
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf
index d9e8561020c..33fe6372003 100644
--- a/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf
+++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx b/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx
index d62833e3a7c..12e98ed3a9e 100644
--- a/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx
+++ b/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx
@@ -13,7 +13,7 @@
%
%<*driver|package|doc>
\RequirePackage{expl3}[2020/01/12]
-\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $
+\GetIdInfo$Id: simples-matrices.dtx 1.0.1 2022-07-03 TdS $
{}
%</driver|package|doc>
%<*driver>
@@ -26,7 +26,7 @@
\usepackage{xspace}
\usepackage{csquotes}
-\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} }
+\providecommand\darg[3]{\texttt{#1}\meta{#2}\texttt{#3}}
\begin{document}
\DocInput{\jobname.dtx}
@@ -52,8 +52,8 @@
%
% \maketitle
%
-% \changes{v1.0}{2022/06/08}{First public
-% version.\foreignlanguage{french}{\emph{Première version publique.}}}
+% \changes{v1.0}{2022/06/08}{First public version.\foreignlanguage{french}{\emph{Première version publique.}}}
+% \changes{v1.0.1}{2022/07/03}{Some improvements in the documentation.\foreignlanguage{french}{\emph{Quelques améliorations dans la documentation.}}}
%
% \thispagestyle{empty}
%
@@ -156,22 +156,69 @@
\usepackage{xspace}
\usepackage{csquotes}
\usepackage{fancyvrb,fancyvrb-ex}
+\usepackage{listings}
\usepackage{mathtools}
\usepackage{delarray}
\usepackage{nicematrix}
\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} }
+% \colorlet{option}{olive!75!black}
+% Couleur des mots-clés de niveau 1
+\colorlet{keyword20}{cyan} %!75!black
+% Couleur des mots-clés de niveau 2
+\colorlet{keyword30}{teal}
+\colorlet{keycolor}{green!50!black}
+\colorlet{dollarcolor}{violet}
+\colorlet{cmdmuette}{blue}
+\colorlet{cmdcausante}{red}
+
+\lstset{frame=single,%
+ language=[LaTeX]{TeX},%
+ showspaces=false,%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ basicstyle=\ttfamily\bfseries,%
+ alsoletter={*-$},%
+ texcsstyle=*[2]\color{cmdcausante},%
+ texcs=[2]{matrice,declarermatrice*,lamatrice,matid,matnulle,MatriceInterieur,LaMatriceInterieur},%
+ texcsstyle=*[3]\color{cmdmuette},%
+ texcs=[3]{declarermatrice,simplesmatricessetup},%
+ keywordstyle=[20]\color{keyword20},%
+ keywordstyle=[30]\color{keyword30},%
+ keywordstyle=[40]\color{keycolor},%
+ keywordstyle=[50]\color{dollarcolor},%
+ keywords=[20]{tabular,array,matrix,matrix*,NiceArray},%
+ keywords=[30]{x,S,T,I,J,C,O,D},%
+ keywords=[40]{out-of-box,prefix,envir,typeord,argopt},%
+ keywords=[50]{$},%
+ escapeinside={\%*@}{@*)}%
+}
+
+\newcommand{\MacroPres}[2]{\textcolor{#1}{\textbf{\cs{#2}}}}
+\newcommand{\csmute}{\MacroPres{cmdmuette}}
+\newcommand{\csprint}{\MacroPres{cmdcausante}}
+\newcommand{\ObjetPres}[2]{\textcolor{#1}{\textbf{\texttt{#2}}}}
+\newcommand{\keyname}{\ObjetPres{keycolor}}
+\newcommand{\envir}{\ObjetPres{keyword20}}
+\newcommand{\TypeMat}{\ObjetPres{keyword30}}
+
\newcommand{\UnExemple}{%
\par \medskip \par \noindent
- \begin{minipage}[c]{0.58\linewidth}
- \VerbatimInput[gobble=0, frame=single]{code00.tex}
+ \begin{minipage}[c]{0.66\linewidth}
+ \lstinputlisting[gobble=0, frame=single, numbers=left, numberstyle={\small}]{code00.tex}
\end{minipage}
\hspace{\stretch{1}}
- \begin{minipage}[c]{0.38\linewidth}
+ \begin{minipage}[c]{0.32\linewidth}
+ \small
\input{code00}
\end{minipage}
- \par \medskip}
+ \par \medbreak}
+
+\newcommand*{\vliste}{liste\xspace}
+
+%<FRA> \newcommand{\VoirEx}[1]{(voir exemple en page~\pageref{#1})}
+%<ENG> \newcommand{\VoirEx}[1]{(see example on page~\pageref{#1})}
\begin{document}
%<*FRA>
@@ -266,7 +313,7 @@ ensuring a correct presentation of matrices.
\textbf{Beware}: you have to provide the suitable mathematical environment to
use the macros which print a matrix. Only the unstarred version of
-\cs{declarermatrice} may be used outside math-mode.
+\csmute{declarermatrice} may be used outside math-mode.
%</ENG>
%<*FRA>
@@ -276,52 +323,102 @@ définir ses macros et gérer les clés d'option. Elle charge également
\textbf{Attention}: vous devez fournir l'environnement mathématique adéquat pour
utiliser les macros qui écrivent les matrices. Seule la version non-étoilée de
-\cs{declarermatrice} peut être utilisée en dehors du mode mathématique.
+\csmute{declarermatrice} peut être utilisée en dehors du mode mathématique.
%</FRA>
%<*ENG>
\section{The Macros}
\label{sec:macros}
-\pkg{simples-matrices} offers six main document macros.
+\pkg{simples-matrices} offers nine document macros.
%</ENG>
%<*FRA>
\section{Les macros}
\label{sec:macros}
-L'extension \pkg{simples-matrices} offre six macros de document.
+L'extension \pkg{simples-matrices} offre neuf macros de document.
-%</FRA>
+%</FRA>
+
+%<*ENG>
+In the main text (syntaxes and examples), the name of a macro of this package is
+printed in red if the macro produces some text in the document, otherwise it is
+printed in blue.
+%</ENG>
+%<*FRA>
+Dans le texte principal (syntaxes et exemples), le nom d'une macro de cette
+extension est écrit en rouge si la macro produit du texte dans le document,
+autrement il est écrit en bleu.
+%</FRA>
%<*ENG>
\subsection{Main Macros}
\label{sec:main}
-This package has five main document macros viz.
+The six main document macros are the following:
+%</ENG>
+%<*FRA>
+\subsection{Macros principales}
+\label{sec:principales}
+
+Les six macros principales sont les suivantes:
+%</FRA>
+%<*ENG>
+
\begin{function}{\matrice}
\begin{syntax}
- \cs{matrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{type}\marg{clist of coefficients}
+ \csprint{matrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{type}\marg{clist of coefficients}
\end{syntax}
- where \meta{prefix} has the same meaning as the key \texttt{prefix};
- \meta{clist of key-value pairs}, optional and void by default, can be used to
- redefined the matrix-like environment; \meta{type} is a string of character
+ where \meta{prefix} has the same meaning as the key \keyname{prefix} (see page~\pageref{key-prefix});
+ \meta{clist of key-value pairs} ---optional and void by default--- can be used to
+ redefined the \envir{matrix}-like environment; \meta{type} is a string of character
the usage of which is explained later ---see \ref{sec:matrix-type}--- and
\meta{clist of coefficients} is a clist of the coefficients of the matrix
given by row order.
The French \emph{matrice} means ``matrix''.
+\end{function}
+%</ENG>
+%<*FRA>
+\begin{function}{\matrice}
+ \begin{syntax}
+ \csprint{matrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{type}\marg{\vliste des coefficients}
+ \end{syntax}
+ où \meta{prefixe} a la même fonction que la clé \keyname{prefix} (voir page~\pageref{key-prefix});
+ \meta{\vliste de paires de clé-valeur} --- optionnel et vide par défaut ---
+ peut être utilisé pour redéfinir l'environnement de type \envir{matrix};
+ \meta{type} est une chaine de caractère dont l'utilisation sera expliquée
+ ci-dessous --- voir~\ref{sec:matrix-type} --- et \meta{\vliste des
+ coefficients} est la \vliste des coefficients de la matrice donnés ligne par
+ ligne.
+\end{function}
+%</FRA>
- With \verb+\(\matrice{1, 2, 3, 4}\)+ we obtain \(\matrice{1, 2, 3, 4}\).
+%<ENG> With
+%<FRA> Avec
+\lstinline+$\matrice{1, 2, 3, 4}$+
+%<ENG> we obtain
+%<FRA> on obtient
+\(\matrice{1, 2, 3, 4}\).
- With \verb+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\)+
- we obtain \(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
-
-\end{function}
+%<ENG> With
+%<FRA> Avec
+\lstinline+$\matrice(b)[3]{1, 2, 3, 4, 5, 6}$+
+%<ENG> we obtain
+%<FRA> on obtient
+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
+%<*ENG>
\begin{function}{\declarermatrice}
\begin{syntax}
- \cs{declarermatrice*}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
+ \csmute{declarermatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
+ \end{syntax}
+\end{function}
+
+\begin{function}{\declarermatrice*}
+ \begin{syntax}
+ \csprint{declarermatrice*}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}\oarg{type}\marg{clist of coefficients}
\end{syntax}
where \meta{matrix name} is the name of the matrix to be used afterwards. The
other arguments, optional or mandatory, have the same meaning than above. The
@@ -332,112 +429,108 @@ This package has five main document macros viz.
the same function. \textbf{No check is done} to ensure that one is not
redefining a previously defined matrix.
+ With the macro \csmute{declarermatrice}, the first two optional arguments have
+ no effect for they are not take into account to define the matrix \VoirEx{sec:declar}.
+
The French \emph{déclarer une matrice} means ``declare a matrix''.
-
\end{function}
+%</ENG>
-\begin{function}{\lamatrice}
+%<*FRA>
+\begin{function}{\declarermatrice}
\begin{syntax}
- \cs{lamatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}
+ \csmute{declarermatrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{\vliste des coefficients}
\end{syntax}
- prints the previously defined matrix the name of which is given by
- \meta{matrix name}. The two optional arguments have the meaning as before.
-
- The French \emph{la matrice} means ``the matrix''.
\end{function}
-\begin{function}{\MatriceInterieur}
+
+\begin{function}{\declarermatrice*}
\begin{syntax}
- \cs{MatriceInterieur}
+ \csprint{declarermatrice*}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{\vliste des coefficients}
\end{syntax}
- gives the inner part of the last printed ---via \cs{matrice}--- or defined
- ---via \cs{declarermatrice}--- matrix. It can be used inside an
- \env{array}-like environment.
+ où \meta{nom} est le nom de la matrice pour utilisation future. Les autres
+ arguments, optionnels ou obligatoires, ont la même signification que
+ ci-dessus. La version étoilée définit et écrit la matrice. La version
+ non-étoilée ne fait que la définir.
- The French should be \emph{\foreignlanguage{french}{intérieur de la matrice}}
- which means ``inside of the matrix''. What is implicit is the adjective
- ``anonymous''. For named matrix see below.
+ La définition est globale mais on peut redéfinir une matrice nommée existante
+ avec la même fonction. \textbf{Aucun contrôle} n'est exercé pour s'assurer que
+ l'on n'est pas en train de redéfinir une matrice nommée précédemment définie.
+
+ Avec la macro \csmute{declarermatrice}, les deux premiers arguments optionnels
+ n'ont aucun effet car la définition de la matrice n'en tient pas compte \VoirEx{sec:declar}.
\end{function}
+%</FRA>
-\begin{function}{\LaMatriceInterieur}
+%<*ENG>
+\begin{function}{\lamatrice}
\begin{syntax}
- \cs{LaMatriceInterieur}\marg{matrix name}
+ \csprint{lamatrice}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\marg{matrix name}
\end{syntax}
- gives the inner part of the matrix with name \meta{matrix name}. It can be
- used inside an \env{array}-like environment.
+ prints the previously defined matrix the name of which is given by
+ \meta{matrix name}. The two optional arguments have the meaning as before \VoirEx{sec:declar}.
- Again false French but the parallel with \cs{lamatrice} should suggest that,
- now, the matrix has a name and we have to use it.
+ The French \emph{la matrice} means ``the matrix''.
\end{function}
-
-See examples on page~\pageref{sec:examples}.
%</ENG>
%<*FRA>
-\subsection{Macros principales}
-\label{sec:principales}
-
-Les cinq macros principales de document sont les suivantes:
-
-\begin{function}{\matrice}
+\begin{function}{\lamatrice}
\begin{syntax}
- \cs{matrice}\parg{prefixe}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{type}\marg{vliste des coefficients}
+ \csprint{lamatrice}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\marg{nom}
\end{syntax}
- où \meta{prefixe} a la même fonction que la clé \texttt{prefix}; \meta{vliste
- de paires de clé-valeur}, optionnel et vide par défaut, peut être utiliser
- pour redéfinit l'environnement de type \texttt{matrix};
- \meta{type} est une chaine de caractère dont l'utilisation sera expliquée
- ci-dessous --- voir~\ref{sec:matrix-type} --- et \meta{vliste des
- coefficients} est la vliste des coefficients de la matrice donnés ligne par
- ligne.
-
- Avec \verb+\(\matrice{1, 2, 3, 4}\)+ on obtient \(\matrice{1, 2, 3, 4}\).
-
- Avec \verb+\(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\)+
- on obtient \(\matrice(b)[3]{1, 2, 3, 4, 5, 6}\).
-
+ écrit la matrice nommée de nom \meta{nom}.
+ Les deux arguments optionnels ont la même signification que ci-dessus \VoirEx{sec:declar}.
\end{function}
+%</FRA>
-\begin{function}{\declarermatrice}
+%<*ENG>
+\begin{function}{\MatriceInterieur}
\begin{syntax}
- \cs{declarermatrice*}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\marg{nom}\oarg{type}\marg{vliste des coefficients}
+ \csprint{MatriceInterieur}
\end{syntax}
- où \meta{nom} est le nom de la matrice pour utilisation future. Les autres
- arguments, optionnels ou obligatoires, ont la même signification que
- ci-dessus. La version étoilée définit et écrit la matrice. La version
- non-étoilée ne fait que la définir.
+ gives the inner part of the last printed ---via \csprint{matrice} or
+ \csprint{declarermatrice*}--- or defined ---via \csmute{declarermatrice}---
+ matrix. It can be used inside an \envir{array}-like environment
+ \VoirEx{sec:matint}.
- La définition est global mais on peut redéfinir une matrice nommée existante
- avec la même fonction. \textbf{Aucun contrôle} n'est exercé pour s'assurer que
- l'on n'est pas en train de redéfinir une matrice nommée précédemment définie.
+ The French should be \emph{\foreignlanguage{french}{intérieur de la matrice}}
+ which means ``inside of the matrix''. What is implicit is the adjective
+ ``anonymous''. For named matrix see below.
\end{function}
-
-\begin{function}{\lamatrice}
+%</ENG>
+%<*FRA>
+\begin{function}{\MatriceInterieur}
\begin{syntax}
- \cs{lamatrice}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\marg{matrix name}
+ \csprint{MatriceInterieur}
\end{syntax}
- écrit la matrice nommée de nom \meta{nom}.
- Les deux arguments optionnels ont la même signification que ci-dessus.
+ donne l'intérieur de la dernière matrice écrite --- via \csprint{matrice} ou
+ \csprint{declarermatrice*} --- ou définie --- via \csmute{declarermatrice}. On
+ peut l'utiliser dans un environnement du genre \envir{array} \VoirEx{sec:matint}.
\end{function}
+%</FRA>
-\begin{function}{\MatriceInterieur}
+%<*ENG>
+\begin{function}{\LaMatriceInterieur}
\begin{syntax}
- \cs{MatriceInterieur}
+ \csprint{LaMatriceInterieur}\marg{matrix name}
\end{syntax}
- donne l'intérieur de la dernière matrice écrite --- via \cs{matrice} --- ou
- définie --- via \cs{declarermatrice}. On peut l'utiliser dans un environnement
- du genre \env{array}.
+ gives the inner part of the matrix with name \meta{matrix name}. It can be
+ used inside an \envir{array}-like environment \VoirEx{sec:matint}.
+
+ Again false French but the parallel with \csprint{lamatrice} should suggest that,
+ now, the matrix has a name and we have to use it.
\end{function}
+%</ENG>
+%<*FRA>
\begin{function}{\LaMatriceInterieur}
\begin{syntax}
- \cs{LaMatriceInterieur}\marg{nom}
+ \csprint{LaMatriceInterieur}\marg{nom}
\end{syntax}
donne l'intérieur de la matrice de nom \meta{nom}. On peut l'utiliser dans un
- environnement du genre \env{array}.
+ environnement du genre \envir{array} \VoirEx{sec:matint}.
\end{function}
-
-Voir les exemples en page~\pageref{sec:exemples}.
%</FRA>
%<*ENG>
@@ -447,7 +540,7 @@ Voir les exemples en page~\pageref{sec:exemples}.
One can change the values of the keys of \pkg{simples-matrices} with
\begin{function}{\simplesmatricessetup}
\begin{syntax}
- \cs{simplesmatricessetup}\marg{clist of key-value pairs}
+ \csmute{simplesmatricessetup}\marg{clist of key-value pairs}
\end{syntax}
where \meta{clist of key-value pairs} is the usual clist of key-value pairs
setting one or many of the three keys of the package as presented on
@@ -456,7 +549,6 @@ One can change the values of the keys of \pkg{simples-matrices} with
To stick to established convention the name of this macro is created from the
name of the package (reduced to \TeX{} letters) followed by \emph{setup}. I
apologize for that strange linguistic mixture.
-
\end{function}
%</ENG>
%<*FRA>
@@ -466,9 +558,9 @@ One can change the values of the keys of \pkg{simples-matrices} with
On peut changer les valeurs des clés de \pkg{simples-matrices} avec
\begin{function}{\simplesmatricessetup}
\begin{syntax}
- \cs{simplesmatricessetup}\marg{vliste de paires de clé-valeur}
+ \csmute{simplesmatricessetup}\marg{\vliste de paires de clé-valeur}
\end{syntax}
- où \meta{vliste de paires de clé-valeur} est l'habituelle vliste de paires de
+ où \meta{\vliste de paires de clé-valeur} est l'habituelle \vliste de paires de
clé-valeur valuant une ou plusieurs des trois clés de cette extension
telles que présentées ci-dessous en page~\pageref{sec:clefs}.
@@ -476,18 +568,27 @@ On peut changer les valeurs des clés de \pkg{simples-matrices} avec
consiste en le nom de l'extension --- réduite à ces lettres \TeX{}iennes ---
suivi de l'anglais \emph{setup}. Je demande pardon pour cette étrange mixture
linguistique.
-
\end{function}
%</FRA>
+
%<*ENG>
+\newpage{}
\subsection{Shortcuts}
\label{sec:shortcuts}
There are also two \emph{shortcut} macros:
+%</ENG>
+%<*FRA>
+\subsection{Raccourcis}
+\label{sec:shortcuts}
+
+L'extension propose deux macros \emph{raccourcis}:
+%</FRA>
+%<*ENG>
\begin{function}{\matid}
\begin{syntax}
- \cs{matid}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
+ \csprint{matid}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
\end{syntax}
which write the identity matrix --- by default --- with \meta{number of
columns} columns. If \meta{coefficient} is given, we obtain a diagonal
@@ -496,13 +597,29 @@ There are also two \emph{shortcut} macros:
The two first optional arguments have the same functionality as in the
preceding macros.
- \emph{matid} stands for ``\foreignlanguage{French}{matrice identité}'' which means
+ \emph{matid} stands for \emph{\foreignlanguage{French}{matrice identité}} which means
``identity matrix''.
\end{function}
+%</ENG>
+%<*FRA>
+\begin{function}{\matid}
+ \begin{syntax}
+ \csprint{matid}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
+ \end{syntax}
+ qui imprime la matrice identité --- par défaut --- avec
+ \meta{nombre de colonnes} colonnes.
+ Si \meta{coefficient} est fourni, on obtient une matrice diagonale
+ dont tous les coefficients non-nuls sont égaux à \meta{coefficient}.
+
+ Les deux premiers arguments optionnels ont la même fonction que dans les
+ macros précédentes.
+\end{function}
+%</FRA>
+%<*ENG>
\begin{function}{\matnulle}
\begin{syntax}
- \cs{matnulle}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
+ \csprint{matnulle}\parg{prefix}\darg{\string<}{clist of key-value pairs}{\string>}\oarg{coefficient}\marg{number of columns}
\end{syntax}
writes the null matrix with \meta{number of columns} columns ---by default---
or a matrix containing with \meta{number of columns} columns and all
@@ -511,32 +628,14 @@ There are also two \emph{shortcut} macros:
The two first optional arguments have the same functionality as in the
preceding macros.
- \emph{matnulle} stands for ``\foreignlanguage{French}{matrice nulle}'' which means
+ \emph{matnulle} stands for \emph{\foreignlanguage{French}{matrice nulle}} which means
``null matrix''.
\end{function}
%</ENG>
%<*FRA>
-\subsection{Raccourcis}
-\label{sec:shortcuts}
-
-L'extension propose deux macros \emph{raccourcis}:
-
-\begin{function}{\matid}
- \begin{syntax}
- \cs{matid}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
- \end{syntax}
- qui imprime la matrice identité --- par défaut --- avec
- \meta{nombre de colonnes} colonnes.
- Si \meta{coefficient} est fourni, on obtient une matrice diagonale
- dont tous les coefficients non-nuls sont égaux à \meta{coefficient}.
-
- Les deux premiers arguments optionnels ont la même fonction que dans les
- macros précédentes.
-\end{function}
-
\begin{function}{\matnulle}
\begin{syntax}
- \cs{matnulle}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
+ \csprint{matnulle}\parg{prefixe}\darg{\string<}{\vliste de paires de clé-valeur}{\string>}\oarg{coefficient}\marg{nombre de colonnes}
\end{syntax}
imprime la matrice nulle \meta{nombre de colonnes} colonnes --- par défaut ---
ou une matrice de \meta{nombre de colonnes} colonnes dont tous les
@@ -548,9 +647,9 @@ L'extension propose deux macros \emph{raccourcis}:
%</FRA>
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matid{3}\)\qquad \(\matid[9]{3}\)
+$\matid{3}$\qquad $\matid[9]{3}$
\par \medskip
-\(\matnulle{3}\)\qquad \(\matnulle[2]{3}\)
+$\matnulle{3}$\qquad $\matnulle[2]{3}$
\end{VerbatimOut}
\UnExemple{}
@@ -559,37 +658,33 @@ L'extension propose deux macros \emph{raccourcis}:
\label{sec:keys}
The package uses key-value options. There are four keys:
-\texttt{envir},
-\texttt{prefix},
-\texttt{typeord}
+\keyname{envir},
+\keyname{prefix},
+\keyname{typeord}
and
-\texttt{argopt}.
+\keyname{argopt}.
\begin{description}
-\item[\texttt{envir} (\textit{\texttt{string}})] the main and last part of the
+\item[\keyname{envir} (\textit{\texttt{string}})] the main and last part of the
name of the environment used to print the matrix. Its initial value is
- \texttt{matrix}.
+ \texttt{matrix}.\label{key-envir}
-\item[\texttt{prefix} (\textit{\texttt{string}})] a string which is prefixed to
+\item[\keyname{prefix} (\textit{\texttt{string}})] a string which is prefixed to
\texttt{envir} to obtain the complete name of the environment. Its initial
value is \texttt{p}. Therefore, by default, the environment used to print the
- matrix is \texttt{bmatrix} as defined by \pkg{amsmath}.
+ matrix is \envir{pmatrix} as defined by \pkg{amsmath}.\label{key-prefix}
-\item[\texttt{typeord} (\textit{\texttt{string}})] a string which is the
+\item[\keyname{typeord} (\textit{\texttt{string}})] a string which is the
ordinary ---i.~e. default--- value of the \meta{type} optional argument. The
- initial value of the key is \texttt{C}.
+ initial value of the key is \TypeMat{C}.\label{key-typeord}
-\item[\texttt{argopt} (\textit{\texttt{token list}})] for French
+\item[\keyname{argopt} (\textit{\texttt{token list}})] for French
\foreignlanguage{french}{\emph{argument optionnel}} (optional argument). That
- key is initially void. See page~\pageref{sec:delarray} for usage.
+ key is initially void. See page~\pageref{sec:delarray} for usage.\label{key-argopt}
\end{description}
Moreover, an other key is available which is not an option of the package:
-\texttt{out-of-box} which is a metakey.
-
-With |\simplesmatricessetup{out-of-box}| we obtain the same effect as with
-|\simplesmatricessetup{prefix=p,|\BOP| envir=matrix,|%
- \BOP| argopt=,|\BOP| typeord=C}|.
+\keyname{out-of-box} which is a metakey.
%</ENG>
%<*FRA>
@@ -597,36 +692,43 @@ With |\simplesmatricessetup{out-of-box}| we obtain the same effect as with
\label{sec:clefs}
L'extension utilise le système de clefs-valeurs pour ses options. Elle possède
-quatre clés: \texttt{envir}, \texttt{prefix}, \texttt{typeord} et \texttt{argopt}.
+quatre clés: \keyname{envir}, \keyname{prefix}, \keyname{typeord} et \keyname{argopt}.
\begin{description}
-\item[\texttt{envir} (\textit{\texttt{chaine de caractères}})] la partie finale
- du nom de l'environnement utilisé pour imprimer la matrice. Sa valeur initiale
- est \texttt{matrix}.
+\item[\keyname{envir} (\textit{\texttt{chaine de caractères}})] est la partie
+ finale du nom de l'environnement utilisé pour imprimer la matrice. Sa valeur
+ initiale est \texttt{matrix}.\label{key-envir}
-\item[\texttt{prefix} (\textit{\texttt{chaine de caractères}})], caractères
- placés devant \texttt{envir} pour fournir le nom complet de l'environnement
- utilisé pour imprimer la matrice. Sa valeur initiale est \texttt{p}. Cela fait
- que l'environnement par défaut est \texttt{pmatrix} fourni par \pkg{amsmath}.
+\item[\keyname{prefix} (\textit{\texttt{chaine de caractères}})] contient les
+ caractères placés devant \texttt{envir} pour fournir le nom complet de
+ l'environnement utilisé pour imprimer la matrice. Sa valeur initiale est
+ \texttt{p}. Cela fait que l'environnement par défaut est \envir{pmatrix}
+ fourni par \pkg{amsmath}.\label{key-prefix}
-\item[\texttt{typeord} (\textit{\texttt{chaine de caractères}})] définit la
+\item[\keyname{typeord} (\textit{\texttt{chaine de caractères}})] définit la
valeur ordinaire --- c.-à-d. par défaut --- de l'argument optionnel
- \meta{type}. La valeur initiale de la clé est \texttt{C}.
+ \meta{type}. La valeur initiale de la clé est \TypeMat{C}.\label{key-typeord}
-\item[\texttt{argopt} (\textit{\texttt{liste de lexèmes}}, anglais:
- \foreignlanguage{english}{token list})]. Cette clé est vide par défaut. Voir
- page~\pageref{sec:delarray} pour son utilisation.
+\item[\keyname{argopt} (\textit{\texttt{liste de lexèmes}}, anglais:
+ \foreignlanguage{english}{token list})] est vide par défaut. Voir
+ page~\pageref{sec:delarray} pour son utilisation.\label{key-argopt}
\end{description}
De plus, une clé supplémentaire existe qui est une métaclé:
-\texttt{out-of-box}.
+\keyname{out-of-box}.
+%</FRA>
-Avec |\simplesmatricessetup{out-of-box}| on obtient le même effet qu'avec
-|\simplesmatricessetup{prefix=p,|\BOP| envir=matrix,|%
- \BOP| argopt=,|\BOP| typeord=C}|.
-%</FRA>
+
+%<ENG> With
+%<FRA> Avec
+\lstinline|\simplesmatricessetup{out-of-box}|
+%<ENG> we obtain the same effect as with
+%<FRA> on obtient le même effet qu'avec
+\lstinline|\simplesmatricessetup{prefix=p,|\BOP\lstinline| envir=matrix,|%
+ \BOP\lstinline| argopt=,|\BOP\lstinline| typeord=C}|.
%<*ENG>
+\newpage{}
\section{Examples}
\label{sec:examples}
\subsection{Without any special package}
@@ -651,112 +753,131 @@ C'est-à-dire en chargeant uniquement \pkg{amsmath} comme le fait cette extensio
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{A}{1, 2, 300, 400}
-\(\declarermatrice*{B}{a, b, c, d}\)
-\qquad \(\lamatrice{A}\) \par \bigskip
-\(\lamatrice(V){A}\)
-\qquad \(\lamatrice(b){B}\)
+$\declarermatrice*{B}{a, b, c, d}$
+\quad $\lamatrice{A}$ \par \bigskip
+$\lamatrice(V){A}$
+\quad $\lamatrice(b){B}$
\end{VerbatimOut}
\UnExemple{}
%<*ENG>
+On the first line of this example, the matrix~\texttt{A} is defined but not
+printed. Then, on the second line, the matrix~\texttt{B} is defined and
+printed. We can afterwards call the~\texttt{A} or \texttt{B}-matrix with
+\csprint{lamatrice}.
+%</ENG>
+%<*FRA>
+Sur la première ligne de l'exemple, la matrice~\texttt{A} est définie mais pas
+écrite. Ensuite, sur la seconde ligne, la matrice~\texttt{B} est définie et
+écrite. Nous pouvons ensuite appeler les matrices~\texttt{A} ou~\texttt{B} à
+l'aide de \csprint{lamatrice}.
+%</FRA>
+
+%<*ENG>
\subsubsection{The ``\texttt{type}'' argument}
\label{sec:matrix-type}
-The last but one --- optional --- argument of macros \cs{matrice} and
-\cs{declarermatrice} defaults to \texttt{O}. In that case the value of the key
-\texttt{typeord} is used to determine the \emph{type} of the matrix input,
+The last but one --- optional --- argument of macros \csprint{matrice},
+\csmute{declarermatrice} and \csprint{declarermatrice*}
+defaults to \TypeMat{O}. In that case the value of the key
+\keyname{typeord} is used to determine the \emph{type} of the matrix input,
see~\pageref{sec:matrix-type-key}.
Its value can be a number, in which case it is the number of columns, or a
-string ---presently a one letter string--- among: \texttt{C}, \texttt{D},
-\texttt{I}, \texttt{J}, \texttt{S}, \texttt{T} and \texttt{x}.
+string ---presently a one letter string--- among: \TypeMat{C}, \TypeMat{D},
+\TypeMat{I}, \TypeMat{J}, \TypeMat{S}, \TypeMat{T} and \TypeMat{x}.
%</ENG>
%<*FRA>
\subsubsection{L'argument \og \texttt{type}\fg}
\label{sec:matrix-type}
-L'avant dernier argument --- optionnel --- des macros \cs{matrice} et
-\cs{declarermatrice} vaut par défaut \texttt{O}. Dans ce cas, c'est la valeur de
-la clé \texttt{typeord} qui est utilisée pour déterminer le \emph{type} des
-données de la matrice, voir~\pageref{sec:matrix-type-key}.
+L'avant dernier argument --- optionnel --- des macros \csprint{matrice},
+\csmute{declarermatrice} et \csprint{declarermatrice*} vaut par défaut
+\TypeMat{O}. Dans ce cas, c'est la valeur de la clé \keyname{typeord} qui est
+utilisée pour déterminer le \emph{type} des données de la matrice,
+voir~\pageref{sec:matrix-type-key}.
Sinon, il peut prendre une valeur numérique qui est le nombre de colonnes de la
matrice ou encore une chaine de caractères --- à ce jour, une seule lettre ---
-parmi: \texttt{C}, \texttt{D}, \texttt{I}, \texttt{J}, \texttt{S}, \texttt{T} et
-\texttt{x}.
+parmi: \TypeMat{C}, \TypeMat{D}, \TypeMat{I}, \TypeMat{J}, \TypeMat{S}, \TypeMat{T} et
+\TypeMat{x}.
%</FRA>
\medskip{}
-%<FRA> \texttt{C} signifie matrice \textbf{carrée}.
-%<ENG> \texttt{C} means square matrix for French ``\texttt{C}arré'' means ``square''.
+%<FRA> \TypeMat{C} signifie matrice \textbf{carrée}.
+%<ENG> \TypeMat{C} means square matrix for French ``\texttt{C}arré'' means ``square''.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
-\matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
-\qquad
-\matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \matrice{1, 2, 3, 4, 5, 6, 7, 8, 9}
+ \quad
+ \matrice[C]{1, 2, 3, 4, 5, 6, 7, 8, 9}
\]
\end{VerbatimOut}
\UnExemple{}
-%<FRA> \texttt{D} signifie matrice \textbf{diagonale}.
-%<ENG> \texttt{D} means \textbf{diagonal} matrix.
+%<FRA> \TypeMat{D} signifie matrice \textbf{diagonale}.
+%<ENG> \TypeMat{D} means \textbf{diagonal} matrix.
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice{1, 2, 3, 4}\qquad
- \matrice[D]{1, 2, 3, 4}
+ \matrice{1, 2, 3, 4}\quad
+ \matrice[D]{1, 2, 3, 4}
\]
\end{VerbatimOut}
\UnExemple{}
%<*FRA>
-\texttt{I} signifie matrice triangulaire \textbf{inférieure}; \texttt{J}
+\TypeMat{I} signifie matrice triangulaire \textbf{inférieure}; \TypeMat{J}
signifie matrice triangulaire inférieure avec des zéros sur la diagonale.
%</FRA>
%<*ENG>
-\texttt{I} means lower triangular matrix. French ``\texttt{I}nférieur'' means
-``lower''; \texttt{J} means lower triangular matrix with zeros on the diagonal.
+\TypeMat{I} means lower triangular matrix. French ``\texttt{I}nférieur'' means
+``lower''; \TypeMat{J} means lower triangular matrix with zeros on the diagonal.
%</ENG>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[I]{1, 2, 3}\qquad
- \matrice[J]{1, 2, 3}
+ \matrice[I]{1, 2, 3}\quad
+ \matrice[J]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
%<*FRA>
-\texttt{S} signifie matrice triangulaire \textbf{supérieure}; \texttt{T}
+\TypeMat{S} signifie matrice triangulaire \textbf{supérieure}; \TypeMat{T}
signifie matrice triangulaire supérieure avec des zéros sur la diagonale.
%</FRA>
%<*ENG>
-\texttt{S} means upper triangular matrix. French ``\texttt{S}upérieur'' means
-``upper''; \texttt{T} means upper triangular matrix with zeros on the diagonal.
+\TypeMat{S} means upper triangular matrix. French ``\texttt{S}upérieur'' means
+``upper''; \TypeMat{T} means upper triangular matrix with zeros on the diagonal.
%</ENG>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[S]{1, 2, 3}\qquad
- \matrice[T]{1, 2, 3}
+ \matrice[S]{1, 2, 3}\quad
+ \matrice[T]{1, 2, 3}
\]
\end{VerbatimOut}
\UnExemple{}
%<*FRA>
-\texttt{x} signifie \texttt{xcas}. Avec cette valeur, on peut copier-coller de
-\texttt{xcas} dans le document \LaTeX{}.
+\TypeMat{x} signifie \texttt{xcas}\footnote{Système de calcul formel libre
+ disponible ici:
+ \url{https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac_fr.html}}. Avec
+cette valeur, on peut copier-coller de \texttt{xcas} dans le document \LaTeX{}.
%</FRA>
%<*ENG>
-\texttt{x} means \texttt{xcas}. With that value, one can copy-paste from
+\TypeMat{x} means \texttt{xcas}\footnote{Free computer algebra system, see here:
+\url{https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac.html}.}. With that value, one can copy-paste from
\texttt{xcas} into the \LaTeX{} document.
%</ENG>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
+ \matrice[x]{[[7,1,3],[1,0,3],[5,1,2]]}
\]
\end{VerbatimOut}
\UnExemple{}
+\pagebreak[3]
%<*FRA>
Un nombre donne le nombre de colonnes de la matrice.
%</FRA>
@@ -765,37 +886,37 @@ A number sets up the number of columns of the matrix.
%</ENG>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\[
- \matrice[2]{1, 2, 3, 4, 5, 6}
- \quad
- \matrice[3]{1, 2, 3, 4, 5, 6}
+ \matrice[2]{1, 2, 3, 4, 5, 6}
+ \quad
+ \matrice[3]{1, 2, 3, 4, 5, 6}
\]
\end{VerbatimOut}
\UnExemple{}
%<*ENG>
-\subsubsection{Using the ``\texttt{typeord}'' Key}
+\subsubsection{Using the ``\keyname{typeord}'' Key}
\label{sec:matrix-type-key}
-In this document, the key \texttt{typeord} has the initial value of~\texttt{C}.
+In this document, the key \keyname{typeord} has the initial value of~\TypeMat{C}.
%</ENG>
%<*FRA>
-\subsubsection{Utilisation de la clé \og \texttt{typeord}\fg}
+\subsubsection{Utilisation de la clé \og \keyname{typeord}\fg}
\label{sec:matrix-type-key}
-Dans ce document, la clé \texttt{typeord} a comme valeur initiale~\texttt{C}.
+Dans ce document, la clé \keyname{typeord} a comme valeur initiale~\TypeMat{C}.
%</FRA>
\medskip{}
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{typeord=3}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=2}
-\(\matrice{1, 2, 3, 4, 5, 6}\)
+$\matrice{1, 2, 3, 4, 5, 6}$\quad
\simplesmatricessetup{typeord=C}
-\(\matrice{1, 2, 3, 4}\)
+$\matrice{1, 2, 3, 4}$
\end{VerbatimOut}
\UnExemple{}
@@ -812,39 +933,55 @@ wants to write a lesson about upper triangular matrices\dots{}
%</ENG>
%<*ENG>
-\subsubsection{Using the \cs{(La)MatriceInterieur} Macros}
+\subsubsection{Using the \csprint{(La)MatriceInterieur} Macros}
\label{sec:matint}
%</ENG>
%<*FRA>
-\subsubsection{Utilisation des macros \cs{(La)MatriceInterieur}}
+\subsubsection{Utilisation des macros \csprint{(La)MatriceInterieur}}
\label{sec:matint}
%</FRA>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\declarermatrice{B}[4]{
-\hline ein, zwei, drei, vier,
-\hline unos, dos, tres, cuatro,
-\hline unu, du, tri, kvar}
-\declarermatrice{A}[3]{one, two, three,
-un, deux, trois, uno, due, tre}
+ \hline ein, zwei, drei, vier,
+ \hline unos, dos, tres, cuatro,
+ \hline unu, du, tri, kvar}%
+\declarermatrice{A}[3]{
+ one, two, three,
+ un, deux, trois,
+ uno, due, tre}%
\begin{tabular}{*{3}{l}}
-\MatriceInterieur
+ \MatriceInterieur %*@\label{anonyme}@*)
\end{tabular}
-\par \medskip
+\par \bigskip *** \par \bigskip
+\begin{tabular}{*{3}{l}}
+ \LaMatriceInterieur{A} %*@\label{parnom}@*)
+\end{tabular}
+\par \bigskip
\begin{tabular}{|*{4}{l|}}
-\LaMatriceInterieur{B}\hline
+ \LaMatriceInterieur{B}\hline
\end{tabular}
\end{VerbatimOut}
\UnExemple{}
%<*ENG>
+On lines~\ref{anonyme} and~\ref{parnom} we use the same \emph{internal} because
+the \texttt{A}-matrix is the last defined before line~\ref{anonyme}.
+%</ENG>
+%<*FRA>
+En lignes~\ref{anonyme} et~\ref{parnom}, nous accédons aux mêmes
+\emph{entrailles} car la matrice~\texttt{A} est la dernière définie avant la
+ligne~\ref{anonyme}.
+%</FRA>
+
+%<*ENG>
\subsection{Changing the Look}
\label{sec:changelook}
We can load other packages which deal with matrices such as \pkg{mathtools},
\pkg{delarray} or \pkg{nicematrix}. In that case we can change the look of our
-matrices thanks to the option-key \texttt{envir}, \texttt{prefix} and
-\texttt{argopt}.
+matrices thanks to the option-key \keyname{envir}, \keyname{prefix} and
+\keyname{argopt}.
This document loads the three packages \pkg{mathtools}, \pkg{delarray} and
\pkg{nicematrix} in order to give the following examples.
@@ -857,8 +994,8 @@ This document loads the three packages \pkg{mathtools}, \pkg{delarray} and
On peut charger d'autres extensions qui permettent de présenter des matrices
comme \pkg{mathtools}, \pkg{delarray} ou \pkg{nicematrix}. Dans ce cas on peut
-changer l'aspect de nos matrices grace aux clés d'option \texttt{envir},
-\texttt{prefix} et \texttt{argopt}.
+changer l'aspect de nos matrices grace aux clés d'option \keyname{envir},
+\keyname{prefix} et \keyname{argopt}.
Ce document charge les trois extensions \pkg{mathtools}, \pkg{delarray} et
\pkg{nicematrix} pour présenter les exemples suivants.
@@ -870,29 +1007,27 @@ Ce document charge les trois extensions \pkg{mathtools}, \pkg{delarray} et
\label{sec:mathtools}
As already stated above there are two ways to use the option-keys: through
-\cs{simplesmatricesetup} or through the optional argument
-\darg{\string<}{clist of pairs of key-value}{\string>}. I show both.
-
+\csmute{simples}\BOP\ObjetPres{cmdmuette}{matrices}\BOP\ObjetPres{cmdmuette}{setup}
+or through the optional argument \darg{\string<}{clist of pairs of
+ key-value}{\string>}. I show both.
%</ENG>
%<*FRA>
\subsubsection{Avec \pkg{mathtools}}
\label{sec:mathtools}
Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'aide de
-\cs{simplesmatricesetup} ou en utilisant l'argument optionnel
-\darg{\string<}{vliste de paires de clé-valeur}{\string>}. Je montre les deux.
-
+\csmute{simplesmatricessetup} ou en utilisant l'argument optionnel
+\darg{\string<}{\vliste de paires de clé-valeur}{\string>}. Je montre les deux.
%</FRA>
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=matrix*, prefix=p, argopt=[r]}
-\(\matrice{1, 2, 30, 40}\) \qquad
+$\matrice{1, 2, 30, 40}$ \quad
\simplesmatricessetup{out-of-box}
-\(\matrice{1, 2, 30, 40}\)
+$\matrice{1, 2, 30, 40}$
\par \medskip
-\(\matrice(b)<envir=matrix*, argopt=[l]>
- {1, 2, 30, 40}\)
+$\matrice(b)<envir=matrix*,argopt=[l]> {1, 2, 30, 40}$
\end{VerbatimOut}
\UnExemple{}
@@ -910,10 +1045,10 @@ Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'a
\begin{VerbatimOut}[gobble=0]{code00.tex}
\simplesmatricessetup{
envir=array, prefix=,
- argopt=[c][{l c r}\}}
-\(\matrice{1, 2, 30, 40}\) \qquad
-\(\matid()<envir=array,
- argopt={[c][{@{}l c r@{}}\}}>{3}\)
+ argopt=[c][{l r}\}}
+$\matrice{1, 2, 30, 40}$ \quad
+$\matid()<envir=array,
+ argopt={[c][{@{}c c c@{}}\}}>{3}$
\end{VerbatimOut}
\UnExemple{}
\simplesmatricessetup{out-of-box}
@@ -929,49 +1064,66 @@ Comme déjà signalé, il y a deux façons d'utiliser les clés d'option: à l'a
%</FRA>
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{*{2}{c}|cc}}>{1, 2, 3, 4, 5, 6,
-7, 8, 9, 10, 11, 12, 13, 14, 15, 16}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={ {cc||rl} }>{1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}$
\end{VerbatimOut}
- %| emacs
\UnExemple{}
-%<*ENG>
+%<*ENG>
In that case we need to double the curly braces around the column descriptors of
-the \texttt{array} environment because the first level is stripped off by
+the \envir{array} environment because the first level is stripped off by
\LaTeX{} when valuating the key.
+\medskip{}
+
In the following example, for the second matrix, it is not necessary to surround
-the value of \texttt{argopt} with an extra pair of curly braces ---even if it is
-not dangerous--- for the presence of \texttt{[margin]} prevents \LaTeX{} to
-strip off the curly braces.
+the value of \keyname{argopt} with an extra pair of curly braces (see
+line~\ref{sansaccol}) ---even if it is not dangerous (see
+line~\ref{avecaccol})--- for the presence of \texttt{[margin]} prevents \LaTeX{}
+to strip off the curly braces.
%</ENG>
%<*FRA>
Dans ce cas il faut doubler les accolades entourant les descripteurs de colonnes
-de l'environnement \texttt{array} car \LaTeX{} retire un niveau d'accolades en
+de l'environnement \envir{array} car \LaTeX{} retire un niveau d'accolades en
valuant la clé.
+\medskip{}
+
Dans l'exemple suivant, pour la deuxième matrice, il n'est pas nécessaire
-d'entourer la valeur de \texttt{argopt} d'une paire d'accolades --- même si ça
-n'est pas dangereux --- car la présence de \texttt{[margin]} empêche \LaTeX{} de
-supprimer une paire d'accolades.
+d'entourer la valeur de \keyname{argopt} d'une paire d'accolades (voir
+ligne~\ref{sansaccol}) --- même si ça n'est pas dangereux (voir
+ligne~\ref{avecaccol}) --- car la présence de \texttt{[margin]} empêche \LaTeX{}
+de supprimer une paire d'accolades.
%</FRA>
\begin{VerbatimOut}[gobble=0]{code00.tex}
-\(\matrice<prefix=b, envir=NiceArray,
+$\matrice<prefix=b, envir=NiceArray,
argopt={{l c r}}>{1, 2, 3, 40, 50, 60,
- 700, 800, 900}\)
+ 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={l c r}[margin]>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={l c r}[margin]>{1, 2, 3, %*@\label{sansaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\par \medskip
-\(\matrice<prefix=b, envir=NiceArray,
-argopt={{l c r}[margin]}>{1, 2, 3,
- 40, 50, 60, 700, 800, 900}\)
+$\matrice<prefix=b, envir=NiceArray,
+argopt={{l c r}[margin]}>{1, 2, 3, %*@\label{avecaccol}@*)
+ 40, 50, 60, 700, 800, 900}$
\end{VerbatimOut}
\UnExemple{}
+%<ENG> \section{Thanks}
+%<FRA> \section{Remerciements}
+%<*ENG>
+Many thanks to Denis \textsc{Bitouzé} for his remarks about the initial state of
+this documentation. Thanks to him, some colours have appeared on these pages.
+%</ENG>
+%<*FRA>
+Mille mercis à Denis \textsc{Bitouzé} pour ses remarques à propos de l'état
+initial de cette documentation. C'est grâce à lui que quelques couleurs sont
+apparues sur ces pages.
+%</FRA>
+
\vspace{\stretch{2}}
diff --git a/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins b/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins
index 1b04f52f84c..b7967dd5262 100644
--- a/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins
+++ b/Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File simples-matrices.ins Copyright (C) 2019, 2020 Yvon Henel
+File simples-matrices.ins Copyright (C) 2022 Yvon Henel
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty b/Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty
index bbf5650a64e..3d3ed6f68c8 100644
--- a/Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty
+++ b/Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty
@@ -22,7 +22,7 @@
%% http://www.latex-project.org/lppl.txt
%%
\RequirePackage{expl3}[2020/01/12]
-\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $
+\GetIdInfo$Id: simples-matrices.dtx 1.0.1 2022-07-03 TdS $
{}
\RequirePackage{l3keys2e,xparse}
\ProvidesExplPackage