summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/drac/drac-fr.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/drac/drac-fr.dtx')
-rw-r--r--macros/latex/contrib/drac/drac-fr.dtx361
1 files changed, 361 insertions, 0 deletions
diff --git a/macros/latex/contrib/drac/drac-fr.dtx b/macros/latex/contrib/drac/drac-fr.dtx
new file mode 100644
index 0000000000..931fa59eb8
--- /dev/null
+++ b/macros/latex/contrib/drac/drac-fr.dtx
@@ -0,0 +1,361 @@
+% \iffalse meta-comment
+% -*- coding: iso-8859-15 -*-
+% --------------------------------------------------------------------
+%
+% Copyright (C) 2004, 2008 by Josselin Noirel et Yvon Henel
+%
+% Y. Henel dit « le TeXnicien de surface »
+% <le.texnicien.de.surface@wanadoo.fr>
+%
+% --------------------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.2 of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% <URL: http://www.latex-project.org/lppl.txt >
+%
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% --------------------------------------------------------------------
+% \fi
+%
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\def\fileversion{v1}
+%<package>\def\filedate{2008/08/14}
+%<package>\def\fileinfo{fichier drac.sty par J. Noirel et Y. Henel}
+%<package>\ProvidesPackage{drac}
+%<package> [\filedate\space\fileversion\space\fileinfo]
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage{drac}
+\usepackage{url,array,xspace}
+\usepackage[latin9]{inputenc}
+\usepackage[T1]{fontenc}
+\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{}
+\usepackage{ifpdf}
+\usepackage{textcomp}
+\usepackage{calc}
+\let\cs=\relax
+\DeclareRobustCommand*{\cs}[1]{{\normalfont\ttfamily\char`\\#1}}
+\renewcommand*{\meta}[1]{{\normalfont\textlangle{\itshape #1\/}\textrangle}}
+\newcommand*{\fctt}{{\normalfont\ttfamily fr.comp.text.tex}}
+\makeatletter
+\DoNotIndex{\@tempa,\@tempb,\@tempc,\csname,\endcsname,\noexpand,\def,^^A
+ \edef,\ifx,\else,\endinput,\expandafter,\fi,\let,\newcommand,\relax,^^A
+ \string,\@ifstar}
+\makeatother
+\usepackage[english,frenchb]{babel}
+% Commentez la ligne suivante pour avoir un document avec le code commenté
+\OnlyDescription
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\GlossaryPrologue{%
+ \section*{{Changements}}}
+\IndexPrologue{\section*{Index}%
+ Les nombres en italique renvoient à la page où l'entrée est décrite; les
+ nombres soulignés renvoient à la ligne de code de la définition; les
+ nombres en caractères romains renvoient à la ligne de code où l'entrée est
+ utilisée.}
+\newcommand\BOP{\discretionary{}{}{}}
+\begin{document}
+\DocInput{drac-fr.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{72}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{v0}{2004/04/22}{A failli être la première version publique}
+% \changes{v0.1}{2004/05/17}{A manqué de peu d'être la première
+% version publique}
+% \changes{v0.1}{2004/05/17}{Ajout de \cs{ReDeclareRobActChar}}
+% \changes{v1}{2008/08/14}{1\iere version publique}
+% \GetFileInfo{drac.sty}
+%
+% \title{Le module \textsf{drac}\thanks{Ce document correspond au
+% fichier \textsf{drac}~\fileversion, du \filedate.}}
+% \author{Josselin Noirel et Yvon Henel}
+%
+% \maketitle
+% \begin{abstract}
+% Ce module définit \cs{DeclareRobustActChar} et
+% \cs{ReDeclareRobActChar}.
+%
+% On utilise \cs{DeclareRobustActChar} comme
+% \cs{DeclareRobustCommand} mais elle protège le caractère actif,
+% voir~\path{ltdefns.dtx} dans \path{/latex/base/}. Cela permet, par
+% exemple, d'écrire ce caractère dans un fichier auxiliaire sans
+% qu'il soit développé. Il est donc devenu \og robuste\fg au sens
+% des arguments \og mobiles\fg de \LaTeX.
+%
+% \cs{ReDeclareRobActChar} permet de redéfinir le caractère actif
+% défini préalablement par
+% \cs{Declare}\BOP|Robust|\BOP|Act|\BOP|Char| à la manière de
+% \cs{renewcommand}.
+% \end{abstract}
+% \begin{otherlanguage}{english}
+% \begin{abstract}
+% This package provides \cs{DeclareRobustActChar} and
+% \cs{Re}\BOP|Declare|\BOP|Rob|\BOP|Act|\BOP|Char| macros.
+%
+% You should have downloaded with this file a file
+% \path{drac-en.dtx} and a file \path{drac.pdf} which
+% give the English documentation of this package.
+% \end{abstract}
+% \end{otherlanguage}
+% \tableofcontents
+%
+% \section{Introduction}
+% \begingroup\footnotesize{}
+% Lorsqu'elle apparut pour la première fois, le \oldstylenums{8}~avril
+% \oldstylenums{2004}, sur \fctt{} dans le fil de discussion \og la
+% question à \oldstylenums{100}~euros\fg, le nom de la macro était
+% \cs{DeclareRobustActiveCharacter} qui avait l'avantage d'être
+% totalement descriptif mais l'inconvénient d'être long. Pour alléger
+% quelque peu le travail du codeur mais \emph{surtout} pour éviter un
+% joyeux bazar dans l'index de cette documentation, j'ai pris sur moi
+% de la renommer \cs{DeclareRobustActChar}.
+%
+% À la lecture du fil mentionné ci-dessus, on s'appercevra sans peine
+% que ce que je --- je c.-à-d. Y. Henel, \TeX nicien de surface ---
+% fis ce fut de passer commande d'un code que Josselin Noirel me
+% fournit très aimablement et tout aussi efficacement.
+%
+% Je fis mumuse un moment avec le code fourni par Josselin puis
+% quelques mois plus tard la vie m'asséna un de ces coups dont la
+% fréquentation assidue des classiques auraient du me prévenir mais,
+% pour citer un de ses fameux (pseudo?) proverbe chinois, \og
+% l'expérience n'éclaire que le chemin parcouru\fg. Ce qui fait que
+% même si Josselin, de son côté assez occupé avec la fin de ses
+% études, me fit parvenir, dans un courriel de février
+% \oldstylenums{2005}, une \oldstylenums{2}\ieme version dans laquelle
+% apparut \cs{ReDeclareRobActChar} dans un courriel de février
+% \oldstylenums{2005} je n'étais guère en état d'en tirer profit.
+%
+% Puis le temps a passé\dots j'ai sorti la tête de l'eau et Josselin
+% est parti vers d'autres cieux.
+%
+% Le code existe et fonctionne. Alors, plutôt que de le laisser moisir
+% dans un coin obscur de mon disque dur, et puisque j'ai passé
+% quelques heures à mettre à jour mes extensions, je me suis décidé à
+% lancer \texttt{drac} dans le vaste monde. Je me contente de fournir
+% l'emballage et porter le bébé dans mes bras velus jusqu'au serveur
+% CTAN le plus proche.
+%
+% On aura compris que je ne m'engage pas du tout à assurer la
+% maintenance de ce code si jamais le besoin s'en faisait
+% sentir. J'arrive à peu près à comprendre ce que fait Josselin en
+% suivant pas à pas ses explications mais je suis bien incapable de me
+% hausser à de telles hauteurs. Il est donc temps maintenant de céder
+% le clavier à Josselin.
+%
+% \hspace*{\stretch{4}}Le \TeX nicien de surface\hspace*{\stretch{1}}
+% \endgroup
+%
+% \section{Utilisation}
+%
+%
+% La macro \cs{DeclareRobustActChar} a la syntaxe habituelle des
+% \cs{newcommand} et cons½urs: elle admet une forme étoilée selon
+% que le caractère actif acceptera ou non des arguments \cs{long}s
+% (c.-à-d. un argument pourra comporter une fin de paragraphe);
+% ensuite vient le caractère actif; un nombre optionnel d'arguments,
+% un argument optionnel qui est la valeur optionnelle du premier
+% argument, enfin la définition proprement dite. Voilà les syntaxes
+% valides: ^^A
+% \begin{list}{}{\ttfamily\leftmargin=\leftmargini}\item
+% \cs{DeclareRobustActChar}\marg{caractère actif}[\(n\)]\%\\
+% \ \ \oarg{valeur par défaut du premier argument}\marg{définition}\par
+% \cs{DeclareRobustActChar}\marg{caractère actif}[\(n\)]\marg{définition}\par
+% \cs{DeclareRobustActChar}\marg{caractère actif}\marg{définition}\par
+% \cs{DeclareRobustActChar}*\marg{caractère actif}[\(n\)]\%\\
+% \ \ \oarg{valeur par défaut du premier argument}\marg{définition}\par
+% \cs{DeclareRobustActChar}*\marg{caractère actif}[\(n\)]\marg{définition}\par
+% \cs{DeclareRobustActChar}*\marg{caractère actif}\marg{définition}
+% \end{list}
+% ^^A
+% Suite à quoi le caractère actif pourra être utilisé dans les
+% arguments mobiles (dans les arguments de \cs{caption} par exemple)
+% et dans les autres cas qui requièrent des commandes robustes
+% (\cs{protected@edef}, \cs{protected@write}, etc.)
+%
+% De même \cs{ReDeclareRobActChar} a la syntaxe de \cs{renewcommand}
+% d'où les syntaxes possibles:
+% ^^A
+% \begin{list}{}{\ttfamily\leftmargin=\leftmargini}\item
+% \cs{ReDeclareRobActChar}\marg{caractère actif}[\(n\)]\%\\
+% \ \ \oarg{valeur par défaut du premier argument}\marg{définition}\par
+% \cs{ReDeclareRobActChar}\marg{caractère actif}[\(n\)]\marg{définition}\par
+% \cs{ReDeclareRobActChar}\marg{caractère actif}\marg{définition}\par
+% \cs{ReDeclareRobActChar}*\marg{caractère actif}[\(n\)]\%\\
+% \ \ \oarg{valeur par défaut du premier argument}\marg{définition}\par
+% \cs{ReDeclareRobActChar}*\marg{caractère actif}[\(n\)]\marg{définition}\par
+% \cs{ReDeclareRobActChar}*\marg{caractère actif}\marg{définition}
+% \end{list}
+% ^^A
+% \StopEventually{\PrintChanges\PrintIndex}
+% \section{Le code}
+% \begin{macro}{\DeclareRobustActChar}
+% Nous commençons par définir \cs{DeclareRobustActChar} (qui ne fait
+% pas grand-chose en réalité).
+% ^^A
+% \begin{macrocode}
+% \iffalse
+%<*package>
+% \fi
+\newcommand*{\DeclareRobustActChar}{
+ \@ifstar{%
+ \def\@tempc{\newcommand*}\@declarerobustactchar}{%
+ \def\@tempc{\newcommand}\@declarerobustactchar}%
+}
+% \end{macrocode}
+% \end{macro}
+% ^^A
+% \begin{macro}{\ReDeclareRobActChar}
+% Et dans la foulée nous définissons \cs{ReDeclareRobActChar} (qui,
+% comme la précédente, ne fait pas grand-chose mais légèrement
+% différemment).
+% ^^A
+% \begin{macrocode}
+\newcommand*{\ReDeclareRobActChar}{\@ifstar{%
+ \def\@tempc{\renewcommand*}\@declarerobustactchar}{%
+ \def\@tempc{\renewcommand}\@declarerobustactchar}%
+}
+% \end{macrocode}
+% ^^A
+% \cs{@ifstar} teste la présence d'une étoile. Selon le cas on
+% définit \cs{@tempc} en conséquence. \cs{@tempc} sera utilisé à
+% terme pour prendre en charge la définition. On appelle ensuite
+% \cs{@declarerobustactchar}.
+% \end{macro}
+% \begin{macro}{\@declarerobustactchar}
+% Vient la macro qui abat vraiment du travail:
+% \cs{@declarerobustactchar}. Elle prend un argument qui est le
+% caractère actif (qui est supposé être \emph{déjà} actif au moment de
+% l'appel à \cs{DeclareRobustActChar}).
+% ^^A
+% \begin{macrocode}
+\newcommand*{\@declarerobustactchar}[1]{%
+% \end{macrocode}
+% ^^A
+% On conserve les valeurs actuelles de \cs{protect} et
+% \cs{@typeset@protect} pour les restituer plus tard.
+% ^^A
+% \begin{macrocode}
+ \let\@tempa=\protect
+ \let\@tempb=\@typeset@protect
+% \end{macrocode}
+% ^^A
+% \cs{protect} et \cs{@typeset@protect} sont définis équivalents à
+% \cs{relax} pour qu'ils ne \og bougent\fg pas pendant le processus de
+% développement dans \cs{edef}.
+% ^^A
+% \begin{macrocode}
+ \let\protect=\relax
+ \let\@typeset@protect\relax % Devrait être le cas
+% \end{macrocode}
+% ^^A
+% On définit le caractère actif. Attention s'il n'est pas actif au
+% moment de l'utilisation de \cs{DeclareRobustActChar} on risque
+% fortement de voir \TeX{} râler à cause d'une commande
+% \og inaccessible\fg. Le \meta{caractère actif} prend comme
+% définition:
+% ^^A
+% \begin{flushleft}\begin{tabular}{@{}l@{}l@{}}
+% \meta{caractère actif} $\stackrel{\mathrm{def}}{\equiv}$ \hskip0pt &
+% \cs{ifx}\cs{protect}\cs{@typeset@protect} \\
+% & \ttfamily\ \ \cs{expandafter}\cs{DRAC@real@\meta{caractère actif}} \\
+% & \cs{else} \\
+% & \ttfamily\ \ \cs{protect}\meta{caractère actif} \\
+% & \cs{fi} \\
+% \end{tabular}\end{flushleft}
+% ^^A
+% Le test \cs{ifx} permet de connaître si l'on est dans un contexte
+% d'argument mobile ou non. Le résultat du test est \og vrai\fg si ce
+% n'est pas le cas; alors \cs{DRAC@real@\meta{caractère actif}} est
+% exécutée: c'est la commande effectrice qui contiendra dans quelque
+% temps la \meta{définition} dont nous parlions plus haut.
+% Dans le cas où le test est \og faux\fg, étant dans un contexte
+% d'argument mobile on replace simplement le \meta{caractère actif} en
+% le \cs{protégeant}.
+% Le \cs{expandafter} est là pour faire disparaître la portion de code
+% \og \cs{else}\linebreak[0]\dots\linebreak[0]\cs{fi}\fg.
+% ^^A
+% \begin{macrocode}
+ \edef#1{%
+ \noexpand\ifx\protect\@typeset@protect
+ \noexpand\expandafter
+ \expandafter\noexpand
+ \csname DRAC@real@\string#1\endcsname
+ \noexpand\else % \noexpand\expandafter [JN : pas bon]
+ \protect % \noexpand\expandafter [JN : idem]
+ \noexpand#1%
+ \noexpand\fi
+ }%
+% \end{macrocode}
+% ^^A
+% Les valeurs initiales de \cs{protect} et \cs{@typeset@protect} sont
+% restituées.
+% ^^A
+% \begin{macrocode}
+ \let\protect=\@tempa
+ \let\@typeset@protect=\@tempb
+% \end{macrocode}
+% ^^A
+% Maintenant on définit avec \cs{newcommand} --- par l'intermédiaire
+% de \cs{@tempc}, vous souvenez-vous? --- la commande effectrice
+% \cs{DRAC@read@\meta{caractère actif}}. C'est l'utilisation de
+% \cs{newcommand} qui permet d'en propager la syntaxe. Mais on notera
+% que cela interdit notamment la redéfinition de la commande
+% (autrement dit il se pourrait que le package s'améliore encore).
+% ^^A
+% \begin{macrocode}
+ \expandafter\@tempc\csname DRAC@real@\string#1\endcsname
+}
+% \end{macrocode}
+% ^^A
+% \og FIN\fg
+% ^^A
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+% \end{macro}
+% ^^A
+% \section{Papillons et limitations}
+% Pas de bogue connu à ce jour. Les limitations elles sont
+% nombreuses: ce package n'a pas de grande prétention.
+%
+% Bien que les macros ici définies puissent \emph{a priori}
+% fonctionner avec les commandes aussi, nous recommandons d'utiliser
+% \cs{DeclareRobustCommand} dans ce but.
+% \Finale
+% \iffalse
+%</package>
+% \fi
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% fill-column: 70
+%%% End: