diff options
author | Karl Berry <karl@freefriends.org> | 2019-09-04 21:47:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-09-04 21:47:57 +0000 |
commit | 44e65427bf48a4f0e8ec4fa535155720bcc80cae (patch) | |
tree | 6e46bed91c6b9a9d1fae298fbc59a6262bcc3e86 /Master/texmf-dist/doc | |
parent | 9c2d59c2078da9c770a3e1015d0c10f2bcf9a990 (diff) |
nicematrix (4sep19)
git-svn-id: svn://tug.org/texlive/trunk@52028 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf | bin | 300142 -> 313307 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex | 223 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf | bin | 621774 -> 656608 bytes |
3 files changed, 135 insertions, 88 deletions
diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf Binary files differindex e0d14dea9c1..16331f32b4a 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex index 70064ad807c..924e988c213 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex @@ -294,33 +294,9 @@ une seule ligne en pointillés sera tracée (il n'y a pas d'objets qui se superposent dans le fichier \textsc{pdf} résultant\footnote{Et il n'est pas possible de tracer une ligne \verb|\Ldots| et une ligne \verb|\Cdots| entre les mêmes cases.}). -Néanmoins, des calculs inutiles sont effectués par TeX avant qu'il ne détecte -que les deux instructions définissent la même ligne en pointillés. C'est -pourquoi l'extension \pkg{nicematrix} fournit des versions étoilées de -\verb|\Ldots|, \verb|\Cdots|, etc. : \verb|\Ldots*|, \verb|\Cdots*|, etc. Ces versions sont -simplement équivalentes à \verb|\hphantom{\ldots}|, \verb|\hphantom{\cdots}|, etc. -L'utilisateur devrait utiliser des versions étoilées à chaque fois qu'une -version classique (sans étoile) a déjà été utilisée pour la même ligne en pointillés.\par\nobreak - -\bigskip -\begin{BVerbatim}[baseline=c,boxwidth=10cm] -\begin{bNiceMatrix} -0 & \Cdots & ~emphase#\Cdots*@ & 0 \\ -\Vdots & & & \Vdots \\ -~emphase#\Vdots*@ & & & ~emphase#\Vdots*@ \\ -0 & \Cdots & ~emphase#\Cdots*@ & 0 -\end{bNiceMatrix} -\end{BVerbatim} -$\begin{bNiceMatrix} -0 & \Cdots & & 0 \\ -\Vdots & & & \\ - & & & \Vdots \\ -0 & & \Cdots & 0 -\end{bNiceMatrix}$ - \bigskip En fait, dans cet exemple, il aurait été possible de tracer la même matrice -sans commande étoilée avec le codage suivant :\par\nobreak +plus rapidement avec le codage suivant :\par\nobreak \bigskip \begin{BVerbatim}[baseline=c,boxwidth=10cm] \begin{bNiceMatrix} @@ -340,7 +316,7 @@ $\begin{bNiceMatrix} \bigskip Il y a aussi d'autres moyens de changer la taille d'une matrice. On pourrait vouloir utiliser l'argument optionnel de la commande~\verb|\\| pour l'espacement vertical et la commande~\verb|\hspace*| dans une case pour l'espacement -horizontal.\footnote{Le meilleur moyen de régler la largeur des colonnes est, de toutes manières, d'utiliser +horizontal.\footnote{On peut aussi régler la largeur des colonnes en utilisant l'environnement \verb|{NiceArray}| (ou une de ses variantes) avec une colonne de type~\verb|w| ou \verb|W|: cf. p.~\pageref{width}} @@ -412,25 +388,24 @@ a_5 & b \bigskip Par défaut, avec \pkg{nicematrix}, si nous remplaçons \verb|{pmatrix}| par \verb|{pNiceMatrix}| et \verb|\vdots| par -\verb|\Vdots| (or \verb|\Vdots*| pour la rapidité de compilation), la géométrie de la matrice n'est pas -changée.\par\nobreak +\verb|\Vdots|, la géométrie de la matrice n'est pas changée.\par\nobreak \medskip \begin{BVerbatim}[baseline=c,boxwidth=8cm] $C = \begin{pNiceMatrix} a_0 & b \\ a_1 & \Vdots \\ -a_2 & \Vdots* \\ -a_3 & \Vdots* \\ -a_4 & \Vdots* \\ +a_2 & \Vdots \\ +a_3 & \Vdots \\ +a_4 & \Vdots \\ a_5 & b \end{pNiceMatrix}$ \end{BVerbatim} $C = \begin{pNiceMatrix} a_0 & b \\ a_1 & \Vdots \\ -a_2 & \Vdots* \\ -a_3 & \Vdots* \\ -a_4 & \Vdots* \\ +a_2 & \Vdots \\ +a_3 & \Vdots \\ +a_4 & \Vdots \\ a_5 & b \end{pNiceMatrix}$ @@ -575,7 +550,7 @@ $\begin{pmatrix} \section{Les nœuds Tikz créés par l'extension nicematrix} L'extension \pkg{nicematrix} crée un nœud Tikz pour chaque case du tableau considéré. Ces nœuds sont utilisés -pour tracer les lignes en pointillés entre les cases du tableau. Toutefois, l'utilisateur peut utiliser +pour tracer les lignes en pointillés entre les cases du tableau. Toutefois, l'utilisateur peut aussi utiliser directement ces nœuds. On commence par donner un nom au tableau (avec l'option \verb|name|). Cela étant fait, les nœuds sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où \textsl{nom} est le nom donné au tableau et $i$ et $j$ les numéros de ligne et de colonne de la case considérée. @@ -680,7 +655,8 @@ usages. C'est pourquoi il est possible d'utiliser les options \verb|left-margin| ajouter de l'espace des deux côtés du tableau et aussi de l'espace dans les «nœuds larges» de la première colonne et de la dernière colonne. Dans l'exemple suivant, nous avons utilisé les options \verb|left-margin| et \verb|right-margin|. \footnote{Les options \verb|left-margin| et \verb|right-margin| prennent des dimensions comme valeurs mais, si - aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et elle est égale à \verb|\arraycolsep|.} + aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et elle est égale à \verb|\arraycolsep| + (par défaut, 5~pt).Il existe aussi une option \verb|margin| pour fixer à la fois \verb|left-margin| et \verb|right-margin|.} \[\begin{pNiceMatrix}[ create-extra-nodes,left-margin,right-margin, code-after = {\begin{tikzpicture} @@ -802,7 +778,7 @@ mais aussi d'autres options définies par \pkg{nicematrix} (\verb|renew-dots|, \ \vspace{1cm} -Un exemple avec un système linéaire (on a besoin de \verb|{NiceArray}| pour le trait vertical): +Un exemple avec un système linéaire (on a besoin de \verb|{NiceArray}| pour le trait vertical) \bigskip \begin{BVerbatim}[baseline=c,boxwidth=10cm] @@ -930,7 +906,9 @@ L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\ dans les colonnes extérieures et un filet vertical (spécifié par un caractère «\verb+|+» dans le préambule du tableau) ne s'étend pas dans les rangées extérieures.\footnote{Ce dernier point n'est pas valable si on a chargé, en plus de \pkg{nicematrix}, l'extension \pkg{arydshln}. Les extensions \pkg{nicematrix} et \pkg{arydshln} ne - sont pas parfaitement compatibles car \pkg{arydshln} redéfinit beaucoup de structures internes à \pkg{array}.} + sont pas parfaitement compatibles car \pkg{arydshln} redéfinit beaucoup de structures internes à \pkg{array}. Par +ailleurs, si on veut vraiment un filet qui s'étende dans la première et la dernière rangée, on peut utiliser +\verb|!{\vline}| dans le préambule à la place de \verb+|+.} \item La «première rangée» d'un environnement \verb|{pNiceArray}| porte le numéro $0$, et non $1$ (de même pour la «première colonne»). Ce numéro est utilisé, par exemple, pour les noms des nœuds Tikz (les noms de ces nœuds sont utilisés, par exemple, par la commande \verb|\line| dans le \verb|code-after|). @@ -1185,6 +1163,74 @@ a & b \\ c & d \end{pNiceMatrix}$ \end{NiceMatrixBlock} +\section{Les matrices par blocs} + +Dans les environnements de \pkg{nicematrix}, on peut utiliser la commande \verb|\Block| pour placer un élément au +centre d'un rectangle de cellules fusionnées. + +La commande \verb|\Block| doit être utilisée dans la cellule supérieure gauche du bloc avec deux arguments. Le +premier argument est la taille de ce bloc avec la syntaxe $i$\verb|-|$j$ où $i$ est le nombre de rangées et $j$ le +nombre de colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc (en mode mathématique). + +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=10.6cm] +\arrayrulecolor{cyan} +$\begin{bNiceArray}{CCC|C}[margin] +~emphase#\Block{3-3}{A}@ & & & 0 \\ +& \hspace*{1cm} & & \Vdots \\ +& & & 0 \\ +\hline +0 & \Cdots& 0 & 0 +\end{bNiceArray}$ +\arrayrulecolor{black} +\end{BVerbatim} +\begin{scope} +\arrayrulecolor{cyan} +$\begin{bNiceArray}{CCC|C}[margin] +\Block{3-3}{A} & & & 0 \\ +& \hspace*{1cm} & & \Vdots \\ +& & & 0 \\ +\hline +0 & \Cdots& 0 & 0 +\end{bNiceArray}$ +\arrayrulecolor{black} +\end{scope} + +\bigskip +On peut souhaiter agrandir la taille du «$A$» placé dans le bloc de l'exemple précédent. Comme il est composé en +mode mathématique, on ne peut pas directement utiliser une commande comme \verb|\large|, \verb|\Large| ou +\verb|\LARGE|. C'est pourquoi une option à mettre entre chevrons est proposée par \verb|\Block| pour spécifier du +code LaTeX qui sera inséré \emph{avant} le début du mode mathématique. + +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=10.6cm] +\arrayrulecolor{cyan} +$\begin{bNiceArray}{CCC|C}[margin] +\Block{3-3}~emphase#<\Large>@{A} & & & 0 \\ +& \hspace*{1cm} & & \Vdots \\ +& & & 0 \\ +\hline +0 & \Cdots& 0 & 0 +\end{bNiceArray}$ +\arrayrulecolor{black} +\end{BVerbatim} +\begin{scope} +\arrayrulecolor{cyan} +$\begin{bNiceArray}{CCC|C}[margin] +\Block{3-3}<\Large>{A} & & & 0 \\ +& \hspace*{1cm} & & \Vdots \\ +& & & 0 \\ +\hline +0 & \Cdots& 0 & 0 +\end{bNiceArray}$ +\arrayrulecolor{black} +\end{scope} + + +\medskip +Pour des raisons techniques, il n'est pas possible d'écrire \verb|\Block{|$i$\verb|-|$j$\verb|}{<}| +(mais on peut écrire \verb|\Block{|$i$\verb|-|$j$\verb|}<>{<}| avec le résultat attendu). + \section{L'option hlines} @@ -1210,8 +1256,8 @@ c & c & b & a & e Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes de type \verb|S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise -explicitement aucune macro privée de \pkg{siunitx}. Les colonnes \verb|d| de \pkg{dcolumn} ne sont pas prises en -charge par \pkg{nicematrix}. +explicitement aucune macro privée de \pkg{siunitx}. Les colonnes \verb|d| de l'extension \pkg{dcolumn} ne sont pas +prises en charge par \pkg{nicematrix}. \medskip \begin{BVerbatim}[baseline = c, boxwidth = 10.5cm] @@ -1234,6 +1280,42 @@ $\begin{pNiceArray}{SCWc{1cm}C}[nullify-dots,first-row] \section{Remarques techniques} +\subsection{Intersection des lignes pointillées} + +Depuis la version 3.1 de \pkg{nicematrix}, les lignes en pointillées créées par \verb|\Cdots|, \verb|\Ldots|, +\verb|\Vdots|, etc. ne peuvent pas se croiser entre elles.\footnote{En revanche, les lignes créées par + \verb|\hdottedline|, la lettre ``\verb|:|'' dans le préambule de la matrice et la commande \verb|\line| dans le + \verb|code-after| peuvent croiser une autre ligne en pointillés.} + +Cela signifie qu'une ligne en pointillés créée par l'une des ces commandes s'arrête automatiquement quand elle +arrive à une autre ligne pointillée déjà tracée par l'une de ces commandes. Par conséquent, l'ordre dans lequel +les lignes sont tracées a son importance pour le résultat final. Voici cet ordre (c'est à dessein qu'il a été +choisi ainsi) : \verb|\Hdotsfor|, \verb|\Vdots|, \verb|\Ddots|, \verb|\Iddots|, \verb|\Cdots| and \verb|\Ldots|. + +De ce fait, on peut tracer la matrice suivante : + + +\medskip +\begin{BVerbatim}[baseline = c, boxwidth = 10.5cm] +$\begin{pNiceMatrix}[nullify-dots] +1 & 2 & 3 & \Cdots & n \\ +1 & 2 & 3 & \Cdots & n \\ +\Vdots & \Cdots & & \Hspace*{15mm} & \Vdots \\ +& \Cdots & & & \\ +& \Cdots & & & \\ +& \Cdots & & & \\ +\end{pNiceMatrix}$ +\end{BVerbatim} +$\begin{pNiceMatrix}[nullify-dots] +1 & 2 & 3 & \Cdots & n \\ +1 & 2 & 3 & \Cdots & n \\ +\Vdots & \Cdots & & \Hspace*{15mm} & \Vdots \\ +& \Cdots & & & \\ +& \Cdots & & & \\ +& \Cdots & & & \\ +\end{pNiceMatrix}$ + + \subsection{Lignes diagonales} Par défaut, toutes les lignes diagonales\footnote{On parle des lignes créées par \verb|\Ddots| et non des lignes @@ -1332,8 +1414,7 @@ la dernière case (deuxième rangée et deuxième colonne) est vide. \medskip \item Une case qui contient une commande \verb|\Ldots|, \verb|\Cdots|, \verb|\Vdots|, \verb|\Ddots| -ou \verb|\Iddots| (ou une des versions étoilées) est vide. On rappelle que ces commandes doivent être employées seules -dans une case. +ou \verb|\Iddots| est vide. On rappelle que ces commandes doivent être employées seules dans une case. \medskip @@ -1594,7 +1675,7 @@ Un exemple pour le résultant de deux polynômes : \bigskip \begin{BVerbatim} \setlength{\extrarowheight}{1mm} -\[\begin{vNiceArray}{CCCC:CCC}[columns-width=6mm] +\begin{vNiceArray}{CCCC:CCC}[columns-width=6mm] a_0 & && &b_0 & & \\ a_1 &\Ddots&& &b_1 &\Ddots& \\ \Vdots&\Ddots&& &\Vdots &\Ddots&b_0 \\ @@ -1602,7 +1683,7 @@ a_p & &&a_0 & & &b_1 \\ &\Ddots&&a_1 &b_q & &\Vdots\\ & &&\Vdots & &\Ddots& \\ & &&a_p & & &b_q -\end{vNiceArray}\] +\end{vNiceArray} \end{BVerbatim} \bigskip @@ -1621,9 +1702,11 @@ a_p & &&a_0 & & &b_1 \\ \end{scope} \vspace{2cm} -Un exemple avec un système linéaire:\par\nobreak +Un exemple avec un système linéaire (le trait vertical a été tracé en cyan avec les outils de +\pkg{colortbl}):\par\nobreak \begin{Verbatim} +\arrayrulecolor{cyan} $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle}] 1 & 1 & 1 &\Cdots & & 1 & 0 & \\ 0 & 1 & 0 &\Cdots & & 0 & & L_2 \gets L_2-L_1 \\ @@ -1632,8 +1715,10 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle \Vdots & & &\Ddots & & 0 & \\ 0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1 \end{pNiceArray}$ +\arrayrulecolor{black} \end{Verbatim} +\arrayrulecolor{cyan} \[\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle}] 1 & 1 & 1 &\Cdots & & 1 & 0 & \\ 0 & 1 & 0 &\Cdots & & 0 & & L_2 \gets L_2-L_1 \\ @@ -1642,7 +1727,7 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle \Vdots & & &\Ddots & & 0 & \\ 0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1 \end{pNiceArray}\] - +\arrayrulecolor{black} \subsection{Largeur des colonnes} @@ -1657,7 +1742,7 @@ nous voulons la même largeur (automatique) pour toutes les colonnes. ~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@ \NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle} \setlength{\extrarowheight}{1mm} -\quad $\begin{pNiceArray}{CCCC:C}[last-col] +$\begin{pNiceArray}{CCCC:C}[last-col] 1&1&1&1&1&\\ 2&4&8&16&9&\\ 3&9&27&81&36&\\ @@ -1674,7 +1759,7 @@ nous voulons la même largeur (automatique) pour toutes les colonnes. \NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle} \setlength{\extrarowheight}{1mm} -\quad $\begin{pNiceArray}{CCCC:C}[last-col] +\enskip $\begin{pNiceArray}{CCCC:C}[last-col] 1&1&1&1&1&\\ 2&4&8&16&9&\\ 3&9&27&81&36&\\ @@ -1996,7 +2081,7 @@ $\begin{array}{cc} & \end{Verbatim} -La matrice $B$ a une ``première rangée'' (pour $C_j$) d'où l'option \verb|first-row|. +La matrice $B$ a une «première rangée» (pour $C_j$) d'où l'option \verb|first-row|. \begin{Verbatim} \begin{bNiceArray}{C>{\strut}CCCC}[name=B,first-row] & & C_j \\ @@ -2008,7 +2093,7 @@ b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\ \end{bNiceArray} \\ \\ \end{Verbatim} -La matrice $A$ a une ``première colonne'' (pour $L_i$) d'où l'option \verb|first-col|. +La matrice $A$ a une «première colonne» (pour $L_i$) d'où l'option \verb|first-col|. \begin{Verbatim} \begin{bNiceArray}{CC>{\strut}CCC}[name=A,first-col] & a_{11} & \Cdots & & & a_{nn} \\ @@ -2080,42 +2165,4 @@ L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\ \draw [color = gray] (A-3-3) to [bend left] (B-3-3) ; \end{tikzpicture} - - - -\subsection{Matrices par blocs} - -\medskip -Dans l'exemple suivant, on utilise les «nœuds larges» pour construire une matrice par blocs (les lignes en tiretés -ont été tracées avec \pkg{arydshln}). -\begin{Verbatim} -\NiceMatrixOptions{letter-for-dotted-lines = V} -\begin{pNiceArray}{CC:CC}% ici, % est obligatoire - [create-extra-nodes, - ~emphase#code-after = { \tikz \node [fit = (1-1-large) (2-2-large), inner sep = 0 pt]@ - ~emphase# {$0_{22}$} ; }@ ] - & & a_{13} & a_{14} \\ - & & a_{23} & a_{24} \\ -\hdashline -a_{31} & a_{32} & a_{33} & a_{34} \\ -a_{41} & a_{42} & a_{34} & a_{44} -\end{pNiceArray} -\end{Verbatim} - - -\begin{scope} -\NiceMatrixOptions{letter-for-dotted-lines = V} -\[D = \begin{pNiceArray}{CC:CC}% - [create-extra-nodes, - code-after = { \tikz \node [fit = (1-1-large) (2-2-large), inner sep = 0 pt] - {$0_{22}$} ; } ] - & & a_{13} & a_{14} \\ - & & a_{23} & a_{24} \\ -\hdashline -a_{31} & a_{32} & a_{33} & a_{34} \\ -a_{41} & a_{42} & a_{34} & a_{44} -\end{pNiceArray}\] -\end{scope} - - \end{document} diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf Binary files differindex 35745735051..11faeef7c06 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf |