Previous Contents Next

Chapter 24   Préviewers et viewers

Les viewers et previewers présentés ci-dessous peuvent permettre entre autres de visualiser des documents .dvi et .ps. Toutefois, ils ne sont pas attachés à LATEX.

24.1   Où trouver un previewer ?

Où trouver un viewer ?

Ghostscript, Ghostview et GSview pour PC, Mac et station de travail sont disponibles sur http://www.cs.wisc.edu/ ghost/index.html.

viewps de T. Kiffe est inclu dans la distribution CMacTeX disponible sur CTAN.

TrueTeX est un viewer pour PC sous windows.

gv est une interface basée sur Ghostview et améliorée. Les actions disponibles sont nombreuses et il est possible de lire un document sur écran. On dispose aussi de l'anti-aliasing et de zooms impressionnants sur les parties de la page que l'on veut. gv peut même afficher des fichiers PDF si on dispose de la version de GhostScript adéquate.

Pour plus de détails consulter : http://wwwthep.physik.uni-mainz.de/ plass/gv/ ou un site FTP : ftp://thep.physik.uni-mainz.de/pub/gv/.

gv tourne sur les versions d'Unix les plus courantes, il faut néanmoins disposer du widget Xaw3d.

24.2   Comment visualiser des fichiers non postscript sous xdvi ?

D. Barbier propose le script suivant pour inclure des fichier MPS générés pas Metapost.

La démarche retenue est de pomper dans le .ps toutes les définitions qui manquent à ce pauvre xdvi. Par exemple, pour voir les dessins dans le fichier essai.tex, je fais :

    makepro essai.tex
Ce qui génère essai.ps (s'il est vieux) et produit un fichier essai.pro. Il ne reste plus qu'à mettre \special{header=essai.pro} avant le \begin{document} et le tour est joué. Quand on modifie le source (on rajoute des dessins), il suffit de relancer makepro, et de recompiler le document.

Quelques remarques :

Comme je ne connais pas grand chose en PostScript, toutes les remarques seront les bienvenues. Par exemple, les paramètres dans fshow et fstore sont mis au pif. Quelles sont les bonnes valeurs ? Comment faire pour que Psfrag passe à la moulinette ? Et bien d'autres choses.

%%%% debut macro %%%% 
 #!/bin/sh 
 # D. Barbier 31/10/97  barbier@cmapx.polytechnique.fr 
 # Commande : makepro nom_de_fichier 
 # Usage    : voir ci-dessous (ou taper makepro -h) 
 usage="Usage: `basename $0` nom
[.tex]\n\ 
 Cree un preambule 
\"nom\".pro qui permet l affichage 
 des fichiers non postscript (inclus par 
\"nom\") avec 
 xdvi (version 20 et plus).
\n\ 
 Les applications sont notamment l inclusion de fichiers 
 generes par Metapost." 
 

 case "$#:$1" in 
    1:-h
*|1:--h*) echo "$usage"; exit 0;; 
    1:
*) ;; 
    
*) echo "$usage"; exit 1;; 
 esac

 

 if test -r "$1" ; then 
    filetex=$1 
    file=`echo "$filetex" | sed -e 's/
\.[.]*$//'` 
 else 
    file=$1 
    filetex=$file.tex 
    if test ! -r "$filetex" ; then 
        echo "Erreur: le fichier $file n existe pas" 
        exit 1 
    fi 
 fi 
 filedvi=$file.dvi 
 fileps=$file.ps 
 filepro=$file.pro 
 rm -f $filepro 
 # On teste si la commande 
\special{header=...} 
 # est dans le fichier 
 # Autant ne faire qu'une compilation avant de 
 # voir le resultat 
 ligne="
\\\\special{header=$filepro}" 
 if test -z "`grep $ligne $filetex`" ; then 
    echo "Rajouter la comande $ligne avant 
\\\\begin{document}" 
    exit 1 
 fi

 

 echo "%!" > $filepro

 

 # On ne compile le .tex que si necessaire. Il y a 
 # plusieurs possibilites pour voir la date de modification 
 # des fichiers : 
 # 1) utiliser newer fourni avec certaines distributions de TeX 
 #    (je n'ai pas reussi a le faire marcher). 
 # 2) test (si l'option -nt est supportee) 
 # 3) creer un makefile. 
 # J'ai choisi cette derniere solution 
 echo "$filedvi: $filetex
\n\tlatex $filetex\n\ 
 $fileps: $filedvi
\n\tdvips -o $fileps $filedvi\n" > .tmp$$

 

 make -f .tmp$$ $fileps

 

 rm -f .tmp$$

 

 awk ' 
 # Liste des preambules qu on veut utiliser 
 BEGIN {header
["tex.pro"]=1;header["texps.pro"]=1} 
 /%%BeginProcSet:/ { if ( header
[$2] == 1 ) {getline 
 while ( $1 != "%%EndProcSet" ) {print;getline}}} 
 /%%EndProlog/ {exit 0} 
 ' $fileps | 
 # On supprime la creation des dictionnaires. 
 sed -e 's%/TeXDict 
[[:digit:]]* dict \([[:alpha:]]*\)%%' \ 
    -e 's%/SDict 
[[:digit:]]* dict \([[:alpha:]]*\)%%' \ 
      > > $filepro 
 

 # Ce sont les commandes qui font l affichage. 
 # En remplacant les commandes de finclude.pro par celles-ci, 
 # ca a l air de marcher

 

 cat < < EOF > > $filepro 
 /fstore{TeXDict begin /VResolution 120 def /Resolution 120 
 def end 
 dup dict exch{dup 4 2 roll put}repeat def}bind def 
 /fshow{gsave 72 TeXDict /Resolution get div -72 TeXDict 
 /VResolution get div scale 1 
 5 div dup scale get cvx exec show grestore}bind def 
 EOF

 

 # Et la, ce sont les commandes de fontes 
 awk ' 
 /TeXDict begin (
[[:digit:]]* ){5}/ {i++} 
 /TeXDict begin (
[[:digit:]]* ){5}/,/end/ {if (i==1) print} 
 /%%EndProlog/ {exit 0} 
 ' $fileps > > $filepro 
 

 echo "Fichier $filepro genere"

 

 exit 0 
%%%% fin macro %%%%

Previous Contents Next