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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

24 Sep 2004 2:48 p.m.<strong>TEX</strong> <strong>pour</strong> l’Impati<strong>en</strong>t N o 325Préliminaires 303de <strong>TEX</strong>. Cette propriété est lui nécessaire <strong>pour</strong> travailler avec \edef. Elleest utilisée par les macros de référ<strong>en</strong>ces croisées (p. 312).Pour fractionner l’argum<strong>en</strong>t sur l’espace, nous devons utiliser deuxmacros subsidiaires. \@ttsA trouve les espaces et \@ttsB manipule uneséqu<strong>en</strong>ce de tok<strong>en</strong> sans aucun espace. Chaque espace est remplacé par ledéveloppem<strong>en</strong>t de \spacesub.\def\tokstostring#1{\@ttsA#1 \ttsmarkA}%\def\@ttsA#1 #2\ttsmarkA{\ifempty{#1}\else\@ttsB #1\@ttsmarkB\ifempty{#2}\else\spacesub\@ttsA#2\ttsmarkA\fi\fi}%\def\@ttsB#1{\ifx #1\@ttsmarkB\else\string #1%\expandafter\@ttsB\fi}%\def\@ttsmarkB{\@ttsmarkB}% should never be expanded\def\spacesub{+}%\ifempty teste si son argum<strong>en</strong>t est vide.\def\ifempty#1{\@ifempty #1\@emptymarkA\@emptymarkB}%\def\@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%\def\@emptymarkA{\@emptymarkA}%La macro \for implém<strong>en</strong>te une version <strong>TEX</strong> du “for loop” des langagesde programmation traditionnels. Ces macros vi<strong>en</strong>n<strong>en</strong>t directem<strong>en</strong>tde L A <strong>TEX</strong>.\def\for#1:=#2\do#3{\edef\@fortmp{#2}%\ifx\@fortmp\empty \else\expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}%\def\@nnil{\@nil}%\def\@fornoop#1\@@#2#3{}%\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil\else #5\def#4{#2} ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}%\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil\let\@nextwhile=\@fornoop \else #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}}%\obeywhitespace est utile <strong>pour</strong> reproduire des coupures de <strong>ligne</strong>, desinter<strong>ligne</strong>s et des espaces dans votre source. Il combine les effets de\obeylines et \obeyspaces, et met égalem<strong>en</strong>t des espaces au débutd’une <strong>ligne</strong> devant être imprimée. Les caractères “tabulation” ne sontpas affectés ; ils produis<strong>en</strong>t toujours un ressort normal.\def\alwaysspace{\hglue\fontdim<strong>en</strong>2\the\font \relax}%{\makeactive\^^M \makeactive\ %\gdef\obeywhitespace{%\makeactive\^^M\def^^M{\par\ind<strong>en</strong>t}%

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

Saved successfully!

Ooh no, something went wrong!