12.07.2015 Views

TEX pour l'Impatient - Apprendre en ligne.net

TEX pour l'Impatient - Apprendre en ligne.net

TEX pour l'Impatient - Apprendre en ligne.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

24 Sep 2004 2:48 p.m.<strong>TEX</strong> <strong>pour</strong> l’Impati<strong>en</strong>t N o 308286 Trucs et astuces \ §10Mais att<strong>en</strong>tion ! Une fois que vous avez changé les codes de catégorie de cefaçon, vous perdez la faculté d’utiliser des séqu<strong>en</strong>ces de contrôle puisqu’iln’y a plus de caractère d’échappem<strong>en</strong>t. Vous avez besoin d’un moy<strong>en</strong> derev<strong>en</strong>ir dans le mode normal d’opération. Nous expliquerons comm<strong>en</strong>tfaire cela dans un mom<strong>en</strong>t, après avoir considéré l’autre problème :débrancher la traduction des espaces et des fins de <strong>ligne</strong>.Plain <strong>TEX</strong> a deux commandes qui <strong>en</strong>semble résolv<strong>en</strong>t <strong>en</strong> partie leproblème : \obeyspaces (p. 113) et \obeylines (p. 128). Les deuxchoses qu’elles ne font pas sont de préserver les espaces au début d’une<strong>ligne</strong> et de préserver les <strong>ligne</strong>s blanches. Pour cela vous avez besoin demesures plus fortes—qui sont apportées par la macro \obeywhitespaceque nous sommes sur le point de définir.<strong>TEX</strong> normalem<strong>en</strong>t insiste <strong>pour</strong> collecter des <strong>ligne</strong>s par paragraphes.Un moy<strong>en</strong> de le convaincre de pr<strong>en</strong>dre littéralem<strong>en</strong>t les bords des <strong>ligne</strong>sest de transformer les <strong>ligne</strong>s individuelles <strong>en</strong> paragraphes. 3 Vous pouvezfaire cela <strong>en</strong> redéfinissant le caractère de fin de <strong>ligne</strong> <strong>pour</strong> produire laséqu<strong>en</strong>ce de contrôle \par. Les trois définitions de macro suivantesmontr<strong>en</strong>t comm<strong>en</strong>t :\def\makeactive#1{\catcode‘#1 = \active \ignorespaces}{% The group delimits the text over which ^^M is active.\makeactive\^^M %\gdef\obeywhitespace{%% Use \gdef so the definition survives the group.\makeactive\^^M %\let^^M = \newline %\aftergroup\removebox % Kill extra paragraph at <strong>en</strong>d.\obeyspaces %}%}\def\newline{\par\ind<strong>en</strong>t}\def\removebox{\setbox0=\lastbox}Un point subtil de la définition de \obeywhitespace est que ^^M doitêtre r<strong>en</strong>du actif à la fois quand \obeywhitespace est définie et quandelle est utilisée.Pour être capable de rev<strong>en</strong>ir à des opérations normales après du texteverbatim, vous devez choisir un caractère qui apparaît rarem<strong>en</strong>t voirepas du tout dans le texte verbatim. Ce caractère sert comme caractèred’échappem<strong>en</strong>t temporaire. La barre verticale (|) est parfois un bonchoix. Avec ce choix, les macros :\def\verbatim{\par\begingroup\deactivate\obeywhitespace\catcode ‘\| = 0 % Make | the new escape character.}3 Un autre moy<strong>en</strong> est de transformer le caractère de fin de <strong>ligne</strong> <strong>en</strong> une commande\break et d’ajouter un ressort infini à la fin de chaque <strong>ligne</strong>.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!