TEX MIGNON TOUT PLAIN

Version imprimable


Le vénérable TeX est un langage des cavernes qui fait peur. Irrémédiablement brut, ancestral. Et le format Plain qui en est aussi proche que Mercure du Soleil, serait irrespirable par voie de conséquence. Pourtant…

La lettre et le roman se satisfont de cet outil, rudimentaire en apparence, mais à voies d’accès directes pour des usages simples. De quoi s’agit-il ? De remplir les pages. Les formats de TeX plus élaborés facilitent tout, mais rien dont aient besoin la lettre et le roman.

HISTORIQUE BRUTAL

TeX surgit en 1977 dans une informatique disparate et balbutiante, où, y propageant la tradition artisanale de qualité du résultat, il amenait une incontournable panoplie du rédacteur préfigurant les polices vectorielles et l’imprimante virtuelle.

TeX désignait ensemble le jeu d’instructions et le programme qui les interprétera. Ensuite, ils se sont différenciés en engendrant :
— Des “formats” : le rédacteur y trace le plan d’architecture du document.
— Des “moteurs” : ils lisent le plan d’architecture du document et le bâtissent.

Les moteurs marchent au pas de l’informatique en constante évolution. Les formats répondent aux besoins des utilisateurs. TeX, le tout premier moteur, a été gelé pour préserver la source originelle. Plain, le tout premier format, est compatible avec toutes les innovations des nouveaux moteurs.

DOCUMENTATION

Il n’y a pratiquement rien à mémoriser. Pour le basique, le nécessaire pense-bête ou gabarit tient sur une page. Les interfaces à menus et icônes pour coder en LaTeX ou ConTeXt deviennent préférables dès que les besoins vont au-delà du basique.

Un gabarit de lettre, un gabarit de roman, quelques lignes de code, agrémentées du succinct éclaircissement, et quant à les adapter et modifier votre intuition et votre clavier y pourvoiront amplement.

UNE LETTRE

Voici pour une lettre le code source à copier-coller, ou à télécharger sur http://visuel.ouvaton.org/lettre.tex :

%%%%%%%% DIMENSIONS DE LA FEUILLE %%%%%%%%

\special{papersize=210mm,297mm}

%%%%%%%% MARGES %%%%%%%%

%%% Attention, utilisez systématiquement pour séparateur décimal le point et non la virgule.

\hsize=17cm
\vsize=257mm
\hoffset=-0.54cm
\voffset=-0.54cm

%%%%%%%% FORMAT DE PARAGRAPHE %%%%%%%%
\parindent=0pt
\baselineskip=15pt
\parskip=3mm plus .4mm minus .2mm

%%%%%%%% LANGUE FRANÇAISE %%%%%%%%

\frenchspacing
\catcode`\:=\active
\def :{\unskip\kern .16667em\string:}
\catcode`\«=\active
\def «{\string«\kern .16667em\ignorespaces}
\catcode`\»=\active
\def »{\unskip\kern .16667em\string»}
\catcode`\;=\active
\outer\def ;{\unskip\kern .16667em\string;}
\catcode`\!=\active
\outer\def !{\unskip\kern .16667em\string!}
\catcode`\?=\active
\def ?{\unskip\kern .16667em\string?}
\catcode`\'=\active
\def '{\string’}

%%%%%%%% CÉSURE FRANÇAISE %%%%%%%%
\lccode"27="27
\lccode"2019="2019
\uselanguage{french}
\overfullrule=1cm

%%%%%%%% HOMONYMIES %%%%%%%%
\def\\{\hfil\break}
\def\newpage{\vfill\eject}

%%%%%%%% PIED DE PAGE %%%%%%%%
\nopagenumbers % désactive la numérotation des pages

%%%%%%%% POLICES %%%%%%%%
%%%CHARIS SIL
\font\general="Charis SIL" at 12pt      % Remplacez le nom de la police
\font\gras="Charis SIL/B" at 12pt       % par celui d’une autre
\font\cite="Charis SIL/I" at 12pt       % présente sur votre système
\font\hop="Charis SIL" at 5pt

%%% Exposant
\def\up #1{\raise .8ex\hbox{\hop#1}}

%%%%%%%% DÉBUT DU DOCUMENT %%%%%%%%
\general

\general

Monsieur Barbe Hurlante\hfill{\cite Tarbes le 19 avril 2010}\\
Impasse du Quai d’embarquement\\
Escalier 33\\
65000 Tarbes\\
Tél : xx xx xx xx xx

\null\hfill\vtop{\+ à Mademoiselle Anxiogène\cr
\+ 1 rue du Château d’eau\cr
\+ porte 10\cr
\+ 45000 Orléans\cr}
\cleartabs

\vskip 1cm


\centerline{Mademoiselle,}

~

TAPEZ ICI LE CONTENU DE VOTRE LETTRE.

\vskip 10cm

\centerline{En tout bien tout honneur}

\bye

Évidemment, vous voulez comprendre, et pour ce nous allons décortiquer ligne à ligne, histoire de débroussailler avant d’attaquer le roman et le recueil de poèmes. Mais sachez que vous aurez peu à modifier de ce code, si ce n’est le nom de la police de caractère et éventuellement les valeurs chiffrées. L’immédiate difficulté est que vous n’avez encore rien installé qui le rende exploitable.

LES MAINS DANS LE CAMBOUIS

Installation de TeX : préférez TeXLive à MikTeX, et de la version la plus récente. Non que MikTeX soit décevant, il est modulaire et tellement cool ! Mais il est très orienté LaTeX, et le dictionnaire de césure française utilisé par Plain y est désactivé. Linuxiens et Bsdéistes, c’est généralement TeXLive qui vous est proposé dans les dépôts logiciels : http://www.framasoft.net/article1320.html.

Un éditeur spécialisé : TeXworks ou TeXmaker sensiblement équivalents en terme de fonctionnalités, suffisamment légers pour cohabiter sur votre disque dur. Les avantages d’un éditeur spécialisé sont la coloration syntaxique, l’autocomplétion de certaines commandes…

COMPILER

Nous irons au plus simple, le moteur XeTeX. Achevez votre courrier dans l’interface de TeXworks, puis choisissez xetex dans la liste déroulante et cliquez sur le bouton vert.

TeXmaker est moins direct : Menu “Utilisateur”, sous-menu “commandes utilisateur” cliquez sur “éditez commandes utilisateur”. Ajoutez une commande que vous baptiserez xetex, et dans le champ du dessous :

xetex -interaction=nonstopmode %.tex

Vous pourrez alors appeler XeTeX depuis la barre d’icônes, et contrôler vos erreurs dans l’onglet des messages. Heureusement, nous ne sommes pas dans la haute ingénierie. Au pire, une accolade manquante ou superflue.

COMPILATION

Les instructions codées ont tout de l’invocation. XeTeX les entend, et en tire la connaissance du traitement à appliquer à votre courrier pour produire en sortie un bien beau PDF qu’il ne vous restera plus qu’à imprimer.

Mais il peut y avoir interférence, si par exemple vous avez accidentellement supprimé une accolade fermante. XeTeX s’interrompt alors pour vous interroger. Texmaker en nonstopmode ira jusqu’au bout quoi qu’il arrive, et signalera l’erreur dans l’onglet des messages.

LE TERMINAL

Ou son équivalent la fenêtre DOS, un terrain familier aux linuxiens et bsdéistes. S’y déplaçant via la commande cd vers le répertoire où est enregistré le fichier TeX, on l’y compile avec plus de visibilité et d’interaction que sous le manteau de TeXmaker.

xetex nomdufichier.tex

Aux messages d’erreur, dans le Terminal taper “h” puis sur la touche “Entrée” pour obtenir plus de précisions, “q” ou “x” pour abandonner et recommencer après correction. Le terminal fait peur quand on n’y est pas habitué. La simplicité du code, impliquant un moindre risque, le rend heureusement dispensable.

LES COULISSES

Un fichier PDF n’est rien d’autre qu’une archive compressée incluant les fontes et fichiers complémentaires utilisés dans le document, et les coordonnées strictes de chaque élément. Pour peu que l’on sache inhiber sa compression ou l’extraire de son archive, il est lui aussi un agrégat de texte et de balises.

Le positionnement précis de chaque élément de la page rend le langage PDF extrêmement verbeux et ardu. Bien que théoriquement ce soit possible, nul ne songerait à l’utiliser directement pour créer ne serait-ce qu’une page.

TeXshop et TeXmaker sont tous deux équipés d’un lecteur de PDF, qui plus est la fonction SyncTeX y permet de passer aisément du PDF au fichier source pour les reprises d’accrocs.

AVANT-PROPOS TARDIF

Un listing informatique est constitué de code qu’interprétera ou compilera un programme, et de commentaires facilitant sa relecture par des humains. Les commentaires doivent être signalés par une balise.

En TeX, cette balise est le caractère %. Tout ce qui suit le % sur la même ligne sera ignoré par XeTeX et n’apparaîtra pas dans le fichier de sortie. Le % revient au statut ordinaire lorsqu’il est “échappé”, soit ainsi : “\%”, soit ainsi : “\string\%”.

Le même % désactive codes et contenus non immédiatement utiles mais à conserver au cas où.

DE PLAIN-PIED

MARGES ET PAPIER

\special{papersize=210mm,297mm}
%%%%%%%% La largeur puis la hauteur

\hsize=17cm     % hauteur de la zone de texte.
\vsize=257mm     % largeur de la zone de texte.
\hoffset=-0.54cm     % marge haute       1 inch=1 pouce = 2.54cm
\voffset=-0.54cm     % marge gauche

Les dimensions de la feuille sont ici de pure forme, le A4 étant la valeur par défaut pour peu que les locales de votre ordinateur soient réglées sur la France.

XeTeX, faute de précision supplémentaire, fixe les marges gauche et supérieure à 1pouce. Il faut alors retrancher 0,54 cm pour les porter à 2 cm. Les marges du bas et de droite se déduisent de \hsize et \vsize, respectivement hauteur et largeur de la zone de rédaction.

FORMAT DE PARAGRAPHE

\parindent=0pt % indentation des paragraphes
\baselineskip=15pt % hauteur de la ligne de base
\parskip=3mm plus .4mm minus .2mm % fixe la hauteur des sauts de paragraphes

Chaque nouveau paragraphe sera indenté de la valeur de \parindent. J’ai accordé la préférence à un saut de 3 mm pour marquer le changement de paragraphe, avec une élasticité de + 0,4 ou – 0,2 mm. Cette élasticité n’induira pas de variations sur la page courante.

\baselineskip fixe la hauteur d’interligne pour tout le document. On peut en jouer pour par exemple faire tenir le contenu sur une page, mais attention au risque que les voyelles accentuées décalent des lignes trop serrées. Nous verrons plus loin comment modifier localement cette valeur.

LANGUE FRANÇAISE

\frenchspacing
\catcode`\:=\active
\def :{\unskip\kern .16667em\string:}
\catcode`\«=\active
\def «{\string«\kern .16667em\ignorespaces}
\catcode`\»=\active
\def »{\unskip\kern .16667em\string»}
\catcode`\;=\active
\outer\def ;{\unskip\kern .16667em\string;}
\catcode`\!=\active
\outer\def !{\unskip\kern .16667em\string!}
\catcode`\?=\active
\def ?{\unskip\kern .16667em\string?}
\catcode`\'=\active
\def '{\string’}

L’instruction \frenchspacing ordonne à XeTeX d’adopter la norme française d’une seule espace après un signe de ponctuation. La suite est une collection de macros dont le résultat est qu’une espace insécable fine sera automatiquement insérée en lieu et place d’une espace ou absence d’espace avant chaque signe de ponctuation double — respectivement après pour le guillemet français ouvrant —, prévenant qu’ils soient rejetés en début de la ligne suivante.

Les puristes préfèrent un codage plus complexe qu’ils estiment plus propre, mais la documentation est trop écrite en anglais pour que j’y comprenne quelque chose. Je n’ai jamais eu à me plaindre de ma méthode approximative.

Comprenez que ce sont les signes de ponctuation eux-mêmes qui sont transformés en macros, en instructions. Ils ne sont pas seuls nécessitant une espace insécable. Le caractère Unicode de l’espace insécable est U+00A0, XeTeX l’ignore superbement et attend en lieu et place un tilde.

Si, pour les raisons développées plus loin, vous avez été amené à rendre au deux-points le statut de caractère ordinaire, n’écrivez pas “ :” mais “~:”. Écrivez 1~€ et non 1 €.

Pourquoi le tilde ? Parce que TeX date de bien avant l’Unicode, il lui fallait puiser l’outillage dans les 128 caractères alors disponibles.

Les deux dernières lignes de la collection de macros transforment automatiquement toutes les “simple quote” des machines à écrire et claviers d’ordinateurs en la véritable apostrophe, que par abus de langage nous en sommes venus à désigner sous le nom d’apostrophe ouvrante.

CÉSURE FRANÇAISE

\lccode"27="27
\lccode"2019="2019
\uselanguage{french}
\overfullrule=1cm

Sans surprise, nous désignons le français à XeTeX pour qu’il applique au document les règles de césure idoines. Les deux premières lignes lui signalent la simple quote et l’apostrophe comme des caractères ordinaires à ne pas ignorer dans les coupures de mots. \Overfullrule fixe la largeur du trait noir indiquant les dépassements dans la marge.

Une alternative est de consulter le fichier journal de compilation, dans le même répertoire et portant le même nom mais avec l’extension .log que le fichier compilé, et d’y repérer toutes les “overfull \hbox”. Le trait noir permet de les visualiser bien plus vite.

Que faire, en cas de ce trait noir ? Rajouter une césure optionnelle, sous la forme \-. Par exemple, “l’hom\-me”. Ce peut être à la ligne incriminée, ou la ligne au-dessus. XeTeX ignore superbement le caractère Unicode U+00AD de césure optionnelle. Pire, votre éditeur risque de l’interpréter comme un trait d’union, là où il n’a rien à faire.

Il est bien pratique de rédiger son brouillon dans LibreOffice avant de le donner en pâture à XeTeX. Mais ne l’y justifiez surtout pas, ou justifiez sans césures. Vous vous retrouveriez encombré d’une belle floraison de césures optionnelles. À supprimer, en utilisant les fonctions de copier-coller et de remplacement.

Césure forcée : “l’hom-{\break}me”. N’oubliez pas le trait d’union, n’oubliez pas de rectifier quand vous changerez de police.
La microtypographie peut sauver des impasses extrêmes — voir plus bas.

HOMONYMIES

\def\\{\hfil\break}
\def\newpage{\vfill\eject}

XeTeX a hérité de TeX qu’un passage à la ligne doit être transcrit en espace entre deux mots, et deux ou plus passages à la ligne en un saut de paragraphe.

Vous taperez \\, rendu synonyme de \hfil\break, soit un ressort fin horizontal précédant une coupure, pour passer à la ligne sans changer de paragraphe.

Vous taperez \newpage, rendu synonyme de \vfill\eject, soit l’instruction de saut de page précédée d’un ressort robuste vertical, pour forcer un changement de page en fin de paragraphe.

Les ressorts servent ici en occupant l’espace laissé disponible à interdire aux lignes et à l’interlignage de se distendre.

PIED DE PAGE

\nopagenumbers %    désactive la numérotation des pages

Une petite révision du rôle du %, l’instruction est suivie de son explication sous forme de commentaire. Attendons d’en arriver au roman pour apprendre à mettre en forme la numérotation des pages.

POLICES

%%%CHARIS SIL
\font\general="Charis SIL" at 12pt   % Remplacez le nom de la police
\font\gras="Charis SIL/B" at 12pt   % par celui d’une autre
\font\cite="Charis SIL/I" at 12pt   % présente sur votre système
\font\hop="Charis SIL" at 5pt

%%% Exposant
\def\up #1{\raise .8ex\hbox{\hop#1}

Vous indiquez à XeTeX les polices du système que vous souhaitez utiliser. Mais, contrairement aux autres formats de TeX, ou aux logiciels de bureautique, et à moins que vous n’utilisiez ses polices personnelles que je vous déconseille, Plain n’a pas l’esprit de famille.

Illustration par l’exemple : vous baptisez \general la police Charis SIL en 12 points. Pour utiliser dans la même taille la même police en sa variante grasse, vous devez renouveler l’opération avec un nouveau nom de baptême et en précisant la taille et la variante, et de même pour l’italique.

Choisissez la police qui vous convient, baptisez-la du nom qui vous agrée, mais respectez la syntaxe. La variante grasse est indiquée par /B, italique par /I, italique gras par /BI ou /IB. Sans l’une de ces indications, c’est obligatoirement la variante droite.

Tapez \cite avant le passage que vous voulez en italique, puis \general pour basculer en corps droit. N’oubliez surtout pas d’indiquer une police en début de document, sans quoi vous auriez la surprise d’un PDF émondé de ses voyelles accentuées, entre autres.

Les normes en vigueur imposent l’italique pour les formules latines. On peut en circonscrire l’usage par un groupe entre accolades : {\cite{ad vitam æternam}}. Les syntaxes alternatives \{ad vitam æternam} et {\cite ad vitam æternam} ne vous protègent pas des surprises.

La fonction \up : vous obtiendrez 1er par 1{\up{er}}, soit une réduction en police de 7 points accompagnée d’une surélévation de 0.8ex, valeurs que vous adapterez en fonction de la police.

DÉBUT DU DOCUMENT

\general

Plain n’exige pas de préambule. Vous pouvez déclarer n’importe où dans le document, à condition que ce soit avant de l’utiliser, une nouvelle police ou nouvelle fonction. Néanmoins, on a tout intérêt à simuler un préambule pour ne pas s’y perdre, et les frises de pourcentages sont bien pratiques pour s’y repérer. Ici débute le document. Et il débute obligatoirement par l’indication de la première police à utiliser.

Monsieur Barbe Hurlante\hfill{\cite Tarbes le 19 avril 2010}\\
Impasse du Quai d’embarquement\\
Escalier 33\\
65000 Tarbes\\
Tél : xx xx xx xx xx

Le nom de l’expéditeur et la date sur la même ligne, la date étant rejetée au fer à droite par un ressort robuste horizontal. Les ressorts ne peuvent se détendre dans le vide, celui-ci prend appui sur le nom de l’expéditeur.

Horizontal ou vertical, quand rien ne précède un ressort ou un saut, il reste sans effet. Il faut alors lui faire prendre appui sur \null, le vide qui n’en est pas un. La fonction \\ induit des sauts de ligne.

\null\hfill\vtop{\+ à Mademoiselle Anxiogène\cr
\+ 1 rue du Château d’eau\cr
\+ porte 10\cr
\+ 45000 Orléans\cr}
\cleartabs

Il est d’usage que les références du destinataire soient rejetées au fer à droite. La “boîte” \vtop est un contenant. Dans ce contenant, un groupe tabulé aligne à gauche les éléments de chaque ligne.

Un ressort robuste horizontal appuyé sur le vide \null qui n’en est pas un, repousse vers la droite contenant et contenu, avec pour effet que la ligne la plus longue touche exactement la marge droite.

\vskip 1cm

Rien de plus qu’un saut vertical de 1 cm. Si rien ne le précédait verticalement, il aurait fallu lui substituer \null\vskip 1cm

Copiez-collez ou rédigez votre courrier sitôt après ce saut, puis n’oubliez pas le \bye final sans lequel TeX ne saurait pas qu’il doit en rester là.

UN ROMAN

Dont le code source vous est déjà en partie familier.
À télécharger sur http://visuel.ouvaton.org/roman.tex

MARGES ET PAPIER

\special{papersize=148.5mm,210mm}
%%%%%%%% La largeur puis la hauteur

\hsize= 110mm   % largeur de la zone de texte
\vsize=170mm   % hauteur de la zone de texte
\voffset=-0.54cm    % marge haute
\output{\ifodd\pageno\hoffset -0.19cm\else\hoffset -1.04cm\fi\plainoutput}   %%% marge intérieure

Nous voici en A5. Avec la reliure, il ne peut plus être question de marges droite et gauche, mais intérieure et extérieure. Une fonction teste si le numéro de page est pair ou impair, et adapte la marge droite en fonction du résultat.

La hauteur \vsize peut être portée jusqu’à 175 mm pour parvenir à un nombre de pages divisible par 4, et prévenir que l’imprimeur en comble le nombre par l’ajout de pages blanches.

FORMAT DE PARAGRAPHE

\parindent=0pt    % indentation des paragraphes
\baselineskip=15pt    % hauteur de la ligne de base
\parskip=3mm plus .4mm minus .2mm   hauteur des sauts de paragraphes

Cette fois-ci, arbitrairement et pour l’exemple, le passage d’un paragraphe à l’autre est marqué par une indentation.

TYPOGRAPHIE, CÉSURE FRANÇAISE, JUSTIFICATION ET HOMONYMIES

Reprenez sans modification le codage en vigueur pour la lettre.

POLICES

\font\general="Linux Libertine" at 11pt   % Remplacez le nom de la police
\font\cite="Linux Libertine/I" at 11pt   % par celui d’une autre présente sur votre système

%%%Exposant
\font\hop="Linux Libertine/B" at 7pt
\def\up #1{\raise .7ex\hbox{\hop#1}}

Le choix des polices de caractère ne peut être innocent. Les polices à graisse régulière seront toujours plus lisibles, même à taille inférieure. La police Charis SIL ne manque pas de qualités. Sa “chasse” — terme technique pour l’extension en largeur — n’est pas excessive pour du A5. La Linux Libertine chasse moins en prévision de plus petits formats : ce codage n’est pas exclusif.

PIED DE PAGE

\font\num="Linux Libertine" at 9pt
\newtoks\rien
\rien={\null\hfill}
\newtoks\numero
\numero={{\leftskip=0pt\hfill{\num{— \folio\ —}}\hfill\par}}
\newif\ifdegarde \degardetrue
\footline={\ifdegarde\the\rien\global\degardefalse
\else\the\numero\fi}

La police \num à usage unique est fort logiquement déclarée juste avant cet usage.

Ensuite sont définis deux “tokens”, \rien pour une numérotation vide, et \numero pour l’affichage de la numérotation des pages. Notez que la mise en forme de cette numérotation est protégée par des accolades, sans lesquelles une mise en forme du flot de texte prendrait le dessus.

Ensuite une expression conditionnelle baptisée \degarde. Si \degarde est vrai, le token \rien occupe le pied de page, et le token “numero” dans le cas contraire, qui est aussi défini comme la valeur par défaut.

Il en résulte que pour désactiver la numérotation dans la page courante, il suffira d’y écrire n’importe où dans le flot de texte \degardetrue. Et ne rien écrire du tout dans le flot de texte suffit à activer l’affichage de la numérotation à toutes les autres pages.

EN-TÊTE

En A5 un roman peut bien s’en passer. Copiez le code du frontispice général dans le source de la version PDF de ce document, n’en modifiez que les valeurs. Rien de nouveau dans ce codage, sinon la ligne de démarcation à éventuellement supprimer :

\vadjust{\kern1pt\hrule}

Plus aéré? La page 304 de “TeX pour l’impatient” apprend à répartir l’en-tête sur deux lignes, dont la deuxième accueillera pour rester blanche un ressort \hfil ou un tilde. Ne modifiez pas les hauteurs de texte et d’en-tête a posteriori, vous ne vous y retrouveriez plus. Préméditer vaut mieux que corriger : http://www.apprendre-en-ligne.net/LaTeX/teximpatient.pdf.

TITRES DE CHAPITRE

\font\chapt="Linux Libertine/B" at 12pt
\def\chap #1{\parindent=0cm\removelastskip\null\vskip 4mm\leavevmode\chapt{#1}\par\nobreak\vskip 2mm}

Pour le cas où vous en voudriez… Tapez \chap{Chapitre~1} pour le premier chapitre, et ainsi de suite pour les suivants.

PREMIÈRE PAGE DE GARDE

\null\vfill
\degardetrue %%% page non numérotée
\font\gras="Linux Libertine/B" at 28pt
\font\grasit="Linux Libertine/BI" at 20pt

\centerline{\gras{NOM DE L’AUTEUR}}

\vfill

\centerline{\grasit{Titre du bouquin}}

\vfill\vfill

\general %%% police principale jusqu’à la fin de l’ouvrage

\centerline{Autoédition}

%\line{\hfill \XeTeXpicfile "../../../Assoc/sigle_cygne_gris.jpg" width 25mm \hfill}
\eject

Déclaration des polices \gras et \grasit à l’endroit de leur utilisation très ponctuelle.

Deux ressorts horizontaux dans une ligne \line centrent le nom de l’auteur et le titre du livre. Une \centerline{NOM DE L’AUTEUR} aurait eu le même effet.

Plus bas, j’ai commenté l’insertion d’une image, que XeTeX aurait cherchée en vain sur votre disque dur. C’est un code sans mystère, mais si vous devez insérer des images, de préférence enregistrez-les dans le même répertoire que le texte.

Les ressorts horizontaux \vfill se répartissent équitablement la surface disponible. Ici, plutôt \eject — sans ressort intégré — que \newpage pour forcer le changement de page.

DEUXIÈME PAGE DE GARDE

\degardetrue
\null\vskip 2cm

{\noindent © Prénom Nom\\
\leavevmode\hphantom{©} numéro rue\\
\leavevmode\hphantom{©} code postal ville}

\vfill
\+ Publication & Cabaret Poétique\cr
\+ & 23 boulevard du Martinet\cr
\+ & Entrée 2\cr
\+ &65000 Tarbes\cr
\cleartabs
{\noindent ISBN : xxx-xx-xxxxx-xx-x}\\
Dépôt légal: 3{\up{e}} trimestre 2011\\
\line{\null\hrulefill\quad{\cite{http\string://eqfm.ouvaton.org}}}
\eject

Basculement vers la police \general, pour ne pratiquement plus en sortir. Nous sommes encore dans une page de garde, \degardetrue désactive la numérotation. Un saut vertical de deux centimètres, puis le copyright. La fonction \hphantom écrit en blanc sur blanc le contenu qui lui est passé en argument, ce qui aligne l’adresse sur le nom de l’auteur.

Le même effet est obtenu un peu plus bas par un environnement tabulé. \+ introduit cet environnement. & pose un taquet de tabulation. Aux lignes suivantes, le même & positionne le contenu à l’emplacement horizontal du taquet. Chaque ligne de l’environnement tabulé, jusqu’à la dernière, doit se terminer par un retour chariot, \cr.

\cleartabs supprime les taquets déjà posés en prévision d’un autre environnement tabulé. Le \noindent désactive localement l’indentation de 1 cm déclarée plus haut.

Vous en savez désormais assez pour commencer à rédiger, ou mieux copier-coller votre roman. Parfois, une page blanche vous sera nécessaire entre la fin d’un chapitre, en page impaire, et le suivant:

\newpage\null\degardetrue\eject

Et pour finir : \bye

L’ALGORITHME HZ

La microtypographie consiste en d’imperceptibles élasticités données aux glyphes. Elle homogénéise le gris typographique sur les largeurs vraiment réduites où le moteur de justification atteint ses limites : colonnes de journaux, opuscules vraiment minuscules...

Cette fonction n’est pas encore implémentée en XeTeX. Voyez plutôt PdfTeX :

Je pratique tantôt XeTeX tantôt PdfTeX, mais réserve plutôt au second les travaux de longue haleine dans l’exigu. Typiquement, la mise en pages d’un roman. L’économie de temps est mon premier critère, elle est fonction de la variable \hsize.

À terme, XeTeX et LuaTeX, successeur de PdfTeX, cumuleront chacun toutes les modernités. Heirloom Troff s’est positionné dans la course, moins consommateur en espace disque. Mais il est d’une galaxie encore plus foisonnante, et sa documentation reste un puzzle anglophone.

LA VERSIFICATION

Au milieu du roman un poème, engendré pour l’occasion :

{\noindent\leftskip 1cm\baselineskip 15pt plus .5mm minus .5mm
Des esquisses d’intentions destinées à personne\\
Ont eu raison de la clarté. On n’arrête pas\\
Le jusant ravageur des nostalgies d’ici-bas :\\
Elle était comme un piaf cherchant son nid en automne.\par}

\vfill\vfill\eject

Un ressort en haut et deux en bas se répartissent l’espace disponible pour hisser les quatre vers à un tiers de la hauteur de page. L’indentation est désactivée, fort logiquement, la marge gauche repoussée de 1 cm, et la hauteur de ligne portée à 15 points juste pour l’exemple. Les accolades, et le \par} final obligatoire, délimitent la portée de ces modifications.

Les variations de hauteur de ligne facilitent la répartition sur la page, mais attention aux majuscules accentuées perturbatrices. Des sauts horizontaux \leavevmode\null\hskip 8cm marqueront les rejets de versifications en deuxième ligne, au-delà de 16 syllabes par exemple.

Un environnement dédié :

\def\centre{\leftskip=0pt plus 1fil\rightskip=0pt plus 1fil\parfillskip=0pt\parskip=0pt\obeylines}

Insérez le poème que vous voulez centrer horizontalement entre {\centre\baselineskip 15pt et \par}.
\obeylines : plus besoin de \\ pour passer à la ligne, mais de ~ pour obtenir des interlignes vides.

SOURDS ET MALENTENDANTS

En vertu du principe que l’informatique est shakespearienne, la fonction pour note de bas de page s’appelle \footnote :

« C’est en forgeant qu’on devient musicien\footnote{*}{Proverbe Shadok} »

Une première paire d’accolades pour l’appel de note, qui ne sera pas forcément un astérisque, suivi d’une autre paire pour le contenu de la note. Ce contenu hérite de la mise en forme du flot de texte, à moins d’une contre-indication contextuelle :

\font\foot="Linux Libertine/I" at 7pt
« Toute vérité est un mensonge dès lors qu’elle est indiscutable\footnote{*}{{\foot{Mézigue}}} »

LANGAGE POLICÉ

Le même essayant trois habits :

Les différences tiennent à la déclaration des polices :

\font\exemplea="Linux Libertine O: language=FRA, +liga, +smcp" at 12pt
\font\exempleb="Linux Libertine O: language=FRA, -liga, +zero" at 12pt
\font\exemplec="Linux Libertine O: language=FRA, +hlig, +liga, +onum " at 12pt

Les toutes nouvelles polices OpenType embarquent une documentation et des scripts. Ordre est donné à XeTeX de scripts à activer via des tags passés en argumentaire de la déclaration de police.

La syntaxe des tags de localisation — car les consonnes ne se ligaturent pas de la même manière en français et en turc — est universelle. La syntaxe de tous les autres à la discrétion des fondeurs.

La raison pour laquelle ça peut ne pas fonctionner : le deux-points a été transformé en macro. Il faut lui rendre son “catcode” de caractère ordinaire, en commentant le code qui le protège :

%\catcode`\:=\active
%\def :{\unskip\kern .16667em:}

Linux Libertine O, particulièrement riche en scripts, en active certains automatiquement avec XeTeX.

POLICE PRIVÉE

Jusqu’à XeTeX il n’était ni d’usage ni possible dans le monde TeX de puiser dans les polices du système d’exploitation. XeTeX autorise de continuer à recourir aux mécanismes ancestraux, mais presque toutes les polices d’installation de TeX ont désormais un équivalent OpenType :

N’hésitez pas à ajouter celles à votre goût au système d’exploitation, plutôt que de les cantonner à TeX. Méfiez-vous de certaines joliesses confinant à la préciosité, vos lecteurs myopes peuvent ne pas apprécier.

EMOTICONS

Avions, téléphones, petits cœurs, les glyphes de certaines polices sont des minidessins. En Zapf Dingbats, le a est une rose et le $ un sécateur. Le codage très spécial de ces polices spécialisées ne permet pas d’y accéder facilement avec Plain.

Malgré que ces chapelets de vignettes ne sont que l’alphabet usuel symbolisé autrement. Mais allez au même effet en visitant dans la table de caractères les glyphes supplémentaires des polices OpenType, et copiez-collez-les.

La police FreeSerif est particulièrement moche, mais en symboles bien fournie. J’ai ainsi ajouté un téléphone à mon adresse sur mon en-tête de courrier en glanant dans sa zone à usage privé, cf la version imprimable.

INTERNET

Insérer un lien hypertexte vers une page internet, la méthode la plus sûre sinon la moins triviale :

\begingroup
\catcode`\:=12
\catcode`\?=12
\catcode`\&=12
\catcode`\#=12
\catcode`\_=12
{\special{pdf:bann <</Type /Annot /Subtype /Link /BS
<</Type /Border /W 0 /S /S> /A <</S /URI
/URI (http://snouci.ouvaton.org)> >}
http://snouci.ouvaton.org
\special{pdf:eann}}
\endgroup

C’est du code PDF transmis par XeTeX à qui l’instruction \special ordonne de l’ignorer sans le supprimer. Ne pas oublier : un PDF peut être imprimé. Qu’y apparaisse l’URL du site plutôt que son titre.

J’ai rendu localement aux caractères “:”, “:?”, “&”, “_” et “#”, fréquents dans les URL, leur valeur ordinaire en isolant le code dans un groupe. NB : ce codage sur plusieurs lignes n’occasionne pas de décalage dans le fichier de sortie.

Insertion dans le texte d’une ancre nommée Madagascar, puis un lien interne vers cette ancre :

\special{pdf:dest (Madagascar)[@thispage /XYZ @xpos @ypos null]}

\special{pdf:bann<</Type/Annot/Subtype/Link/Border[0 0 0]/C[0 0 0]/A<</S /GoTo/D(Madagascar)>>>>} Destination Madagascar \special{pdf:eann}

MOTEUR DE RECHERCHES

%%%%%%%%%% MÉTADONNÉES DU PDF %%%%%%%%%%

\special{pdf: docinfo << /Author (Alain Broueil)
/Title (TeX mignon tout plain)
/Creator (Plain TeX avec Xetex)
/Subject (Plain TeX)
/Keywords (Mise en page, justification, littérature, courrier)>>}

De préférence au tout début de votre fichier. Une raison de préférer XeTeX pour vos publications sur la toile, l’Unicode est sa langue maternelle. Forcer PdfTeX à générer un fichier de sortie — moins ardu qu’accepter une entrée — en Unicode, ne relève pas d’un parcours du combattant. Mais sur la toile on publie en A4 où les performances des deux moteurs s’équivalent.

CARACTÈRES SPÉCIAUX

Les guillemets, français ou anglais, c’est bien. Le tiret cadratin, l’apostrophe ouvrante aussi, et les majuscules accentuées, parce que levant des équivoques, sont préconisées par l’Académie Française.

Encore faut-il — sous Windows  — pouvoir les atteindre. Une solution, y transposer la disposition OSS du clavier de Linux, voir en deuxième page de http://visuel.ouvaton.org/Visuel.pdf .

Ou bien, hispanophones malheureux sur le clavier français, repérez dans la table de caractères le ¿ et son immatriculation U+00BF. Normalement, vous devriez pouvoir l’obtenir en maintenant la touche Alt enfoncée, et en composant 00BF.

Ou encore, demandez à l’autocorrecteur de votre traitement de texte un tiret cadratin à chaque fois que vous tapez deux traits d’union à la file, et ainsi de suite. Mais ne vous en servez pas pour coder.

CARACTÈRES RÉSERVÉS

Les outils de TeX ne sont plus des lettres, sauf à les précéder du caractère d’échappement :

%     ^     &     #     {     }     $     _     ~     \

Vous n’en faites pas un gros usage littéraire. La méthode de transcription des plus usuels est l’échappement par antislash : \% par exemple.

Mais Unicode est riche. Admettons que vous deviez retranscrire beaucoup de pourcentages. Plutôt que de les échapper tous, au risque d’en oublier un, rajoutez au début de votre fichier :

\catcode`\¿=14
\catcode`\%=12

Après quoi vous signalerez vos commentaires avec des ¿, et pourrez parsemer sans risque d’autant de % que vous en aurez besoin.

Le tilde redevient touche morte sitôt qu’il est suivi d’une frappe sur le n, l’accent circonflexe quand il surmonte une voyelle. Inutile de les échapper une fois que diacritiques ils ont travaillé à composer un glyphe.

DES CHIFFRES ET DES LETTRES

Les matheux ont de la chance, TeX a été créé pour eux et ils s’en débrouillent plutôt bien. Les autres trouveront un intérêt dans ses facultés de calcul.

La numérotation des chapitres peut se faire à la main, ou pas. La démonstration portera plutôt sur les sections et sous-sections, plus délicates. On commence par initialiser deux compteurs, un pour les sections et un pour les sous-sections.

\newcount\sect
\count\sect=0
\newcount\subsect
\count\subsect=0

Ensuite, définir des fonctions d’incrémentation de ces compteurs, et une de remise à zéro pour le compte des sous-sections.

\def\sectplus{\global\advance\sect by 1\relax}
\def\subsectplus{\global\advance\subsect by 1\relax}
\def\subsectmoins{\global\subsect=0\relax}

L’accolade qui suit les nombres doit être précédée d’une espace ou de la fonction nulle \relax. Ne reste plus qu’à mettre en forme les sections et sous-sections :

\font\verd="verdana/B" at 13pt
\font\verda="verdana/B" at 12pt

\def\section#1{\sectplus\subsectmoins\relax\removelastskip\vskip 1cm\hskip 3cm%
{\verd{\the\sect .\space #1}}\par\nobreak\vskip 3mm}

\def\subsection#1{\subsectplus\relax\removelastskip\vskip 1cm\hskip 2cm%
{\verda{\underbar{\the\sect .\the\subsect\space #1}}}\par\nobreak\vskip 1mm}

La fonction \the affiche le contenu du compteur. \underbar souligne. \par\nobreak interdit une coupure de page sitôt après le titre de section ou sous-section. #1 marque l’emplacement laissé disponible pour le libellé de la section ou sous-section :

\section{libellé de la section}
\subsection{libellé de la sous-section}

Ce n’est encore que du code récupérable, où il suffit de changer le nom de la police et les valeurs numériques.

POLICES CARACTÉRIELLES

Les polices à empattements — “serif” — ont réputation de tracer une ligne imaginaire guidant l’œil du lecteur. Une police à chasse et interligne étroits facilitera la mise en pages.

Utilisez votre imprimante comme il vous chante. Méfiez-vous par contre des polices que vous amenez à l’imprimeur. Vérifiez que vous avez le droit de les utiliser, et que leurs réglages ne sont pas défectueux. Sinon :

Esthétiques, libres, lisibles, maniables… :

Bitstream Charter : toutes les qualités, adaptée à tous les usages et presque tous les formats. Dérivée OpenType, Charis SIL.
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=charissilfont

Utopia : esthétique surprenante, à moins de microtypographie sa chasse devient problématique en prose dans les zones étroites. Dérivée OpenType, Heuristica.
ftp://ftp.dvo.ru/pub/Font/heuristica/

Palatino : autant Utopia dessinée comme un ressac valorise la poésie ou les tourments, autant Palatino est baroque. Dérivée OpenType, Pagella.
http://www.gust.org.pl/projects/e-foundry/tex-gyre/pagella

Century Schoolbook : largeur excessive, mais un classicisme au diapason des thèses et courriers administratifs. Dérivée OpenType : Schola.
http://www.gust.org.pl/projects/e-foundry/tex-gyre/schola/index_html

Linux Libertine : le tour de force de nous faire oublier ce que nous avions perdu avec le Times et ses nombreux autres apparentés, nos yeux n’ont plus vingt ans.
http://www.linuxlibertine.org/

Gentium Basic : orientalisante et un rien évanescente, mais sa chasse étroite convient particulièrement aux fascicules.
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=Gentium_basic.

HIRONDELLES FUGACES

Votre imprimeur est-il des oiseaux rares — il en reste — qui continuent de réclamer des traits de coupe nonobstant le numérique ? Rendez-vous sur la page :

Téléchargez “edmac317.zip”, décompressez-le, copiez “edmac.doc” au voisinage immédiat du fichier sur lequel vous travaillez. Ou mieux, dans le répertoire d’installation de TeX s’il n’y est déjà. Modifiez ainsi les commandes de mise en page et de définition des marges :

\input edmac.doc
\hsize= 110mm
\vsize=170mm
\cropsetup{210mm}{148.5mm}{15mm}{23mm}

Les deux premiers arguments de la commande \cropsetup sont respectivement la hauteur et la largeur entre deux traits de coupe, soit les dimensions du livre, les deux suivants la marge supérieure et la marge intérieure, en valeur absolue et non plus additionnés ou soustraits à une valeur prédéterminée.

Finalement, les calculs sont plus simples avec des traits de coupe. Ne les imposez pas à votre imprimeur s’il ne vous en demande pas, et s’il vous en demande n’oubliez pas que les commandes pour les traits de coupe sont incompatibles avec les commandes de dimensions de page et de marges sans traits de coupe. Soit les unes, soit les autres doivent être commentées pour désactivation :

%%% \special{papersize=148.5mm,210mm}
%%% \voffset=-0.54cm
%%% \output{\ifodd\pageno\hoffset -0.19cm\else\hoffset -1.04cm\fi\plainoutput}

Vous pouvez malgré tout avoir le scrupule de vous assurer que votre composition sera centrée sur du A4, ou spécifier une autre dimension de feuille courante, pourvu qu’il y ait place pour y loger des hirondelles.

Tant que nous y sommes, utilisez systématiquement pour séparateur décimal le point et non la virgule.

HIRONDELLES POURTANT

À quoi ressemble le bruit de fond de l’Univers pour un nouveau-né, les macros d’Edmac sont terrifiantes à décrypter. Avec ce résultat de 3 lignes seulement pour obtenir des traits de coupe — j’aime l’abus de les confondre aux hirondelles dans la poésie du métier.

Littérateurs, aucune autre de ses macros ne semble vous devoir être jamais utile, mais sait-on jamais. La documentation n’encombrera pas votre disque dur :

Visualisez avec les outils de TeX, ou deux étapes successives pour convertir en PDF :

dvips edmac.dvi | ps2pdf edmac.ps

Plain, comme LaTeX, est plus riche en matière première qu’en produits finis. Il permet tout, au prix d’efforts considérables. D’où un foisonnement de macros simplifiant des usages divers, mais souvent incompatibles entre elles parce que redéfinissant chacune pour ses besoins les mêmes primitives.

Edmac est particulier en ce qu’il vise à une sorte d’exhaustivité. Références croisées, tableaux, bordures... Un autre agglomérat, Eplain, étend si considérablement le champ des possibilités immédiates qu’il est généralement préinstallé :

Le moteur insère dans le flot de texte et dans l’ordre d’arrivée tous fichiers en paramètre de la commande \input. Une méthode de travail :

\input chapitre1.txt
\input chapitre2.txt
\input et cætera...

UTOPIE

Quiconque a tâté du html étant peu déconcerté par TeX et réciproquement, il y a eu tentative de fusionner leurs syntaxes. Certes, l’usage ne pouvait en être que limité, mais opportun. StarTeX en est malheureusement resté à sa version de 1999.

ÇA MARCHE PAS

Et c’est normal, ça ne peut pas marcher. J’ai testé. Le navigateur, Firefox en l’occurrence, avait ligaturé le f et le t de \leftskip. XeTeX ne connaît pas de commande avec ce glyphe-là, ça ne peut pas marcher. Je peux garantir le code en vitrine, mais préférez la version imprimable pour le copier-coller.

QUE DIRAIS-JE DE PLAIN ?

LyX, surcouche à LaTeX, m’épargne de coder les lignes et colonnes pour le recueil des signatures sur une pétition. Mais pour la géométrie de la page et le basculement de polices, à quoi se limite l’inquiétude du littérateur… Plain est plus souple, et en friche comme tout esprit créateur. Reprenez mes maquettes et vous n’aurez pas besoin de coder.

Primitives : http://www.vuibert.fr/search/apachesolr_search/texbook
Plain : http://www.apprendre-en-ligne.net/LaTeX/teximpatient.pdf
PdfTeX : http://tex.loria.fr/moteurs/pdftex-a.pdf
XeTeX : http://tug.org/xetex/
LyX : http://visuel.ouvaton.org/Visuel.htm
Unicode : http://hapax.qc.ca/pdf/deux-mondes.pdf
Le source de ce document : http://visuel.ouvaton.org/Velene.tex

AUTOÉDITION : DOSSIERS COMPLÉMENTAIRES

Démarches administratives
Initiation à la mise en page
Promotion sur internet
L’impression à la demande
Ebooks gratuits
Accueil

POUR LES APPRENTIS SORCIERS

Le texteur discret
Ne jetez pas TeXmacs
Voyage en pays cartésien

Version imprimable
Dessins de l’auteur
   Nouvelles de l’auteur

Suite : 

_____________________________________________

© Alain Broueil octobre 2011.
Cette page n’étant que de documentation et bon sens populaire, vous êtes libre de vous en inspirer ou de la reprendre en tout ou partie.
Mais interdiction de m’attribuer vos ajouts.


Nouveau   Ouvrir   Enregistrer   Enregistrer sous   Impressions   Aide   À propos