cerhu > comp.* > comp.text.tex

Pratu (20/07/2011, 15h57)
Bonjour

J ai vraiment beaucoup de mal pour taper les matrices un peu
spéciales : triagonale, diagonale par bloc, ou avec plein de zéros
partout.

Les ddots et hdotsfor ne sont pas pratiques du tout pour les matrices
un peu compliquées...

y a t il un package particulier ou autre ?

D autre part il n y a t il un équivalent à hdotsfor comme ddotsfor ?

Merci beaucoup
Pratu (20/07/2011, 16h02)
En bref les matrices avec des points de suspension comme dans les
matrices de Jordan...
GL (20/07/2011, 16h20)
Le 20/07/2011 15:57, Pratu a écrit :
> Bonjour
> J ai vraiment beaucoup de mal pour taper les matrices un peu
> spéciales : triagonale, diagonale par bloc, ou avec plein de zéros
> partout.
> Les ddots et hdotsfor ne sont pas pratiques du tout pour les matrices
> un peu compliquées...
> y a t il un package particulier ou autre ?
> D autre part il n y a t il un équivalent à hdotsfor comme ddotsfor ?
> Merci beaucoup


Svp donnez un exemple.
Pratu (20/07/2011, 17h13)
Voici le lien :

[..]
GL (20/07/2011, 21h48)
Le 20/07/2011 17:13, Pratu a écrit :
> Voici le lien :
>> [..]


Vous pouvez essayer ceci:

\documentclass [a4paper,10pt]{article}
\usepackage [T1]{fontenc}
\usepackage [latin1]{inputenc}
\usepackage {etex,mathtools,easybmat}

\begin{document}

$\left(\begin{BMAT}(e){ccccccccccccc}{ccccccccc}
4 &-1
&\dots & & &-1 & & & & & & & \\
-1 &4 &-1
& & & &-1 & & & & & & \\
&-1 &4
&-1 & & & & & & & & & \\
& &-1
&4 &-1 & & & &-1 & & & & \\
-1 &0 &0
&\dots &0 & & & & & & & & \\
\vdots &-1 &0
&\dots &\vdots & & & & & & & & \\
\vdots &0 &-1
&\dots &\vdots & & & & & & & & \\
\vdots &\vdots
&\vdots &\vdots &\vdots & & & & & & & & \\
0 &0 &0
&\dots &-1 & & & & & & & &
\addpath{(0,5,0)uuuuddddrrrrruuuuddddrrrruuuuddddr rrruuuu}
\addpath{(0,0,0)uuuuudddddrrrrruuuuudddddrrrruuuuu dddddrrrruuuuu}
\end{BMAT}\right)$

\end{document}\endinput

Par contre il vous faudra modifier le paquet easy.sty, car le petit
malin qui l'a écrit s'est cru autoriser à écrire:

\global\newdimen\.....

Donc il faut virer les \global sur 5 lignes:

\expandafter\global\expandafter\newdimen\csname ...\endcsname

Virer "\expandafter\global" à chaque fois (en plus du fait qu'on
ne met pas \expandafter devant \global...)

Bonsoir.
latexuser (22/07/2011, 09h22)
je vous remercie de votre reponse. j ai bien supprimé tous les
expandafter\global

cependant il m indique l erreur :

! You can't use a prefix with `\begingroup'.
<to be read again>
\begingroup
l.79 }
Pratu (22/07/2011, 09h44)
Au temps pour moi, ca fonctionne tres bien. Je modifiais un mauvais
fichier.

Cependant a quoi servent les
\addpath{(0,5,0)uuuuddddrrrrruuuuddddrrrruuuuddddr rrruuuu}
\addpath{(0,0,0)uuuuudddddrrrrruuuuudddddrrrruuuuu dddddrrrruuuuu} ??

Merci
GL (22/07/2011, 09h44)
Le 22/07/2011 09:22, latexuser a écrit :
> je vous remercie de votre reponse. j ai bien supprimé tous les
> expandafter\global
> cependant il m indique l erreur :
> ! You can't use a prefix with `\begingroup'.
> <to be read again>
> \begingroup
> l.79 }


Non vous n'avez sûrement pas supprimé *tous* les \expandafter\global.
Cette erreur vient justement de \global\newdimen.

easy.sty lignes 62 à 78 :

\@tempcnta=8\relax
\@whilenum\@tempcnta>\z@\do{
\expandafter\global\expandafter\newbox\csname
@easy@box\romannumeral\@tempcnta\endcsname
\expandafter\global\expandafter\newdimen\csname
@easy@minx\romannumeral\@tempcnta\endcsname
\expandafter\global\expandafter\newdimen\csname
@easy@miny\romannumeral\@tempcnta\endcsname
\expandafter\global\expandafter\newdimen\csname
@easy@maxx\romannumeral\@tempcnta\endcsname
\expandafter\global\expandafter\newdimen\csname
@easy@maxy\romannumeral\@tempcnta\endcsname
\advance\@tempcnta by\m@ne
}
%
% define dimens for internal computation.
%
\@tempcnta=30\relax
\@whilenum\@tempcnta>\z@\do{%
\expandafter\global\expandafter\newdimen\csname
@easy@hsize\romannumeral\@tempcnta\endcsname%
\expandafter\global\expandafter\newdimen\csname
@easy@vsize\romannumeral\@tempcnta\endcsname%
\advance\@tempcnta by\m@ne
}

Cela fait 7 occurrences à supprimer. Commencez par vérifier cela.

Cordialement.
GL (22/07/2011, 09h50)
Le 22/07/2011 09:44, GL a écrit :
[..]
> \expandafter\global\expandafter\newdimen\csname
> @easy@hsize\romannumeral\@tempcnta\endcsname%
> \expandafter\global\expandafter\newdimen\csname
> @easy@vsize\romannumeral\@tempcnta\endcsname%
> \advance\@tempcnta by\m@ne
> }
> Cela fait 7 occurrences à supprimer. Commencez par vérifier cela.
> Cordialement.


En fait cette erreur ne provoque pas d'erreur avec LaTeX standard:
seulement \global\newdimen n'a aucun sens mais LaTeX fait:

\newdimen -> \alloc@ -> \global\advance\count1#1\@ne

Donc \global\newdimen devient \global\global\advance\count1#1\@ne

ce qui n'est pas génant. Par contre, dès qu'on utilise e-TeX (avec
etex.sty) la procédure l'allocation des registres est modifiée pour
gérer les 32768 dimensions d'e-TeX et \global\newdimen devient
\global\begingroup => erreur.

Quoiqu'il en soit, une \newdimen est toujours globalement définie
comme le prouve le \global\advance\count1#1\@ne => l'allocation est
globale.
GL (22/07/2011, 09h54)
Le 22/07/2011 09:44, Pratu a écrit :
> Au temps pour moi, ca fonctionne tres bien. Je modifiais un mauvais
> fichier.
> Cependant a quoi servent les
> \addpath{(0,5,0)uuuuddddrrrrruuuuddddrrrruuuuddddr rrruuuu}
> \addpath{(0,0,0)uuuuudddddrrrrruuuuudddddrrrruuuuu dddddrrrruuuuu} ??
> Merci


Ben svp lisez la doc de BMAT. C'est un des trucs que j'aime bien chez
BMAT (la syntaxe est lourde, mais le coup des \addpath est pas mal du
tout):

u = up
d = down
r = right
l = left

Partant de la cellule (0,5,<tracé en type 0 = solide>)
uuuuddddrrrruuuudddd: up up up up down down down down
(pour revenir au même endroit)
right right right right up up up up down down down down etc.

Ca fait les traits pour séparer les blocs.

La syntaxe de BMAT est rigide, mais je ne pense pas qu'on puisse trouver
mieux sur CTAN pour faire des matrices par blocs...

Cdt.
Pratu (23/07/2011, 15h12)
merci !

cependant vous pourrerz constater que le résultat n est pas génial
génial.

[..]

Dans le premier cas les points de suspension sont coupés en deux.
Dans le second la la n-3 ieme colonne est en dessous de la 3ieme, ce
qui n est pas très élégant...

Vous auriez une solution ? Notamment pour faire une seule rangée de
points de ddots ?

Merci
Pratu (23/07/2011, 15h15)
[..]

Le second lien...
Pratu (23/07/2011, 15h46)
[..]

le second lien...
latexuser (27/07/2011, 12h22)
Avez vous une solution pour faire des points de suspension diagonaux
plus longs, analogues a hdotsfor ?
Discussions similaires
Matrices

Matrices

matrices SDP

Matrices?


Fuseau horaire GMT +2. Il est actuellement 17h22. | Privacy Policy