previous up next contents index
Previous: 6 Slides Up: Applyx 054 Next: 8 Algorithmic   Contents   Index

Subsections

7 Postscript

7.1 Images encapsulées

  1. 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
  2. Modification assistée par ordinateur de la "bounding box" par essais et erreurs (visionneuse = gv). Le principe en est donné dans le Listing 10.


    \begin{algorithm}
% latex2html id marker 1078
[htbp]
\vskip 0.5 em
\par
\verbat...
...yx/qbb_bounding_box}
\par
\caption{bin/qbb\_bounding\_box
}
\par
\end{algorithm}


7.2 Visualiser

  1. 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.
  2. Un fichier écrit à travers dvips contient

    1. des fichiers ProcSet *.pro, constituant le dictionnaire TEXDict /usr/share/texmf/dvips.
    2. des fichiers Font ...
    3. et enfin quelques lignes spécifiques au fichier source
  3. 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.

7.3 Pages man

  1. 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).
  2. 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).
  3. 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).


    \begin{algorithm}
% latex2html id marker 1104
[htbp]
\vskip 0.51 em \verbatiminput{Inclu_c_applyx/pman.txt}
\par
\caption{Le script pman
}
\par
\end{algorithm}

  4. 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.
  5. 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 $ SuSE-8.1$), 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.

7.4 Mise en page compacte de fichiers texte

  1. 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.
  2. 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).


    \begin{algorithm}
% latex2html id marker 1124
[htbp]
\vskip 0.51 em \verbatiminp...
...lu_c_applyx/rv_edit.txt}
\par
\caption{Le script rv\_edit
}
\par
\end{algorithm}

7.5 enscript

  1. 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 $ SuSE-10.2$ est la 1.6.4.
  2. Avec (specifiquement) la $ SuSE-8.1$, 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).
  3. 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.

7.6 Recto-verso sur imprimante recto

7.6.1 Principe de la manoeuvre

  1. 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.
  2. 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.
  3. 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.
  4. Les scripts ci-dessous ont été écrits pour la $ SuSE-7.0$ et l'imprimante PostScript recto HP5M. Ils n'ont pas été utilisés depuis.
  5. 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".
  6. 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 :

    1. Éventuelle réécriture (fixps) vers ~/docs/ps/tout.ps, puis découpe (pstops) en  
      ~/docs/ps/even.ps et ~/docs/ps/odds.ps.
    2. Envoi à l'imprimante des pages verso (en ordre inverse), le papier venant du bac de réserve.
    3. 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.
    4. rv3 : Reprise sur erreur de la phase 1 (sans tout recalculer).
  7. 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 !
  8. 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.
  9. 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.

7.6.2 Détails des scripts

On aboutit à Listing 13, qui conduit à des résultats différents selon le nom de l'appel :

Diverses manoeuvres sont entreprises.

  1. 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
  2. En cas de besoin, le fichier tout.ps est décompressé.
  3. 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.
  4. 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 up next contents index
Previous: 6 Slides Up: Applyx 054 Next: 8 Algorithmic   Contents   Index


douillet@ensait.fr
2010-03-01