- g2i,
Bonjour à tous,
Je me tourne vers vous var je ne vois pas comment gérer mon problème. Je voudrais tracer une matrice de quatre blocs A,B,C et 0, en explicitant les blocs (i.e. en traçant des lignes horizontales et verticales entres les blocs). Jusqu’ici, pas trop de problèmes, mais cela se corse lorsque j’essaye d’ajouter au-dessus du trait vertical un vecteur (e_p), tout comme à côté du trait horizontal. Le problème étant que si je ne précise rien à \BAhline, il me trace le trait jusqu’à côté de la matrice, et en utilisant \BAhhline, cela agrandit la ligne d’en dessous (et accessoirement, cela dépasse un peu des parenthèses). J’ai bien vu que ce dernier problème est signalé dans la documentation, mais elle ne donne pas de commandes explicites pour régler le problème, juste quelle variable (si j’ai bien compris) est en cause. Les deux matrices que je souhaiterai tracer ressemblent à ça (dans l’idée) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | \documentclass[a4paper, 11pt, twocolumn, landscape]{report} \usepackage{amsmath} \usepackage{blkarray} \usepackage{yhmath} \makeatletter \newlength\BA@height \def\BA@leftdel#1#2#3{% \setlength\BA@height{\dimen\z@}% \addtolength\BA@height{2pt}% \llap{% {#1}$\left#2\vrule height \BA@height width\z@ \right.$\kern-#3}} \def\BA@rightdel#1#2#3{% \setlength\BA@height{\dimen\z@}% \addtolength\BA@height{2pt}% \rlap{% \kern-#3$\left.\vrule height \BA@height width\z@ \right#1${#2}}}% \makeatother \begin{document} \[ \begin{blockarray}{cccccc} \overset{N_1}{\leftrightarrow} & \overset{N_2}{\leftrightarrow} & & & \overset{N_n}{\leftrightarrow} &\\ \begin{block}{(c|c|c|c|c)c} A_1 & 0 & 0 & 0 & 0 & \updownarrow N_1 \\ \BAhhline{-----} 0 & A_2 & 0 & 0 & 0 & \updownarrow N_2 \\ \BAhhline{-----} 0 & 0 & \ddots & 0 & 0 & \\ \BAhhline{-----} 0 & 0 & 0 & \ddots & 0 & \\ \BAhhline{-----} 0 & 0 & 0 & 0 & A_n & \updownarrow N_n \\ \end{block} \end{blockarray} \] \[ \begin{blockarray}{ccc} & e_p & \\ \begin{block}{(c|c)c} A & C & e_p\\ \BAhhline{--|} 0 & D &\\ \end{block} \end{blockarray} \] \end{document} |
Les commandes du préambule ont été trouvées sur cette page. L’objectif étant pour la première matrice de ne pas avoir les traits qui dépassent de la matrice, et pour l’autre d’avoir les annotations en face des traits.
De plus, dans la première matrice, je ne sais pas si ma manière de placer les flèches est bonne ou s’il y a quelque chose de prévu dans blkarray pour ça (en regardant rapidement, je n’ai pas trouvé en tout cas).
Au passage, j’ai inclus le package yhmath, clairement pas utile ici, mais néanmoins présent dans mon code total, comme il apparaît que le dépassement est plus marqué dans la première matrice en sa présence.
Merci d’avance,
BunshinKage