atelier des textes

Fabriquer une page à insérer dans un étui de cd

Plusieurs choix au départ: TeX ou pdfTeX, ConTeXt, LaTeX, ReportLab.

TeX ou pdfTeX

Comme ces systèmes ne comprennent rien aux signes diacritiques du français et de l'allemand dès qu'il s'agit de couper des mots, ils ne sont pas praticables pour mon projet.

ReportLab

Comme ce paquet est déjà écrit en Python, je pensai y trouver un moyen pour raccorder la fabrication de la page à la fabrication du cd-audio. Mais j'ai dû déchanter.

En effet,ce n'est pas tellement la documentation fournie que je critique: elle est abondante et volumineuse, mais la structure générale. La classe Canvas admet quelques formes géométriques: ligne, rectangle, cercle, ellipse, courbes de Bézier; mais elle ne connaît pas le polygone. Or c'est bien la classe Canvas qui est préconisée pour recevoir toutes les formes.

En cherchant plus loin, on trouve une forme polygonale, mais sa mise en chantier ne s'accomode pas du Canvas. Après quelques heures de boulot, on doit tout recommencer à zéro ? J'ai préféré abandonner.

ConTeXt

ConTeXt est en construction et navigue entre plusieurs versions. Le langage graphique de prédilection est actuellement Metapost - que tout simplement je n'aime pas, car j'ai l'impression d'être redevenu le servant de l'ordinateur auquel il faut tout mâcher avant qu'il ne se mette en route. Donc pas de ConTeXt. Il reste LaTeX bien que ce ne soit plus un modèle de cohérence.

LaTeX

Ce système de mise en page contient actuellement les paquetages memoir, geometry et pstricks qui permettent de résoudre les problèmes qu'on peut se poser. Je passe sur quelques accrocs avec une nouvelle imprimante qui est bien annoncée comme PostScript, mais j'ai quelques doutes fondés: si je lui envoie un fichier de vrai PostScript, elle ne sort que de l'art non figuratif.

Metapost, Tikz et dérivés

Ces langages souffrent de ce que le résultat de ce qui est demandé n'est pas visible ou mentalement représentable à la lecture. Par exemple:

\begin{tikzpicture}[thick]
    \path[draw] (-4,0)  coordinate [label= left:$A$] (A)
            -- ( 0,4)  coordinate [label=above:$C$] (C)
            -- ( 4,0)  coordinate [label=right:$B$] (B)
            -- cycle;
    \foreach \point in {A,B,C}
           \fill [black] (\point) circle (2pt);
    \draw [color=red] circle(4cm);
    % The radius of the inner circular arc is equal to the length of BC.
    % Use the math engine to do the necessary calculations and store the
    % radius in the \n1 register
    \draw[color=red,fill=black!20]
         let \p1 = ($ (B) - (C) $),
             \n1 = {veclen(\x1,\y1)} in
         (A) arc (180:360:4cm) arc (-45:-135:\n1);
\end{tikzpicture}

dessine la figure visible

ici

Le chantier LaTeX

Le préambule

Le texte source commence par un préambule où on charge les outils

\documentclass[a4paper,portrait,12pt]{memoir}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,left=0.0cm,right=0.0cm,top=0.0cm]{geometry}
\usepackage[dvips]{graphicx,color}
\usepackage{pstricks}
\usepackage[frenchb]{babel}
\setlength{\parindent}{0cm}
\setlength{\parskip}{1.2ex plus 0.9ex minus 0.4ex}
\begin{document}
\begin{pspicture}(0,0)(21,29.7)

Là on met ce qu'on veut ...

\end{pspicture}
\end{document}

Le préambule comprend: : format du papier (a4paper), présentation (portrait), grandeur de la fonte de base (12pt) et le nom du paquetage qui transmet plus haut aux divinités latexiennes.

Puis deux lignes qui proclament de façon sybilline qu'on utilise un clavier à la française.

En vertu du principe de précaution (cf. la Constitution), on confirme au paquetage geometry que le papier est bien au format a4, et on en profite pour dire qu'on met les marges à zéro. Cela permettra d'utiliser toute la page.

On continue en proclament qu'on voudra utiliser les pilotes (drivers) produisant du PostScript avec des graphiques et des couleurs: \usepackage[dvips]{graphicx,color}. C'est utile avec mon imprimante ? Je ne sais pas, mais ça ne gâte rien.

Enfin je fais entrer en scène les paquetages pstricks et babel auquel je précise que ça va être du frenchb (ponctuation, petites habitudes pour couper les mots et autres reliques d'imprimeurs - comme l'Imprimerie nationale a été jetée aux orties par la Ve République, il nous restera au moins ça).

Les \setlength informent le fabricant de paragraphes de combien doit être le recul en début de paragraphes et quel espace on peut laisser d'un paragraphe à l'autre. Dans notre cas, ces indications sont inutiles si on ne rédige pas de texte suivi.

Avec \begin{document} finit le préambule et commence le contenu.

Le contenu

Comme on a informé Mme Latex qu'on ne voulait pas de marges; on peut sans tarder mettre à la disposition du dessinateur toute la surface de la page: \begin{pspicture}(0,0)(21,29.7) Le coin en bas à gauche correspond à (0,0) et le coin en haut à droite à (21,29.7).

On peut s'en donner à coeur joie: tirer des lignes, placer des textes et des texticules, en grand, en gras, en italique, et on peut profiter des prix bas actuels pour ajouter du grec.

Comme la feuille doit être pliée de façon inhabituelle, il faut tout le temps veiller à faire des rotations de plus ou moins 90 degrés. En outre, il faut enserrer les fragments de texte dans les espaces; pour y arriver on utilise les formes minipage - ce qui donne comme source des passages comme clui-ci:

\rput[r]{-90}(18.5, 0.5){
\begin{minipage}[t]{11.0cm}
{La durée de vie d'un disque gravé
est d'environ cinq ans. Le prix de vente de ce
disque tient compte de cette durée de vie
réduite.}
\end{minipage}}

En clair, on vient de demander que la minipage soit placée au point (18.5, 0.5), que le texte soit aligné à droite, puis roté de -90 degrés. Ensuite le texte contenu dans la minipage doit être taqué vers le haut [t] (avec t comme top) et s'étaler sur une largeur de 11cm. Ce qui est étonnant, c'est que ça marche.

Oui, ça marche, mais combiner les taquages vers le haut ou le bas, les alignements à gauche ou à droite et les rotations à plus ou moins 90 degrés sont la cause de quelques sueurs expérimentales.

Pour finir

Il suffit de dire à Mme Latex que le tour est joué:

\end{pspicture}
\end{document}

et passer à la compilation. Le cadre qu'on s'est construit est évidemment réutilisable.

Pour que le document soit digéré par l'imprimante PostScript, il vaut mieux convertir au format PDF par ps2pdf.

Le source et le résultat

Un modèle de source est lisible ici

et le résultat - un fichier PDF - là.

Si l'imprimante est satisfaite, il faut faire un petit travail de pliage et couper le bout qui dépasse. On peut aussi couper d'abord et plier ensuite.

Copyright 2010 (c) René Bastian - rbastian (arrobe) free.fr