diff options
author | Karl Berry <karl@freefriends.org> | 2022-07-03 20:58:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-07-03 20:58:58 +0000 |
commit | 9e69ea0bcee4511423b695a3c95a531512ad1247 (patch) | |
tree | e398237a28f155271fc3f29cd05dd701c53421a8 | |
parent | d9b548bc058a1e7859398e11aced788196aca531 (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.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/README.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf | bin | 588298 -> 651623 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex | 335 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf | bin | 593202 -> 639703 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex | 338 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf | bin | 551886 -> 552832 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/simples-matrices/simples-matrices.dtx | 656 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/simples-matrices/simples-matrices.ins | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/simples-matrices/simples-matrices.sty | 2 |
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 |