diff options
author | Karl Berry <karl@freefriends.org> | 2022-06-20 21:09:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-06-20 21:09:21 +0000 |
commit | a9a2d773125724519174894a45dcf3719730ce2d (patch) | |
tree | e7f8fa74c773969dfef684f0197eefb3d7309277 /Master/texmf-dist/doc | |
parent | 888b15f68d68b9c64fc5f046ffd99c948a3b8f72 (diff) |
simples-matrices (20jun22)
git-svn-id: svn://tug.org/texlive/trunk@63667 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md | 24 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md | 103 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/README.md | 26 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.pdf | bin | 0 -> 588298 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex | 519 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.pdf | bin | 0 -> 593202 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex | 500 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf | bin | 0 -> 551886 bytes |
8 files changed, 1172 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md b/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md new file mode 100644 index 00000000000..1f3b064cb9e --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/LISEZMOI.md @@ -0,0 +1,24 @@ +<!-- Time-stamp: <2022-06-19 17:54:55 Yvon Henel (TdS)> --> + +# simples-matrices + +Auteur: Yvon Henel, alias _Le TeXnicien de surface_ +([contact](le.texnicien.de.surface@yvon-henel.fr)) + +## LICENCE + +Le contenu de cette archive est placé sous la « LaTeX Project Public License ». +Voir http://www.ctan.org/license/lppl1.3c +pour la licence. + +© 2022 Yvon Henel (Le TeXnicien de surface) + +## Description de l’extension + +Cette extension fournit des commandes pour définir et écrire des +matrices en donnant leurs coefficients, par ligne, dans une liste de +valeurs séparées par des virgules. + +## Historique + +* Version 1.0 — 2022-06-19 — Première version publique diff --git a/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md b/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md new file mode 100644 index 00000000000..e24dad46441 --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/MANIFEST.md @@ -0,0 +1,103 @@ +# Manifest for simples-matrices + +This file is a listing of all files considered to be part of this package. +It is automatically generated with `l3build manifest`. + + +## Repository manifest + +The following groups list the files included in the development repository of the package. +Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed +with ‘‡’ are included in both. + +### Source files + +These are source files for a number of purposes, including the `unpack` process which +generates the installation files of the package. Additional files included here will also +be installed for processing such as testing. + +* simples-matrices.dtx ‡ +* simples-matrices.ins ‡ + +### Typeset documentation source files + +These files are typeset using LaTeX to produce the PDF documentation for the package. + +* simples-matrices.dtx ‡ + +### Documentation files + +These files form part of the documentation but are not typeset. Generally they will be +additional input files for the typeset documentation files listed above. + +* LISEZMOI.md ‡ +* MANIFEST.md ‡ +* README.md ‡ + +### Text files + +Plain text files included as documentation or metadata. + +* LISEZMOI.md ‡ +* MANIFEST.md ‡ +* README.md ‡ + +### Derived files + +The files created by ‘unpacking’ the package sources. This typically includes +`.sty` and `.cls` files created from DocStrip `.dtx` files. + +* simples-matrices.sty † + +### Typeset documents + +The output files (PDF, essentially) from typesetting the various source, demo, +etc., package files. + +* simples-matrices.pdf ‡ + + +## TDS manifest + +The following groups list the files included in the TeX Directory Structure used to install +the package into a TeX distribution. + +### Source files (TDS) + +All files included in the `simples-matrices/source` directory. + +* simples-matrices.dtx +* simples-matrices.ins + +### TeX files (TDS) + +All files included in the `simples-matrices/tex` directory. + +* simples-matrices.sty + +### Doc files (TDS) + +All files included in the `simples-matrices/doc` directory. + +* LISEZMOI.md +* MANIFEST.md +* README.md +* simples-matrices-eng.pdf +* simples-matrices-fra.pdf +* simples-matrices.pdf + + +## CTAN manifest + +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 +* simples-matrices.dtx +* simples-matrices.ins +* simples-matrices.pdf diff --git a/Master/texmf-dist/doc/latex/simples-matrices/README.md b/Master/texmf-dist/doc/latex/simples-matrices/README.md new file mode 100644 index 00000000000..2e06d4a1dce --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/README.md @@ -0,0 +1,26 @@ +<!-- Time-stamp: <2022-06-19 17:54:49 Yvon Henel (TdS)> --> + +# simples-matrices + +Author: Yvon Henel, aka Le TeXnicien de surface +([contact](le.texnicien.de.surface@yvon-henel.fr)) + +## LICENCE + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/license/lppl1.3c +for the details of that license. + +© 2022 Yvon Henel (Le TeXnicien de surface) + +## Description of the Package + +This package provides macros to define and write matrices the +coefficients of which are given, row by row, in a list of values +separated by commas. + +## History + +* Version 1.0 — 2022-06-19 — First public version + + 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 differnew file mode 100644 index 00000000000..bdc2813d484 --- /dev/null +++ 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 new file mode 100644 index 00000000000..bca736cb73d --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-eng.tex @@ -0,0 +1,519 @@ +%% +%% This is file `simples-matrices-eng.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% simples-matrices.dtx (with options: `doc,ENG') +%% +%% Do not distribute this file without also distributing the +%% source files specified above. +%% +%% Do not distribute a modified version of this file. +%% +%% File: simples-matrices.dtx +%% Copyright (C) 2022 Yvon Henel aka Le TeXnicien de surface +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3c of this +%% license or (at your option) any later version. The latest version +%% of this license is in the file +%% +%% http://www.latex-project.org/lppl.txt +%% +\RequirePackage{expl3}[2020/01/12] +\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $ + {} +\documentclass[full]{l3doc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french,main=english]{babel} +\usepackage{xparse} +\usepackage{simples-matrices} +\newcommand\BOP{\discretionary{}{}{}} +\usepackage{xspace} +\usepackage{csquotes} +\usepackage{fancyvrb,fancyvrb-ex} +\usepackage{mathtools} +\usepackage{delarray} +\usepackage{nicematrix} + +\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} } + +\newcommand{\UnExemple}{% + \par \medskip \par \noindent + \begin{minipage}[c]{0.58\linewidth} + \VerbatimInput[gobble=0, frame=single]{code00.tex} + \end{minipage} + \hspace{\stretch{1}} + \begin{minipage}[c]{0.38\linewidth} + \input{code00} + \end{minipage} + \par \medskip} + +\begin{document} +\title{\pkg{simples-matrices} user guide\thanks{This file describes + version~\ExplFileVersion, last revised~\ExplFileDate.\\ + \emph{In memory of my maternal grandmother} Adrienne \textsc{Binaut} + (1908-03-23 -- 1997-06-08).} } +\author{Yvon Henel\thanks{E-mail: + \href{mailto:le.texnicien.de.surface@yvon-henel.fr} + {le.texnicien.de.surface@yvon-henel.fr}}} +\maketitle +\noindent\hrulefill + +\begin{abstract} +A package to write matrices which are defined with a list of comma separated +coefficients read by row. + +A macro enables the definition of a named matrix, another enables the writing of +a named matrix. This package provides also some shortcuts for identity matrices +and null matrices. + +The name of this package and of its macros are French based for there are +already too many macros using the word ``matrix'' itself. The French +``\foreignlanguage{french}{simples matrices}'' means ``simple +matrices''. \emph{Just a letter apart!} +\end{abstract} + +\noindent\hrulefill + + \begin{otherlanguage}{french} +\begin{abstract} +Une extension pour écrire des matrices en donnant les coefficients par ligne +sous la forme d'une liste de valeurs séparées par des virgules. + +Une macro permet de définir des matrices nommées et une autre permet d'écrire +les matrices nommées. L'extension fournit également quelques raccourcis pour les +matrices identité et les matrices nulles. + +La documentation française pour l'utilisateur de l'extension +\pkg{simples-matrices} est disponible sous le nom de \texttt{simples-matrices-fra}. +\end{abstract} +\end{otherlanguage} + +\noindent\hrulefill + +\tableofcontents{} + +\vspace{3\baselineskip} + +The package \pkg{simples-matrices} requires \pkg{xparse} and \pkg{l3keys2e} used +to define macros and manage key-options. It loads \pkg{amsmath} as well for +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. + + +\section{The Macros} +\label{sec:macros} + +\pkg{simples-matrices} offers six main document macros. + + +\subsection{Main Macros} +\label{sec:main} + +This package has five main document macros viz. +\begin{function}{\matrice} + \begin{syntax} + \cs{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 + 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''. + + With \verb+\(\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}\). + +\end{function} + +\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} + \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 + starred version defines and prints the matrix. The unstarred version only + defines it. + + The definition is global but one can redefine an existing named matrix with + 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''. + +\end{function} + +\begin{function}{\lamatrice} + \begin{syntax} + \cs{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. + + The French \emph{la matrice} means ``the matrix''. +\end{function} + +\begin{function}{\MatriceInterieur} + \begin{syntax} + \cs{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. + + 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}{\LaMatriceInterieur} + \begin{syntax} + \cs{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. + + Again false French but the parallel with \cs{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} + +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} + \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 + page~\pageref{sec:keys}. + + 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} +\subsection{Shortcuts} +\label{sec:shortcuts} + +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} + \end{syntax} + which write the identity matrix --- by default --- with \meta{number of + columns} columns. If \meta{coefficient} is given, we obtain a diagonal + matrix with all its coefficients equal to \meta{coefficient}. + + The two first optional arguments have the same functionality as in the + preceding macros. + + \emph{matid} stands for ``\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} + \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 + coefficients equal to \meta{coefficient}. + + The two first optional arguments have the same functionality as in the + preceding macros. + + \emph{matnulle} stands for ``\foreignlanguage{French}{matrice nulle}'' which means + ``null matrix''. +\end{function} + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\(\matid{3}\)\qquad \(\matid[9]{3}\) +\par \medskip +\(\matnulle{3}\)\qquad \(\matnulle[2]{3}\) +\end{VerbatimOut} +\UnExemple{} + +\section{The Package Options} +\label{sec:keys} + +The package uses key-value options. There are four keys: +\texttt{envir}, +\texttt{prefix}, +\texttt{typeord} +and +\texttt{argopt}. + +\begin{description} +\item[\texttt{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}. + +\item[\texttt{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}. + +\item[\texttt{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}. + +\item[\texttt{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. +\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}|. + + +\section{Examples} +\label{sec:examples} +\subsection{Without any special package} +\label{sec:amsmath} + +That is with only \pkg{amsmath} loaded as done by this package. + +\subsubsection{Declaration and Usage} +\label{sec:declar} + +\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}\) +\end{VerbatimOut} +\UnExemple{} + +\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, +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}. + + +\medskip{} + + \texttt{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} +\] +\end{VerbatimOut} +\UnExemple{} + + \texttt{D} means \textbf{diagonal} matrix. +\begin{VerbatimOut}[gobble=0]{code00.tex} +\[ + \matrice{1, 2, 3, 4}\qquad + \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. +\begin{VerbatimOut}[gobble=0]{code00.tex} +\[ + \matrice[I]{1, 2, 3}\qquad + \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. +\begin{VerbatimOut}[gobble=0]{code00.tex} +\[ + \matrice[S]{1, 2, 3}\qquad + \matrice[T]{1, 2, 3} +\] +\end{VerbatimOut} +\UnExemple{} + +\texttt{x} means \texttt{xcas}. 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]]} +\] +\end{VerbatimOut} +\UnExemple{} + +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} +\] +\end{VerbatimOut} +\UnExemple{} + +\subsubsection{Using the ``\texttt{typeord}'' Key} +\label{sec:matrix-type-key} + +In this document, the key \texttt{typeord} has the initial value of~\texttt{C}. + + +\medskip{} + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\simplesmatricessetup{typeord=3} +\(\matrice{1, 2, 3, 4, 5, 6}\) +\simplesmatricessetup{typeord=2} +\(\matrice{1, 2, 3, 4, 5, 6}\) +\simplesmatricessetup{typeord=C} +\(\matrice{1, 2, 3, 4}\) +\end{VerbatimOut} +\UnExemple{} + +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} +\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} +\begin{tabular}{*{3}{l}} +\MatriceInterieur +\end{tabular} +\par \medskip +\begin{tabular}{|*{4}{l|}} +\LaMatriceInterieur{B}\hline +\end{tabular} +\end{VerbatimOut} +\UnExemple{} + +\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}. + +This document loads the three packages \pkg{mathtools}, \pkg{delarray} and +\pkg{nicematrix} in order to give the following examples. + + + +\subsubsection{With \pkg{mathtools}} +\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. + + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\simplesmatricessetup{ + envir=matrix*, prefix=p, argopt=[r]} +\(\matrice{1, 2, 30, 40}\) \qquad +\simplesmatricessetup{out-of-box} +\(\matrice{1, 2, 30, 40}\) +\par \medskip +\(\matrice(b)<envir=matrix*, argopt=[l]> + {1, 2, 30, 40}\) +\end{VerbatimOut} +\UnExemple{} + +\subsubsection{With \pkg{delarray}} +\label{sec:delarray} + + +\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}\) +\end{VerbatimOut} +\UnExemple{} +\simplesmatricessetup{out-of-box} + +\subsubsection{With \pkg{nicematrix}} +\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}\) +\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 +\LaTeX{} when valuating the key. + +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. + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\(\matrice<prefix=b, envir=NiceArray, +argopt={{l c r}}>{1, 2, 3, 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}\) +\par \medskip +\(\matrice<prefix=b, envir=NiceArray, +argopt={{l c r}[margin]}>{1, 2, 3, + 40, 50, 60, 700, 800, 900}\) +\end{VerbatimOut} +\UnExemple{} + +\vspace{\stretch{2}} + +\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} +\begin{center} + \textsl{Le TeXnicien de Surface scripsit.} +\end{center} +\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} + +\vspace*{\stretch{2}} + +\end{document} +\endinput +%% +%% End of file `simples-matrices-eng.tex'. 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 differnew file mode 100644 index 00000000000..b6cd4e15e18 --- /dev/null +++ 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 new file mode 100644 index 00000000000..e64f448a083 --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices-fra.tex @@ -0,0 +1,500 @@ +%% +%% This is file `simples-matrices-fra.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% simples-matrices.dtx (with options: `doc,FRA') +%% +%% Do not distribute this file without also distributing the +%% source files specified above. +%% +%% Do not distribute a modified version of this file. +%% +%% File: simples-matrices.dtx +%% Copyright (C) 2022 Yvon Henel aka Le TeXnicien de surface +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3c of this +%% license or (at your option) any later version. The latest version +%% of this license is in the file +%% +%% http://www.latex-project.org/lppl.txt +%% +\RequirePackage{expl3}[2020/01/12] +\GetIdInfo$Id: simples-matrices.dtx 1.0 2022-06-19 TdS $ + {} +\documentclass[full]{l3doc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[english,main=french]{babel} +\usepackage{xparse} +\usepackage{simples-matrices} +\newcommand\BOP{\discretionary{}{}{}} +\usepackage{xspace} +\usepackage{csquotes} +\usepackage{fancyvrb,fancyvrb-ex} +\usepackage{mathtools} +\usepackage{delarray} +\usepackage{nicematrix} + +\providecommand\darg[3]{ \texttt{#1} \meta{#2} \texttt{#3} } + +\newcommand{\UnExemple}{% + \par \medskip \par \noindent + \begin{minipage}[c]{0.58\linewidth} + \VerbatimInput[gobble=0, frame=single]{code00.tex} + \end{minipage} + \hspace{\stretch{1}} + \begin{minipage}[c]{0.38\linewidth} + \input{code00} + \end{minipage} + \par \medskip} + +\begin{document} +\title{Guide de l'utilisateur de \pkg{simples-matrices}\thanks{Ce fichier décrit + la version~\ExplFileVersion, dernière révision~\ExplFileDate.\\ + \emph{En souvenir de ma grand-mère maternelle}, Adrienne \textsc{Binaut} + (1908-03-23 -- 1997-06-08).} } +\author{Yvon Henel\thanks{E-mail: + \href{mailto:le.texnicien.de.surface@yvon-henel.fr} + {le.texnicien.de.surface@yvon-henel.fr}}} +\maketitle +\noindent\hrulefill + +\begin{abstract} +Une extension pour écrire des matrices en donnant les coefficients par ligne +sous la forme d'une liste de valeurs séparées par des virgules. + +Une macro permet de définir des matrices nommées et une autre permet d'écrire +les matrices nommées. L'extension fournit également quelques raccourcis pour les +matrices identité et les matrices nulles. +\end{abstract} + +\noindent\hrulefill + + \begin{otherlanguage}{english} +\begin{abstract} +A package to write matrices which are defined with a list of comma separated +coefficients read by row. + +A macro enables the definition of a named matrix, another enables the writing of +a named matrix. This package provides also some shortcuts for identity matrices +and null matrices. + +The name of this package and of its macros are French based for there are +already too many macros using the word ``matrix'' itself. The French +``\foreignlanguage{french}{simples matrices}'' means ``simple +matrices''. \emph{Just a letter apart!} + +The English documentation for the final user of the package +\pkg{simples-matrices} is available in the file \texttt{simples-matrices-eng}. +\end{abstract} +\end{otherlanguage} + +\noindent\hrulefill + +\tableofcontents{} + +\vspace{3\baselineskip} + +L'extension \pkg{simples-matrices} utilise \pkg{xparse} et \pkg{l3keys2e} pour +définir ses macros et gérer les clés d'option. Elle charge également +\pkg{amsmath} pour obtenir une présentation convenable des matrices. + +\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. + +\section{Les macros} +\label{sec:macros} + +L'extension \pkg{simples-matrices} offre six macros de document. + + +\subsection{Macros principales} +\label{sec:principales} + +Les cinq macros principales de document 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} + \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}\). + +\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} + \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 + 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. +\end{function} + +\begin{function}{\lamatrice} + \begin{syntax} + \cs{lamatrice}\parg{prefix}\darg{\string<}{vliste de paires de clé-valeur}{\string>}\marg{matrix name} + \end{syntax} + écrit la matrice nommée de nom \meta{nom}. + Les deux arguments optionnels ont la même signification que ci-dessus. +\end{function} + +\begin{function}{\MatriceInterieur} + \begin{syntax} + \cs{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}. +\end{function} + +\begin{function}{\LaMatriceInterieur} + \begin{syntax} + \cs{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}. +\end{function} + +Voir les exemples en page~\pageref{sec:exemples}. + +\subsection{Valuer les clés} +\label{sec:setting-keys} + +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} + \end{syntax} + 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}. + + Pour suivre une convention désormais bien établie le nom de cette macro + 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} + +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} + \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 + coefficients sont égaux à \meta{coefficient}. + + Les deux premiers arguments optionnels ont la même fonction que dans les + macros précédentes. +\end{function} + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\(\matid{3}\)\qquad \(\matid[9]{3}\) +\par \medskip +\(\matnulle{3}\)\qquad \(\matnulle[2]{3}\) +\end{VerbatimOut} +\UnExemple{} + + +\section{Les options de l'extension} +\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}. + +\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[\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[\texttt{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}. + +\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. +\end{description} + +De plus, une clé supplémentaire existe qui est une métaclé: +\texttt{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}|. + +\section{Exemples} +\label{sec:exemples} +\subsection{Sans extension particulière} +\label{sec:amsmath} + +C'est-à-dire en chargeant uniquement \pkg{amsmath} comme le fait cette extension. + +\subsubsection{Déclaration et utilisation} +\label{sec:declar} + +\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}\) +\end{VerbatimOut} +\UnExemple{} + + +\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}. + +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}. + +\medskip{} + + \texttt{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} +\] +\end{VerbatimOut} +\UnExemple{} + + \texttt{D} signifie matrice \textbf{diagonale}. +\begin{VerbatimOut}[gobble=0]{code00.tex} +\[ + \matrice{1, 2, 3, 4}\qquad + \matrice[D]{1, 2, 3, 4} +\] +\end{VerbatimOut} +\UnExemple{} + +\texttt{I} signifie matrice triangulaire \textbf{inférieure}; \texttt{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} +\] +\end{VerbatimOut} +\UnExemple{} + +\texttt{S} signifie matrice triangulaire \textbf{supérieure}; \texttt{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} +\] +\end{VerbatimOut} +\UnExemple{} + +\texttt{x} signifie \texttt{xcas}. 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]]} +\] +\end{VerbatimOut} +\UnExemple{} + +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} +\] +\end{VerbatimOut} +\UnExemple{} + + +\subsubsection{Utilisation de la clé \og \texttt{typeord}\fg} +\label{sec:matrix-type-key} + +Dans ce document, la clé \texttt{typeord} a comme valeur initiale~\texttt{C}. + +\medskip{} + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\simplesmatricessetup{typeord=3} +\(\matrice{1, 2, 3, 4, 5, 6}\) +\simplesmatricessetup{typeord=2} +\(\matrice{1, 2, 3, 4, 5, 6}\) +\simplesmatricessetup{typeord=C} +\(\matrice{1, 2, 3, 4}\) +\end{VerbatimOut} +\UnExemple{} + +Le code précédent n'est, bien entendu, donné qu'à titre d'illustration. Pour une +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}} +\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} +\begin{tabular}{*{3}{l}} +\MatriceInterieur +\end{tabular} +\par \medskip +\begin{tabular}{|*{4}{l|}} +\LaMatriceInterieur{B}\hline +\end{tabular} +\end{VerbatimOut} +\UnExemple{} + + +\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}. + +Ce document charge les trois extensions \pkg{mathtools}, \pkg{delarray} et +\pkg{nicematrix} pour présenter les exemples suivants. + + +\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. + + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\simplesmatricessetup{ + envir=matrix*, prefix=p, argopt=[r]} +\(\matrice{1, 2, 30, 40}\) \qquad +\simplesmatricessetup{out-of-box} +\(\matrice{1, 2, 30, 40}\) +\par \medskip +\(\matrice(b)<envir=matrix*, argopt=[l]> + {1, 2, 30, 40}\) +\end{VerbatimOut} +\UnExemple{} + +\subsubsection{Avec \pkg{delarray}} +\label{sec:delarray} + + +\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}\) +\end{VerbatimOut} +\UnExemple{} +\simplesmatricessetup{out-of-box} + +\subsubsection{Avec \pkg{nicematrix}} +\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}\) +\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 +valuant la clé. + +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. + +\begin{VerbatimOut}[gobble=0]{code00.tex} +\(\matrice<prefix=b, envir=NiceArray, +argopt={{l c r}}>{1, 2, 3, 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}\) +\par \medskip +\(\matrice<prefix=b, envir=NiceArray, +argopt={{l c r}[margin]}>{1, 2, 3, + 40, 50, 60, 700, 800, 900}\) +\end{VerbatimOut} +\UnExemple{} + +\vspace{\stretch{2}} + +\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} +\begin{center} + \textsl{Le TeXnicien de Surface scripsit.} +\end{center} +\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} + +\vspace*{\stretch{2}} + +\end{document} +\endinput +%% +%% End of file `simples-matrices-fra.tex'. 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 differnew file mode 100644 index 00000000000..d9e8561020c --- /dev/null +++ b/Master/texmf-dist/doc/latex/simples-matrices/simples-matrices.pdf |