Previous: 6 Slides
Up: Applyx 054
Next: 8 Algorithmic
  Contents
  Index
Subsections
- La gestion des images encapsulées (fichiers *.eps) est la suivante
: la visionneuse lyx, ainsi que ghostscript appelé sur l'image coupent
l'image selon la bounding box. Tandis que le résultat (en dvi ou en
ps) est obtenu en plaçant la bounding box dans le cadre prévu, tout
en laissant le reste de l'image déborder
- Modification assistée par ordinateur de la "bounding box"
par essais et erreurs (visionneuse = gv). Le principe en est donné
dans le Listing 10.
- comment obtenir le calcul automatique de la bounding box (comme cela
se fait sous winxx) ?
- comment intégrer les manipulations postscript dans la visionneuse
postscript ?
7.2 Visualiser
- Les fichiers écrits en *.ps sont des programmes. Ils ne sont pas
destinés à être lus par des êtres humains. Mais parfois, il est utile
de comprendre et de trouver la modification qui va bien.
- Un fichier écrit à travers dvips contient
- des fichiers ProcSet *.pro, constituant le dictionnaire TEXDict
/usr/share/texmf/dvips.
- des fichiers Font ...
- et enfin quelques lignes spécifiques au fichier source
- Pour y comprendre quelque chose, il faut commencer par tout recouper
à une ligne par instruction, c'est à dire insérer un saut de ligne
après chaque def ainsi qu'à chaque N\
ou B\ (qui sont des alias pour def).
Le batch mk_joli_eps fait cela.
- Il est toujours utile d'obtenir une version imprimée maniable des
pages man. Pour nous, cela veut dire impression recto-verso, deux
pages par face, retournement italien (fonte 7).
- En fait, les anciennes pages man étaient stockées sous forme d'un
texte déja mis en page (à la façon des rfc). Dans ce cas, il est raisonnable
d'adapter la mise en impression pour retrouver la mise en page prévue
(fonte 8).
- La syntaxe utilisée est celle de la commande man, soit : man
5 toto pour obtenir la page man de toto(5). La plupart du temps,
le numéro est inutile. Le choix entre fonte 7 et fonte 8 se fait par
le nom sous lequel le batch est appelé (11).
-
-
- En cas de ratage à l'impression, on peut repartir du fichier /docs/man/man_xxx.ps.
Ce fichier PostScript doit être visualisé en "landscape",
et imprimé tête à gauche. Prendre garde au fait que les pages man
changent de façon peu prévisible (nouveaux packages ?) : il convient
donc de faire les reprises rapidement.
- En pratique, il faut tenir compte d'un comportement variable des divers
ordinateurs. Sur certains il faut -rotate-even-pages et sur
d'autres non. De même (pour la seule
), il faut remplacer
"Orientation: Landscape" par "Portrait"
dans le fichier *.ps. Avec les mises à jour par copie mutuelle,
il faut utiliser $HOSTNAME pour faire les choix.
- Dans le même genre d'idées, il est utile d'avoir une impression compacte
des fichiers de commande... en deux colonnes la plupart du temps,
et en une seule colonne lorsque les lignes sont vraiment trop longues.
- Le batch rv_edit automatise cela en stockant le résultat au lieu
de l'envoyer directement à l'imprimante. Selon l'existence ou non
d'un message d'erreur, il y a impression ou remise en page puis impression
(12).
-
-
- Le programme enscript permet la réalisation d'un fichier
postscript exprimant la mise en page d'un fichier texte seul (*.txt).
La version fournie avec
est la 1.6.4.
- Avec (specifiquement) la
, divers problèmes sont apparus.
Ces problèmes étaient en fait dûs au pilote d'imprimante fourni avec
la distribution (mauvaise gestion de "Orientation: Landscape"
et visualisation dans gv).
- Pour une imprimante avec recto-verso décrit comme "bords
longs" sur l'imprimante et décrite comme recto seul sur l'ordinateur,
il faut utiliser -rotate-even-pages. Pour une imprimante recto-verso
décrite comme recto-verso, cela n'est pas utile.
- L'impression en recto-verso sur une imprimante recto seul est en principe
très simple : on imprime d'abord les pages paires puis on retourne
et on imprime les pages impaires. En réalité, cela plante très souvent.
- Le premier problème est celui du papier. Une impression laser se fait
par calandrage et donc la main du papier change après la première
impression. Quand on utilise une imprimante recto-verso, le papier
n'a pas trop le temps d'évoluer, et de plus il reste plus ou moins
margé. Lors d'une impression en deux fois, le papier a le temps d'évoluer.
- Pour cette raison, il faut donc utiliser le bac de réserve comme source
de papier lors du premier passage et le passage direct ("manual
feeder") lors du deuxième passage. La manoeuvre consistant
à replacer le papier dans le bac échoue presque toujours. D'une part
les feuilles collent vers la fin. D'autre part le bon placement du
papier dépend de l'imprimante ; ici : imprimé dessus, avant vers l'opérateur.
- Les scripts ci-dessous ont été écrits pour la
et l'imprimante
PostScript recto HP5M. Ils n'ont pas été utilisés depuis.
- Ces scripts supposent que le texte à imprimer est en postscript paginé.
Pour un fichier texte, utiliser l'option "printspec"
dans kedit, qui commence par envoyer le document sur "enscript".
- Deux méthodes d'appel : soit en ouvrant un terminal dans le répertoire
du fichier, soit en utilisant les deux boutons d'appels placés sur
la barre des tâches. Dans le premier cas, le fichier est désigné par
son nom, dans le second, il s'agit du fichier *.ps le plus récent
parmi les fichiers de certains répertoires temporaires. Dans les deux
cas, ce fichier subit les actions suivantes :
- Éventuelle réécriture (fixps) vers ~/docs/ps/tout.ps,
puis découpe (pstops) en
~/docs/ps/even.ps et ~/docs/ps/odds.ps.
- Envoi à l'imprimante des pages verso (en ordre inverse), le papier
venant du bac de réserve.
- rv2 : Envoi à l'imprimante des pages recto (en ordre direct),
le papier venant du feuille à feuille. Ne pas mettre trop de feuilles
à la fois. Si l'on charge en plusieurs fois, il faut entrouvrir le
bac direct pour que l'impression s'arrête lau lieu de se poursuivre
sur les feuilles blanches.
- rv3 : Reprise sur erreur de la phase 1 (sans tout recalculer).
- La commande fixps lance une réécriture du fichier. Cette phase est
cruciale, car tout repose sur la fiabilité des commandes de pagination.
Certaines fois cette réécriture est nocive : faire des essais !
- La commande pstops permet de réorganiser les pages d'un document postscript
paginé : permet une impression "deux pages en une",
y compris en divisant en deux lots pour faire du recto-verso. On peut
aussi imprimer des cahiers.
- Au passage, configurer Netscape (netscape nous broute) pour la vision
directe des *.ps et *.ps.gz. Manoeuvre ahurissante
: à la rubrique préférences/navigateur/applications/postscript,
placer l'incantation kghostview %u -caption "%c"
%i %m. La décompression est alors le fait du viewer.
On aboutit à Listing 13, qui conduit à des résultats
différents selon le nom de l'appel :
- [0] provoque une division du fichier post-script en deux passages,
puis imprime directement les pages paires (qui sortiront à partir
de la fin).
- [1] commence par une réécriture complète du fichier, avant division
- [9] provoque la division, sans réécriture, ni envoi à l'imprimante
- [2] envoie les pages impaires (les placer dans le bac feuille à
feuille). Un bouton sur la barre des tâches évite d'ouvrir une fenêtre
de commande.
- [3] en cas de ratage de l'impression paire, on peut réenvoyer les
pages correspondantes.
- [-#] option valable pour 0, 1, 9 : détermine le nombre de copies
(ce nombre est décrit dans le fichier .ps : il n'y a donc qu'un seul
envoi vers l'imprimante)
Diverses manoeuvres sont entreprises.
- La reconnaissance automatique du "plus récent" met
en concurrence kghostview et klyx. Il faut donc
qu'il existe au moins un répertoire klyx, même si une purge de ces
répertoires vient d'avoir lieu (ou s'ils n'ont jamais existé...) :
créer un fichier /tmp/lyxqq/lyxqq/lyx.ps_pastouche
- En cas de besoin, le fichier tout.ps est décompressé.
- Si la taille du fichier ne nécessite qu'une seule page (cas fréquent
avec des fichiers issus de kedit/enscript), ce fait est détecté et
le recto est directement envoyé à l'impression.
- Les fichiers temporaires utilisés par ce batch doivent être surchargeables
par tout le monde : leur donner cet attribut (ou bien les détruire
à la volée).
Previous: 6 Slides
Up: Applyx 054
Next: 8 Algorithmic
  Contents
  Index
douillet@ensait.fr
2010-03-01