Je voudrais compiler des commandes ps-tricks avec pdflatex (et non pas avec la séquence latex->dvips->ps2pdf.). Une façon de le faire est d'utiliser le package \usepackage{pdftricks}, mais il faut pour cela faire un shell-escape avec pdflatex (aussi appelé enable-write18pour une installation MiKTeX). En fait le shell-escape est réalisé dans un fichier tex par une commande \write18{<commande système>}

Le shell-escape permet en cours de compilation tex, de l'interrompre momentanément pour accéder à l'interface système (le shell) et à ses commandes, puis ensuite de revenir à tex pour achever la compilation.

Le compilateur commence par générer des fichiers .tex contenant les commandes pstriks, puis l'accès au système permet de compiler ces fichiers tex en dvi, puis eps, puis pdf, qui seront inclus dans le pdf final produit par pdflatex

Ouvrir dans l'éditeur Overleaf
   \documentclass[a4paper,10pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}

    \usepackage{pdftricks}
    \begin{psinputs}
        \usepackage{pst-labo}
    \end{psinputs}

    \begin{document}

    \begin{pdfpic}
        \psset{unit=0.4cm}
        \pstDosage[glassType=erlen]
        \pstDosage[glassType=erlen,burette=false]
    \end{pdfpic}

    \end{document}

J'utilise MiKTeX 2.9 et l'éditeur TeXmaker. Ma commande de compilation est la suivante :

Ouvrir dans l'éditeur Overleaf
pdflatex -synctex=1 -interaction=nonstopmode -enable-write18 %.tex

ou bien :

Ouvrir dans l'éditeur Overleaf
pdflatex -synctex=1 -interaction=nonstopmode -shell-escape %.tex

Dans les deux cas j'obtiens le warning suivant (pdftricks) No \write 18 capability Ce qui signife que le shell-escape ne se fait pas, alors que pourtant je l'active avec l'option de compilation ( -enable-write18 ou -shell-escape). Du coup je ne retrouve pas mes schémas pstricks dans mon pdf final.

Comment faire en sorte que le shell-escape fonctionne normalement ? Un (-) ou deux(--) tiret(s) pour les options de compilation ? (j'ai essayé les deux)

Ci-dessous le même code sans utiliser le package pdftricks, si on compile avec latex (et non pas pdflatex) tout va bien. on peut visualiser le dvi avec yap, ou bien passer au fichier eps avec dvips et le voir avec gsview, et ensuite passer du fichier eps au fichier pdf avec ps2pdf et prendre un viewer pdf pour visualiser le résultat.

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

    %\usepackage{pdftricks}
    %\begin{psinputs}
       \usepackage{pst-labo}
    %\end{psinputs}

    \begin{document}

    %\begin{pdfpic}
        \psset{unit=0.4cm}
        \pstDosage[glassType=erlen]
        \pstDosage[glassType=erlen,burette=false]
    %\end{pdfpic}

    \end{document}

EDIT

Ce problème de -shell-escape qui ne fonctionne pas avec le package pdftricks est du à une erreur (facilement réparable) du package quand il teste l'activation de cette option de compilation sur un système Windows, et éventuellement à l'oubli de l'option [MikTeK] de ce package pour signaler que le test doit se faire sous Windows. Si le test est celui de Linux quand on est sous Windows, cela provoque aussi la mauvaise détection de l'activation.

Bref, même vous avez tapé la bonne option de compilation (-shell-escape ou -enable-write18), sous windows elle n'est pas détectée par le package pdftricks

Voir plus bas pour davantage d'explications

Posée 25 Oct '17, 03:34

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 01 Nov '17, 23:43

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

1

Pour info, tout marche bien sous texlive/debian (que ce soit avec shell-escape ou enable-write18, avec un ou deux tirets), donc ce n'est pas (a priori) un problème avec la commande de compilation.

(25 Oct '17, 09:53) the_alf the_alf's gravatar image

n'est ce pas \usepackage[pdf]{pstricks}?

(25 Oct '17, 12:47) touhami touhami's gravatar image
1

Il y a une version plus récente (2013) de pdftricks (pdftricks2)

\usepackage{pdftricks} ou \usepackage{pdftricks2}charge lui-même le package pstricks, il n'y a donc pas besoin de le faire.

Ce que vous proposez est une autre façon de faire (il y en a plusieurs, mais toutes demandent le shell-escape avec pdflatex, à moins de terminer soit-même le travail après la compilation à l'aide d'un script qui n'a pas pu être lancé avec le shell-escape.)

(25 Oct '17, 17:38) idefix idefix's gravatar image

Il semble que \usepackage{pdftricks} n'est pas adapté à une utilisation sous Windows. D'après la doc de pdftricks2 cette dernière à une option windows donc je suppose qu'elle est plus adaptée.

(25 Oct '17, 18:23) touhami touhami's gravatar image

La distribution MiKTeX n'autorise qu'une liste limitée de commandes exécutables par un shell-escape (pour raison de sécurité) : Voici la liste dans mon cas (la première ligne est la commande pour obtenir cette liste) :

initexmf --show-config-value [core]AllowedShellCommands[] :

miktex-bibtex;miktex-bibtex8;miktex-epstopdf;miktex-gregorio;miktex-kpsewhich;miktex-makeindex;bibtex;bibtex8;epstopdf;extractbb;findtexmf;gregorio;kpsewhich;makeindex;texosquery-jre8

Il suffirait que le package pdftricks en utilise une qui ne soit pas dans la liste pour que ça bloque éventuellement

(25 Oct '17, 22:08) idefix idefix's gravatar image

[core]AllowedShellCommands[] c'est la liste des exécutables qui ne nécessitent pas l'option -shell-escape on parle d'une activation partielle.

(25 Oct '17, 22:16) touhami touhami's gravatar image

Dans une fenêtre de commande ça a l'air de fonctionner Latex>pdflatex -enable-write18 testshell.tex

Avec la commande tex \immediate\write18{cmd} dans le fichier testshell.tex

La compilation se lance, je me retrouve dans une nouvelle fenêtre de commande, après un exit je reviens à celle qui a lancé la compilation qui s'achève normalement. Le fichier log le confirme

(26 Oct '17, 00:21) idefix idefix's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Faire fonctionner le package pdftricks avec pdflatex sous Windows (Distribution MiKteK 2.9)

Table des matières

Le package pdftricks permet de compiler du code latex contenant des commandes pstricks (postscript), avec le compilateur pdflatex sans avoir à faire la séquence de compilation latex->dvips->pstopdf. C'est utile par exemple si on veut dans un même fichier utiliser des packages pstricks et des packages tikz.

Pstrick est plus ancien mais il existe une foultitude de packages très utiles et très stables et il ne fonctionne pas de base avec pdflatex. Certain package tikz plus récents ne fonctionnent qu'avec pdflatex et non pas avec latex. Pstricks et tikz permettent de faire des schémas, des dessins, des figures vectoriels.

Le package pdftricks est mal implémenté sous Windows avec la distribution MiKTeK 2.9. Il y a deux raisons à cela. D'abord il y a une erreur dans le package dans le traitement du cas windows (pas pour le cas unix) et ensuite MiKTeK 2.9 ne possède pas le script perl ps2eps que pdftricks utilise (et il n'a pas non plus d'interpréteur perl pour l'exécuter). Comme ps2eps utilise à son tour un exécutable bbox.exe et Ghoscript, il faut faire aussi attention à ces deux là. Ce post explique comment rétablir l'implémentation.

1. Appeler le package pdftricks avec la bonne option [miktek]

Ouvrir dans l'éditeur Overleaf
\usepackage[miktex]{pdftricks}

Il faut appeler le package pdftricks avec l'option [miktek] pour que ce soit une commande windows (echo) et non pas unix (touch) qui soit utilisée pour créer le fichier test qui permet de vérifier que le shell-escape est disponible.

En effet ce test est réalisé en tentant de créer un fichier test par un shell-escape (write18). Puis on teste l'existence effective de ce fichier : s'il n'existe pas c'est que le shell-escape n'a pas fonctionné, et donc n'est pas autorisé.

Ouvrir dans l'éditeur Overleaf
\ifmiktex%
 \immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2
\else
 \immediate\write18{touch \tmpfile} %%%%%% LDL-1
\fi

2. Pdflatex doit utiliser l'option -shell-escape

Si on veut compiler avec pdflatex (et non pas par la chaine latex->dvips->ps2eps) il faut utiliser l'option de compilation shell-escape. On peut indiquer cette même option de 4 façons différentes :

-shell-escape

-enable-write18

--shell-escape

--enable-write18

On fait un appel système (shell-escape) par une commande tex \write18{commande système}, shell-escape et enable-write18 sont donc synonymes et peuvent être utilisés indifféremment.

Mettre un simple (-) ou double (--) dash est possible pour toutes les options de compilation de plusieurs lettres. En principe le double dash (--) est pour les options de plus de 1 lettre et le simple dash (-) est pour celles de 1 lettre. Mais quand une option à plusieurs lettres ne risque pas d'être confondue avec une série d'options à une seule lettre successives, on peut les indiquer avec un seul dash aussi.

Ouvrir dans l'éditeur Overleaf
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape  %.tex

3. Rendre ps2eps disponible pour pdftricks

le programmee ps2eps est utilisé par le package pdftricks lors des ses appels au shell, pour convertir les fichier postscripts (.ps) en fichier postcript encapsulé (.eps) qui seront incorporés ensuite au pdf final.

Comme ps2eps n'est pas présent dans MikTeK 2.9 il faut le rendre disponible pour pdftricks. Pour ce faire il faut le télécharger dans un dossier qui se trouve dans le PATH. On peut le mettre dans n'importe que dossier à condition de rajouter le chemin vers ce répertoire dans la variable d'environnement PATH de windows.

Pour modifier le PATH de windows sous windows 10:

Windows+x ->Système->Paramètres associés : Informations système->Paramètres système avancés ->Propriétés système->Variables d'environnement

alt textalt text

4. Installer un interpéteur Perl

Comme ps2eps est en fait un script perl et qu'apparemment MiKTeK 2.9 n'a pas (ou plus ?) d'interpréteur perl, il faut en installer un par exemple en allant sur (Perl.org) qui propose Strawberry Perl ou ActiveState Perl. L'installation de l'interpréteur fait l'association entre l'extension .pl (pour "perl") et l'interpréteur.

En conséquence quand le package fait un appel au système pour lancer le script perl (c'est à dire un shell-escape par une commande \write18), il faut qu'il utilise ps2eps.pl au lieu de ps2eps et il faut éditer le package pour modifier\immediate\write18{ps2eps.pl -f \PDFTfigname.ps} en \immediate\write18{ps2eps.pl -f \PDFTfigname.ps}

5. Verifier que vous avez la bonne version de GhostScript

Le script ps2eps faisant des appels à GhostScript par gswin32c, il faut que ce programme soit aussi dans le PATH de windows et il faut également que vous ayez installé la version 32 bit de GhostScript. Si vous avez la version 64 bit, il faut éditer le script ps2eps et modifier les appels à GhostScript en conséquence.

6. Vérifier et rendre disponible le programme bbox.exe

Un dernier problème peut survenir : ps2eps utilise pour des raisons de rapidité un programme bbox écrit en C et le téléchargement fournit un exécutable 32 bit pour ce fichier (bbox.exe). Il faut que ce binaire, tout comme le script soit dans le PATH et s'il ne s'exécute pas sur votre plateforme, il faudra prendre un compilateur C et en produire un fonctionnel à partir de la source (bbox.c) fournie également par le téléchargement (je n'ai personnellement pas eu ce problème)

7. Editer le package pdftricks

Editer le package pdftricks pour corriger l'erreur au moment de la création du fichier test du shell-escape (il manque la commande écho)

Ouvrir dans l'éditeur Overleaf
\ifPDFTshell
% we must set it to false if \write18 doesn't work.
% Hack given by Thierry Bouche (Thanks !)
\def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time} 
\ifmiktex%
% MODIFICATION DU PACKAGE pdftricks.sty ICI 
%\immediate\write18{rem >"\tmpfile"}%%%%%% LDL-2
 \immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2
%FIN DE LA MODIFICATION DU PACKAGE pdftricks.sty
\else
 \immediate\write18{touch \tmpfile} %%%%%% LDL-1
\fi
\ifmiktex
 \IfFileExists{\tmpfile.}{\PDFTshelltrue}{\PDFTshellfalse} %%%%%% LDL-4
\else
 \IfFileExists{\tmpfile}{\PDFTshelltrue}{\PDFTshellfalse}  %%%%%% LDL-3
\fi
\fi

et plus loin pour l'appel de gs2eps par ps2eps.pl au lieu de ps2eps

Ouvrir dans l'éditeur Overleaf
\IfFileExists{\PDFTfigname.tex}{%
     \immediate\write18{latex -interaction=batchmode \PDFTfigname}
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.tex converted to \PDFTfigname.dvi\MessageBreak
     ******************************************}
    }{}
    \IfFileExists{\PDFTfigname.dvi}{%
     \immediate\write18{dvips -o \PDFTfigname.ps \PDFTfigname}
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.ps generated\MessageBreak
     ******************************************}
    }{}
    \IfFileExists{\PDFTfigname.ps}{%
 % MODIFICATION DU PACKAGE pdftricks.sty ICI 
 %   \immediate\write18{ps2eps -f \PDFTfigname.ps}
     \immediate\write18{ps2eps.pl -f \PDFTfigname.ps}
 %FIN DE LA MODIFICATION DU PACKAGE pdftricks.sty

  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.eps generated\MessageBreak
     ******************************************}
    }{}

8. Exemple complet minimal (ECM) avec le package pstricks `pst-labo`

Pour compiler le fichier tex avec pdflatex :

pdflatex -synctex=1 -interaction=nonstopmode -shell-escape %.tex

On peut mettre --shell-escape, --enable-write18 ou -enable-write18 à la place de -shell-escape, c'est comme on veut, le résultat est le même.

Ca autorise le compilateur à appeler le shell (le système), pour utiliser les commandes systèmes en cours de compilation. Pour se faire le fichier tex contient une commande tex :

\write18{commande système à utiliser en cours de compilation}

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
%\documentclass[convert,varwidth]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[miktex]{pdftricks}

\begin{psinputs}
    \usepackage{pst-labo}
\end{psinputs}

\begin{document}

\begin{pdfpic}
    \psset{unit=0.4cm}
    \pstDistillation(-3,-10)(7,6)
    \quad
    \pstDistillation[AspectMelange=Diffusion,CouleurDistillat=red](-3,-10)(7,6)
\end{pdfpic}

\end{document}

alt text

Lien permanent

Publiée 28 Oct '17, 05:44

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 28 Oct '17, 19:21

Comment mettre une petite table des matières comme dans ce post ?

(28 Oct '17, 09:13) idefix idefix's gravatar image

Quel este le code pstricks de cette image, que l'on puisse tester avec auto-pst-pdf, qui requiert tout de même moins de manipulations préalables ?

(28 Oct '17, 13:52) Bernard Bernard's gravatar image

Peut-on faire cohabiter sur windows les deux distributions MiKTeK et TeXLive ?

(28 Oct '17, 19:17) idefix idefix's gravatar image

Je vais essayer de voir pourquoi auto-pst-pdf ne fonctionne pas chez moi

(28 Oct '17, 19:18) idefix idefix's gravatar image

Il faut tout simplement charger \usepackage{auto-pst-pdf}, et le faire après avoir chargé pstricks:

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pst-labo}

\usepackage{auto-pst-pdf} %% pour compiler avec pdflatex

\begin{document}

\begin{pspicture}
    \psset{unit=0.4cm}
    \pstDosage[glassType=erlen]
    \pstDosage[glassType=erlen,burette=false]
\end{pspicture}

\end{document}

alt text

Edit

Ce code, adapté du dernier code posté par @idéfix à l'utilisation de auto-pst-pdf fonctionne parfaitement (ne pas oublier d'ajouter l'option --enable-write18 à laligne de commande de pdflatex):

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pst-labo}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}
  \psset{unit=0.4cm}
  \pstDistillation(-3,-10)(7,6)
  \quad
  \pstDistillation[AspectMelange=Diffusion,CouleurDistillat=red](-3,-10)(7,6)
\end{pspicture}

\end{document}

alt text

Lien permanent

Publiée 26 Oct '17, 04:37

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 28 Oct '17, 18:04

@Bernard Il y a plusieurs façons de faire compiler par pdflatex des commandes pstricks (des commandes postscript en définitive). Je cherche ici à faire fonctionner la méthode utilisant le package pdftricks sous windows avec la distribution MiKTeK 2.9. La méthode fonctionne bien sous Linux avec la distribution tex texlive (voir par exemple le commentaire de the_alf qui l'a testé sous texlive/debian). Je verrai les autres méthodes plus tard, mais un test rapide montre que le package auto-pst-pdf plante également dans ma configuration (win10, MiKTeK2.9 et texmaker)

(26 Oct '17, 14:04) idefix idefix's gravatar image

@Bernard Vous êtes sous la même configuration que moi ?

(26 Oct '17, 21:29) idefix idefix's gravatar image

Je suis sous Windows 7 (comme dans la plupart des universités), j'ai texmaker ett la ligne de commande est pdflatex -synctex=1 --enable-write18 -interaction=nonstopmode %.tex. Que dit votre fichier .log? Peut-être toutes les extensions requises ne sont pas installées?

(26 Oct '17, 23:52) Bernard Bernard's gravatar image

Pouvez vous me dire comment vous accédez à Ghostview dans la configuration de texmaker ? Quelle version avez-vous et est-elle incluse dans MiKTeK ?

(29 Oct '17, 00:26) idefix idefix's gravatar image

Il y a peut-être un problème avec la commande touch

Extrait du log, d'une exécution en mode ligne, la commande touch est indiqué exécutée juste avant l'avertissement \No \write 18 capability.

Ouvrir dans l'éditeur Overleaf
runsystem(touch /tmp/w18-test-201710251366)...executed.

Package pdftricks Warning: ****************************************
(pdftricks)                No \write 18 capability.
(pdftricks)                You'll have to run a script by yourself!
(pdftricks)                ****************************************.

Et en mode ligne de commande

C:\Users\Dominique\Latex>pdflatex -enable-write18 pdftrickstest

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6400 64-bit) entering extended mode (pdftrickstest.tex LaTeX2e <2017-04-15> Babel <3.13> and hyphenation patterns for 75 language(s) loaded. ("C:Program FilesMiKTeX 2.9texlatexbasearticle.cls" Document Class: article 2014/09/29 v1.4h Standard LaTeX document class ("C:Program FilesMiKTeX 2.9texlatexbasesize10.clo")) ("C:Program FilesMiKTeX 2.9texlatexbaseinputenc.sty" ("C:Program FilesMiKTeX 2.9texlatexbaseutf8.def" ("C:Program FilesMiKTeX 2.9texlatexbaset1enc.dfu") ("C:Program FilesMiKTeX 2.9texlatexbaseot1enc.dfu") ("C:Program FilesMiKTeX 2.9texlatexbaseomsenc.dfu"))) ("C:Program FilesMiKTeX 2.9texlatexbasefontenc.sty" ("C:Program FilesMiKTeX 2.9texlatexbaset1enc.def")) ("C:Program FilesMiKTeX 2.9texlatexpdftrickspdftricks.sty"

Package pdftricks Warning: ******* (pdftricks) Package pdftricks v,1.16 loaded (pdftricks) [psTricks support in PDF (CVR, ACL)] (pdftricks)
*******.

("C:Program FilesMiKTeX 2.9texlatexgraphicsgraphicx.sty" ("C:Program FilesMiKTeX 2.9texlatexgraphicskeyval.sty") ("C:Program FilesMiKTeX 2.9texlatexgraphicsgraphics.sty" ("C:Program FilesMiKTeX 2.9texlatexgraphicstrig.sty") ("C:Program FilesMiKTeX 2.9texlatexgraphics-cfggraphics.cfg") ("C:Program FilesMiKTeX 2.9texlatexgraphics-defpdftex.def"))) ("C:Program FilesMiKTeX 2.9texlatexgraphicscolor.sty" ("C:Program FilesMiKTeX 2.9texlatexgraphics-cfgcolor.cfg"))

'touch' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

Package pdftricks Warning: ******* (pdftricks) No write 18 capability. (pdftricks) You'll have to run a script by yourself! (pdftricks)
*******.

("C:Program FilesMiKTeX 2.9texlatexmoreverbmoreverb.sty" ("C:Program FilesMiKTeX 2.9texlatextoolsverbatim.sty"))) (pdftrickstest.aux) ("C:Program FilesMiKTeX 2.9texcontextbasesupp-pdf.mki i" [Loading MPS to PDF converter (version 2006.09.02).] ) Opening PDFStream=pdftrickstest-fig1.tex [1{C:/Users/Dominique/AppData/Local/ MiKTeX/2.9/pdftex/config/pdftex.map}] (pdftrickstest.aux) ) Output written on pdftrickstest.pdf (1 page, 2393 bytes). Transcript written on pdftrickstest.log.

Lien permanent

Publiée 26 Oct '17, 01:22

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 27 Oct '17, 19:00

Je ne chargeais pas le package pdftricks avec l'option [miktex] comme vous l'indiquez, et du coup j'étais dans le else de \ifmiktex% et c'est la commande touch qui était utilisée pour créer un fichier vide avec pour nom le nom contenu dans \tmpfile. Cette commande est clairement une commande unix et ne fonctionne pas sous windows. Cette option [miktext] du package pdftricks signifie "windows" en définitive.

Donc \usepackage[miktek]{pdftricks} pour une utilisation sous windows (même avec une autre distribution latex que miktek sous windows)

Ensuite il manque echo à la commande de création de fichier (presque) vide sous windows

Ouvrir dans l'éditeur Overleaf
 \immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2

Echo envoie sur le terminal ce qu'on tape en entrée (rem), > redirige cette sortie du terminal sur le fichier \tmpfile (nom du fichier défini précédemment par \def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time}(w18-test-AAAAMMJJHH)

rem (pour remarque) est un commentaire pour un fichier batch. Par exemple :

Ouvrir dans l'éditeur Overleaf
echo rem mon commentaire de batch > toto.txt

écrit rem mon commentaire de batch dans le fichier toto.txt. Si toto.txt est en fait un fichier batch toto.bat, rem mon commentaire de batch sera ignoré par l'exécution du batch.

Si le fichier n'existe pas au moment de la redirection il est créé pour pouvoir écrire dedans. Si rem n'est suivi par rien, c'est juste un commentaire vide qui fera une sorte de saut de ligne indiqué par rem

Ouvrir dans l'éditeur Overleaf
 \immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2

Crée donc le fichier \tmpfile avec un commentaire batch vide

Ouvrir dans l'éditeur Overleaf
rem

Les guillemets du nom de fichier ne sont pas indispensables sauf si le nom du fichier contient des espaces

Lien permanent

Publiée 26 Oct '17, 03:11

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 26 Oct '17, 19:10

Donc en éditant le fichier pdftricks.sty dans le dossier MiKTeX 2.9\tex\latex\pdftricks

Ouvrir dans l'éditeur Overleaf
\ifPDFTshell
% we must set it to false if \write18 doesn't work.
% Hack given by Thierry Bouche (Thanks !)
\def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time} 
\ifmiktex%
% MODIFICATION DU PACKAGE pdftricks.sty ICI 
%\immediate\write18{rem >"\tmpfile"}%%%%%% LDL-2
 \immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2
%FIN DE LA MODIFICATION DU PACKAGE pdftricks.sty
\else
 \immediate\write18{touch \tmpfile} %%%%%% LDL-1
\fi
\ifmiktex
 \IfFileExists{\tmpfile.}{\PDFTshelltrue}{\PDFTshellfalse} %%%%%% LDL-4
\else
 \IfFileExists{\tmpfile}{\PDFTshelltrue}{\PDFTshellfalse}  %%%%%% LDL-3
\fi
\fi

et en mettant l'option [miktex] lors de l'appel du package pdftricks

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}

    \usepackage[miktek]{pdftricks}
    \begin{psinputs}
        \usepackage{pst-labo}
    \end{psinputs}

    \begin{document}

    \begin{pdfpic}
        \psset{unit=0.4cm}
        \pstDosage[glassType=erlen]
        \pstDosage[glassType=erlen,burette=false]
    \end{pdfpic}

    \end{document}

En mode commande ça passe à présent en effet (Using \write 18 capability) au lieu de (No \write 18 capability.) et pdftricks se lance dans la création de figure pdf

C:UsersDominiqueLatex>pdflatex -enable-write18 pdftrickstest

Ouvrir dans l'éditeur Overleaf
runsystem(echo rem >"/tmp/w18-test-20171026112")...executed.

Package pdftricks Warning: ****************************************
(pdftricks)                Using \write 18 capability 
(pdftricks)                for producing PDF-figures. 
(pdftricks)                ****************************************.

Les deux fichiers suivants sont bien créés pdftrickstest-fig1.tex et pdftrickstest-fig1.ps(avec la bonne figure), mais toujours pas de fichier pdftrickstest-fig1.pdf et pas de figure dans le fichier pdftrickstest.pdf final

Fin du fichier log avec les commandes système appelées

Ouvrir dans l'éditeur Overleaf
("C:\Program Files\MiKTeX 2.9\tex\context\base\supp-pdf.mkii"
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count98
\scratchdimen=\dimen105
\scratchbox=\box26
\nofMPsegments=\count99
\nofMParguments=\count100
\everyMPshowfont=\toks19
\MPscratchCnt=\count101
\MPscratchDim=\dimen106
\MPnumerator=\count102
\makeMPintoPDFobject=\count103
\everyMPtoPDFconversion=\toks20
)
\openout3 = `pdftrickstest-fig1.tex'.

 Opening PDFStream=pdftrickstest-fig1.tex
runsystem(latex -interaction=batchmode pdftrickstest-fig1)...executed.

runsystem(dvips -o pdftrickstest-fig1.ps pdftrickstest-fig1)...executed.

runsystem(ps2eps -f pdftrickstest-fig1.ps)...executed.

runsystem(del pdftrickstest-fig1.aux pdftrickstest-fig1.dvi pdftrickstest-fig1.
log pdftrickstest-fig1.eps)...executed.

 [1

{C:/Users/Dominique/AppData/Local/MiKTeX/2.9/pdftex/config/pdftex.map}] (pdftri
ckstest.aux) ) 
Here is how much of TeX's memory you used:
 1664 strings out of 493318
 18903 string characters out of 3138986
 71404 words of memory out of 3000000
 5225 multiletter control sequences out of 15000+200000
 4403 words of font info for 15 fonts, out of 3000000 for 9000
 1141 hyphenation exceptions out of 8191
 32i,5n,21p,236b,121s stack positions out of 5000i,500n,10000p,200000b,50000s
 <C:\Users\Dominique\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\jkn
appen\ec\dpi600\ecrm1000.pk>
Output written on pdftrickstest.pdf (1 page, 2393 bytes).
PDF statistics:
 13 PDF objects out of 1000 (max. 8388607)
 0 named destinations out of 1000 (max. 500000)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

Il utilise effectivement ps2eps, mais ça pas l'air de lui poser de problème existentiel (pas de message d'erreur visible), comme s'il le trouvait. Mais bon ... ça ne finalise toujours pas, alors ...

Ouvrir dans l'éditeur Overleaf
runsystem(ps2eps -f pdftrickstest-fig1.ps)...executed.

Comme il fait ensuite le ménage, c'est n'est pas surprenant de ne pas retrouver le fichier pdftrickstest-fig1.eps. Mais cela ne signifie pas que la création de ce fichier eps à inclure dans le pdf final se soit bien passée

Ouvrir dans l'éditeur Overleaf
runsystem(del pdftrickstest-fig1.aux pdftrickstest-fig1.dvi pdftrickstest-fig1.
log pdftrickstest-fig1.eps)...executed.
Lien permanent

Publiée 26 Oct '17, 04:32

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 26 Oct '17, 14:09

En éditant à nouveau pdftricks.sty pour supprimer la suppression finale des fichiers, on ne trouve effectivement pas les fichiers .eps qu'aurait du créer le script ps2eps: ps2eps n'est effectivement pas lancé par MiKTeK.

(26 Oct '17, 14:48) idefix idefix's gravatar image

Au lieu de supprimer l'étape de suppression, on peut ajouter un message d'erreur. Voici le code de pdftricks

\IfFileExists{\PDFTfigname.eps}{% \immediate\write18{epstopdf \PDFTfigname.eps} \PDFTWarningNoLine{pdftricks} {******************************************\MessageBreak \PDFTfigname.eps converted to \PDFTfigname.pdf\MessageBreak ******************************************} }{}

Il suffit donc d'ajouter \errmessage{Le fichier '\PDFTfigname.ep' n' a pas été créé} entres les dernières accolades.

(27 Oct '17, 11:57) touhami touhami's gravatar image

D'après votre réponse et celle de Bernard, à comment modifier la distribution MiKTeK, est-ce que j'aurais dû mettre le fichier pdftricks.sty modifié dans un arbre texmf-local plutôt que d'éditer l'original dans le dossier MiKTeX 2.9\tex\latex\pdftricks ?

(27 Oct '17, 21:38) idefix idefix's gravatar image

À mon avis il est préférable d'utiliser votre texmf-local et de laisser pdftricks.sty non touchée. N'oublier pas de modifier la ligne \ProvidesPackage{pdftricks} et de renommer le fichier modifier, ce n'est pdftricks.sty.

(27 Oct '17, 23:56) touhami touhami's gravatar image

Avez vous réussie avec ps2eps?

(27 Oct '17, 23:59) touhami touhami's gravatar image

ps2eps est un script perl. J'essaye de savoir si il y a un interpréteur perl dans MiKTeK ou si il faut que j'en installe un par ailleurs. Il y a bien le package perltex, mais ça ne devrait pas convenir pour une exécution hors compilation tex, par le shell. Sinon pour rester minimaliste je peux peut-être récupérer celui de TexLive. Il devrait en avoir un puisque pdftricks fonctionne avec cette distribution sous debian. D'ailleurs pdftricks devrait aussi en logique fonctionner sous windows avec la modification faite sur le package et la distribution texlive qui possède ps2eps.

(28 Oct '17, 01:55) idefix idefix's gravatar image

Je peux garder le même nom pour le fichier modifié et donner la priorité à mon texmf-local ? Mon package modifié devrait alors se substituer en douceur à l'original, même en cas de mise à jour de la distribution et du package originel. Et du coup je n'aurais pas à modifier la ligne \ProvidePackage{pdftricks} ?

(28 Oct '17, 02:08) idefix idefix's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

J'ai pris ton code tel quel

Ouvrir dans l'éditeur Overleaf
pdflatex -synctex=1 -interaction=nonstopmode -shell-escape %.tex

J'ai les warnings suivants et pas de figure à la fin

Ouvrir dans l'éditeur Overleaf
Package auto-pst-pdf Warning: 
    Creation of "test auto-pst-pdf"-autopp.dvi failed.
This warning occured on input line 124.

Package auto-pst-pdf Warning: 
    Could not create "test auto-pst-pdf"-pics.pdf. Auxiliary files not deleted
    This warning occured on input line 124.

Package pst-pdf Warning: pspicture No. 1 undefined.
Package pst-pdf Warning: File `"test auto-pst-pdf"-pics.pdf' not found.
Lien permanent

Publiée 26 Oct '17, 21:26

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

En ce cas, commencez par compiler via latex -> dvips -> pstopdf (après avoir commenté le chargement de auto-pst-pdf) pour véfier si le problème ne vient pas d'une extension requise et non installée.

(26 Oct '17, 23:56) Bernard Bernard's gravatar image

C'est fait et ça marche parfaitement avec latex->dvips->pstopdf

(27 Oct '17, 01:24) idefix idefix's gravatar image

@idefix: J'ai testé le code avec pour la ligne de commande : -shell-escape (normalement j'utilise --enable-write18) sous TeXmaker 5.0.2 et ça marche. Le seule difference possible entre nos installations est peut-être que j'ai installé Ghostscript (indépendamment de MiKTeX). Je ne sais pas si l'exécutable Ghostscript de MiKTeX est configuré pour pouvoir fonctionner avec auto-pst-pdf.

(27 Oct '17, 14:49) Bernard Bernard's gravatar image

Pourriez-vous me dire votre ligne d'accès à Ghostscript dans Texmaker et quelle version vous avez installé pour Ghostscript ? et où est-il installé Egalement avez-vous un interpréteur Perl déjà installé ? et si oui lequel ?

(29 Oct '17, 00:35) idefix idefix's gravatar image

Depuis que j'ai installé l'interpréteur Perl, cela fonctionne .. un peu. Il m'a installé le script perl pdfcrop.pl dans le dossier \scripts\pdfcrop\pdfcrop.pl de MiKTeK, il fait la première commande de pst-labo et le premier graphique, mais il y a une erreur GhostScript ensuite et je n'ai que la première image dans le résultat final

(29 Oct '17, 00:59) idefix idefix's gravatar image

En passant si vous avez une solution pour récupérer les messages d'exécutions des commandes systèmes passées à travers le shell-escape, je serait très preneur. Je les vois à l'exécution puis fini disparus. pas très pratique.

(29 Oct '17, 01:02) idefix idefix's gravatar image

Voici ma ligne d'accès à Ghostscript: "D:/Gs/gs9.22/bin/gswin64c.exe" (j'ai installé toutes mes applications scientifiques sur une partition dédiée. J'ai aussi installé Strawberry Perl (64 bits) sur la même partition, mais pdfcrop.pl a été installé par MPM.

(29 Oct '17, 02:17) Bernard Bernard's gravatar image

Pour les commandes systèmes passéesà travers --enable-write18 (c'est ce que j'utilise en pratique), j'ai des choses dans le .log, qui c ommencent par ces deux lignes, après le chargement de etexcmds.sty:

runsystem(echo "auto-pst-pdf: End auxiliary LaTeX compilation")...executed.

runsystem(echo "-------------------------------------------------")...executed.

et se termine par

runsystem(echo "auto-pst-pdf: End auxiliary LaTeX compilation")...executed.

runsystem(echo "-------------------------------------------------")...executed.

(29 Oct '17, 02:30) Bernard Bernard's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

Avec votre code

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pst-labo}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}
  \psset{unit=0.4cm}
  \pstDistillation(-3,-10)(7,6)
  \quad
  \pstDistillation[AspectMelange=Diffusion,CouleurDistillat=red](-3,-10)(7,6)
\end{pspicture}

\end{document}

Le compilation latex finit par un process exit normaly mais je n'ai que la première figure tracé par les commandes pst-labo (quelle qu'elle soit, les suivantes sont absentes)

Voici ma séquence correspondante du log

Mais je ne peux pas récupérer les messages d'exécution des programmes exécutés par le système, on voit juste qu'il sont lancés, pas ce qu'ils génèrent eux-même à l'exécution. Cela s'affiche dans texmaker, puis s'efface, mais ce n'est dans aucun log que je trouve.

J'ai le temps d'apercevoir une erreur de Ghostscript 9.19 irrécupérable (exit code 1). Ce qui est est un peu étrange parce que j'ai moi aussi installé Ghostscript à part de MiKTEK, mais ce n'est pas la version 9.19 (c'est la 9.22).

Ouvrir dans l'éditeur Overleaf
("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\etexcmds.sty"
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
Package etexcmds Info: Could not find \expanded.
(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
(etexcmds)             that some package has redefined \expanded.
(etexcmds)             In the latter case, load this package earlier.
)))
\c@app@runs=\count134
runsystem(echo " ")...executed.

runsystem(echo "-------------------------------------------------")...executed.

runsystem(echo "auto-pst-pdf: Auxiliary LaTeX compilation")...executed.

runsystem(echo "-------------------------------------------------")...executed.

runsystem(del "ECMautopstpdf-pics.pdf")...executed.

runsystem(latex -disable-write18 -jobname="ECMautopstpdf-autopp" -interaction=b
atchmode  "\let \APPmakepictures \empty \input  ECMautopstpdf.tex")...executed.

runsystem(dvips -Ppdf -o "ECMautopstpdf-autopp.ps" "ECMautopstpdf-autopp.dvi").
..executed.

runsystem(ps2pdf  "ECMautopstpdf-autopp.ps" "ECMautopstpdf-autopp.pdf")...execu
ted.

runsystem(pdfcrop  "ECMautopstpdf-autopp.pdf" "ECMautopstpdf-pics.pdf")...execu
ted.

runsystem(del "ECMautopstpdf-autopp.log")...executed.

runsystem(del "ECMautopstpdf-autopp.dvi")...executed.

runsystem(del "ECMautopstpdf-autopp.ps")...executed.

runsystem(del "ECMautopstpdf-autopp.pdf")...executed.

runsystem(echo "-------------------------------------------------")...executed.

runsystem(echo "auto-pst-pdf: End auxiliary LaTeX compilation")...executed.

runsystem(echo "-------------------------------------------------")...executed.
Lien permanent

Publiée 29 Oct '17, 09:07

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 29 Oct '17, 09:17

Avez-vous vous aussi en ce message au début ? Est-ce important selon vous ?

Package etexcmds Info: Could not find \expanded. (etexcmds) That can mean that you are not using pdfTeX 1.50 or (etexcmds) that some package has redefined \expanded. (etexcmds) In the latter case, load this package earlier. ))) \c@app@runs=\count134

Notez-vous des différences par ailleurs ?

(29 Oct '17, 15:55) idefix idefix's gravatar image

J'ai exactement les mêmes lignes. Peut-être pourriez-vous voir command ça se passe depuis l'interpréteur de commandes ?

(29 Oct '17, 17:38) Bernard Bernard's gravatar image

Je dirais que le problème vient en fait de dvips qui ne parvient pas à produire le fichier postcript (.ps) et que du coup GhostScript ne trouvant pas le ficher qu'il doit traiter (ECMautopstpdf-autopp.ps) génère une erreur.


MiKTeK 2.9 contient visiblement une version de GhostScript (9.19 dans mon cas) et c'est elle qu'utilisent les packages en mode escape-shell, qu'on ait ou pas installé une autre version en dehors de MiKTeK. Cette dernière ne sert que pour visualiser des fichiers dans l'editeur tex (texmaker par exemple). Même en mettant ma version personnelle (2.22) devant le bin de MiKTEK dans le PATH, cela ne change pas la version utilisée dans la compilation LaTeX auxiliaire.


Pour le confirmer on peut aller sur le site de MiKTeK, onglet About, More information (à droite), MiKTeK Packages et outils de recherche

https://miktex.org/packages/miktex-ghostscript-bin-x64

Browse file (Parcourir fichier) pour avoir les fichiers de la distribution qui correspondent

https://miktex.org/Package/Browse/miktex-ghostscript-bin-x64

mgs.exe (pour Miktek GhostScript) et mgsdll64.dll (la dll qui va avec) dans texmf\miktex\bin\x64 (texmf = C:/Program Files/MiKTeX 2.9, la racine de l'installation MiKTeK 2.9)

Par exemple Texmaker pourrait utiliser la version MiKTeK de GhostScript au lieu d'une version installée à part en remplaçant

"C:/Program Files/gs/gs9.22/bin/gswin64c.exe"

par

"C:/Program Files/MiKTeX 2.9/miktex/bin/x64/msg.exe"

dans la commande GhostScript des options TexMaker


Ouvrir dans l'éditeur Overleaf
    "-------------------------------------------------"
    "auto-pst-pdf: Auxiliary LaTeX compilation"
    "-------------------------------------------------"
    This is pdfTeX, Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6400 64-bit)
    entering extended mode
    This is dvips(k) 5.997 Copyright 2017 Radical Eye Software (www.radicaleye.com)
    ' TeX output 2017.10.29:1647' -> ECMautopstpdf-autopp.ps
    <C:/Program Files/MiKTeX 2.9/dvips/base/tex.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/config/alt-rule.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pstricks/pstricks.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pstricks/pst-algparser.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pst-tools/pst-tools.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pstricks/pst-dots.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pst-node/pst-node.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pst-3d/pst-3d.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pst-math/pst-math.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pstricks-add/pstricks-add.pro>
    <C:/Program Files/MiKTeX 2.9/dvips/pst-grad/pst-grad.pro>
<C:/Program Files/MiKTeX 2.9/dvips/base/special.pro>. [1]
Error: /undefined in pst@angleunit
Operand stack:
   3779.0   -12598.0   -5.69046   5.69046   -5.69046   68.2855   11.3809   0.0   -11.3809   0.0   -11.3809   0.0   5.69046   68.2855   5.69046   5.69046   --nostringval--   7.39752   0.0
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1967   1   3   %oparray_pop   1966   1   3   %oparray_pop   1950   1   3   %oparray_pop   1836   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1197/1684(ro)(G)--   --dict:0/20(G)--   --dict:166/200(L)--   --dict:96/300(L)--   --dict:40/200(L)--   --dict:134/200(L)--
Current allocation mode is local
    Last OS error: No such file or directory
    Current file position is 262855
    MiKTeX GPL Ghostscript 9.19: Unrecoverable error, exit code 1
    "-------------------------------------------------"
    "auto-pst-pdf: End auxiliary LaTeX compilation"
    "-------------------------------------------------"

Erreur de dvips ? pst@angleunit ??? problème avec des unités d'angle ?? base/special.pro ??

Ouvrir dans l'éditeur Overleaf
<C:/Program Files/MiKTeX 2.9/dvips/base/special.pro>. [1]
Error: /undefined in pst@angleunit
Operand stack:
   3779.0   -12598.0   -5.69046   5.69046   -5.69046   68.2855   11.3809   0.0   -11.3809   0.0   -11.3809   0.0   5.69046   68.2855   5.69046   5.69046   --nostringval--   7.39752   0.0
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1967   1   3   %oparray_pop   1966   1   3   %oparray_pop   1950   1   3   %oparray_pop   1836   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1197/1684(ro)(G)--   --dict:0/20(G)--   --dict:166/200(L)--   --dict:96/300(L)--   --dict:40/200(L)--   --dict:134/200(L)--

Erreur de Ghostscript

Ouvrir dans l'éditeur Overleaf
Current allocation mode is local
    Last OS error: No such file or directory
    Current file position is 262855
    MiKTeX GPL Ghostscript 9.19: Unrecoverable error, exit code 1
Lien permanent

Publiée 29 Oct '17, 20:48

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 29 Oct '17, 22:21

Mais avez-vous essayé de configurer Ghostscript dans TeXmaker pour que ce soit l'installation indépendante de MiKTeX qui soit utilisée, comme je vous l'ai indiqué ?

(29 Oct '17, 22:42) Bernard Bernard's gravatar image

C'est le cas depuis le départ chez moi. Dans Texmaker :

"C:/Program Files/gs/gs9.22/bin/gswin64c.exe"

Et pourtant c'est toujours celui de MiKteK (9.19) qui est utilisé malgré tout. C'est ça qui m'a surpris au départ. Et si vous vérifiez chez vous en ligne de commande, si je comprends bien ce qui se passe, et si il affiche le lancement de GhostScript quand tout va bien, vous devriez avoir la version 9.19 qui s'exécute alors que vous avez installé la 9.22 64 bit et que vous l'utilisez dans Texmaker comme moi.

(29 Oct '17, 23:29) idefix idefix's gravatar image

Du coup pourriez-vous me dire la version de dvips qui s'exécute chez vous ? La mienne est dvips(k) 5.997 Copyright 2017 Radical Eye Software (www.radicaleye.com)

(30 Oct '17, 00:06) idefix idefix's gravatar image

Exactement la même version de dvips. Quant à Ghostscript, ce n'est pas la version 9.19 qui est en cause: elle est relativement récente et je l'ai utilisée. Quoique… Ghosscript a deux exécutables et deux dll, alors que MiKTeX n'en a qu'un de chaque sorte. Il me semble malgré tout que le problème est de faire accepter l'exécutable « externe » par TeXmaker. Éventuellemnt, testez avec un autre éditeur.

(30 Oct '17, 01:23) Bernard Bernard's gravatar image

J'ai encore deux questions :

1) Peut-on échanger des fichiers par le forum ? Ce me serait bien utile d'avoir une copie de ce que vous obtenez, vous, comme messages en mode de commande avec la commande

pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 ECMautopstpdf.tex

(avec le .tex qui nous sert à faire le test et en rajoutant la commande \listfiles dans son préambule)

2) Si vous faites l'option [crop=off] \usepackage[crop=off]{auto-pst-pdf} obtenez vous toujours une figure ? Moi je n'obtiens plus rien. Et j'ai l'impression qu'il y a au moins deux problèmes distincts

(30 Oct '17, 14:45) idefix idefix's gravatar image

@idefix: 1) Je n'en ai aucune idée. Il faut peut-être demander aux administrateurs du site. Sinon, si vous êtes inscrit sur MathemaTeX (où je réponds au pseudo de balf), il y a la possibilité d'envoyer des messages privés. 2) J'obtiens toujours une figure.

(30 Oct '17, 21:46) Bernard Bernard's gravatar image

pour 2) apparemment MIKTeK est capable d'installer à la volée auto-pst-pdf en n'installant pas pst-pdf. Et dans ce cas le script Perl pdfcrop fait le travail quand crop est on, et on n'obtient rien quand crop = off. En tout cas après avoir installé pst-pdf à la main, j'ai le même résultat (incomplet, juste la première figure) dans les deux cas, crop on et off.

.. je parie que vous avez la totalité des packages de MiKTeK installé

(31 Oct '17, 02:30) idefix idefix's gravatar image

.. je parie que vous avez la totalité des packages de MiKTeK installé

Pas du tout. Je n'ai d'installés que ceux dont j'ai eu besoin, à un moment ou à un autre.

(31 Oct '17, 02:50) Bernard Bernard's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus
  • L'erreur me semble assez illogique (pourquoi une compilation auxiliaire lancée par un shell-escape donne une erreur alors que la même séquence de commandes "a la main" n'en donne pas ??)

  • L'erreur me semble vraiment perdue dans les méandres du Postscript ou de pstricks et je ne me vois pas faire une formation accélérée dans ce langage. A priori l'erreur était dans un proloque postscript rajouté avec des commandes spéciales par dvips dans son fichier de sortie. Ce fichier sert ensuite d'entrée à ps2pdf (qui est un simple script qui appelle en fait GhostScript avec les bons paramètres pour faire la conversion en pdf). Je ne peux pas voir le dvi avec Yap sans planter Yap, Gswiew affiche des erreurs. Bref le postscript fournit par dvips avec ses ajouts est vérolé (d'ailleurs dvips le dit). D'où l'erreur de Ghostscript. Remonter à la source me semble insurmontable et improbable en fait.

  • L'exemple fonctionne chez plusieurs personnes avec peu ou prou la même configuration que moi (dont vous évidemment)

J'ai donc arrêté de finasser.

  • J'ai désinstallé MiKTeX via le panneau de config Windows et j'ai supprimé manuellement la totalité du dossier MiKTeX 2.9 pour être bien sûr qu'il n'en reste rien.

  • J'ai réinstallé une toute fraîche et nouvelle distribution de MiKTeX (Une basique) dans le même dossier MiKTeX 2.9 pour que tous les réglages de Texmaker restent valables (il faut que le dossier soit vide pour que l'installation se fasse)

  • J'ai compilé une fois mon fichier test pour charger les packages nécessaires. J'ai alors eu des erreurs différentes de la première fois (plus d'erreurs avec GhostScript par exemple, ce qui déjà était satisfaisant).

  • Puis j'ai lancé MiKTeX Update (admin) une première fois. Je n'avais pas le choix, il y avait 2 ou trois packages présélectionnés (dont asymptote) que j'ai mis à jour. Les autres packages n'étaient pas sélectionnables.

  • Puis j'ai relancé une seconde fois MiKTeX Update (admin). J'ai alors pu sélectionner tous les packages déjà installés pour faire leur mise à jour.

... et voilà, ça marche. Un peu bourrin, mais ça marche. C'est une solution (radicale) que je conseille quand ça devient vraiment bancal chez vous (et pas chez les autres). Plus aucune erreur, même pas un warning de box mal ajustée.

Le package auto-pst-pdf fonctionne avec pdflatex (chez moi enfin !)

alt text

Lien permanent

Publiée 31 Oct '17, 20:43

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 01 Nov '17, 00:41

Peut-être tout simplement y a-t-il eu un problème lors de la première installation. Ça fonctionne chez la plupart des autres.

(01 Nov '17, 02:07) Bernard Bernard's gravatar image

C'est bien possible en effet. Il y avait des trucs bizarres avec le gestionnaire de packages. Juste pour le fun en remettant un par un les anciens fichiers prologues de pstricks, je devrais pouvoir localiser le fichier ou se trouve l'erreur quand l'erreur apparaît. Merci en tout cas pour la patience et la présence (je vais contre les recommandations du forum qui suggère de ne jamais dire merci ... pardon)

(01 Nov '17, 02:54) idefix idefix's gravatar image

He bien en effet en remettant l'ancien répertoire texmf\dvips\pstricks qui contient tous les prologues postcript de pstricks pour dvips, et en changeant juste l'ancien pstricks.pro par le nouveau. Tout fonctionne à nouveau parfaitement même avec tout le reste ancien. Donc le bug est dans cet ancien fichier postcript de 11 pages (quand même), mais une seule occurence de pst@angleunit

to Cartesian (origimal) /PtoC { pst@angleunit 2 copy cos mul 3 1 roll sin mul } def %

... pour aller au delà faut se plonger dans le postscript

(01 Nov '17, 03:31) idefix idefix's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.