From 1d7a1c697696d66a97b64894f8553a61717928d9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 7 Apr 2020 03:02:57 +0000 Subject: CTAN sync 202004070302 --- .../latex/contrib/nicematrix/nicematrix-french.tex | 621 +++++++++++---------- 1 file changed, 333 insertions(+), 288 deletions(-) (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex') diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index 2d157cce4f..27ec881c96 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -469,10 +469,6 @@ $\begin{pNiceMatrix} 1 & 2 & 3 & 4 & 5 \end{pNiceMatrix}$ -\bigskip -La commande |\hdotsfor| de \pkg{amsmath} prend un argument optionnel (entre crochets) qui est utilisé pour un -réglage fin de l'espace entre deux points consécutifs. Par homogénéité, |\Hdotsfor| prend aussi un argument -optionnel mais cet argument est écarté silencieusement. Remarque : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la commande |\Hdotsfor| est utilisable lorsque l'extension \pkg{colortbl} est chargée (mais vous risquez d'avoir des problèmes si vous utilisez |\rowcolor| sur la @@ -528,11 +524,31 @@ $\begin{pmatrix} \end{scope} +\subsection{Les labels des lignes en pointillés} + +Les commandes |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que la commande |\line| dans +le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent en fait prendre deux arguments optionnels +spécifiés par les caractères |_| et |^| pour des labels situés au-dessous et au-dessus de la ligne. Les arguments +sont composés en mode mathématique avec |\scriptstyle|. + +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +$\begin{bNiceMatrix} +1 & \hspace*{1cm} & 0 \\[8mm] + & ~emphase#\Ddots^{n \text{ times}}@ & \\ +0 & & 1 \\ +\end{bNiceMatrix}$ +\end{BVerbatim} +$\begin{bNiceMatrix} +1 & \hspace*{1cm} & 0 \\[8mm] + & \Ddots^{n \text{ times}} & \\ +0 & & 1 \\ +\end{bNiceMatrix}$ + \subsection{Personnalisation des lignes en pointillés} \label{customization} -Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Idots| et |\Hdotsfor| (ainsi que par la +Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que par la commande |\line| dans le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent être paramétrées par trois options (que l'on met entre crochets après la commande) : % @@ -542,7 +558,7 @@ paramétrées par trois options (que l'on met entre crochets après la commande) \item |line-style|. \end{itemize} -Ces options peuvent aussi être fixées avec |\NiceMatrixOption| ou bien au niveau d'un environnement mais elles +Ces options peuvent aussi être fixées avec |\NiceMatrixOptions| ou bien au niveau d'un environnement mais elles doivent alors être préfixées par |xdots|, ce qui fait que leurs noms deviennent : % \begin{itemize} @@ -659,24 +675,29 @@ Ne pas oublier les options |remember picture| et |overlay|. \bigskip Dans l'exemple suivant, nous avons surligné toutes les cases de la matrice. -\[\begin{pNiceMatrix}[ - code-after = {\begin{tikzpicture} - [every node/.style = {blend mode = multiply, - inner sep = 0 pt , - fill = red!15}] - \node [fit = (1-1)] {} ; - \node [fit = (1-3)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-1)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (1-2)] {} ; - \node [fit = (2-1)] {} ; - \node [fit = (2-3)] {} ; - \node [fit = (3-2)] {} ; - \end{tikzpicture}}] +\[\begin{pNiceMatrix} a & a + b & a + b + c \\ a & a & a + b \\ a & a & a +\CodeAfter +\begin{tikzpicture}[ + every node/.style = + { + blend mode = multiply, + inner sep = 0 pt , + fill = red!15 + } + ] +\node [fit = (1-1)] {} ; +\node [fit = (1-3)] {} ; +\node [fit = (2-2)] {} ; +\node [fit = (3-1)] {} ; +\node [fit = (3-3)] {} ; +\node [fit = (1-2)] {} ; +\node [fit = (2-1)] {} ; +\node [fit = (2-3)] {} ; +\node [fit = (3-2)] {} ; +\end{tikzpicture} \end{pNiceMatrix}\] @@ -836,24 +857,60 @@ avec des instructions Tikz classiques. Les nœuds devront être désignés sous correspondant au nom de l'environnement). De plus, une commande spéciale, nommée |\line| est disponible pour tracer directement des lignes en pointillés -entre les nœuds). +entre les nœuds). Elle peut par exemple être utilisée pour tracer une ligne entre deux cases adjacentes comme dans +l'exemple suivant. \label{line-in-code-after} \medskip -\begin{BVerbatim}[baseline=c,boxwidth=13cm] -$\begin{pNiceMatrix}[~emphase#code-after = {\line{1-1}{3-3}[color=blue]}@] -0 & 0 & 0 \\ -0 & & 0 \\ -0 & 0 & 0 +\begin{BVerbatim}[baseline=c,boxwidth=11cm] +\NiceMatrixOptions{xdots/shorten = 0.6 em} +\begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@] +I & 0 & \Cdots &0 \\ +0 & I & \Ddots &\Vdots\\ +\Vdots &\Ddots & I &0 \\ +0 &\Cdots & 0 &I +\end{pNiceMatrix} +\end{BVerbatim} +\begin{scope} +\NiceMatrixOptions{xdots/shorten = 0.6 em} +$\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}] +I & 0 & \Cdots &0 \\ +0 & I & \Ddots &\Vdots\\ +\Vdots &\Ddots & I &0 \\ +0 &\Cdots & 0 &I \end{pNiceMatrix}$ +\end{scope} + +\medskip +Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on peut spécifier les instructions du +|code-after| à la fin de l'environnement, après le mot-clé |\CodeAfter|. + +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=11cm] +\NiceMatrixOptions{xdots/shorten = 0.6 em} +\begin{pNiceMatrix} +I & 0 & \Cdots &0 \\ +0 & I & \Ddots &\Vdots\\ +\Vdots &\Ddots & I &0 \\ +0 &\Cdots & 0 &I +~emphase#\CodeAfter@ +~emphase#\line{2-2}{3-3}@ +\end{pNiceMatrix} \end{BVerbatim} -$\begin{pNiceMatrix}[code-after = {\line{1-1}{3-3}[color=blue]}] -0 & 0 & 0 \\ -0 & & 0 \\ -0 & 0 & 0 +\begin{scope} +\NiceMatrixOptions{xdots/shorten = 0.6 em} +$\begin{pNiceMatrix} +I & 0 & \Cdots &0 \\ +0 & I & \Ddots &\Vdots\\ +\Vdots &\Ddots & I &0 \\ +0 &\Cdots & 0 &I +\CodeAfter +\line{2-2}{3-3} \end{pNiceMatrix}$ +\end{scope} + -\section{L'environnement \{NiceArray\}} +\section{L'environnement \{NiceArray\} et ses variantes} \label{NiceArray} L'environnement |{NiceArray}| est similaire à l'environnement |{array}|. Comme pour |{array}|, l'argument @@ -866,38 +923,102 @@ Il est possible d'utiliser les constructions |w{...}{...}|, |W{...}{...}|, \verb |!{...}| et |*{n}{...}| mais les lettres |p|, |m| et |b| ne doivent pas être employées.\footnote{Dans une commande |\multicolumn|, on doit également utiliser les lettres |L|, |C| et |R|.} -\medskip -En plus des options proposées pour |{pNiceMatrix}| et ses variantes, l'environnement |{NiceArray}| propose une -option |baseline| qui prend en argument un entier qui indique le numéro de rangée dont la ligne de base servira de -ligne de base pour l'environnement |{NiceArray}|. +\bigskip +Sans surprise, l'extension \pkg{nicematrix} fournit également les variantes |{pNiceArray}|, |{vNiceArray}|, +|{VNiceArray}|, |{bNiceArray}| et |{BNiceArray}|. + +\interitem +L'un des intérêts de |{pNiceArray}| par rapport à |{pNiceMatrix}| est la possibilité de tracer des filets verticaux +: + +\bigskip +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +$\left[\begin{NiceArray}{CCCC|C} +a_1 & ? & \Cdots & ? & ? \\ +0 & & \Ddots & \Vdots & \Vdots\\ +\Vdots & \Ddots & \Ddots & ? \\ +0 & \Cdots & 0 & a_n & ? +\end{NiceArray}\right]$ +\end{BVerbatim} +$\left[\begin{NiceArray}{CCCC|C} +a_1 & ? & \Cdots & ? & ? \\ +0 & & \Ddots & \Vdots & \Vdots\\ +\Vdots & \Ddots & \Ddots & ? \\ +0 & \Cdots & 0 & a_n & ? +\end{NiceArray}\right]$ + +\interitem +Un autre intérêt est la possibilité d'utiliser plusieurs types d'alignement de colonnes. + +\bigskip +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +$\begin{pNiceArray}{LCR} +a_{11} & \Cdots & a_{1n} \\ +a_{21} & & a_{2n} \\ +\Vdots & & \Vdots \\ +a_{n-1,1} & \Cdots & a_{n-1,n} +\end{pNiceArray}$ +\end{BVerbatim} +$\begin{pNiceArray}{LCR} +a_{11} & \Cdots & a_{1n} \\ +a_{21} & & a_{2n} \\ +\Vdots & & \Vdots \\ +a_{n-1,1} & \Cdots & a_{n-1,n} +\end{pNiceArray}$ + + + +\interitem +En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un environnement plus général, appelé +|{NiceArrayWithDelims}|. Les deux premiers arguments obligatoires de cet environnement sont les délimiteurs gauche +et droit qui seront utilisés dans la construction de la matrice. Il est possible d'utiliser |{NiceArrayWithDelims}| +si on a besoin de délimiteurs atypiques ou asymétriques. \medskip \begin{BVerbatim}[baseline=c,boxwidth=11cm] -$A = -\begin{NiceArray}{CCCC}[hvlines,~emphase#baseline=2@] -1 & 2 & 3 & 4 \\ -1 & 2 & 3 & 4 \\ -1 & 2 & 3 & 4 \\ -\end{NiceArray}$ +$\begin{~emphase#NiceArrayWithDelims@} + {\downarrow}{\uparrow}{CCC}[margin] +1 & 2 & 3 \\ +4 & 5 & 6 \\ +7 & 8 & 9 \\ +\end{~emphase#NiceArrayWithDelims@}$ \end{BVerbatim} -% -$A = -\begin{NiceArray}{CCCC}[hvlines,baseline=2] -1 & 2 & 3 & 4 \\ -1 & 2 & 3 & 4 \\ -1 & 2 & 3 & 4 \\ -\end{NiceArray}$ +$\begin{NiceArrayWithDelims} + {\downarrow}{\uparrow}{CCC}[margin] +1 & 2 & 3 \\ +4 & 5 & 6 \\ +7 & 8 & 9 \\ +\end{NiceArrayWithDelims}$ -\smallskip -L'option |hvlines| utilisée dans cet exemple est présentée plus loin (cf. p. \pageref{hvlines}). +\bigskip +\subsection{Le positionnement vertical des matrices} + +L'extension \pkg{nicematrix} propose aussi une option |baseline| par la position verticale des matrices. Cette +option |baseline| prend comme valeur un entier qui indique le numéro de rangée dont la ligne de base servira de +ligne de base pour l'environnement |{NiceArray}|. \medskip +\begin{BVerbatim}[baseline=c,boxwidth=9cm] +$A = \begin{pNiceMatrix}[baseline=2] +\frac{1}{\sqrt{1+p^2}} & p & 1-p \\ +1 & 1 & 1 \\ +1 & p & 1+p +\end{pNiceMatrix}$ +\end{BVerbatim} +$A = \begin{pNiceMatrix}[baseline=2] +\frac{1}{\sqrt{1+p^2}} & p & 1-p \\ +1 & 1 & 1 \\ +1 & p & 1+p +\end{pNiceMatrix}$ + + +\interitem L'option |baseline| peut aussi prendre les trois valeurs spéciales |t|, |c| et |b|. Ces trois lettres peuvent aussi être utilisées de manière absolue comme pour l'option de l'environnement |{array}| de \pkg{array}. La valeur initiale de |baseline| est~|c|. -\medskip +\bigskip Dans l'exemple suivant, on utilise l'option |t| (synonyme de |baseline=t|) immédiatement après un |\item| de liste. On remarquera que la présence d'un |\hline| initial n'empêche pas l'alignement sur la ligne de base de la première rangée (avec |{array}| de {array}, il faut utiliser |\firsthline|\footnote{On peut aussi utiliser |\firsthline| @@ -933,7 +1054,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\ \end{minipage} -\medskip +\bigskip Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|, |\bottomrule| et |\midrule|.\par\nobreak @@ -970,76 +1091,6 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\ -\vspace{1cm} -L'utilisation de |{NiceArray}| permet de tracer des filets verticaux :\par\nobreak - -\bigskip -\begin{BVerbatim}[baseline=c,boxwidth=10cm] -$\left[\begin{NiceArray}{CCCC|C} -a_1 & ? & \Cdots & ? & ? \\ -0 & & \Ddots & \Vdots & \Vdots\\ -\Vdots & \Ddots & \Ddots & ? \\ -0 & \Cdots & 0 & a_n & ? -\end{NiceArray}\right]$ -\end{BVerbatim} -$\left[\begin{NiceArray}{CCCC|C} -a_1 & ? & \Cdots & ? & ? \\ -0 & & \Ddots & \Vdots & \Vdots\\ -\Vdots & \Ddots & \Ddots & ? \\ -0 & \Cdots & 0 & a_n & ? -\end{NiceArray}\right]$ - -\vspace{1cm} -Il existe également des variantes pour l'environnement |{NiceArray}| : |{pNiceArray}|, |{bNiceArray}|, -|{BNiceArray}|, |{vNiceArray}| et |{VNiceArray}|. La clé |baseline| n'est \emph{pas} disponible pour ces -environnements. - - -Dans l'exemple suivant, on utilise un environnement |{pNiceArray}| (on n'utilise pas |{pNiceMatrix}| car on -souhaite utiliser les types de colonne |L| et |R| --- avec |{pNiceMatrix}|, toutes les colonnes sont de type |C|). - - -\bigskip -\begin{BVerbatim}[baseline=c,boxwidth=10cm] -$\begin{pNiceArray}{LCR} -a_{11} & \Cdots & a_{1n} \\ -a_{21} & & a_{2n} \\ -\Vdots & & \Vdots \\ -a_{n-1,1} & \Cdots & a_{n-1,n} -\end{pNiceArray}$ -\end{BVerbatim} -$\begin{pNiceArray}{LCR} -a_{11} & \Cdots & a_{1n} \\ -a_{21} & & a_{2n} \\ -\Vdots & & \Vdots \\ -a_{n-1,1} & \Cdots & a_{n-1,n} -\end{pNiceArray}$ - - -\bigskip -\bigskip -En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un environnement plus général, appelé -|{NiceArrayWithDelims}|. Les deux premiers arguments obligatoires de cet environnement sont les délimiteurs gauche -et droit qui seront utilisés dans la construction de la matrice. Il est possible d'utiliser |{NiceArrayWithDelims}| -si on a besoin de délimiteurs atypiques ou asymétriques. - -\medskip -\begin{BVerbatim}[baseline=c,boxwidth=11cm] -$\begin{~emphase#NiceArrayWithDelims@} - {\downarrow}{\uparrow}{CCC}[margin] -1 & 2 & 3 \\ -4 & 5 & 6 \\ -7 & 8 & 9 \\ -\end{~emphase#NiceArrayWithDelims@}$ -\end{BVerbatim} -$\begin{NiceArrayWithDelims} - {\downarrow}{\uparrow}{CCC}[margin] -1 & 2 & 3 \\ -4 & 5 & 6 \\ -7 & 8 & 9 \\ -\end{NiceArrayWithDelims}$ - - \bigskip \section{Les rangées et colonnes extérieures} @@ -1431,7 +1482,7 @@ Dans les exemples qui suivent, on utilise la commande |\arrayrulecolor| de \pkg{ \medskip \begin{BVerbatim}[baseline=c,boxwidth=10.6cm] -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{bNiceArray}{CCC|C}[margin] ~emphase#\Block{3-3}{A}@ & & & 0 \\ & \hspace*{1cm} & & \Vdots \\ @@ -1442,7 +1493,7 @@ $\begin{bNiceArray}{CCC|C}[margin] \arrayrulecolor{black} \end{BVerbatim} \begin{scope} -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{bNiceArray}{CCC|C}[margin] \Block{3-3}{A} & & & 0 \\ & \hspace*{1cm} & & \Vdots \\ @@ -1461,7 +1512,7 @@ pourquoi une option à mettre entre chevrons est proposée par |\Block| pour sp \medskip \begin{BVerbatim}[baseline=c,boxwidth=10.6cm] -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{bNiceArray}{CCC|C}[margin] \Block{3-3}~emphase#<\Large>@{A} & & & 0 \\ & \hspace*{1cm} & & \Vdots \\ @@ -1472,7 +1523,7 @@ $\begin{bNiceArray}{CCC|C}[margin] \arrayrulecolor{black} \end{BVerbatim} \begin{scope} -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{bNiceArray}{CCC|C}[margin] \Block{3-3}<\Large>{A} & & & 0 \\ & \hspace*{1cm} & & \Vdots \\ @@ -1683,15 +1734,15 @@ Dans les environnements de \pkg{nicematrix}, on peut bien entendu ajouter des fi avec la commande~|\hline| et des filets verticaux avec le spécificateur ``\verb+|+'' dans le préambule de l'environnement. Par souci de commodité, l'extension \pkg{nicematrix} fournit aussi l'option |hlines| (resp. |vlines|) qui impose directement que tous les filets horizontaux (resp. verticaux) soient tracés (à l'exception, -très naturelle, des filets extérieurs aux rangées et colonnes extérieures). L'option |lines| est la conjonction des -options |hlines| et |vlines|. +très naturelle, des filets extérieurs aux rangées et colonnes extérieures). L'option |hvlines| est la conjonction +des options |hlines| et |vlines|. \medskip Dans l'exemple suivant, on utilise la commande |\arrayrulecolor| de \pkg{colortbl}. \medskip \begin{BVerbatim}[baseline=c,boxwidth=11cm] -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{NiceArray}{CCCC}% [~emphase#hvlines@,first-row,first-col] & e & a & b & c \\ @@ -1703,7 +1754,7 @@ c & c & b & a & e \arrayrulecolor{black} \end{BVerbatim} % -\arrayrulecolor{cyan} +\arrayrulecolor{blue} $\begin{NiceArray}{CCCC}[hvlines,first-row,first-col] & e & a & b & c \\ e & e & a & b & c \\ @@ -1833,6 +1884,9 @@ En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en \section{Remarques techniques} +Première remarque : l'extension \pkg{nicematrix} doit être chargée après l'extension \pkg{underscore}. Si ce n'est +pas le cas, une erreur est levée. + \subsection{Pour définir de nouveaux types de colonnes} \label{OnlyMainNiceMatrix} @@ -1874,40 +1928,6 @@ Le spécificateur |?| ainsi créé est aussi utilisable dans les environnements cas, |\OnlyMainNiceMatrix| est sans effet. -\subsection{Intersection des lignes pointillées} - -Depuis la version 3.1 de \pkg{nicematrix}, les lignes en pointillées créées par |\Cdots|, |\Ldots|, |\Vdots|, etc. -ne peuvent pas se croiser entre elles.\footnote{En revanche, les lignes créées par |\hdottedline|, la lettre - ``|:|'' dans le préambule de la matrice et la commande |\line| dans le |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) : |\Hdotsfor|, |\Vdots|, |\Ddots|, |\Iddots|, |\Cdots| et |\Ldots|. - -\medskip -De ce fait, on peut tracer la matrice suivante :\par\nobreak - -\smallskip -\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}$ @@ -2273,12 +2293,12 @@ a_p & &&a_0 & & &b_1 \\ \end{scope} \vspace{2cm} -Un exemple avec un système linéaire (le trait vertical a été tracé en cyan avec les outils de +Un exemple avec un système linéaire (le trait vertical a été tracé en bleu 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}] +\arrayrulecolor{blue} +$\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 \\ 0 & 0 & 1 &\Ddots & & \Vdots & & L_3 \gets L_3-L_1 \\ @@ -2289,8 +2309,8 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle \arrayrulecolor{black} \end{Verbatim} -\arrayrulecolor{cyan} -\[\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle}] +\arrayrulecolor{blue} +\[\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 \\ 0 & 0 & 1 &\Ddots & & \Vdots & & L_3 \gets L_3-L_1 \\ @@ -2301,6 +2321,42 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col={\scriptstyle \arrayrulecolor{black} +\subsection{Des lignes pointillées qui ne sont plus pointillées} + + +L'option |line-style| permet de changer le style des lignes tracées par |\Ldots|, |\Cdots|, etc. On peut de ce fait +tracer des lignes qui ne sont plus pointillées. + +\begin{Verbatim} +\NiceMatrixOptions + {nullify-dots,code-for-first-col = \color{blue},code-for-first-col=\color{blue}} +$\begin{pNiceMatrix}[first-row,first-col] + & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ columns}} \\ + & 1 & 1 & 1 & \Ldots & 1 \\ + & 1 & 1 & 1 & & 1 \\ +\Vdots[line-style={solid,<->}]_{n \text{ rows}} + & 1 & 1 & 1 & & 1 \\ + & 1 & 1 & 1 & & 1 \\ + & 1 & 1 & 1 & \Ldots & 1 \\ +\end{pNiceMatrix}$ +\end{Verbatim} + + +\begin{scope} +\NiceMatrixOptions + {nullify-dots,code-for-first-col = \color{blue},code-for-first-row=\color{blue}} +\[\begin{pNiceMatrix}[first-row,first-col] + & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ columns}} \\ + & 1 & 1 & 1 & \Ldots & 1 \\ + & 1 & 1 & 1 & & 1 \\ +\Vdots[line-style={solid,<->}]_{n \text{ rows}} & 1 & 1 & 1 & & 1 \\ + & 1 & 1 & 1 & & 1 \\ + & 1 & 1 & 1 & \Ldots & 1 \\ +\end{pNiceMatrix}\] +\end{scope} + + + \subsection{Largeur des colonnes} \medskip @@ -2310,13 +2366,20 @@ voulons la même largeur (automatique) pour toutes les colonnes. \bigskip \begin{BVerbatim} ~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@ -\NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle} +\NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle,light-syntax} \setlength{\extrarowheight}{1mm} $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -2&4&8&16&9&\\ -3&9&27&81&36&\\ -4&16&64&256&100& + 1 1 1 1 1 ; + 2 4 8 16 9 ; + 3 9 27 81 36 ; + 4 16 64 256 100 +\end{pNiceArray}$ +\medskip +$\begin{pNiceArray}{CCCC:C}[last-col] + 1 1 1 1 1 ; + 0 2 6 14 7 { L_2 \gets -2 L_1 + L_2 } ; + 0 6 24 78 33 { L_3 \gets -3 L_1 + L_3 } ; + 0 12 60 252 96 { L_4 \gets -4 L_1 + L_4 } \end{pNiceArray}$ ... ~emphase#\end{NiceMatrixBlock}@ @@ -2326,59 +2389,59 @@ $\begin{pNiceArray}{CCCC:C}[last-col] \begin{multicols}{2} \begin{NiceMatrixBlock}[auto-columns-width] -\NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle} +\NiceMatrixOptions{code-for-last-col = \color{blue}\scriptstyle,light-syntax} \setlength{\extrarowheight}{1mm} \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -2&4&8&16&9&\\ -3&9&27&81&36&\\ -4&16&64&256&100& +1 1 1 1 1 ; +2 4 8 16 9 ; +3 9 27 81 36 ; +4 16 64 256 100 \end{pNiceArray}$ \medskip \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -0&2&6&14&7&L_2\gets-2L_1+L_2 \\ -0&6&24&78&33&L_3\gets-3L_1+L_3 \\ -0&12&60&252&96&L_4\gets-4L_1+L_4 +1 1 1 1 1 ; +0 2 6 14 7 { L_2 \gets -2 L_1 + L_2 } ; +0 6 24 78 33 { L_3 \gets -3 L_1 + L_3 } ; +0 12 60 252 96 { L_4 \gets -4 L_1 + L_4 } \end{pNiceArray}$ \medskip \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -0&1&3&7&\frac72&L_2\gets\frac12L_2\\ -0&3&12&39&\frac{33}2&L_3\gets\frac12L_3 \\ -0&1&5&21&8&L_4\gets\frac1{12}L_4 +1 1 1 1 1 ; +0 1 3 7 \frac72 { L_2 \gets \frac12 L_2 } ; +0 3 12 39 \frac{33}2 { L_3 \gets \frac12 L_3 } ; +0 1 5 21 8 { L_4 \gets \frac1{12} L_4 } \end{pNiceArray}$ \medskip \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -0&1&3&7&\frac72&\\ -0&0&3&18&6&L_3 \gets -3L_2+L_3 \\ -0&0&-2&-14&-\frac92&L_4 \gets L_2-L_4 +1 1 1 1 1 ; +0 1 3 7 \frac72 ; +0 0 3 18 6 { L_3 \gets -3 L_2 + L_3 } ; +0 0 -2 -14 -\frac92 { L_4 \gets L_2 - L_4 } \end{pNiceArray}$ \medskip \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -0&1&3&7&\frac72&\\ -0&0&1&6&2&L_3 \gets \frac13L_3\\ -0&0&-2&-14&-\frac92& +1 1 1 1 1 ; +0 1 3 7 \frac72 ; +0 0 1 6 2 { L_3 \gets \frac13 L_3 } ; +0 0 -2 -14 -\frac92 \end{pNiceArray}$ \medskip \enskip $\begin{pNiceArray}{CCCC:C}[last-col] -1&1&1&1&1&\\ -0&1&3&7&\frac72&\\ -0&0&1&6&2& \\ -0&0&0&-2&-\frac12 & L_4 \gets 2L_3+L_4 +1 1 1 1 1 ; +0 1 3 7 \frac72 ; +0 0 1 6 2 ; +0 0 0 -2 -\frac12 { L_4 \gets L_3 + L_4 } \end{pNiceArray}$ \end{NiceMatrixBlock} \end{multicols} @@ -2409,41 +2472,37 @@ voulons recréer des nœuds identiques aux premiers, nous devons fixer |inner se pas cela, les nouveaux nœuds seront plus grands que les nœuds d'origine créés par \pkg{nicematrix}). \begin{Verbatim} -$\begin{pNiceArray}{>{\strut}CCCC}% - [create-large-nodes,margin,extra-margin=2pt, - code-after = {\begin{tikzpicture} - [~emphase#name suffix = -large@, - every node/.style = {draw, - ~emphase#inner sep = 0pt@}] - \node [fit = (1-1)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (4-4)] {} ; - \end{tikzpicture}}] -a_{11} & a_{12} & a_{13} & a_{14} \\ -a_{21} & a_{22} & a_{23} & a_{24} \\ -a_{31} & a_{32} & a_{33} & a_{34} \\ -a_{41} & a_{42} & a_{43} & a_{44} +$\begin{pNiceArray}{>{\strut}CCCC}[create-large-nodes,margin,extra-margin = 2pt] + a_{11} & a_{12} & a_{13} & a_{14} \\ + a_{21} & a_{22} & a_{23} & a_{24} \\ + a_{31} & a_{32} & a_{33} & a_{34} \\ + a_{41} & a_{42} & a_{43} & a_{44} +\CodeAfter + \begin{tikzpicture}[~emphase#name suffix = -large@, + every node/.style = {draw,~emphase#inner sep = 0 pt@}] + \node [fit = (1-1)] {} ; + \node [fit = (2-2)] {} ; + \node [fit = (3-3)] {} ; + \node [fit = (4-4)] {} ; + \end{tikzpicture} \end{pNiceArray}$ \end{Verbatim} - - -\[\begin{pNiceArray}{>{\strut}CCCC}[ - create-large-nodes,margin,extra-margin=2pt, - code-after = {\begin{tikzpicture}[name suffix = -large, - every node/.style = {draw, - inner sep = 0pt}] - \node [fit = (1-1)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (4-4)] {} ; - \end{tikzpicture}}] +% +\[\begin{pNiceArray}{>{\strut}CCCC}[create-large-nodes,margin,extra-margin = 2pt] a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ a_{41} & a_{42} & a_{43} & a_{44} +\CodeAfter +\begin{tikzpicture}[name suffix = -large, + every node/.style = {draw,inner sep = 0 pt}] + \node [fit = (1-1)] {} ; + \node [fit = (2-2)] {} ; + \node [fit = (3-3)] {} ; + \node [fit = (4-4)] {} ; +\end{tikzpicture} \end{pNiceArray}\] -% + On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après} la matrice sans modifier la position des composantes de celle-ci. En revanche, les traits tracés par |\hline|, le spécificateur «\verb+|+» ou les options |hlines| et |vlines| «écartent» les composantes de la matrice (quand l'extension \pkg{array} est @@ -2520,34 +2579,23 @@ la case en haut à gauche (où a été utilisée la commande |\Block|). Si on a alors un nœud de ce type est aussi créé pour ce bloc avec un nom suffixé par |-medium|. \medskip -\begin{BVerbatim}[baseline=c,boxwidth=11.6cm] -$\begin{pNiceMatrix}% - [ - margin, - create-medium-nodes, - code-after = - { \tikz \node [~emphase#highlight = (1-1-block-medium)@] {} ; } - ] -\Block{3-3}<\Large>{A} & & & 0 \\ -& \hspace*{1cm} & & \Vdots \\ -& & & 0 \\ -0 & \Cdots& 0 & 0 -\end{pNiceMatrix}$ -\end{BVerbatim} -$\begin{pNiceMatrix}% - [ - margin, - create-medium-nodes, - code-after = - { \tikz \node [highlight = (1-1-block-medium)] {} ; } - ] -\Block{3-3}<\Large>{A} & & & 0 \\ -& \hspace*{1cm} & & \Vdots \\ -& & & 0 \\ -0 & \Cdots& 0 & 0 -\end{pNiceMatrix}$ - - +% $\begin{pNiceMatrix}[margin,create-medium-nodes] +% \Block{3-3}<\Large>{A} & & & 0 \\ +% & \hspace*{1cm} & & \Vdots \\ +% & & & 0 \\ +% 0 & \Cdots& 0 & 0 +% \CodeAfter +% \tikz \node [~emphase#highlight = (1-1-block-medium)@] {} ; +% \end{pNiceMatrix}$ +% \end{BVerbatim} +% $\begin{pNiceMatrix}[margin,create-medium-nodes] +% \Block{3-3}<\Large>{A} & & & 0 \\ +% & \hspace*{1cm} & & \Vdots \\ +% & & & 0 \\ +% 0 & \Cdots& 0 & 0 +% \CodeAfter +% \tikz \node [highlight = (1-1-block-medium)] {} ; +% \end{pNiceMatrix}$ @@ -2654,40 +2702,37 @@ a & a & a & L_3 Dans l'exemple suivant, on utilise les «nœuds larges» pour surligner une zone de la matrice.\par\nobreak \begin{Verbatim} -\left(\,\begin{NiceArray}{>{\strut}CCCC}% - [create-large-nodes,left-margin,right-margin, - code-after = {\tikz \path [~emphase#name suffix = -large@, - fill = red!15, - blend mode = multiply] - (1-1.north west) - |- (2-2.north west) - |- (3-3.north west) - |- (4-4.north west) - |- (4-4.south east) - |- (1-1.north west) ; } ] -A_{11} & A_{12} & A_{13} & A_{14} \\ -A_{21} & A_{22} & A_{23} & A_{24} \\ -A_{31} & A_{32} & A_{33} & A_{34} \\ -A_{41} & A_{42} & A_{43} & A_{44} -\end{NiceArray}\,\right) +\begin{pNiceArray}{>{\strut}CCCC}[create-large-nodes,margin,extra-margin=2pt] + A_{11} & A_{12} & A_{13} & A_{14} \\ + A_{21} & A_{22} & A_{23} & A_{24} \\ + A_{31} & A_{32} & A_{33} & A_{34} \\ + A_{41} & A_{42} & A_{43} & A_{44} +\CodeAfter + \tikz \path [~emphase#name suffix = -large@,fill = red!15, blend mode = multiply] + (1-1.north west) + |- (2-2.north west) + |- (3-3.north west) + |- (4-4.north west) + |- (4-4.south east) + |- (1-1.north west) ; +\end{pNiceArray} \end{Verbatim} -\[\left(\,\begin{NiceArray}{>{\strut}CCCC}[ - create-large-nodes,left-margin,right-margin, - code-after = {\tikz \path [name suffix = -large, - fill = red!15, - blend mode = multiply] - (1-1.north west) - |- (2-2.north west) - |- (3-3.north west) - |- (4-4.north west) - |- (4-4.south east) - |- (1-1.north west) ; } ] -A_{11} & A_{12} & A_{13} & A_{14} \\ -A_{21} & A_{22} & A_{23} & A_{24} \\ -A_{31} & A_{32} & A_{33} & A_{34} \\ -A_{41} & A_{42} & A_{43} & A_{44} -\end{NiceArray}\,\right)\] + +\[\begin{pNiceArray}{>{\strut}CCCC}[create-large-nodes,margin,extra-margin=2pt] + A_{11} & A_{12} & A_{13} & A_{14} \\ + A_{21} & A_{22} & A_{23} & A_{24} \\ + A_{31} & A_{32} & A_{33} & A_{34} \\ + A_{41} & A_{42} & A_{43} & A_{44} +\CodeAfter + \tikz \path [name suffix = -large,fill = red!15, blend mode = multiply] + (1-1.north west) + |- (2-2.north west) + |- (3-3.north west) + |- (4-4.north west) + |- (4-4.south east) + |- (1-1.north west) ; +\end{pNiceArray}\] \subsection{Utilisation directe des nœuds Tikz} -- cgit v1.2.3