[pst-node] Suite courte

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté par le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

[pst-node] Suite courte

Message par MB »

J'essaye de faire une fonction qui aurait pour vocation de dessiner une suite courte en utilisant pst-node (et donc pstricks). Avant j'utilisais xypic mais je voudrais changer pour tester pstricks. Ma commande xypic était :

Code : Tout sélectionner

\newcommand{\courte}[5]{
\xy
\xymatrix{
\{1\} \ar[r] & #1 \ar[r]^{#4} & #2 \ar[r]^{#5} & #3 \ar[r] & \{1\} 
}
\endxy}
La fonction prend donc 5 arguments qui sont simplement des informations à écrire au niveau des flèches ou des noeuds. J'ai essayé le code suivant avec pst-node :

Code : Tout sélectionner

\newcommand{\courte}[5]{
\begin{psmatrix}
\{1\} & #1 & #2 & #3 & \{1\} \\
\end{psmatrix}
\psset{arrows=->, labelsep=1mm, shortput=nab}
\ncline{0,0}{0,1}^{}
\ncline{0,1}{0,2}^{#4} 
\ncline{0,2}{0,3}^{#5}
\ncline{0,3}{0,4}^{}}
Le problème c'est que lors de l'appel de \courte{a}{b}{c}{d}{e} (pour tester) la compilation ne passe pas. Ma fonction est-elle mal définie ? Quels sont exactement les packages à lancer ? Faut-il placer la commande dans un environnement spécifique ?
Tryphon
Utilisateur chevronné
Utilisateur chevronné
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message par Tryphon »

Quel est le message d'erreur ?

Chez moi, ça compile, mais ça ne donne rien. Soit dit en passant, je ne suis pas sûr de ce que tu cherches à faire, mais des \longrightarrow ne suffisent pas ? Pstricks, c'est plutôt si tu veux des flèches courbées ou inclinées...
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Oui pour cet exemple de départ, on pourrait se débrouiller avec des flèches classiques, mais j'ai d'autres fonction (pour les suite scindées par exemple) qui utilisent en effet des flèches arrondies. Mais j'essaye déjà de faire fonctionner celui-ci après le reste ne devrait pas poser de problème. J'ai refait un nouveau fichier de test pour que ce soit plus clair et j'ai un peu modifié la procédure. Voici le code complet du fichier que j'essaye de compiler :

Code : Tout sélectionner

\documentclass{article}
\usepackage{pstricks}

\begin{document}

\begin{psmatrix}[mnode=R,colsep=3cm,rowsep=3cm]
1 & a & b & c & 1 \\
\end{psmatrix}

\ncline{->}{1,1}{1,2}
\ncline{->}{1,2}{1,3}\Aput{d} 
\ncline{->}{1,3}{1,4}\Aput{e}
\ncline{->}{1,4}{1,5}
\end{document}
Voici les extraits importants du fichier de log. La première error concernant le \documentclass me laisse très perplexe. Pour la seconde, il ne connaît pas psmatrix, qui devrait bien être défini dans pstricks ?

Code : Tout sélectionner

! LaTeX Error: Two \documentclass or \documentstyle commands.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.1 \documentclass{
                   article}
The document may only declare one class.

Code : Tout sélectionner

! LaTeX Error: Environment psmatrix undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.6 \begin{psmatrix}
                    [mnode=R,colsep=3cm,rowsep=3cm]
Your command was ignored.
C'est ce que j'obtiens en compilant avec PdfLatex, mais la compilation n'est pas bonne non plus avec Latex classique (j'obtiens exactement les mêmes erreurs). D'ailleurs tu ne saurais pas ou trouver une documentation récente à propos de PSTricks, car ici, sur le site officiel, je ne trouve pas de bonne documentation actualisée.
Tryphon
Utilisateur chevronné
Utilisateur chevronné
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message par Tryphon »

Ceci compile très bien sous LaTeX chez moi.

Code : Tout sélectionner

\documentclass{article}

\usepackage{pst-node,pstricks}

\newcommand{\courte}[5]{
\begin{psmatrix}
\{1\} & #1 & #2 & #3 & \{1\} \\
\end{psmatrix}
\psset{arrows=->, labelsep=1mm, shortput=nab} \ncline{0,0}{0,1}^{}
\ncline{0,1}{0,2}^{#4} \ncline{0,2}{0,3}^{#5}
\ncline{0,3}{0,4}^{}}

\begin{document}
\courte{a}{b}{c}{d}{e}
\end{document}
Par contre, les flèches n'apparaissent pas, c'est bizarre.

Pour tes erreurs, j'avoue que c'est curieux. Que le psmatrix ne passe pas, c'est parce que sa définition est dans un sous-package de pstricks (par exemple, il est défini dans pst-node, mais y'ena peut-être d'autres).

Par contre, le double \documentclass, comprends pas.

Edit : d'ailleurs, je n'ai pas cette erreur quand je compile ton exemple.
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Bon je crois que Miktex a mal installé mon package PSTRicks. J'ai trouvé ici une explication concernant le problème du documentclass. Bref, je pense que tout vient d'un problème d'installation; j'utilise l'installation automatique des packages Miktex (qui est pourtant bien pratique et qui jusque là ne posait pas de problème).

Tu utilises quelle distribution Tryphon ?
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Pour le problème du documentclass est résoltu et c'était une belle connerie : en fait mon fichier de test se nommait pstricks.tex et c'était le problème. Maintenant que ces problèmes sont réglés (car l'installation était correct mais c'est le nom de mon fichier qui concircuitait le tout). Pour autant cela ne fonctionne toujours pas; voici le log correspondant à la compilation de ton fichier via PdfLatex :

Code : Tout sélectionner

! Undefined control sequence.
<recently read> \c@lor@to@ps 
                             

l.13 \courte{a}{b}{c}{d}{e}
                           
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\XC@usec@lor ...\expandafter \c@lor@to@ps #1#2\@@ 
                                                  \else \expandafter \expand...
l.13 \courte{a}{b}{c}{d}{e}
                           
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
<recently read> \c@lor@to@ps 
                             
... etc
Par contre, la compilation est correcte avec Latex mais la production finale n'est pas celle que j'attendais (pour le Dvi en tous cas mais c'est peut-être normal). Je vais essayer d'utiliser pdftricks.
Dernière modification par MB le samedi 11 juin 2005, 11:58, modifié 1 fois.
Tryphon
Utilisateur chevronné
Utilisateur chevronné
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message par Tryphon »

pstricks, comme son nom l'indique, concerne postscript (ps). \c@lor@to@ps doit être une fonction postscript.

C'est pourquoi, lorsque je l'utilise, je fais du dvips+ps2pdf, et pas du pdftex (que j'utilise jamais)
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Tryphon a écrit :pstricks, comme son nom l'indique, concerne postscript (ps). \c@lor@to@ps doit être une fonction postscript.
Oui mais certaines choses passent avec PdfLatex ... mais pas cela ! Donc pour l'instant j'essaye pdftricks. On va bien voir.
Tryphon a écrit :C'est pourquoi, lorsque je l'utilise, je fais du dvips+ps2pdf, et pas du pdftex (que j'utilise jamais).
Oui mais ça m'embête de perdre les possibilités du Pdf juste pour cela. Au pire je retourne vers xppic. Ca va dépendre des performances de pdftricks. Je signale d'ailleurs que Herbert Schulz développe une nouvelle version de pdftricks nommée newpdftricks que l'on peut trouver ici pour l'instant (cette version n'est pas référencée par Miktex).
Dernière modification par MB le samedi 11 juin 2005, 11:59, modifié 1 fois.
P.Fradin

Message par P.Fradin »

Bonjour,

Je ne voudrais pas jouer le rabats-joie, mais il me semble que PdfTricks fait de toutes les façons: dvi->ps->pdf puis réinjecte le résultat dans le PDF final.

Faire directement du PDF c'est se priver de toutes les possibilités graphiques du postscript (qui fait référence en la matière), c'est se priver aussi de toutes les possibilités graphiques offertes par les macros epic et eepic (pourtant bien pratiques et très puissantes).

Faire du postscript c'est pouvoir profiter de toutes ces possibilités (même epic et eepic) tout en ayant la possibilité de faire du pdf! (et de très bonne qualité quoiqu'on en dise!). Et le must, la cérise sur le gâteau, c'est bien sûr PsTricks, qui réussit parfaitement le mariage entre la puissance de TeX pour la composition de texte ou de formules et les possibilités graphiques du postscript.

Je rappelle au passage pour ceux qui penseraient que PdFLaTeX est incontournable pour faire des présentations, qu'il y a la classe PROSPER pour cela, qui utilise PsTricks et qui recommande donc: dvi ->ps ->pdf.

N'oublions pas non plus, l'existence des utilitaires dvipdfm et dvipdfmx (dans la distribution MikTeX) qui sont moins connus, et qui transforment du dvi directement en pdf (cela permet entre autre d'incorporer des graphiques faits avec epic et eepic)

Cordialement.
Tryphon
Utilisateur chevronné
Utilisateur chevronné
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message par Tryphon »

Je ne crois pas que pdftex fasse du dvips+ps2pdf. Si c'était le cas, ce serait un bête fichier script, or il y a un programme source, commenté, de pdftex, qui est d'ailleurs une modification de tex.
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Tryphon a écrit :Je ne crois pas que pdftex fasse du dvips+ps2pdf. Si c'était le cas, ce serait un bête fichier script, or il y a un programme source, commenté, de pdftex, qui est d'ailleurs une modification de tex.
Il parlait de PdfTricks et non de PdfTex.

Par ailleurs, PdfTricks doit en effet faire une conversion dvi->ps->pdf mais je pense que la conversion n'est faite que sur le zones spécifiques définies par les balises \begin{pdfpic} et \end{pdfpic}. Du coup on ne perd pas les fonctions PDF sur le reste du fichier. Mais je vais tester cela plus en détails.

Il ne faut pas penser que je sois contre le format PS qui est en effet de bonne qualité, je l'ai utilisé très longtemps avec Latex, mais je dois dire que je préfère quand même le format PDF pour ses capacités hypertextes (même si je crois que c'est possible avec ps2pdf) et pour sa simplicité au niveau de la lecture (tout le monde possède un viewer PDF). Bref, c'est quand même plus simple et plus logique d'utiliser PdfLatex pour passer de Latex à PDF que de passer par un PS (ou juste un DVI) intermédiaire.
P.Fradin

Message par P.Fradin »

Tout à fait d'accord, pour moi aussi PdfLaTex serait l'idéal s'il comprenait les macros epic, eepic et surtout s'il comprenait le langage postscript! Peut-être un jour!

Cordialement
MB
Administrateur
Administrateur
Messages : 7412
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

P.Fradin a écrit :Peut-être un jour!
Oui, le problème est souvent évoqué sur fr.comp.text.tex (entre autre) donc je pense que des personnes travaillent sur ce problème. Cependant, je ne suis pas certain qu'une solution simple existe puisqu'apparement c'est un problème d'incompatibilité de fromat entre PDF et PS. PDF comprend MetaPost mais pas certaines fonctions avancées du format PS (d'ailleurs je me demande comment se débrouille ps2pdf ... je pense qu'il doit transformer le code PS en image PDF ce pourrait faire PSTricks et ce que doit faire PdfTricks). Dès que j'ai le temps je teste tout cela.

Quelques informations à propos de la nouvelle version de PdfTricks en préparation:
Herbert Schulz a écrit :The standard version of pdftricks.sty saves each of the pstricks figures as a separatefile, then processes that file into a .pdf file and finally includes that .pdf file in the original file using the graphicx package. It uses the sequence latex + dvips + ps2eps + epstopdf to produce the included .pdf file. Unfortunately ps2eps seems to be buggy; it doesn’t produce the correct oundingBox and the graphic is often clipped.

A better processing sequence would be latex + dvips + ps2pdf13 + pdfcrop which
bypasses the use of ps2eps and produces a correctly cropped .pdf file. This modified version of pdftricks.sty uses that sequence and seems to fix the BoundingBox problem. You must have the Ghostscript package installed so that ps2pdf13 is installed on your system.
Bref, plus de ps2eps qui semble être le maillon faible de l'histoire. Ce fichier n'est d'ailleurs même plus distribué dans les versions récentes de MikTex. Par contre, il semble que ce nouveau package ne fonctionne pour l'instant que sous Linux et sous Mac. A suivre ...
Dernière modification par MB le samedi 11 juin 2005, 12:01, modifié 1 fois.
Tryphon
Utilisateur chevronné
Utilisateur chevronné
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message par Tryphon »

MB a écrit : Il parlait de PdfTricks et non de PdfTex.
Toutes mes scouzis, j'ai lu trop vite :oops: