Page 1 sur 1

Changement de compilation

MessagePosté: Mardi 09 Juillet 2019, 18:07
par denis_dub
Bonjour,

Depuis quelques années je compile mes supports de cours en utilisant la suite Latex + dvips + ps2pdf + Voir Pdf
Et cela fonctionne bien dans un doc master avec des inclusion de plein de fichier *.tex par chapitre.

J'ai des graphiques en pstrick et des fichiers graphiques inclus au format unique eps.

Tout va bien....

Mais je ne peux pas utiliser le package "pdfpages" (je n'obtiens que des pages blanches) à cause de dvips semble t'il.
Ainsi pour contourner le pb, je fais une capture de mon pdf , le sauve en png et le convertit en *.eps. La compilation est correcte.

Mais mais le défaut prinicpal est que si mon pdf est principalement du texte, alors le fichier au format *.eps atteint une taille de plusieurs Mo et la compilation est longue.

Pour ne plus avoir cet inconvénient j'ai pensé à compiler avec pdflatex.

J'adapte donc mes fichiers *.tex en insérant les graphiques en pstrick en autre chose etc .... Cela j'y arriverai avec un peu de temps. L'idée est d'avoir la commande includegraphic utilisable pour les jpg, png etc ... De même pour enfin inclure directement tout ou partie d'un pdf.

Etant donné que les modifs vont prendre un peu de temps sur mes séquences de cours, ma question pour les utilisateurs expérimentés est donc : Voyez vous un avantage majeur à rester avec la compilation "Latex + dvips + ps2pdf + Voir Pdf" par rapport à une compilation avec pdflatex ? Quel serait les point durs ?

Merci de votre retour d'expérience.

Cordialement.
Denis.

Re: Changement de compilation.

MessagePosté: Mercredi 10 Juillet 2019, 09:32
par evariste_G
Bonjour.

Il y a un moyen plus simple : compiler via pdflatex en acceptant les codes Pstricks, comme le montre cet exemple:

Code: Tout sélectionner
\documentclass[a4paper]{article}
\usepackage[miktex]{pdftricks2}
\usepackage{pdfpages}
\begin{document}
\begin{pspicture}(0,0)(10,10)
\psline(0,0)(10,10)
\end{pspicture}

\includepdf{document.pdf}
\end{document}


Ici, l'appel du package pdftricks2, avec l'option miktex si vous utilisez Miktex bien sûr, permet de compiler du code pstricks, même en compilant via pdflatex.

Re: Changement de compilation.

MessagePosté: Mercredi 10 Juillet 2019, 11:32
par rebouxo
Je suis passé il y a 4 ou 5 ans sous pdflatex, et je ne le regrette pas.
À part la solution proposé par evariste, on peut aussi utilisé l'extension auto-pst-pdf, qui permet d'inclure le code pstricks et les eps directement dans ton pdf (en faite c'est une compilation à la volée, qui transforme tous ces graphiques en pdf, puis les inclus. En général cela se passe bien).

Olivier

Re: Changement de compilation

MessagePosté: Jeudi 11 Juillet 2019, 18:27
par denis_dub
Bonjour,

A l'aide de vos réponses, j'ai fait ma petite cuisine :

Dans Texmaker (je n'avais pas précisé) j'ai rajouté l'option -shell-escape , après une autre recherche sur le forum, dans le menu configurer Texmaker Onglet Commandes :
Code: Tout sélectionner
pdflatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex



Après avoir lu la doc CTAN de auto-pst-pdf j'ai ajouté dans mon entête :

Code: Tout sélectionner
\usepackage[on]{auto-pst-pdf}


Cela permet de faire compiler les pspicture simple ou celle exportées de géogébra.

Ensuite en testant un ECM avec pdflatex avec juste ceci :
Code: Tout sélectionner
\includegraphics[scale=0.1]{haddock}


J'ai pu voir que le fichier haddock.eps est convertit en pdf intermédiaire puis bien présent dans le document final.




Deuxième point l'ajout de
\usepackage{pdfpages}
Code: Tout sélectionner
\includepdf{document.pdf}

Fonctionne comme attendu avec pdflatex, mais laisse comme déja vu une page blanche avec Latex + dvips + ps2pdf

Merci beaucoup pour vos réponses.
Denis.

Ci après mon fichier d'essai si je n'ai pas été clair.

Code: Tout sélectionner
\documentclass[a4paper,11pt,onecolumn]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}

% definition des polices
\usepackage[widespace]{fourier}
\usepackage[scaled=0.875]{helvet}
% fin def police


\usepackage{amsfonts,amsmath,amssymb}


\usepackage[a4paper, dvips, left=1.5cm, right=1.5cm, top=2cm,
bottom=2cm, marginpar=5mm, marginparsep=5pt]{geometry}

\usepackage{graphicx}

\usepackage{pdfpages}

\usepackage{pst-node}
\usepackage{pst-all,pst-eucl}  % besoin pour tracer des axes gradués.


\usepackage[on]{auto-pst-pdf}

\begin{document}

\begin{minipage}{4cm}
   \includegraphics[scale=0.1]{haddock}
\end{minipage}
\begin{minipage}{14cm}
\vspace{1\baselineskip}
Dans la bande dessinée de Tintin, le capitaine Haddock utilise souvent des expressions qui se ressemblent lorsqu'il est en colère. \par
\textbf{{\large Recopier sur votre copie}} et traduire chacune de ses phrases à l'aide d'une puissance de 10.

\end{minipage}  \par


\begin{pspicture}(0,0)(10,10)
\psline(0,0)(10,10)
\end{pspicture}

% code importé depuis géogébra
\newrgbcolor{xdxdff}{0.49019607843137253 0.49019607843137253 1.}
\psset{xunit=1.0cm,yunit=1.0cm,algebraic=true,dimen=middle,dotstyle=o,dotsize=10pt 0,linewidth=1.6pt,arrowsize=3pt 2,arrowinset=0.25}
\begin{pspicture*}(-0.25898,-0.6625815112418076)(5.616708958595974,0.7102450954730558)
\multips(0,0)(0,1.0){2}{\psline[linestyle=dashed,linecap=1,dash=1.5pt 1.5pt,linewidth=0.4pt,linecolor=lightgray]{c-c}(-0.25898,0)(5.616708958595974,0)}
\multips(0,0)(1.0,0){6}{\psline[linestyle=dashed,linecap=1,dash=1.5pt 1.5pt,linewidth=0.4pt,linecolor=lightgray]{c-c}(0,-0.6625815112418076)(0,0.7102450954730558)}
\psaxes[labelFontSize=\scriptstyle,xAxis=true,yAxis=false,Dx=1.,Dy=1.,ticksize=-2pt 0,subticks=2]{->}(0,0)(-0.25898,-0.6625815112418076)(5.616708958595974,0.7102450954730558)
\begin{scriptsize}
\psdots[dotstyle=x,linecolor=xdxdff](1.,0.)
\rput[bl](1.0479489459306937,0.16){\xdxdff{{\large A}}}
\psdots[dotstyle=x,linecolor=xdxdff](3.,0.)
\rput[bl](3.046781451471754,0.16){\xdxdff{{\large B}}}
\psdots[dotstyle=x,linecolor=xdxdff](4.,0.)
\rput[bl](4.046197704242284,0.16){\xdxdff{{\large C}}}
\psdots[dotstyle=+,linecolor=xdxdff](0.,0.)
\end{scriptsize}
\end{pspicture*}


\includepdf{document.pdf}

\end{document}

Re: Changement de compilation

MessagePosté: Jeudi 11 Juillet 2019, 19:42
par balf
À mon avis, il y a encore plus simple: compiler avec xelatex.

Une autre possibilité, si l'on tient à compiler avec .pdflatex, est de convertir les fichiers .eps existants en fichiers graphiques .pdf avec l'excellent epspdf, qui calcule des bounding box tout à fait ajustées. Quant au code pstricks lui-même, le compiler en tant que fichier individuel avec la classe standalone avec xelatex, puis incorporer le .pdf résultant au moyen d'un \includegraphics. Cela permet de continuer à compiler le document principal avec pdflatex tout en obtenant in fine un .pdf dans lequel on peut zoomer à loisir, contrairement à une image .png
B. A.

Re: Changement de compilation

MessagePosté: Vendredi 12 Juillet 2019, 09:52
par MB
balf a écrit:À mon avis, il y a encore plus simple: compiler avec xelatex.


J'utilise personnellement lualatex pour la compilation de mes documents personnels mais il m'arrive de récupérer des figures pstricks que je souhaite incorporer directement. La compilation avec lualatex n'étant possible, j'ai tenté d'utiliser xelatex et standalone afin d'obtenir des fichiers pdf indépendants pour chaque figure. J'ai cependant constaté que la compilation xelatex ne donnait pas le résultat attendu et je me suis résolu à passer par latex puis dvipdf. Voici un exemple de fichier.

Code: Tout sélectionner
\documentclass[pstricks,preview,margin=1mm]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}(-0.4,-0.4)(7.4,4.4)
\psset{dotstyle=*,dotscale=1.2,linewidth=1pt}
\begin{footnotesize}
\rput(0,1.5){\dotnode{A}{\uput[l](0,0){A}}}
\rput(2,4){\dotnode{B}{\uput[u](0,0){B}}}
\rput(2,0){\dotnode{C}{\uput[d](0,0){C}}}
\rput(4,2.5){\dotnode{D}{\uput[u](0,0){D}}}
\rput(5.5,0){\dotnode{E}{\uput[d](0,0){E}}}
\rput(6,3.5){\dotnode{F}{\uput[u](0,0){F}}}
\rput(7,2){\dotnode{G}{\uput[r](0,0){G}}}
\end{footnotesize}
\begin{scriptsize}
\ncline{A}{C}\ncput*{\textsf{12}} \ncline{C}{E}\ncput*{\textsf{19}}\ncline{E}{F} \ncput*{\textsf{11}}\ncline{F}{G}\ncput*{\textsf{5}}\ncline{G}{E}\ncput*{\textsf{7}} \ncline{E}{D}\ncput*{\textsf{4}}\ncline{D}{F}\ncput*{\textsf{3}} \ncline{F}{B}\ncput*{\textsf{22}} \ncline{B}{D}\ncput*{\textsf{7}} \ncline{D}{C}\ncput*{\textsf{5}}\ncline{C}{B}\ncput*{\textsf{18}} \ncline{B}{A}\ncput*{\textsf{11}}
\end{scriptsize}
\end{pspicture}
\end{document}

Re: Changement de compilation

MessagePosté: Dimanche 14 Juillet 2019, 10:59
par balf
MB a écrit:J'ai cependant constaté que la compilation xelatex ne donnait pas le résultat attendu et je me suis résolu à passer par latex puis dvipdf. Voici un exemple de fichier.

Code: Tout sélectionner
\documentclass[pstricks,preview,margin=1mm]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}(-0.4,-0.4)(7.4,4.4)
\psset{dotstyle=*,dotscale=1.2,linewidth=1pt}
\begin{footnotesize}
\rput(0,1.5){\dotnode{A}{\uput[l](0,0){A}}}
\rput(2,4){\dotnode{B}{\uput[u](0,0){B}}}
\rput(2,0){\dotnode{C}{\uput[d](0,0){C}}}
\rput(4,2.5){\dotnode{D}{\uput[u](0,0){D}}}
\rput(5.5,0){\dotnode{E}{\uput[d](0,0){E}}}
\rput(6,3.5){\dotnode{F}{\uput[u](0,0){F}}}
\rput(7,2){\dotnode{G}{\uput[r](0,0){G}}}
\end{footnotesize}
\begin{scriptsize}
\ncline{A}{C}\ncput*{\textsf{12}} \ncline{C}{E}\ncput*{\textsf{19}}\ncline{E}{F} \ncput*{\textsf{11}}\ncline{F}{G}\ncput*{\textsf{5}}\ncline{G}{E}\ncput*{\textsf{7}} \ncline{E}{D}\ncput*{\textsf{4}}\ncline{D}{F}\ncput*{\textsf{3}} \ncline{F}{B}\ncput*{\textsf{22}} \ncline{B}{D}\ncput*{\textsf{7}} \ncline{D}{C}\ncput*{\textsf{5}}\ncline{C}{B}\ncput*{\textsf{18}} \ncline{B}{A}\ncput*{\textsf{11}}
\end{scriptsize}
\end{pspicture}
\end{document}


Le résultat est en effet bizarre. Tout de même, la construction de chaque \rput est peu orthodoxe: on fourre en chaque point (indiqué par ses coordonnées) des \uput(0,0). En compilant avec latex+dvipdf, je n'obtiens que les lettres groupées autour de l'origine. Avec xelatex, au moins, il y a des lignes, même si le résultat est étrange.

B. A.

Re: Changement de compilation

MessagePosté: Lundi 15 Juillet 2019, 10:28
par MB
C'est étrange car c'est avec xelatex (version Tex live 2018) que j'obtiens des lettres regroupées autour de l'origine. Avec la version Texlive 2019 j'obtiens une figure correcte mais le pdf généré est plus lourd. En ce qui concerne latex+dvipdf, j'obtiens les même résultat (correct) avec les versions Texlive 2018 et 2019. Je joints les fichiers pdf obtenus et je précise les versions des logiciels utilisés.

Code: Tout sélectionner
$ latex --version
pdfTeX 3.14159265-2.6-1.40.20 (TeX Live 2019)
$ xelatex --version
XeTeX 3.14159265-2.6-0.999991 (TeX Live 2019)


Code: Tout sélectionner
$ /usr/local/texlive/2018/bin/x86_64-linux/latex --version
pdfTeX 3.14159265-2.6-1.40.19 (TeX Live 2018)
$ /usr/local/texlive/2018/bin/x86_64-linux/xelatex --version
XeTeX 3.14159265-2.6-0.99999 (TeX Live 2018)

Re: Changement de compilation

MessagePosté: Dimanche 21 Juillet 2019, 14:20
par balf
Finalement, je pense avoir localisé ce qui pose problème à xelatex : l'emploi de coordonnées relatives pour placer les labels de nœuds, comme
\rput(0,1.5){\dotnode{A}\uput[l](0,0){A}}.

Il faut indiquer la véritable coordonnée, p. ex.
\rput(0,1.5){\dotnode{A}\uput[l](A){A}}.

Cela étant, le code est bien plus court si l'on utilise l'extension pst-eucl et si l'on met les commandes de polices à l'intérieur d'une command \everypsbox{....}:

Code: Tout sélectionner
  \documentclass[pstricks, preview, margin=1mm]{standalone
    \usepackage{pst-node}
    \usepackage{pst-eucl}

    \begin{document}

    \begin{pspicture}(-0.4,-0.4)(7.4,4.4)
    \psset{dotstyle=*,dotscale=1.2,linewidth=1pt}
    \everypsbox{\footnotesize}
   \pstGeonode[PosAngle={180,90,-90,90,-90,90,0}]%
   (0,1.5){A}(2,4){B}(2,0){C}(4,2.5){D}(5.5,0){E}(6,3.5){F}(7,2){G}

     \everypsbox{\scriptsize\sffamily}
    \ncline{A}{C}\ncput*{12} \ncline{C}{E}\ncput*{19}\ncline{E}{F} \ncput*{11}\ncline{F}{G}\ncput*{5}\ncline{G}{E}\ncput*{7} \ncline{E}{D}\ncput*{4}\ncline{D}{F}\ncput*{3} \ncline{F}{B}\ncput*{22} \ncline{B}{D}\ncput*{7} \ncline{D}{C}\ncput*{5}\ncline{C}{B}\ncput*{18} \ncline{B}{A}\ncput*{11}
    \end{pspicture}

    \end{document}

B. A.