summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/e-french/src/french_doc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/e-french/src/french_doc.txt')
-rw-r--r--Master/texmf-dist/doc/generic/e-french/src/french_doc.txt4293
1 files changed, 4293 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/e-french/src/french_doc.txt b/Master/texmf-dist/doc/generic/e-french/src/french_doc.txt
new file mode 100644
index 00000000000..cd0366fc709
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/e-french/src/french_doc.txt
@@ -0,0 +1,4293 @@
+% This is french_doc.pdf (informations en francais dans
+% frguide.pdf et frnotes.pdf)
+%
+% As e-French since 2010 under LPPL Copyright.
+%....................................................................
+% (Copyright notice in English just after the French one)
+% Copyright GUTenberg-Gaulle 1992-1998, Bernard Gaulle 1999-2007:
+% ==============================================================
+% - La distribution de l'extension FrenchPro pour LaTeX etait effectuee
+% selon le mode shareware. Apres installation et essai de ces fichiers
+% pendant un mois vous deviez decider soit de les garder pour en faire
+% un usage regulier soit de les detruire. Si vous les conserviez il vous
+% fallait regler vos droits d'utilisation aupres de l'auteur.
+% - Vous n'etes AUCUNEMENT autorise a modifier les fichiers marques du
+% mot << Copyright >>.
+% - La redistribution gratuite de cette distribution est autorisee
+% dans la mesure ou elle est complete et non pre-installee.
+% Vous n'etes AUCUNEMENT autorise a faire payer cette distribution ou
+% l'utilisation de ses fichiers si ce n'est pour un cout reduit de copie.
+% Tous les logiciels revendus par un circuit commercial sont consideres
+% en tirer benefice (meme s'il ne s'agit pas d'un grand profit) et donc
+% la redistribution est strictement soumise a un accord prealable avec
+% l'auteur.
+% - Vous n'etes PAS AUTORISE a inclure cette distribution dans un progiciel
+% qui reduirait ses possibilites intrinseques ; vous n'avez donc pas
+% le droit, par exemple, de ne redistribuer qu'une partie des fichiers
+% d'origine.
+% - Tous les fichiers de cette distribution sont accessibles gratuitement
+% sur le domaine de l'Internet (dont les serveurs CTAN).
+% - Aucun virus n'a ete detecte au moment ou ces fichiers furent termines
+% et prets a la distribution.
+% - Le code informatique est offert ici dans l'espoir qu'il soit utile et
+% avec la volonte qu'il soit correct mais aucune garantie ne peut etre
+% fournie, de quelque ordre que ce soit. Les utilisateurs l'utilisent
+% entierement a leur propre risque. L'auteur n'admettra et n'acceptera
+% d'etre lie par un quelconque engagement en cas de manque a gagner,
+% direct, indirect, immediat, consecutif ou autre, resultant de son
+% utilisation.
+% - Vous n'etes PAS AUTORISE a vous substituer a l'autorite de l'auteur
+% en appliquant des modifications, meme si de votre point de vue, elles
+% corrigent des deficiences.
+% Les lois internationales, europeennes (91-255) et francaises (94-361)
+% sont applicables.
+% L'utilisateur de ce logiciel peut toutefois le personnaliser a volonte
+% par differents moyens expliques dans la documentation. L'auteur du
+% logiciel n'est toutefois aucunement lie par une modification introduite
+% par une personnalisation utilisateur.
+%
+% En tant qu'e-French sous Copypright LPPL depuis 2010.
+%....................................................................
+% Copyright Gaulle-GUTenberg 1992-1998, B. Gaulle 1999-2007.
+% =========================================================
+% - The distribution of the FrenchFro package for LaTeX was made on
+% the shareware mode. After installation and tests of these files
+% during one month you had to decide either to keep them for
+% further use or to delete them. If you keept them you had to
+% pay the usage fees to the author.
+% - You are NOT ALLOWED to change in any way all files marked
+% with "Copyright".
+% - Free redistribution of this distribution is authorized but only
+% when complete and not pre-installed.
+% You are NOT ALLOWED to take money for the distribution or use of
+% these files except for a nominal charge for copying etc.
+% All softwares sold via commercial distributors are considered to
+% make money, even they don't make an important profit, thus the
+% redistribution is strictly limited to a previous agreement with
+% the author.
+% - You are NOT ALLOWED to include these files in a package/software in
+% a way that will reduce its capabilities or features; this doesn't allow
+% you, for example, to redistribute only few parts of the whole original
+% files.
+% - All the files included in the distribution are available freely inside
+% the Internet domain (and specially on CTAN servers).
+% - There was no virus at the time these files were completed for
+% distribution.
+% - This computer code is offered in hopes that it will be found useful,
+% and in the belief that it is correct, but it is offered without any
+% warranty of any kind, including warranty of fitness for any purpose.
+% Users of this code do so entirely at their own risk. The author neither
+% admits nor accepts any liability for any loss, direct, indirect,
+% consequential, incidental, or otherwise, resulting from the use of this
+% computer code.
+% - You are NOT ALLOWED to substitute author's authority by applying
+% modifications even if, in your point of view, they correct deficiences.
+% International, European (91-255) and French (94-361) laws apply.
+% There is still the possibility for the user to customize this
+% package at his wishes by various means explained in the documentation.
+% The author of the package is not liable for any change introduced
+% by any users customization.
+%.........................................................................V2.5
+%....................................................................
+% NOTICE that this work was done without any formal support.
+% Friendly helps, supports as well as sponsors are welcome!
+%....................................................................
+%\def\ds@le{\input frenchle.sty}%
+%
+% french.sty was developped by Bernard GAULLE for French-Speaking Users
+% This file is now a part of the e-French package.
+% For more details please read frnotes.pdf
+\expandafter\ifx\csname frenchTeXmods\endcsname\relax%
+\else \endinput \fi%
+\def\frenchname{french}%
+\def\frenchpack{eFrench}% eFrench
+\def\ds@french{}%
+\def\ds@pmfrench{\pmfrench}%
+{\catcode`\@=11{%
+ \ifx\@unexpandable@protect\undefined\let\protect\empty%
+ \else\let\protect\@unexpandable@protect%
+ \fi%
+ \xdef\FSfd{20 octobre 2011}% eFrench
+ \xdef\FSfv{V5,9995}% r j +
+ \xdef\frenchstyleid{\FSfv\space-- \FSfd\space --}%
+}}%
+ \edef\FSfd{2007/06/28 }%
+%
+% History as given by Bernard Gaulle:
+% I started this job years ago (in 1989) firstly
+% using ideas by Jacques DESARMENIEN, the French pioneer and also by
+% Eric PICHERAL (CICB, Rennes), Nicolas BROUARD (INED, Paris),
+% Marc SHAPIRO (INRIA, Rocquencourt), Raymond SEROUL (Lab Typo. Strasbourg),
+% Philippe LOUARN (IRISA, Rennes), Olivier NICOLE (INRA, Jouy),
+% Rainer SCH\"OPF (Uni. Mainz), Johannes BRAAMS (PTT, NL) and others.
+% I stopped to collect the names of the good guys in 1991 when i decided
+% to make a seriously enhanced & rewritten distribution i released as V3.0.
+%
+%% Free gift to GUTenberg (Frenchspeaking TeX Users Group)
+%% during 12 years. (Groupe francophone des Utilisateurs de TeX).
+%% Shareware since january 2001 (Version 5,00).
+%
+% Send suggestions/bug reports/corrections to the maintainer of e-French:
+% Laurent Bloch, lb@laurentbloch.org
+% (http://www.laurent-bloch.org/spip.php?article166)
+%
+% Canonical Archives server is: www.gutenberg.eu.org
+% (in /pub/GUTenberg/french)
+% where these files are archived.
+%
+% Running only with LaTeX2e, oldest format required:
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]% -the latest one acceptable
+\let\auxWARNINGi=\@gobble% -accept aux files produced by french
+% This style is using, at most:
+%%<
+%%> 577 strings out of 11731 (4.9%);
+%%> 4675 string characters out of 85497 (5.4%);
+%%> 11217 words of memory out of 262141 (4.2%);
+%%> 567 multiletter control sequences out of 9500 (5.9%).
+%
+% (I used usual teTeX with option mltex).
+%
+% Lastest updates (previous updates infos in history file)
+% ===============
+%
+% V5,995
+%Released --bg 2005/04/18
+% \XeTeXinputencoding is no more running: supporting
+% XeTeX is now differed. Jonathan Kew informed. --bg 2005/12/25
+% V5,996 patch to allow \label to run in math mode. --bg 2005/09/09
+% Reported by Simon Pierre Desrosiers.
+%
+% \captionseparator is off with memoir.cls, --bg 2005/10/08
+% use \captiondelim.
+% Reported by Frederic Connes.
+%
+% Patch for relsize [2003/07/04 ver 3.1] to avoid messages when
+% the smallest size is less than de default of 6pt. --bg 2005/12/22
+% Reported by Frederic Connes.
+%
+% Patch for nomencl.sty which force \kbtypeout to be
+% called from \item in an unexpandable environment and
+% then producing an undefined \f@tempa break. So i add
+% \nofrenchwarnings in \printnomenclature. The problem
+% was reported by J.B. Moreau. --bg 2006/01/19
+%
+% Released 2006/03/25
+% V5,997 Emergency message added when frlicense.dat is empty.
+% Change in tabbing environnement: \tabbingaccents is
+% now the default in French since 8bits chars in T1
+% are always converted to 7bits chars "a la TeX".
+% \notabbingaccents added in \nofrenchtypography.
+% The pb was reported by Frederic Petit. 2006/04/25
+% V5,998 Released - new production scheme. 2006/07/04
+% V5,999 Patch for frenchle: ## illegal parameter in \@tempa (\') ?
+% issuing message with superfluous double \string (\@w@s). 2006/08/15
+% Natbib correction: bibitem macro was one oboslate of
+% jurabib. Jurabib bibitem macro obsolate and misplaced.
+% Full code revisited. 2006/08/18
+% Released 2006/08/25
+% V5,9991 When FrenchPro is called from babel(fr) all given options
+% should not be processed by the msg package, so we call msg
+% saying it's an \intern@lc@llfrom{FrenchPro} and it has to
+% use the French language.
+% But don't force French when calling from kernel. 2006/10/03
+% V5,9992 German localisation completed, thanks To Werner Struchmann.
+% 2006/10/13
+% V5,9993 Empty \caption was not processed correctly and thus the
+% the caption separator was erroneously printed. 2007/02/09
+% \texttt is now robust, avoiding wrong expansion in title
+% heads especially.
+% \MakeRobustCommand now creating \cmd_fp in place of
+% \cmd_. (a LaTeX robust command can be made robust for
+% FrenchPro too). 2007/02/11
+%
+% V5,9994 Correction for empty caption didn't run with hyperref. In
+% a first step i remove the modification and will try to
+% find the good mod to avoid the \captionseparator be
+% printed. 2007/06/28
+%
+% and also check if there is any frpatch.sty file available.
+% %%%%%%%%%%%%%%%%%%%%%%%
+% Distributed as eFrench under LPPL is same as version 5,9994
+% but without the test for a shareware licence
+% Changes made by Raymond Juillerat 2010/05/04
+%
+% V5,9995 Some changes because a problem arose with the language arabic
+% in that case, the language switch \arabic was in conflict with the
+% arabic format for numbers, also \arabic.
+% Therefore in this version, the switch is to be made with \arabicLang, but
+% the configuration file for the language arabic is as usual \arabicTeXmods.
+% These changes affect all languages <language> were \<language> already
+% exists and would enter in conflict with. Language switch is made with
+% \<language>Lang and the context is defined with \<language>TeXmods.
+% Same changes were made in frenchle
+% Changes made by Raymond Juillerat 2011/09/26
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Object: DOCUMENT CLASS OPTION for printing French texts with TeX or LaTeX
+% as well as english. (or multilingual texts in which French is the
+% main language).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% It can be called:
+% via \usepackage{french} % french is alone
+% or \usepackage[french]{mlp} % using The Multi-Lingual Package
+% or as an option of \documentclass, when using mlp.
+%(or via Babel, with less features)
+%
+% Commands to be used by the end users:
+% ====================================
+% \frenchtest between \document.... and \end{document} will run
+% the LaTeX "Torture Test" (see french*.tex files).
+% \frenchdoc between \document..... and \end{document} will compose
+% the LaTeX documentation (see frenchlu.tex file).
+% \french Apply French conventions including hyphenation,
+% typography, page layout, titles inside documents and
+% few other things helping when typing a document.
+% This is the default language.
+% \begin{french}...\end{french} to bind the French text with LaTeX.
+% \french ... \endfrench with TeX.
+% \pmfrench (preambule command) ... the poor man way
+% (or \usepackage{pmfrench} vi pmfrench.sty)
+% to let the French style run even the TeX motor
+% (ie format) was not installed or configured in a way to
+% use the French language (hyphenation, language.dat,...)
+% Be aware that a lot of things might not provide their
+% usual featuring. Notice also that then the following
+% commands do nothing:
+% - \noeveryparguillemets
+% - \lettrine and \flettrine
+% - \abbreviations and "..."
+% - \frhyphex
+% \usersfrenchoptions{.. French options ..} to allow the user to change the
+% default options. All options given inside braces remain
+% active all along the document inside language French.
+% This command can be reused, provided arguments are
+% then cumulated.
+% \english for going back to "normal" English conventions
+% And if you have a language.dat config file defining
+% german and dutch languages OR you use
+% \NouveauLangage[n]{german} and
+% \NouveauLangage[p]{dutch} where n and p are internal
+% unused language number, then you can type:
+% \german to switch to German conventions
+% \dutch or to switch to Dutch conventions or to
+% \any_name (any language created by \NouveauLangage[n]{any_name})
+% \NouveauLangage[n]{language_name} (as previously explained)
+% define \language_name which will call \language_nameTeX
+% assuming that \language_nameTeX is/will be defined
+% (normally in a style file).
+% \beginlanguage switch to the language that started first after
+% \begin{document} (depending of the last lang.style opt)
+% \beginFWdirection switch to the first direction of writing when TeX--XeT.
+%--------------------
+% Commands for compatibility:
+%
+% \inferieura is the original less than sign (<)
+% \superieura is the original greater than sign (>)
+% \pointvirgule is the original ";"
+% \deuxpoints is the original ":"
+% \pointexclamation is the original "!"
+% \pointinterrogation is the original "?"
+% \lq and \rq stands for ` and '
+% ^\prime stands for ' in maths
+% \lqq and \rqq stands for `` and ''
+% \dittomark stands for "
+%
+% \originalinput{file_of_code} is supplied to input any code that might be
+% incompatible with the French style.
+% You can also disable the French style using:
+% \begin{nonfrench}...\end{nonfrench} with LaTeX
+% \nonfrench..........\endnonfrench with plain TeX
+% \originaloutput[file]{text} is supplied to output any text that would
+% otherwise generate expanded macros for activated chars
+% instead of original characters. "file" is a stream
+% number related to open file defined by \newwrite.
+% \def\encodingdefault{...} can be set to "T1" or "OT1" to change the default
+% font encoding that is normally set in the format
+% (with initex material and specially kbconfig.tex)
+%--------------------
+% \frhyphex Reload once French hyphenation exceptions file from
+% language.dat (give this order in the preambule)
+% Not usable with plain (or low level languages).
+% \frenchhyphenation Apply French rules on hyphenation:
+% - as stated in the patterns file
+% - with exceptions as established by \hyphenation
+% - of words starting with one upper case letter
+% and also allows accent macros in \hyphenation
+% or \showhyphens.
+% \nofrenchhyphenation Nullify former actions
+%
+% Other commands for hyphenation that remains unchanged over \french reinit.
+%
+% \allowhyphens allow the following word to be hyphenated (useful
+% sepcially in the second part of a compund word.
+% \allowuchyph allow hyphenation of words starting with a capital
+% letter (this is the default as in plain & lplain)
+% \allowfulluchyph allow it even if a \hbox would normally forbid it in
+% the present code.
+% \disallowuchyph forbid it (this is my own recommandation)
+% \tthyphenation allow hyphenation of words in the present \tt font
+% \notthyphenation disallow hyphenation of words in the present \tt font
+% (never saved; last value in a \par is that which works;
+% default value is that given by the main doc-style;
+% presumely the default -if not: tell me \tthyphenation;
+% this is the default in lplain.tex)
+%--------------------
+% \frenchtypography Apply French typography (spacing) on :
+% - double punctuation ! ? ; :
+% - guillemets (<< >>).Use \endguillemets instead of >>
+% for ending 2 levels of guill. at the same time or
+% when the ("everypar") open guillemets were ended in
+% a previous inner environnement.
+% Italic correction automatically added if necessary.
+% - footnote marks in the text and minipages.
+% - footnote references (\refmark).
+% - thanks in titles.
+% Print footnote number in the same font as the footnote
+% text followed by a dot and appropriate spacing. When
+% used in table environment footnote marks are typeset
+% as in a minipage.
+% Italicize the caption text (using \captionfont defaultly
+% set to \emph).
+% Change caption separator (":" replaced by value of
+% \captionseparator which default is "~--")
+% Suboption: \frenchmathcomma
+% Remove space after coma in math mode (default)
+% \regularmathcomma
+% to set space, as usual after comma in math mode.
+% (chosen option is used to print numbers with \nombre).
+% \originalmathcomma
+% to reset coma mathcode as before FrenchPro wass called.
+% Suboption: \unnumberedcaptions{figure/table} to remove headings in
+% caption tiltles. This is a global suboption.
+% It nullify the according \listof...(figures/tables).
+% It can be used only once. Can't be turned back later
+% in French.
+% Hyphenate correctly. (The lowest level of application
+% is the paragraph.)
+% Discourage page breaking after ``:''
+% Forbid line breaking before double punctuation and >>
+% and after <<.
+% Suboption: \noTeXdots will change them to 3 closed dots
+% \TeXdots leave \dots, \ldots as well known TeX dots (default)
+% Suboption: \nofrenchguillemets stops producing French guillemets.
+% \frenchguillemets starts producing French guillemets (default)
+% Suboption: \ancientguillemets start every paragraph of second level
+% guillemets with closing >> instead of <<.
+% \todayguillemets normal way at the present time (default)
+% Suboption: \noguillemetsinarrays will print << or >> in standard arrays
+% textual modes (depending of the font used).
+% \guillemetsinarrays is the usual default value.
+% Suboption: \guillemetsinallfonts allows to print them in any font but
+% \guillemetsinroman remains the usual default value.
+% Suboption: \guillemetsfont allows, when in a T1 font encoding running
+% scheme to choose the font for guillemets, just define or
+% redefine \guillemetsfont.
+% Command: \endguillemets ends levels 2 & 1 at the same time (i.e. >>>>)
+% Suboption: \noenglishquote replace TeX ` ' quotes AND apostrophes
+% by accents ` ' (to use only temporary).
+% Do nothing inside a tabbing environement.
+% \...code and \char become unusable asis.
+% \englishquote is the default
+% Suboption: \noenglishdoublequotes for replacing `` with << and '' with >>
+% Do nothing inside a tabbing environement.
+% \...code and \char become unusable asis.
+% \englishdoublequotes normal quoting ``...'' is the default
+% Suboption: \untypedspaces force a space where normally French people
+% type one (before ; : ? ! >> and after <<)
+% \typedspaces is the default value
+% Suboption: \tabbingaccents allow to put \` and \' diactrics on letters
+% when used in tabbing environment. \' and \` remain their
+% original tabbing usage if followed by a blank space.
+% Also usefull for 8bits chars ; this is the default.
+% \notabbingaccents is the usual LaTeX usage.
+% Suboption: \idotless suppress point on i when accented with ^ and "
+% \iwithdot is the default
+% Suboption: \EBCDICbrackets replace non-math mode < ... > by [ ... ]
+% (..IBM has no brackets so < and > are often used as brackets)
+% \normalbrackets is the default
+% Suboption: \letpunctutionactivefor to use allways with something else
+% (like \wrongtypedspaces), let punctuation (! : ; ?) active
+% after French style. Caution: it's extremly dangerous!
+% (specify the suboptions after \frenchtypography)
+% (sub-options are not saved/restored over a language switch)
+% \nofrenchtypography Nullify former actions
+% Suboption: \wrongtypedspaces suppress spaces before double punctuation
+% (! : ; ?) which was erroneously typed \`a la fran\c caise.
+% \text{...} Allows to typeset text in math mode (AmS like command).
+%--------------------
+% \ConstantLayout is a one time macro that disallow to change page layout
+% and any other typographic feature when switching to another
+% language. Once used in any language it is applied for the
+% whole document.
+% \frenchlayout Apply:
+% - indentation of all (first LaTeX) paragraphs:
+% Suboption: \indentfirst is the default or
+% \nonindentfirst which forces no indentation at all.
+% - set item markers as --. User can choose others
+% markers via the command
+% \frlabelitems{\renewcommand{\labelitemi}...}.
+% Look at documentation for more details and specially
+% for the use of \checkitemguillemets.
+% - reset section counter when starting a part.
+% Suboption: \noresetatpart nullify the former action.
+% Suboption: \noresetatchapter will not reset footnote counter at chapter
+% change.
+% Suboption: \frenchtrivsep sets (reduced) vertical spacing in lists, this
+% is the default. As this spacing is forced warning
+% message is issued when other spacing is user
+% expected. Look at \frenchwarnings part.
+% You can choose your own values by setting the lengths
+% with the command \frtrivseplengths{\setlength...}.
+% In that case no warning message is issued.
+% \nofrenchtrivsep resets the standard spacing in lists.
+% - special spacing with the experimental "order" list.
+% - print table footnotes as in minipages.
+% - print a coma between consecutive footnotes.
+% Suboption: \frenchpagestyle apply a French pagestyle when starting a
+% Part or a Chapter or an Index (provides \printindex)
+% \nofrenchpagestyle will not.
+% Suboption: \beginingfolio print the folio on theses pages (default)
+% \nobeginingfolio will not.
+% - modify thebibliography environnement to be referred
+% in toc and have a valid anchor in hyperref docs.
+% - with letter.sty: address placement, typeset \closing
+% as a paragraph and with \fclosing in place of
+% closing you can chose spacing between closing and
+% signature by saying \fclosing[n]{...} with n being
+% the number of \medskipamount (default is 9).
+% to typeset the date with \location{Paris, le ...}
+% \yourref{...} to refer to a received letter
+% \ourref{...} for your own reference
+% \object{...} to precise the object
+% \PS{...} for a post-scriptum
+% \email{...} for the email address
+% \def\formhead{...} for the odd page headings
+% (not operational with \nopagenumbers)
+% \def\formfoot{...} for the odd page footings
+% (not operational with \nopagenumbers)
+% \wideletter to enlarge the default linewidth.
+% - offer macros for starting paragraphs with a dropped
+% initial capital letter:
+% with \lettrine the first letter of the first
+% token will be dropped. (warning: in 7-bit
+% write {\c C} for example). Remaining part
+% of the token in printed in small caps.
+% with \flettrine a box will be printed around.
+% Generic syntax:
+% \lettrine{Begining of the paragraph}
+% \flettrine{Begining of the paragraph}
+% or \lettrine[<< {Begining} >>] (let spacing!)
+% \flettrine[<< {Begining} >>] (ending >> might
+% be given later in the text)
+% \lettrine or \flettrine START a paragraph! And
+% to avoid any problem the paragrpah must end with an
+% explicit \par. This is a fragile macro!
+% Suboption: \noautomaticlettrine (default) processing;
+% the lettrine uses a standard LaTeX font size.
+% You can use \lettrinefont to define the font you
+% want at the size you want. As default \lettrinefont
+% is set to \Huge.
+% Use \def\lettrinehang{n} to force hanging of n
+% lines (there is no default value).
+% \automaticlettrine processing: the lettrine uses a computed
+% font size.
+% You can use \lettrinefontname to set the font
+% (default is current font) and it will start the
+% \automaticlettrine feature that means a new value
+% of \lettrinefont is established (font-size).
+% \lettrinehang is defaultly set to 2 lines and
+% can be changed.
+% The \automaticlettrine feature can be stoped by
+% calling \noautomaticlettrine.
+% Suboption: \everyparguillemets open guillemets on every paragraph
+% until closing and do nothing at level 2.
+% This is the default.
+% \everyparguillemetsremoved switch off the previous feature.
+% \noeveryparguillemets don't start each par with guillemets
+% but start each level 2 line with them.
+% \guillemets is forbidden, use 7/8bit
+% guillemets chars.
+% (see documentation for further explanations)
+% Suboption: \overfullhboxmark print the TeX black box exactly where there
+% is an overfull hbox (as draft option do)
+% \nooverfullhboxmark is the default in LaTeX
+% Suboption: \labelsinmargin put labels in margin for debugging purposes
+% This option can be used anywhere (outside
+% \frenchlayout as well as \french environment)
+% \nolabelsinmargin is the default
+%
+% Propose the following environments:
+%
+% Environment \begin{drapeaufg}...\end{drapeaufg} to typeset raggedright
+% with hyphenation.
+% Environment \begin{drapeaufgIN}...\end{drapeaufgIN} to typeset raggedright
+% without hyphenation (rules of Imprimerie Nationale)
+% As text is never split and overfull can occur
+% you may have to split lines by hand.
+% Environment \begin{drapeaufd}...\end{drapeaufd} to typeset raggedleft
+% with hyphenation.
+% Environment \begin{drapeaufdIN}...\end{drapeaufdIN} to typeset raggedleft
+% without hyphenation (rules of Imprimerie Nationale)
+% Text printed past the line limit may occur.
+% Environment \begin{order}...\end{order} to enumerate items with
+% via \primo \secundo etc. and with sepcial spacing
+% Environment \begin{figurette}...\end{figurette} to place a (little)
+% figure EXACTLY here.
+% Environment \begin{versatim}...\end{versatim} to print verbatim
+% but with hyphenation typeset as in \verse and with
+% \noenglishquote and \noenglishdoublequotes available
+% Commands: \vers|...| the inline (or intext) vserion of "versatim"
+% \verbatimfile{filename} the filename is inputed in verbatim
+% BUGED!! (\nopagenumbers reintroduced if undefined)
+% \nofrenchlayout Nullify former actions
+%--------------------
+% \frenchtranslation . Translate all English titles used in LaTeX, to french
+% and generate French dates. This is the default.
+% All things should normally run with std LaTeX or Babel.
+% You can also create your own styles using these captions
+% A lot of captions are newly defined for letters.
+% You can also change the titles with your own definitions
+% by using \fraddto\captionsfrench{\..name}{title}.
+% Environment \begin{resume}...\end{resume} to print an abstract
+% . \resume has been defined for French abstracts (we often
+% need French and English abstracts together). You must
+% be in \french before using it. (like you are in \english
+% when you use \begin{abstract}...\end{abstract}).
+% Environment \begin{motsclef}...\end{motsclef} to print a keywords list.
+% . \motsclef has been defined for French keywords.
+% (Environment \begin{keywords}...\end{keywords} to print a keywords list)
+% (by the way i have defined \keywords \endkeywords)
+% . \sommaire is defined as a toc in front of a document.
+% \sommaire[1] don't print paragraphs entries and below.
+% \sommaire[2] don't print subsubsection entries and below
+% \sommaire[3] don't print subsection entries and below,
+% this is the default for \sommaire.
+% \sommaire[4] don't print section entries and below,
+% . \annexe and \annexes have been defined.
+% . \glossaire and \glossaires have been defined. If the
+% "theglossary" is undefined, allow:
+% \printglossary[filename] (default is jobname.gls
+% produced by pgm "makeindex -s gglo.ist")
+% NB: code preferably \glossary{[name :] explanation}
+% and: without makeindex allow to code jobname.glo
+% (instead of .gls) & print something acceptable.
+% . makeidx.sty is included and translated.
+% . \seealso is defined for indexes.
+% \nofrenchtranslation Nullify former actions.
+%--------------------
+% \frenchmacros Add a lot of macros to help in typographic process.
+% \ier for printing 1\ier (premier) (examples)
+% \iere for printing 1\iere (premiere)
+% \ieme for printing 2\ieme (deuxieme)
+% and their plurials \iers, \ieres and \iemes.
+% \FileName{file_name} for 8bit file names, then
+% use it by calling \theFileName (e.g with \input).
+% \WindowsUnits{name1=A,...,namen=N} to define macros
+% names to assign to Windows units which will be called
+% in any input file process (\name1: ... \nameN:)
+% protecting from the activated colon character.
+% \at for printing @ (at)
+% \vert for printing | (vertical bar)
+% \chap for printing ^ (hat or circonflexe)
+% \backslash for \ (backslash)
+% \tilde for printing ~ (tilde)
+% \nombre for printing large numbers and have the correct
+% spacing (p.ex. \nombre{123 456,789 012})
+% \numero for printing (no)
+% \Numero for printing (No)
+% as well as \numeros and \Numeros
+% \degres for printing (degrees)
+% \leftguillemets for << (unbalanced left guillemets)
+% \rightguillemets for >> (unbal. right guillemets)
+% \fup{X} to put X in a smaller size supscript
+% \primo \secundo \tertio \quarto \quando={n}
+% [or:\primo) \secundo) \tertio) \quarto) not recommanded]
+% \fsc{name} or \fsc{NAME} will print as \textsc{Name}
+% \fsc*{name} or \fsc*{NAME} forces use of \rmfamily
+% \lsc{name} or \lsc{NAME} will print as \textsc{name}
+% \lsc*{name} or \lsc*{NAME} forces use of \rmfamily
+% \refmark{X} stands for \footnotemark[\ref{X}]
+% \moretolerance will double each TeX tolerance within
+% any chosen grouping (useful in narrow situations).
+% \Sauter#Lignes will skip # lines (for specific usage)
+% \! (negative thin space) run in non math mode
+% \frenchalias\your_short_name\the_long_french_macro_name
+% to give a short name to a very long macro name.
+% Suboption: \abbreviations allowing to ask for: "name_to_be_abbreviated"
+% will print abbreviation if found otherwise will give a
+% warning and print the name asis. The first char. of
+% "name" is not compared, except if the abbreviation file
+% contains {Name}. Customisation is allowed like this:
+% \abbreviations[my_abbrev_file]
+% \noabbreviations is the default option
+% \nofrenchmacros Nullify former actions
+%
+% Some complemetary macros used in other parts:
+% \ordinal{counter} gives "premier", "deuxieme", ... "vingtieme"
+% \Ordinal{counter} gives "Premier", "deuxieme" ...
+% \ordinale{counter} gives "premi\`ere", ...
+% \Ordinale{counter} gives "Premi\`ere", ...
+%
+% Macros to output messages:
+% \kbtypeout{msg} issue msg on console, translating or not
+% the accent macros and not expanding the activated chars.
+% Under control of \@kbspecials for 8-bit output
+% translation possibility. Such package like
+% kbconfig/keyboard can translate to the
+% appropriate keyboard encoding. In fact \kbtypeout is
+% equivallent to \kbIO[\typeout].
+% \kbIO[output_macro]{msg_text} allows to output the message
+% either on log file (\wlog), or on console (\tyepout)
+% or even on any file (\immediate\write...)
+%
+%--------------------
+% \frenchwarnings let french issue its warnings, this is the default. This
+% part has the followings sub-options:
+% Suboption: \frenchtrivsepwarnings let french inform the user when
+% vertical spacing is not respected as requested in
+% a non-standard environment. This is the default
+% Suboption: \nofrenchtrivsepwarnings ask french not to issue any warning
+% regarding the vertical spacing requested by the
+% user and not applied. This is the default when user
+% choose his own values for spacing via \frtrivseplengths.
+% \nofrenchwarnings instruct french to stop to issue messages.
+% This syntax is probably not the final one.
+%--------------------
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ===============================
+% | About typing |
+% ===============================
+%% No code here, just an advice.
+%%
+%% Inputing French punctuation you must type a space:
+%% - before a double punctuation (! ? ; :)
+%% - before >>
+%% - after << ; :
+%% Double " or single quoting ` ' as well as single guillemets < > must not
+%% be used in french.
+%% Type ... normally (instead of \dots or \ldots).
+%% Respect French abbreviations like:
+%% \hbox{c.-\`a-d.} / \emph{i.e.} / p.ex. / \etc. / cf. / id. /
+%% p.i. / p.o. / doc. / chap. / part. / vol. / paragr. / R.S.V.P. / ...
+%%
+%% Please apply these allmost elementary (and historical) rules.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]%
+\let\auxWARNINGi=\@gobble%
+\def\@txt@msg#1{#1}% -Just get arg and remove {}.
+\def\@gobbleopt[#1]{}%
+\def\f@issue#1#2{#1{#2}\@ifnextchar[{\@gobbleopt}{}% -]
+ }%
+%#<
+% Firstly we add the material to use the "msg" package for localization.
+\def\@tempc{%
+\def\f@issue##1##2{\f@issue@[##1]##2\void}% -The local \issuemsg macro.
+ % -which will call the real one;
+ % -#1 is the macro message required.
+ % -#2 is the message header + msg number
+ % -such as "^^J -234-", just message
+ % -number (234) is kept.
+\def\f@issue@[##1]##2-##3-##4\void{\issuemsg[##1]##3(french)}%
+\PassOptionsToPackage{french}{msg}%
+\ifx\LdfInit\@undefined%
+ \RequirePackage{msg}% -Usually, load the msg package.
+\else% -But with Babel, dont use \usepackage or such,
+ \let\@GOfrench\@currname% -Save current package name.
+ \xdef\@currname{msg}% -Set package req.
+ \def\intern@lc@llfrom{\frenchpack}% -Say him it's an internal/kernel call.
+ \let\fp@languagename\languagename% -Save current language name.
+ \ifx\documentclass\@twoclasseserror% -When not a kernel case
+ \def\languagename{french}% -force French for the msg package.
+ \fi%
+ \@@input msg.sty% -and input it now.
+ \let\languagename\fp@languagename% -Reset current language name.
+ \let\fp@languagename\undefined%
+ \let\intern@lc@llfrom\undefined%
+ \let\@currname\@GOfrench% -Reset original package name.
+\fi%
+ }% -\@tempc
+\def\@tempd{\def\f@issue##1##2{\@ifnextchar[{\@gobbleopt}{}% -]
+ }%
+ }% -\@tempd
+% Prepare to compare \jobname and license file name.
+\edef\@tempa{\expandafter\noexpand\csname str-\jobname\endcsname}%
+\edef\@tempb{\expandafter\noexpand\csname str-frlicense\endcsname}%
+% FrenchPro requires msg.sty and *-msg.tex files
+\ifx\@tempa\@tempb% -but only for typesetting a document.
+\IfFileExists{msg.sty}{\@tempc}{\@tempd}\else%
+\IfFileExists{msg.sty}{\@tempc}{% -Avoid loading it if msg.sty doesn't exist.
+ \typeout{^^J -81- WARNING: "msg" package not found;%
+^^J\space\space\space\space\space\space continuing without message texts.}%
+ }%
+\fi%
+%#>
+\newif\ifECM%
+% Here come \if-switches codes in case of french.sty badly initiated
+\def\ErrFrench{\f@issue\@fW{-26- %
+%\@txt@msg{Erreur d\'etect\'ee dans \frenchname.sty !}%
+%\@txt@msg{(voir p.ex. le fichier language.dat)}%
+ }}%
+\def\ifFTY{\ErrFrench}\def\ifFTR{\ErrFrench}\def\ifFG{\ErrFrench}%
+\def\ifFLA{\ErrFrench}\def\ifFMA{\ErrFrench}\def\ifFH{\ErrFrench}%
+\def\ifArG{\ErrFrench}\def\ifFTSW{\ErrFrench}\def\ifFW{\ErrFrench}%
+%
+\edef\GOfrench{`\string @}% -temp def further correctly defined
+\ifnum\catcode\GOfrench=11% -mods of code proposed by DT that
+ \let\resetat\relax% -accepts also that @ were active
+ \else\edef\resetat{\noexpand\catcode\GOfrench=\the\catcode\GOfrench}%
+ \makeatletter\fi%
+%
+\let\@currnameORI\@currname% -save current package name
+\xdef\@currname{\frenchname}% -set pasckage req.
+{\def\'{\string\'}% -to avoid \accent@spacefactor=\undefined (in pr\'e-)
+ \ProvidesPackage{\frenchname}%
+ [\FSfd\space The \frenchpack\space package /\FSfv/]%
+}%
+\def\GOfrench{babel}\ifx\@currnameORI\GOfrench% -allow Babel to load me
+ \ifx\undefined\babel@core@loaded\input babel.def\relax\fi%
+ \ifx\undefined\babel@core@loaded% -still undefined (>3.5)?
+ \let\babel@core@loaded\main@language\fi%
+ \fi%
+%#<
+%\let\FSfd=\undefined% let it defined for possible patch test.
+\def\@tempa#1V#2,#3\@nil{\def\@FSfv{#2}}\expandafter\@tempa\FSfv\@nil%
+%#>
+\let\FSfv=\undefined% -return to the pool
+\IfFileExists{frpatch.sty}{\def\FSfd@patch{unknown}}{\let\FSfd@patch\FSfd}%
+%
+\if@compatibility% -provide error msg with 2.09 emulation
+ \f@issue\typeout{^^J -68-
+ %\@txt@msg{ERROR: \frenchpack\space is no more running }%
+ %\@txt@msg{with 2.09 emulation, sorry!}%
+ }\expandafter\stop%
+\fi%
+%
+\ifx\l@french\undefined\f@issue\typeout{^^J -20-
+ %\@txt@msg{WARNING:}%
+ %\@txt@msg{the French language is undefined in your format.}%
+ }%
+\fi%
+%
+\fontencoding{\encodingdefault}\selectfont%
+ \def\@temp@{OT1}\ifx\@temp@\f@encoding%
+ \def\@temp@{\global\ECMfalse}%
+ \else\def\@temp@{LO1}\ifx\@temp@\f@encoding%
+ \def\@temp@{\global\ECMfalse}%
+ \else% -could be LY1
+ \def\@temp@{\global\ECMtrue}%
+ \fi%
+ \fi%
+\@temp@%
+\def\@tempa{\let\ifEightBitOutput\iffalse}%
+\ifx\EightBitOutputfalse\undefined\expandafter\@tempa\fi%
+\ifECM\else\ifx\charsubdef\undefined%
+ \def\@tempa{\noexpand\dGs}%
+ \ifx\@tempa\dGs\else%
+ \ifx\@kb@msgXXIX\relax\else% -Don't issue if already done.
+ \f@issue\typeout{^^J -29- %
+%\@txt@msg{***Warning***\string: TeX engine in use along with CM fonts }%
+%\@txt@msg{(as in current TeX format) isn't sufficient to hyphenate }%
+%\@txt@msg{words containing diacritics (like in French).}%
+ }%
+ \let\@kb@msgXXIX\relax%
+ \fi%
+ \fi%
+\fi\fi%
+\ifx\undefined\@dblarg% -....................................... \@dblarg
+\long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}}%
+\long\def\@xdblarg#1#2{#1[{#2}]{#2}}%
+\fi%
+\newdimen\@FrDimen% -general def for the style
+\def\usualmessages{\let\ifEightBitOutput\iftrue}%
+ \ifnum\inputlineno=-1\def\@o@l{.}% -may be negative
+\else\def\@o@l{ (\`a la ligne \the\inputlineno).}\fi%
+ \expandafter\let\expandafter\@aiguORI\expandafter=%
+ \csname OT\string1\string\'\endcsname%
+ \expandafter\let\expandafter\@gravORI\expandafter=%
+ \csname OT\string1\string\`\endcsname%
+ \expandafter\let\expandafter\@acchORI\expandafter=%
+ \csname OT\string1\string\^\endcsname%
+ \expandafter\let\expandafter\@tremORI\expandafter=%
+ \csname OT\string1\string\"\endcsname%
+ \expandafter\let\expandafter\@cediORI\expandafter=%
+ \csname OT\string1\string\c\endcsname%
+%#< This is a little code to avoid braces to be striped when the token
+% is provided via a macro parameter.
+\def\@PreserveBraces[#1#2]% -................................... \@PreserveBraces
+ {\ifcat\noexpand#1$ #1#2\def\@temp@{}%
+ \else\def\@temp@{#2}%
+ \ifx\@temp@\empty\def\@temp@{#1}%
+ \else\def\@temp@{{#1#2}}\fi%
+ \fi\expandafter\@temp@}%
+%
+\def\@temp@{lplain-bilingual}% -E.P. wrong old def checking
+\ifx\fmtname\@temp@\f@issue\typeout{-64- %
+ \@txt@msg{ERROR: invalid \string\fmtname\space in lplain.tex}%
+ }\stop\fi%
+%% code to test the shareware licence suppressed eFrench
+\let\@tempc\relax% -AmS bug: \@tempc=\if.
+%
+\ifx\today\undefined\let\today\cejour\fi% -for lettre.cls
+\ifx\today\undefined\f@issue\typeout{^^J -52- %
+%\@txt@msg{Error: the \frenchpack\space package doesn't run in }%
+%\@txt@msg{such minimal document class, sorry!}%
+ }\expandafter\stop%
+\fi%
+{\def\GOfrench{\global\let\ifEightBitOutput\iffalse}% -force seven bits
+\let\add@accent\@gobble\edef\@tempa{\`{}}%
+ \def\@tempb{{\setbox \@tempboxa \hbox {}\accent 18 }}%
+ \ifx\@tempa\@tempb% -hum, OT1 is just loaded, so no expand.
+ \expandafter%
+ \GOfrench% -and force seven bits for all \@fw messages.
+ \fi%
+}%
+% Macro to send a message without header:
+\def\@fW#1{{\let\@nobraces\@firstofone%
+ \ifEightBitOutput%
+ \setbox\@tempboxa\hbox{\`\space}% -For \add@accent expansion.
+ \ifx\charsubdef\undefined\else% -case MlTeX only
+ \let\add@accent\@gobble% -Avoid redef. by fontenc loading.
+ \def\'##1{\expandafter\@nobraces\@aiguORI##1}%
+ \def\`##1{\expandafter\@nobraces\@gravORI##1}%
+ \def\^##1{\expandafter\@nobraces\@acchORI##1}%
+ \fi%
+ \else%
+ \let\protect\string\let\add@accent\@gobble%
+ \fi%
+ \edef\@tempa{#1}\typeout{\@tempa}}}%
+{\def\ier{er}% -this is the French typographic abbreviation of "st"
+\f@issue%
+\@fW{^^J -23- %\@txt@msg{Extension \string : \frenchpack\space}%
+%\@txt@msg{\frenchstyleid\space(B.Gaulle)}%
+ }%
+}%
+%
+\let\ifFW\iftrue% -Start with (warning) messages
+\def\@fw#1{{\let\@NoFr\relax% -Avoid any loop inside \kbtypeout.
+ \ifFW\kbtypeout% -..................................... French warning
+ {^^J \frenchname.sty \string : #1\@o@l}%
+ \fi%
+ }}% -Notice: after \begin{document} there is no more need to
+% protect active characters against expansion.
+\ifx\kbtypeout\undefined%
+% Notice that \kbtypeout can be set to \relax\egroup by keyboard.sty.
+\def\@kbtypeout[#1]#2{\ifEightBitOutput\let\@typeset@protect\protect\fi%
+ \let\@inpenc@undefined@\@gobble% -To avoid loop.
+ \edef\f@tempa{#2\empty}% -Expand it now and type out.
+ #1{\f@tempa}\egroup}%
+\def\kbtypeout{\kbIO[\typeout]}% -.................................. \kbtypeout
+\def\kbIO{\bgroup% -................................................ \kbIO
+ \ifECM\fontencoding{OT1}\selectfont\fi% -Basic fontencoding needed.
+ %\nofrenchtypography% To apply only after \begin{document}.
+ \let\@nobraces\@firstofone% -could be provided separately,
+ \let\protect\string%
+ \ifEightBitOutput% -eg by kbconfig.
+ \def\'##1{\expandafter\@nobraces\@aiguORI##1}%
+ \def\`##1{\expandafter\@nobraces\@gravORI##1}%
+ \def\^##1{\expandafter\@nobraces\@acchORI##1}%
+ \def\"##1{\expandafter\@nobraces\@tremORI##1}%
+ \def\c##1{\expandafter\@nobraces\@cediORI##1}%
+ \csname @kbspecials\endcsname% -Translation settings.
+ \else% -7-bit output wanted.
+ \let\add@accent\@gobble%
+ \def\set@display@protect{\let\protect\noexpand}% -Have spaces!
+ \fi%
+ \@kbtypeout}%
+\fi%
+\ifx\@kbtypeout\undefined% -A default \@kbtypeout macro.
+ \def\@kbtypeout[#1]#2{#1{#2}\egroup}%
+\fi%
+\def\@tempb{\let\ifEightBitOutput\iffalse}%
+\ifx\kbtypeout\typeout% -If no kb output encoding then set a correct \@fw cs.
+ \long\def\@tempa{\add@accent{19}}% -Case standard OT1 (re)loaded
+ \ifx\@tempa\@aiguORI\expandafter\@tempb\fi% -then force 7-bit.
+\def\@fw#1{\ifFW\bgroup\let\@nobraces\@firstofone%
+ \ifEightBitOutput%
+ \ifx\charsubdef\undefined\else%
+ \def\'##1{\expandafter\@nobraces\@aiguORI##1}%
+ \def\`##1{\expandafter\@nobraces\@gravORI##1}%
+ \fi%
+ \else%
+ \let\protect\string\let\add@accent\@gobble%
+ \fi%
+ \@kbtypeout[\typeout]{^^J \frenchname.sty \string : #1\@o@l}%
+ \fi%
+ }% -Notice: after \begin{document} there is no more need to
+\fi
+%
+\def\@Ffnt#1{\f@issue\@fw{-2- %\@txt@msg{fichier #1 non trouv\'e}%
+ }[#1]}%
+\def\@finput#1{\InputIfFileExists{#1}{}{\@Ffnt{#1}}}%
+\def\@NoFr{\f@issue\@fw{-3- %
+ %\@txt@msg{\frenchpack\space n'est pas actif ici !}%
+ }}%
+\let\ifFrench\iffalse%
+%
+\ifx\addto\undefined% -............................................. \addto
+ \def\addto#1#2{\ifx#1\@undefined\def#1{#2}%
+ \else\ifx#1\relax\def #1{#2}%
+ \else{\toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}}%
+ \fi%
+ \fi%
+ }%
+\fi%
+\def\fraddto#1#2{\addto{#1}{#2}% -.................................... \fraddto
+ \ifFrench\french\else\english\fi}%
+% The following macro designed to protect against expansion.
+\ifx\MakeRobustCommand\undefined% -.......................... \MakeRobustCommand
+\def\MakeRobustCommand#1{\expandafter\expandafter\expandafter%
+ \let\expandafter\expandafter\csname #1 fp\endcsname%
+ \csname #1\endcsname%
+ \expandafter%
+ \edef\csname #1\endcsname{\expandafter\protect%
+ \expandafter\noexpand\csname #1 fp\endcsname}
+ }%
+\fi%
+%
+\ifx\DocInput\undefined\else% -...................................... \DocInput
+ \let\fr@di\DocInput\def\DocInput#1{% -for ltxdoc.cls
+ \ifFrench\english\fr@di{#1}\french%
+ \else\fr@di{#1}%
+ \fi\relax}%
+\fi%
+\ifx\url\undefined\else% -................................................ \url
+ \let\fr@ul\url\def\url#1{% -for hyperref package
+ \ifFrench\english\fr@ul{#1}\french%
+ \else\fr@ul{#1}%
+ \fi\relax}%
+\fi%
+\ifx\xy\undefined\else% -.................................................. \xy
+ \let\fr@xy\xy\def\xy{% -for XY-pic and diagxy packages
+ \ifFrench\nofrenchguillemets\DFPdp\fi\fr@xy}%
+\fi%
+\ifx\hyper@n@rmalise\undefined\else% -.............................. \href
+ \let\fr@hne\hyper@n@rmalise\def\fr@hnr#1#2{\fr@hne{#1}{#2}}% -. \hyperref
+ \def\hyper@n@rmalise{\ifFrench\english\expandafter\fr@hnr% -.. \hyperimage
+ \else\expandafter\fr@hne\fi}%
+\fi%
+\ifx\PDFSCR@Info\undefined\else% -Remove last dot in sect. numbers of pdfscreen.
+ \def\@seccntformat#1{\protect\textcolor{section\thesection@level}%
+ {\expandafter\upshape\csname the#1\endcsname}\quad}%
+\fi%
+% The following should be obsolated:
+\ifx\listing\undefined\else% -........................................ \listing
+ \let\fr@li\listing% -Save current definition of \listing.
+%\newcommand\listing[2][1]{...} definition inside moreverb package, i.e.:
+\edef\listing{\noexpand\@protected@testopt\noexpand\listing%
+ \expandafter\noexpand\csname\string\listing\endcsname {1}}%
+%% Old moreverb def: \def\listing{\@ifnextchar[{\@listing}{\@listing[1]}}%
+ \ifx\fr@li\listing%
+ \def\listing{% -for moreverb package
+ \ifFrench\expandafter\english\expandafter\fr@li%
+ \else\expandafter\fr@li%
+ \fi}%
+ \else%
+ \long\def\listing{% -for listing package
+ \ifFrench\expandafter\english\expandafter\fr@li%
+ \else\expandafter\fr@li%
+ \fi\relax}%
+ \fi%
+\fi%
+\ifx\inputlisting\undefined\else% -.............................. \inputlisting
+ \let\fr@PL\lst@ProcessListing\def\lst@ProcessListing[#1]{%
+ \ifFrench\english\fr@PL[#1]\french%
+ \else\fr@PL[#1]%
+ \fi\relax}%
+\fi%
+% For listings package > (or equal to) V0.2000
+\ifx\lstlisting\undefined\else% -.................................. \lstlisting
+ \let\fr@lsi\lstlisting\long\def\lstlisting{% -for listings package
+ \ifFrench\expandafter\english\expandafter\fr@lsi%
+ \else\expandafter\fr@lsi%
+ \fi}%
+\fi%
+\ifx\lstinputlisting\undefined\else% -........................ \lstinputlisting
+ \let\fr@PL\lst@ProcessListing\def\lst@ProcessListing[#1]{%
+ \ifFrench\english\fr@PL[#1]\french%
+ \else\fr@PL[#1]%
+ \fi}%
+\fi%
+%#<
+\def\ifFrench#1\fi{\@NoFr}% -a temporary definition for error messages
+ %(\endnonfrench remains \undefined)
+\def\originalinput#1{\ifFrench\english\@finput{#1}\french% -..... \originalinput
+ \else\@finput{#1}\fi\relax}%
+\def\originaloutput[#1]{% -..................................... \originaloutput
+ \bgroup\ifFrench\english\fi%
+ \def\@riginalout##1##2{\immediate\write##1{##2}\egroup}%
+ \@riginalout{#1}}%
+\let\ifFLA\iffalse% -We need \ifFLA now
+\@ifundefined{printindex}{% -makeidx.sty is included (as of 20-jan-87)
+ \def\see#1#2{\seename% -i assume this macro is defined in non-english sty.
+ \/ {#1}}% -.........................................\see
+ \def\printindex{\clearpage% -................................ \printindex
+ \ifx\hyper@refstepcounter\undefined\else%
+ \stepcounter{subparagraph}%
+ \hyper@refstepcounter{subparagraph}%
+ \fi%
+ \addcontentsline{toc}{chapter}%
+ {\protect\indexname}%
+ {\let\@ti\theindex% -........................ \theindex
+ \def\theindex{\@ti\ifFLA\thispagestyle{french}\fi}%
+ \@finput{\jobname.ind}}}}{}%
+\ifx\printnomenclature\undefined\else% -................... \printnomenclature
+\let\@pne\printnomenclature% -No French warnings with the nomenclature
+\def\printnomenclature{\nofrenchwarnings\@pne}% -package.
+\fi%
+\ifx\thebibliography\undefined\else%
+\let\@tbs\thebibliography%
+\let\fr@savebib\thebibliography%
+\long\def\thebibliography#1{% -..............USUAL........... \thebibliography
+ \ifFLA%
+ \ifx\hyper@refstepcounter\undefined\else%
+ \stepcounter{subparagraph}%
+ \hyper@refstepcounter{subparagraph}%
+ \fi%
+\ifx\bibname\undefined%
+ \addcontentsline{toc}{chapter}{\refname}%
+\else%
+ \addcontentsline{toc}{chapter}{\bibname}%
+\fi%
+ \fi%
+ \@tbs{#1}%
+ }%
+\ifx\bt@stepcnt\undefined%
+\else% -bibtopic mods adapted for jurabib too.
+% A specific recoding is made for ........BIBTOPIC......... \thebibliography
+% to allow bibtopic to extract de first three tokens which
+% begin \thebibliography (e.g. \section*{\refname}).
+\let\thebibliography\@tbs%
+\let\bt@saveitem\bibitem%
+\AtBeginDocument{\let\bt@savebib\fr@savebib}% -Give back thebibliography.
+\def\@tempd#1#2#3#4\void{\def\@tempa{\noexpand#1}\def\@tempb{\noexpand#2}%
+ \def\@tempc{\noexpand#3}\def\@@tbs##1{#4}}%
+\expandafter\@tempd\thebibliography{\string#1}\void%
+\edef\thebibliography#1{\@tempa\@tempb\@tempc%
+ \noexpand\@@tbs{#1}\noexpand\@tbs}%
+\def\@tbs{\ifFLA%
+ \ifx\hyper@refstepcounter\undefined\else%
+ \stepcounter{subparagraph}%
+ \hyper@refstepcounter{subparagraph}%
+ \fi%
+ \ifx\bibname\undefined%
+ \addcontentsline{toc}{chapter}{\refname}%
+ \else%
+ \addcontentsline{toc}{chapter}{\bibname}%
+ \fi%
+ \fi%
+ }%
+\fi% -bibtopic test.
+\fi% -\thebibliography defined?
+%
+\def\ifFLA{\ErrFrench}% -reset it to normal value here
+\@ifundefined{disableindex}{}% -Ok index.sty is not loaded;
+ {% -Otherwise we must redefine its \see
+ \def\see#1#2{\seename\/ {#1}}% -which contains \emph{\seename}.
+ }%
+\@ifundefined{seealso}{% -cf TUGboat V12#2 p290 and V13#1 p 95 .. \seealso
+ \def\subsee#1#2{\seealsoname% -i assume this macro is defined in non-engl.
+ \/ {#1}}% -the #2 consumes a comma or \dotfill
+ \let\nosee\@gobble% -consumes the page number
+ \def\seealso{\bgroup\edef\@temp@{}\@ifNextNB[{\see@@so}% -] case index.sty
+ {\see@lso}}%
+ \def\see@lso#1#2{\expandafter%
+ \index\@temp@{#1!zzzzz@\protect\subsee{#2}|nosee}\egroup}%
+ \def\see@@so[#1]{\edef\@temp@{[#1]}\see@lso}}{}%
+%#>
+% \if switches mechanism for french typography
+%
+ \def\@ifFTYfalse{\let\ifFTY\iffalse}%
+ \def\@ifFTYback{\let\ifFTY\if@Back}%
+ \let\if@PMF\iffalse% -PMF siwtch off for french light.
+%#<
+% Poor man defs
+%
+\newif\if@PMF\@PMFfalse%
+\def\pmfrench{\@PMFtrue\f@issue\@fw{-4- %
+%\@txt@msg{entering now "Poor-Man-French-Style" way}%
+ }%
+ \def\frenchname{pmfrench}}%
+%#>
+% Font processing
+%
+% look at \GOfrench for \footnotesize, \Huge, \sm@ller, \l@rger and co.
+%
+% information messages:
+\f@issue%
+\@fW{ -24- %
+%\@txt@msg{\frenchname.sty utilise dans ce document le codage de fonte }%
+%\@txt@msg{\f@encoding.^^J}%
+}%
+ %
+\f@issue%
+\@fW{ -25- %\@txt@msg{\frenchname.sty affiche ici ses messages en }%
+%\@txt@msg{\ifEightBitOutput8-bits.\else7-bits << \string\`a la TeX >>.\fi}%
+%\@txt@msg{^^J^^J}%
+ }%
+%
+%For testing purposes ........................................ \CheckSevenBits
+\def\CheckSevenBits/#1{\def\@tempa##1##2/##3{\ifx##2\empty\else%
+ \f@issue%
+ \@fw{-51- %
+%\@txt@msg{ERREUR : ce document n'a pas \'et\'e converti en 8-bits...}%
+ }%
+ \expandafter ##3\fi}\expandafter\@tempa\noexpand#1}%
+%
+\@ifundefined{tt}{\def\tt{\fontfamily{\ttdefault}\selectfont}}{}% -........ \tt
+%#<
+% What font use for guillemets?
+% if \guillemetsinallfonts: the current font
+% if \guillemetsinroman: 1- try EC 2- or lasy 3- otherwise math simulation
+\let\ifGIAF\iftrue% -by now assume guillemets in all fonts
+\@ifundefined{ly}% -try to define \ly with NFSS ........................... \ly
+ {% -Allways load latexsym in case of any OT1 usage.
+ \ifx\symlasy\undefined% -if nfltxsym option not used
+ \ifx\undefined\babel@core@loaded%
+ \RequirePackage{latexsym}% -load LaTeX symbols defs
+ \else% -special case Babel (dont use \usepackage)
+ \xdef\@currname{latexsym}% -set package req.
+ \@@input latexsym.sty\@@input ulasy.fd%
+ \fi%
+ \fi%
+ \def\@ly{\fontencoding{U}\fontfamily{lasy}% -set encoding & family
+ \ifGIAF\else\fontseries{m}\fontshape{n}\fi\selectfont}%
+ \def\ly{\ifFG\ifECM\rm\else\@ly\fi\fi}% -default is rm otherwise lasy.
+ }{}%
+%
+\ifx\guillemetsfont\undefined%
+\def\guillemetsfont{\fontfamily{\rmdefault}% -................... \guillemetsfont
+ \fontseries{m}\fontshape{n}\selectfont}%
+\fi%
+\def\@gfnt{\guillemetsfont}% -Default guillemets' font is \rm.
+%#>
+% \string definitions and saved chars
+%
+\edef\lq{\string`}\edef\rq{\string'}% -as usual in LaTeX .............. \lq \rq
+\let\@cilq='% -this will be the catcode independent left quote
+\edef\lqq{\string`\string`}\edef\rqq{\string'\string'}% -.............. \lqq \rqq
+\edef\pointvirgule{\string;}% -.................................... \pointvirgule
+\edef\deuxpoints{\string:}% -........................................ \deuxpoints
+\let\@cidp=:% -this will be the catcode independent double point
+\edef\pointexclamation{\string!}% -........................... \pointexclamation
+\edef\pointinterrogation{\string?}% -....................... \pointinterrogation
+\edef\inferieura{\string<}% -....................................... \inferieura
+\edef\superieura{\string>}% -....................................... \superieura
+\edef\dittomark{\string"}% -......................................... \dittomark
+\let\f@par\par% -save it for \lettrine inside a list environment.
+\let\@SLQ\lq%
+\def\@SRQ@{^\bgroup\prim@s}%
+\def\@SRQ{\ifmmode\expandafter\@SRQ@\else\rq\fi}%
+%#<
+\let\@gotl\guillemotleft%
+\let\@gotr\guillemotright%
+\def\@temp@{LO1}\ifx\@temp@\f@encoding%
+ \else\edef\@temp@{OT1}\fi%
+\def\@tempa#1{\expandafter\relax% -define OT1-guillemets or LO1 ones
+ \expandafter\global%
+ \expandafter\def%
+ \csname\@temp@\string#1\endcsname}%
+\@tempa{\guillemotleft}{\let\ifECM\iffalse%
+ \ifFG\ly(\kern-0.20em(\else<<\fi}%
+\@tempa{\guillemotright}{\let\ifECM\iffalse%
+ \ifFG\unskip% -last kern was not in the correct font.
+ \ly\kern+0.20em)\kern-0.20em)%
+ \else>>%
+ \fi}%
+\let\@LSG\inferieura\def\@DOG{\inferieura\inferieura}%
+\let\@RSG\superieura\def\@DFG{\superieura\superieura}%
+\def\@SOC{\string[% -] emacs
+ }%
+\def\@SFC{% -[ emacs
+ \string]}%
+\edef\@LP{\ifECM023\else(\fi% -) emacs
+ }%
+\edef\@RP{% -( emacs
+ \ifECM024\else)\fi}%
+%#>
+% Define Options ............................ French style OPTIONS definitions
+%
+\newif\ifFH%
+\let\@noBDfr\@nodocument% -options can only be set after \begin{document}
+\def\frenchhyphenation{\@noBDfr}% -or in \usersfrenchoptions
+\def\nofrenchhyphenation{\@noBDfr}%
+\def\frenchtypography{\@noBDfr}%
+\def\regularmathcomma{\@noBDfr}%
+\def\frenchmathcomma{\@noBDfr}%
+\def\frenchwarnings{\@noBDfr}%
+\def\nofrenchwarnings{\@noBDfr}%
+\def\nofrenchtypography{\@noBDfr}%
+\def\nofrenchtranslation{\@noBDfr}%
+\def\frenchtranslation{\@noBDfr}%
+\ifx\RIfM@\undefined% -used before \begin{document} by AmS classes
+\def\nofrenchguillemets{\@noBDfr}%
+\def\frenchguillemets{\@noBDfr}%
+\def\nofrenchbguillemets{\@noBDfr}%
+\def\frenchbguillemets{\@noBDfr}%
+\fi%
+% Defaultly, layout is not constant from one language to another.
+\global\let\ifCLAfrench\iffalse% -No defaultly constant French page layout.
+\def\ConstantLayout{\@noBDfr}%
+%\def\nombre{\@noBDfr}%
+%\def\WindowsUnits{\@noBDfr}%
+%\def\FileName{\@noBDfr}%
+%\def\theFileName{\@noBDfr}%
+%#<
+\def\originalmathcomma{\@noBDfr}%
+\def\everyparguillemetsremoved{\@noBDfr}%
+\def\Numeros{\@noBDfr}%
+\def\order{\@noBDfr}%
+\def\endorder{\@noBDfr}%
+\def\sommairename{\@noBDfr}%
+\def\versatim{\@noBDfr}%
+\def\endversatim{\@noBDfr}%
+%#>
+\def\nofrenchmacros{\@noBDfr}%
+\def\frenchmacros{\@noBDfr}%
+\def\automaticlettrine{\@noBDfr}%
+\def\noautomaticlettrine{\@noBDfr}%
+\def\noeveryparguillemets{\@noBDfr}%
+\def\everyparguillemets{\@noBDfr}%
+\def\nofrenchlayout{\@noBDfr}%
+\def\frenchlayout{\@noBDfr}%
+\def\indentfirst{\@noBDfr}%
+\def\nonindentfirst{\@noBDfr}%
+\def\NouveauLangage{\@noBDfr}%
+\def\letpunctutionactivefor{\@noBDfr}%
+% This dirty hack to bypass ugly latex209 output routine of seminar slides.
+\def\@tempa{\let\ifarticle\iffalse}%
+\ifx\ifarticle\undefined\expandafter\@tempa\fi%
+\ifx\@seminarerr\undefined\else\ifarticle\else%
+\let\@soORI\shipout%
+\def\shipout#1#2{\def\@tempa{slide}\def\@tempb{slide*}%
+ {\ifx\@tempa\@currenvir\let\protect\noexpand%
+ \else\ifx\@tempb\@currenvir\let\protect\noexpand\fi%
+ \fi%
+ \@soORI#1#2}%
+ \global\let\shipout\@soORI% -just one time mod.
+ }%
+\fi\fi% -\@seminarerr
+% The new \hyphenation macro is used first at language.dat loading for frhyphex
+\let\h@yphenation\hyphenation% -save original \hyphenation
+\long\def\f@hyphenation#1{\bgroup%
+ \let\par\space% -For \h@yphenation.
+ \def\-{ }% -Stops compound words.
+ \let\allowhyphens\undefined% -but not \allowhyphens.
+ \csname accenthyphcodes\endcsname%
+ \lowercase{\edef\@tempa{#1}}%
+ \h@yphenation{\@tempa}\egroup}%
+%
+\def\@tempa{\let\iffrenchbibliography\iftrue}%
+\ifx\iffrenchbibliography\undefined\expandafter\@tempa\fi%
+%
+\ifx\nombre\undefined\else\let\@nomORI\nombre\fi%
+%
+\begingroup\obeyspaces%
+\gdef\@@nombre{\ifFTY\@mathcomma\obeyspaces\let =\,\fi}%
+\endgroup%
+\def\@nombre#1{\bgroup\let\ifFTY\iftrue\def\@tempa{#1}%
+ \def\,{\ifmmode\mskip\thinmuskip\fi}%
+ \if@filesw{\immediate\openout\@inputcheck=\jobname.tmp%
+ \let\protect\noexpand%
+ \ifmmode%
+ \immediate\write\@inputcheck{\protect\makeatletter%
+ \protect\@@nombre%
+ \@tempa\ignorespaces}%
+ \else%
+ \immediate\write\@inputcheck{\protect\makeatletter%
+ \protect\@@nombre%
+ $\@tempa$\ignorespaces}%
+ \fi%
+ \immediate\closeout\@inputcheck%
+ }%
+ \immediate\openin\@inputcheck=\jobname.tmp%
+ \immediate\read\@inputcheck to\@tempa%
+ \immediate\closein\@inputcheck%
+ \def\@tempa{{\input{\jobname.tmp}}}%
+ \fi%
+ \@tempa\egroup%
+ }%
+% French Lite defs:
+\ifx\nombre\undefined\DeclareRobustCommand*{\nombre}{\@nombre}\fi%
+\ifx\WindowsUnits\undefined% -.................................... \WindowsUnits
+ \def\WindowsUnits{\@wu}\fi%
+%
+\def\FileName{\bgroup% -.............................................. \FileName
+\def\@FNenc@loop##1##2{\@tempcnta`##1\relax%
+ \loop\catcode\@tempcnta=11%
+ \ifnum\@tempcnta<`##2\relax%
+ \advance\@tempcnta\@ne%
+ \repeat}%
+ \@FNenc@loop\^^A\^^H%
+ \@FNenc@loop\^^K\^^K%
+ \@FNenc@loop\^^N\^^_%
+ \@FNenc@loop\^^?\^^ff% -128-255
+ \@FileName}%
+\def\@FileName#1{\gdef\theFileName{#1}\egroup}% -................... \theFileName
+%
+\let\og\empty\let\fg\empty% -Guillemets for French light:
+% Extrait de frenchb.ldf 2004/04/02 v1.6f on 2005/03/23:
+ \def\FrenchGuillemetsFrom#1#2#3#4{%
+ \DeclareFontEncoding{#1}{}{}%
+ \DeclareFontSubstitution{#1}{#2}{m}{n}%
+ \DeclareTextCommand{\guillemotleft}{OT1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3}}%
+ \DeclareTextCommand{\guillemotright}{OT1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}
+ \def\CyrillicGuillemets{\FrenchGuillemetsFrom{OT2}{wncyr}{60}{62}}
+ \def\PolishGuillemets{\FrenchGuillemetsFrom{T1}{lmr}{19}{20}}
+ \def\LasyGuillemets{%
+ \DeclareTextCommand{\guillemotleft}{OT1}{\hbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}}%
+ \DeclareTextCommand{\guillemotright}{OT1}{\hbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}}
+ \IfFileExists{t1lmr.fd}{\PolishGuillemets}{\LasyGuillemets}
+ \DeclareTextSymbolDefault{\guillemotleft}{OT1}
+ \DeclareTextSymbolDefault{\guillemotright}{OT1}
+ \def\guill@spacing{\penalty\@M\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font}
+ \DeclareRobustCommand*{\begin@guill}{\leavevmode
+ \guillemotleft\penalty\@M\guill@spacing}
+ \DeclareRobustCommand*{\end@guill}{\ifdim\lastskip>\z@\unskip\fi
+ \penalty\@M\guill@spacing\guillemotright\xspace}
+ \AtBeginDocument{\ifx\xspace\@undefined\let\xspace\relax\fi}
+ \def\bbl@frenchguillemets{\renewcommand{\og}{\begin@guill}%
+ \renewcommand{\fg}{\end@guill}}
+ \def\bbl@nonfrenchguillemets{\renewcommand{\og}{``}%
+ \renewcommand{\fg}{\ifdim\lastskip>\z@\unskip\fi ''}}
+%%%%%%%%%%%%%%%
+\def\@ifo{% -\GOfrench 1st part: options to be defined at \begin{document}
+\def\kbIO{\bgroup% -Is redefined at \begin{document}
+ \ifECM\fontencoding{OT1}\selectfont\fi% -Basic fontencoding needed.
+ \ifFTY\expandafter\nofrenchtypography\fi%
+ \let\@nobraces\@firstofone% -could be provided separately,
+ \let\protect\string%
+ \ifEightBitOutput% -eg by kbconfig.
+\def\'####1{\expandafter\@nobraces\@aiguORI####1}%
+\def\`####1{\expandafter\@nobraces\@gravORI####1}%
+ \def\^####1{\expandafter\@nobraces\@acchORI####1}%
+ \def\"####1{\expandafter\@nobraces\@tremORI####1}%
+ \def\c####1{\expandafter\@nobraces\@cediORI####1}%
+ \csname @kbspecials\endcsname% -Translation settings.
+ \else% -7-bit output wanted.
+ \let\add@accent\@gobble%
+ \def\set@display@protect{\let\protect\noexpand}% -Have spaces!
+ \fi%
+ \@kbtypeout}%
+\let\s@owhyphens\showhyphens%
+% Save original settings of \dospecials et \@sanitize
+\let\@dsORI\dospecials% -...........................\@dospecials.........original
+\@ifundefined{@sanitize}{\def\@sanitize{\relax}}{}%
+\let\@saORI\@sanitize% -............................\@sanitize...........original
+\def\frenchhyphenation{%
+ \ifFH\else\FHtrue% -....................\frenchhyphenation
+ \edef\@uchORI{\the\uchyph}% -save previous uchyph value
+ \def\@Hif{\ifFH}\let\@Hfi\fi%
+ \lccode `\'=`\'%
+ \ifx\flowercase\undefined\else\def\lowercase{\flowercase}\fi%
+ \@ifundefined{allowhyphens}{% -.............................. \allowhyphens
+ \def\allowhyphens{\ifhmode\nobreak\hskip\z@skip\fi}}{}%
+% % There is no need to change here left&right hyphenmin counts
+% % but other languages might have changed default values
+ \@ifundefined{lefthyphenmin}{}%
+ {\lefthyphenmin=2\righthyphenmin=3}% -disallow x- or -xx breaks
+ \@whatUCH% -set Upper Case Hyphenation whatsit
+ \def\@tempa####1{{\accenthyphcodes\h@yphenation{####1}}}%
+ \ifx\@tempa\hyphenation\f@issue%
+ \@fw{-41- %\@txt@msg{your format is out of date, }%
+ %\@txt@msg{please run initex again!}%
+ }\stop%
+ \fi%
+ \def\accenthyphcodes{% -Use fontencoding just
+ \let\@typeset@protect\protect% -in a
+ \ifx\protect\noexpand\else% -typesetting process.
+ \ifECM\else\fontencoding{T1}%
+ \let\pickup@font\@gobble%
+ \let\size@update\relax\selectfont%
+ \fi\fi}%
+ \let\hyphenation\f@hyphenation%
+ \def\showhyphens####1{\bgroup%
+ \csname accenthyphcodes\endcsname%
+ \protected@edef\@tempa{####1}%
+ \s@owhyphens{\@tempa}\egroup}%
+ \fi}% -\ifFH
+\def\nofrenchhyphenation{%
+ \ifFH\FHfalse% -....................\nofrenchhyphenation
+ \lccode`\'=0%
+ \let\hyphenation\h@yphenation% -restore original \hyphenation
+ \let\showhyphens\s@owhyphens%
+ \ifx\lowercaseORI\undefined\else\let\lowercase\lowercaseORI\fi%
+ \@ifundefined{lefthyphenmin}{}%
+ {\lefthyphenmin=2\righthyphenmin=3}% -disallow x- or -xx breaks
+ \uchyph=\@uchORI% -reset original hyph. on words starting with capitals
+ \fi}%
+%#<
+\edef\originalmathcomma% -.................................. \originalmathcomma
+{\noexpand\mathcode`,=\the\mathcode`,}%
+%#>
+\@tempcnta=\the\mathcode`,\@tempcntb=\the\mathcode`,%
+\divide\@tempcnta by 4096\relax% -On r'ecup`ere la classe (demi octet poids fort)
+\multiply\@tempcnta by -4096\relax% -en 'eliminant les poids failbles.
+\advance\@tempcntb by \@tempcnta% -On garde le restant de poids faible.
+\edef\@tempb{\noexpand\mathcode`,=\the\@tempcntb}% -French is usually "013B.
+\advance\@tempcntb by 24576\relax%
+\edef\@tempa{\noexpand\mathcode`,=\the\@tempcntb}% -Regular is usually "613B.
+% Regular LaTeX math code for comma is usually "613B (ie 24891).
+\edef\regularmathcomma{% -.................................... \regularmathcomma
+ \noexpand\def\noexpand\@mathcomma{\@tempa}%
+ \noexpand\@mathcomma}%
+\def\@tempa{\if\space\next\else\mathord\fi\mathcomma}%
+\let\ifFTY\iftrue% -For the following definitions:
+\ifx\@tempa\sm@rtcomma% -In case icomma is in force we use:
+ \def\frenchmathcomma{% -...................................... \frenchmathcomma
+\def\@mathcomma{\ifFTY\mathcode`\,="8000\fi}%
+ \@mathcomma}%
+\else% -otherwise:
+\edef\frenchmathcomma{% -French math code for comma is usually "013B (ie 315).
+ \noexpand\def\noexpand\@mathcomma%
+ {\noexpand\ifFTY\@tempb\noexpand\fi}%
+ \noexpand\@mathcomma}%
+\fi%
+\frenchmathcomma% -Is the default for french.
+\def\ifFTY{\ErrFrench}%
+%
+\def\nofrenchtypography{% -...................................\nofrenchtypography
+ \let\ifFTY\iffalse\let\if@Back\ifFTY%
+% Reset OT1 definition of \textbackslash to undefined.
+\expandafter\let\csname OT1\string\textbackslash \endcsname\undefined%
+%#<
+ \notabbingaccents% -usefull in T1 too with 8bits chars.
+%#>
+ \nofrenchguillemets% -reseting our guillemets
+ \nofrenchbguillemets% -and those as frenchb
+ \sloppy% -may extend line past the right hand
+ \nonfrenchspacing%
+ \regularmathcomma%
+ }%
+\def\frenchtypography{% -.......................................\frenchtypography
+ \let\ifFTY\iftrue\let\if@Back\ifFTY%
+% Add OT1 definition of \textbackslash, missing inside \LaTeX.
+\expandafter\let\csname OT1\string\textbackslash \endcsname\@boiORI%
+ \let\ifLPA\iffalse% -default is clean...
+ \typedspaces%
+%#<
+ \nowrongtypedspaces%
+ \tabbingaccents% -usefull in T1 too with 8bits chars.
+ \englishquote\englishdoublequotes%
+ \nolabelsinmargin%
+ \frenchguillemets%
+%#>
+ \frenchbguillemets%
+%#<
+ \normalbrackets\todayguillemets%
+ \guillemetsinroman\guillemetsinarrays%
+%#>
+ \edef\@tempa{\the\vfuzz}% -AmS may have changed \vfuzz
+ \fussy% -must not extend line past the right hand
+ \vfuzz=\@tempa% -and should not change \vfuzz
+ \frenchspacing%
+ \frenchmathcomma%
+% \nooverfullhboxmark% std LaTeX default not plain
+ }%
+\def\nofrenchtranslation{%
+ \let\ifFTR\iffalse\@cORI}% -........\nofrenchtranslation
+\def\frenchtranslation{%
+ \let\ifFTR\iftrue\captionsfrench}% -....\frenchtranslation
+\let\frenchguillemets\relax\let\nofrenchguillemets\relax%
+\let\frenchbguillemets\bbl@frenchguillemets% -............... \frenchbguillemets
+\let\nofrenchbguillemets\bbl@nonfrenchguillemets% -........ \nofrenchbguillemets
+%#<
+\def\frenchguillemets{%
+ \let\ifFG\iftrue% -..................... \frenchguillemets
+ \let\guillemets\@LG%
+ \let\endguillemets\RG@%
+ \let\guillemotleft\f@guillemets%
+ \let\guillemotright\endf@guillemets%
+ \AFPinfsup}%
+\def\nofrenchguillemets{%
+ \let\ifFG\iffalse% -.................. \nofrenchguillemets
+ \let\guillemotleft\@gotl%
+ \let\guillemotright\@gotr%
+ \let\guillemets\f@guillemets%
+ \let\endguillemets\endf@guillemets%
+ \DFPinfsup}%
+\def\noeveryparguillemets{\let\ifEPG\iffalse% -.............\noeveryparguillemets
+ \@desarm\let\@desarm\relax% -release memory
+ \def\guillemets{%%\leavevmode\unskip%
+ \f@issue%
+ \@fw{-53- %
+ %\@txt@msg{environnement guillemets }%
+ %\@txt@msg{ inutilisable avec l'option }%
+ %\@txt@msg{\string\noeveryparguillemets}%
+ }%
+ \bgroup\bgroup%
+ \def\guillemets{\bgroup%
+ \let\endguillemets\egroup}}%
+ }%
+\def\everyparguillemets{\let\ifEPGR\iffalse% -.............. \everyparguillemets
+ \let\ifEPG\iftrue%
+ \let\guillemets\@LG%
+ \let\endguillemets\RG@%
+ }%
+\def\everyparguillemetsremoved{%
+ \let\ifEPGR\iftrue}% -........ \everyparguillemetsremoved
+%#>
+\def\@tempa{\global\let\ifCLA\iffalse}% -If not already set, no defaultly
+\ifx\ifCLA\undefined\expandafter\@tempa\fi% -constant language layout.
+\def\ConstantLayout{\global\let\ifCLA\iftrue% -...................\ConstantLayout
+ \expandafter\let\csname ifCLA\languagename\endcsname\iftrue%
+ \def\@tempa{\let\ifbbbbfixlanguage\iftrue}%
+ \ifx\ifbbbbfixlanguage\undefined\@tempa\fi%
+ \def\@tempa{\ifbbbbfixlanguage\else%
+ \f@issue%
+ \@fw{-85- %\@txt@msg{Attention \string: l'option fixlanguage }%
+%\@txt@msg{n'a pas ete fournie a l'appel de babelbib}%
+ }\fi%
+ }%
+ \ifx\@nodocument\relax\@tempa%
+ \else\ifx\btxselectlanguage\undefined%
+ \PassOptionsToPackage{fixlanguage}{babelbib}%
+ \else\@tempa%
+ \fi%
+ \fi%
+ \let\ConstantLayout\relax}% -This is a one time macro.
+%
+\def\nofrenchlayout{\nofrenchtrivsep%
+ \let\ifFLA\iffalse\@EIM}% -...................\nofrenchlayout
+\def\frenchlayout{%
+ \let\ifFLA\iftrue\everyparguillemets% -...........\frenchlayout
+ \@FIM\@FL\let\@FL\empty\noautomaticlettrine%
+ \frenchtrivsep}%
+\def\frenchwarnings{\let\ifFW\iftrue% -......................... \frenchwarnings
+ \frenchtrivsepwarnings}%
+\def\nofrenchwarnings{\let\ifFW\iffalse% -..................... \nofrenchwarnings
+ }% -This code is not completed.
+%#<
+\def\nofrenchmacros{\let\ifFMA\iffalse}% -........................\nofrenchmacros
+\def\frenchmacros{\let\ifFMA\iftrue\@ifm% -.........................\frenchmacros
+ \let\@ifm\relax}% -release memory
+%#>
+}% -end of \@ifo {\GOfrench part 1}
+%#<
+\long\def\usersfrenchoptions% -............................. \usersfrenchoptions
+ {\bgroup\makeatletter%
+% \expandafter\makeatother%
+ \expandafter\egroup%
+ \g@addto@macro\@ufo}%
+%#>
+\ifx\@ufo\undefined%
+ \let\@ufo\empty% -necessary for babel when loading
+\fi%
+%
+%....................................................... Modified TeX macros
+%
+ \def\prim@s{\prime\futurelet\@let@token\pr@m@s}%
+ \def\pr@m@s{\ifx\@cilq\@let@token\expandafter\pr@@@s%
+ \else\ifx^\@let@token\expandafter\expandafter\expandafter\pr@@@t%
+ \else\egroup\fi%
+ \fi}%
+\let\@fsORI\frenchspacing% -modified for guillemets............. \frenchspacing
+\def\frenchspacing{\@fsORI\ifECM\sfcode`\(=0\sfcode`\)=1000\fi}%
+%%%%
+% let < ' : ` > active for the following macros and
+\catcode`<=\active\catcode`>=\active\catcode`'=\active%
+\catcode`:=\active\catcode``=\active%
+\let<=\inferieura\let>=\superieura% -define them for french light.
+\def\@Fstr{\def<{\@LSG}\def>{\@RSG}\def`{\@SLQ}\def'{\@SRQ}%
+ \def:{\deuxpoints}%
+ \let\dGs\empty}% -Nullify any \dGs macro from keyboard.sty.
+\def\@LiN{\let\@sogORI<\let\@sfgORI>\let\@lqORI`\let\@rqORI'%
+ \let\@dpORI:\@Fstr\@ifFTYfalse}%
+\def\@LiB{\let<\@sogORI\let>\@sfgORI\let`\@lqORI\let'\@rqORI%
+ \let:\@dpORI\@ifFTYback}%
+\catcode\lq:=12%
+\let\@s@ORI\special% -................................................. \special
+% done in \GOfrench:
+%\def\special#1{\@ifFTYfalse\bgroup\@Fstr\@s@ORI{#1}\egroup\@ifFTYback}%
+% \newcount, \newdimen, \newbox were \outer defs in plain.
+\def\newcount{\alloc@0\count\countdef\insc@unt}% -.................... \newcount
+\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}% -.................... \newdimen
+\def\newbox{\alloc@4\box\chardef\insc@unt}% -......................... \newbox
+%
+%........................................ Modified package's & LaTeX macros
+%
+% Those defs which need to be set at \begin{document} are delayed.
+% Take in account the varioref package if present:
+\let\ifFTY\iffalse% -Temporary definition.
+\ifx\vref\undefined\else% -As \@ifpackageloaded is forbidden at
+\@ifpackageloaded{varioref}{\def\@vrfCode{% -\begin{document}, test it now.
+ \@gG{vr}{vref}{/}{1}% -................................... \vref
+ \@gG{vpr}{vpageref}{1}{1}% -...........................\vpageref
+ \@gG{vprr}{vpagerefrange}{1}{2}% -................\vpagerefrange
+ \def\reftextpagerange##1##2{% -...............\reftextpagerange
+ pages~\pageref{##1}\ifFTY -\else --\fi\pageref{##2}}%
+ }%
+ }{}%
+\fi%
+\def\ifFTY{\ErrFrench}% -Reset original value.
+% Take in account the beamer class (don't use \l@chapter)
+\@ifclassloaded{beamer}{\let\l@chapter\empty%
+ \def\beamer@captiontemplate{\small\structure%
+ {\insertcaptionname\captionseparator\space}%
+ \insertcaption}
+ }{}%
+%
+\def\GOfrench{% -this is the code to initiate the French style
+ \def\special##1{\@ifFTYfalse\bgroup\@Fstr\@s@ORI{##1}%
+ \egroup\@ifFTYback}%
+ \let\@noBDfr\relax% -release french options/commands now
+ {\catcode\lq\<=\active\ifx<\undefined\else\global%
+ \let\@mLSG<\global%
+ \def\@LSG{\ifmmode\@mLSG\else\inferieura\fi}\fi}%
+ {\catcode\lq\>=\active\ifx>\undefined\else\global%
+ \let\@mRSG>\global%
+ \def\@RSG{\ifmmode\@mRSG\else\superieura\fi}\fi}%
+\if@PMF\def\pmfrench{}\def\noeveryparguillemets{}\def\@stared{}%
+ \def\@desarm{}\def\@qquotes{}\def\@staring{}\def\@fniv2{}\fi%
+\def\sm@llerthree{\protect\sm@ller\protect\sm@ller\protect\sm@ller}
+\@ifundefined{smaller}{\def\sm@ller{\small}% -... you can use ...[smaller.sty]
+ \let\sm@llerthree\scriptsize%
+ \def\l@rger{\large}}%
+ {\def\RSsmallest{4pt}% -... you can use ...[relsize.sty]
+ \ifx\undefined\sm@ller%
+ \let\sm@ller\smaller\fi}%
+\@ifundefined{footnotesize}{% -.................................... \footnotesize
+ \def\footnotesize{\sm@ller\sm@ller}}{}%
+\@ifundefined{Huge}{% -.................................................... \Huge
+ \def\Huge{\l@rger\l@rger\l@rger\l@rger\l@rger}}{}%
+%#<
+\@ifundefined{lettrinefont}{\let\lettrinefont\Huge}{}% -........... \lettrinefont
+\let\sv@lf=\lettrinefont% -save it
+\ifx\@pdfcreator\undefined% -Complete pdf creator name.
+ \else\addto\@pdfcreator{, with \frenchpack\space shareware}\fi%
+%#>
+% Command to leave chapter counter asis.................... \noresetatpart
+\def\noresetatpart{\ifFLA\let\cl@part\empty\fi}%
+% Command to leave footnote counter asis over chapter change.
+\def\noresetatchapter{\ifFLA\let\cl@chapter\empty\fi}% -....... \noresetatchapter
+% Let \chapter be defined.
+\@ifundefined{chapter}{}{}% -.......................................... \chapter
+% Reset chapter counter when starting a part &
+\@ifundefined{c@chapter}{\newcounter{chapter}}{\@addtoreset{chapter}{part}}%
+\@ifundefined{quotation}{\def\quotation{}}{}% -...................... \quotation
+\ifx\tableofcontents\undefined%
+ \else\let\@tocORI\tableofcontents\fi% -permit toc normal processing
+\ifx\pdfstringdef\undefined% -Save orginal \contentsline for hyperref.
+ \else\let\contentslineORI\contentsline\fi%
+% Coding to bypass pb of duplicate in hyprref < 6,69f
+%\ifx\undefined\pdfstringdef\@tempa% Using pdfTeX hyperref should
+% \else\ifx\theHchapter\undefined% have no \thechapter otherwise
+% \else\@tempa% it complains arguing there is a duplicate section
+% \fi% #,
+%\fi% so we no more define \thechapter in that case.
+\@ifundefined{l@chapter}{% -...................................... \l@chapter
+\def\@tempa{%
+ \def\l@chapter####1####2{\addpenalty{-\@highpenalty}%
+ \vskip 1.0em plus\p@\@tempdima 1.5em% -numbering size
+ \begingroup%
+ \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth%
+ \bfseries \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip%
+ ####1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss ####2}\par%
+ \penalty\@highpenalty%
+ \endgroup}}%
+\ifx\RIfM@\undefined\@tempa% -use l@chapter
+\else% % -even with AmS styles
+ \ifx\fr@RIfM@cls\undefined\@tempa
+\fi% -but not for AmS classes
+\fi}{}% -undefined in article.sty
+% Due to resetting of chapter counter at part change we have to better
+\@ifundefined{theHchapter}{}% -qualify the chapter anchor names.
+ {\renewcommand{\theHchapter}{\arabic{part}.\arabic{chapter}}}%
+%
+% General code for generating replacement macros for \cite \nocite etc.
+% \@gG{a string "s" for letting \@"s"@ORI as the original macro}
+% {original macro name -without backslash}
+% {string "/" if original macro had no [optional arg] otherwise empty}
+% "1" if original macro has one req. [o.p. arg 1]
+% "2" if original macro has two req. [o.p.1][o.p.2]
+% "//"if no optional arg but more than one required arg:
+% {number of required args} % default is 1, maximum is 3.
+ \def\@gG##1##2##3##4{%
+ \def\@temp@{\expandafter\let\csname @##1@ORI\endcsname=}%
+ \expandafter\@temp@\csname ##2\endcsname%
+ \if##3\empty%
+ \if2##4%
+ \expandafter\def\csname ##2\endcsname####1####2%
+ {\protect\atgG{##1}{{####1}{####2}}}%
+ \else%
+ \if3##4%
+ \expandafter\def\csname ##2\endcsname####1####2####3%
+ {\protect\atgG{##1}{{####1}{####2}{####3}}}%
+ \else%
+ \expandafter\def\csname ##2\endcsname####1%
+ {\protect\atgG{##1}{{####1}}}%
+ \fi%
+ \fi%
+ \else% -Case of just one required argument, check optional args:
+ \if/##3\expandafter\def\csname ##2\endcsname{\protect\atgH{##1}}%
+ \else%
+ \if2##4\expandafter\def\csname ##2\endcsname{\protect\atgN{##1}}%
+ \else\expandafter\def\csname ##2\endcsname{\protect\atgM{##1}}%
+ \fi%
+ \fi%
+ \fi}%
+ \def\atgG##1##2{\bgroup\@ifFTYfalse\@Fstr%
+ \expandafter\csname @##1@ORI\endcsname##2\egroup}%
+ \def\atgH##1##2{\bgroup\@ifFTYfalse\@Fstr%
+ \expandafter\csname @##1@ORI\endcsname{##2}\egroup}%
+ \def\atgM##1{\@ifNextNB[{\@gM@@{##1}}{\@gM@@{##1}[\empty]}% -]emacs
+ }%
+ \def\atgN##1{\@ifNextNB[{\@gM@@@{##1}}{\@gM@@@{##1}[\empty]}% -]emacs
+ }%
+ \def\@gM@@##1[##2]##3{\@gM@@@{##1}[##2]{##3}{}}%
+ \def\@gM@@@##1[##2]##3##4{\bgroup\@ifFTYfalse\@Fstr%
+ \xdef\@temp@{\noexpand\@gG@{##3}{##4}}\egroup%
+ \ifx\empty##2\let\@gG@=\empty%
+ \else\protected@edef\@gG@{[##2]}\fi%
+ \let\@typeset@protect\protect%
+ \protected@edef\@temp@{\noexpand\expandafter%
+ \noexpand\expandafter%
+ \noexpand\csname @##1@ORI\noexpand\endcsname%
+ \@temp@}\@temp@}%
+% Nullify Babel mechanism which doesn't run correctly in its current version
+\ifx\babel@sanitize@arg\undefined\else%
+\def\babel@sanitize@arg##1{##1}%
+\wlog{\frenchname.sty\string: use of the babel package force me to nullify %
+ \noexpand\babel@sanitize@arg.}%
+\fi%
+\ifx\ifthenelse\undefined\else\let\@iTeORI\ifthenelse%
+ \long\def\ifthenelse##1##2##3{\@ifFTYfalse\@iTeORI{##1}%
+ {\@ifFTYback##2}{\@ifFTYback##3}}%
+\fi%
+\ifx\texttt\undefined\else\@gG{xt}{texttt}{/}{1}% -...................... \texttt
+ \MakeRobustCommand{texttt}\fi%
+\ifx\hyperbaseurl\undefined\else\@gG{hl}{hyperbaseurl}{/}{1}\fi% -. \hyperbaseurl
+\ifx\Ginclude@graphics\undefined\else\@gG{ig}% -.............. \Ginclude@graphics
+ {Ginclude@graphics}{/}{1}\fi% -. (\includegraphics)
+% As \citeyear is in various packages we check first for natbib.sty and
+\ifx\NAT@citex\undefined% -then modify all \cite... commands via \@citex.
+ \ifx\cite\undefined\else\@gG{c}{cite}{1}{1}\fi% -.................... \cite
+ \ifx\citeyear\undefined\else\@gG{cy}{citeyear}{/}{1}\fi% -........... \citeyear
+\else% -....................................................... Natbib \cite...
+ \let\@cxORI\@citex%
+ \def\@citex[##1][##2]##3{\@ifFTYfalse%
+ \let\mbox\mboxORI%
+ \@cxORI[##1][##2]{##3}\aftergroup\@ifFTYback}%
+%%%%%%%%%%%%%%%%%%%%%%%
+%Following code for Natbib and jurabib wrong, obsolate and misplaced.2006/08/15
+%\@gG{fc}{fullcite}{1}{1}%
+%\@gG{cin}{citation}{/}{1}%
+%\def\@lbibitem[##1]##2{\protected@edef\jb@key{##2}\def\jb@tempb{##1}}%
+\@gG{cin}{citation}{/}{1}% -............................................\citation
+ \ifx\ifjb@index@bib\undefined\let\ifjb@index@bib\iffalse\fi%
+ \ifx\jb@lbibitem\undefined\else% -............... JURABIB ........ \jb@lbibitem
+% Modify jurabib definition of \jb@lbibitem as of jurabib v0.6 (2004/01/25)
+% with a \protected@xdef for \jb@key.
+ \def\jb@lbibitem[##1]##2{%
+ \gdef\jb@tempb{##1}%
+\protected@xdef\jb@key{##2}%\gdef\jb@key{##2}%
+ \ifjb@index@bib%
+ \jb@call@index{aut}{##2}%
+ \jb@call@index{ed}{##2}%
+ \jb@call@index{org}{##2}%
+ \fi%
+ \endgroup}%
+ \@gG{fc}{fullcite}{1}{1}% -.......................JURABIB.............\fullcite
+ \fi%
+\fi%
+\ifx\nocite\undefined\else\@gG{nc}{nocite}{/}{1}\fi% -................... \nocite
+% As \bibcite has not originally any argument the following definition
+% is remove and \@newl@bel is introduced in replacement of \newlabel.
+%\ifx\bibcite\undefined\else\@gG{bc}{bibcite}{1}{1}\fi%............... \bibcite
+\ifx\backcite\undefined\else\@gG{bkc}{backcite}{//}{2}\fi% -........... \backcite
+\ifx\bibitem\undefined\else\let\@biORI\bibitem% -...................... \bibitem
+ \def\bibitem{\@LiN\@ifNextNB[{\@bi@cb}{\@bi@ca}% -]emacs
+ }%
+ \def\@bi@ca##1{\@biORI{##1}\@LiB}%
+ \def\@bi@cb[##1]##2{\@biORI[##1]{##2}\@LiB}%
+\fi%
+\expandafter\ifx\string\bt@@item\undefined% -... bibtopic \\bt@@item
+ \else\@gG{bti}{\string\bt@@item}{1}{1}%
+ \fi%
+% Take in account varioref package if present at \begin{document}:
+\ifx\vref\undefined\else% -Nullify \@vrfCode if varioref is
+ \ifx\reftextvario\undefined\let\@vrfCode\undefined% -now loaded.
+\fi\fi%
+%
+\ifx\ref\undefined\else\@gG{r}{ref}{/}{1}\fi% -............................. \ref
+\ifx\tag\undefined\else\@gG{tG}{tag}{/}{1}\fi% -............................ \tag
+\ifx\pageref\undefined\else\let\pageref@ORI\pageref%
+ \let\f@pageref\pageref\@gG{fpr}{f@pageref}{/}{1}%
+ \def\pageref{\ifFTY\expandafter\f@pageref\else% -....................\pageref
+ \expandafter\pageref@ORI\fi}%
+\fi%
+\csname @vrfCode\endcsname% -load mods for varioref package \vref, \vpageref
+\xdef\@lim{}\let\ifMOVING\iffalse%
+% The label for the subfigure package ...........................\sf@@sub@label
+\ifx\sf@@sub@label\undefined\else\@gG{ss}{sf@@sub@label}{/}{1}\fi%
+% Set code for labels in margin.
+\def\@temp@{%
+ \def\label{\protect\@LabeL}% -needed to be protected for \thanks
+% Remove patch $\label$ for Simon Pierre DESROSIERS 9/09/05
+% \def\@LabeL{\ifmmode\expandafter\s@LabeL\else\expandafter\t@LabeL\fi}%
+% \def\s@LabeL####1{\gdef\r@LabeL{\label{####1}}\aftergroup\r@LabeL}%
+% New patch for \label en mode math. 4/07/2006 %
+\def\r@LabeL{\ifx\@lim\empty% -Special def to put labels in margin
+ \else\marginpar{\@lim@}\xdef\@lim{}% -at end of maths $$.
+ \fi}% -No need to nullify MOVING after group.
+\def\m@LabeL{\def\@setMGtrue{\let\ifMOVING\iftrue}%
+ \ifmmode\@setMGtrue% -If maths go like a moving block.
+ \aftergroup\r@LabeL% -Do final margin at end of maths group.
+ \fi%
+ \expandafter\t@LabeL}% -Go process \label as usual.
+\def\@LabeL{\ifMOVING\expandafter\t@LabeL% -If already moving process as usual
+ \else\m@LabeL% -else test for maths.
+ \fi}%
+%
+ \def\t@LabeL####1{\@ifFTYfalse\if@labelsinmargin\ifMOVING%
+ \xdef\@lim{\ifx\@lim\empty\else\@lim\@@par\relax\fi[####1]}%
+ \gdef\@lim@{\@ifFTYfalse\hbadness=\@M\tt\@lim\@ifFTYback}%
+ \else\marginpar{%
+ \@ifFTYfalse\hbadness=\@M\tt[####1]\@ifFTYback}\fi\fi%
+% how suppress Overful \hbox here?
+ \bgroup\@Fstr\@lORI{####1}\egroup\@ifFTYback}%
+ }%
+\ifx\fr@RIfM@cls\undefined\else% -isolate maketitle action with AmS classes.
+\let\@mtORI\maketitle% -............................................ \maketitle
+\def\maketitle{{\@mtORI}}% -avoid removing of keywords environement.
+\fi%
+\ifx\label\undefined\else\let\@lORI\label% -.............................. \label
+ \@temp@% -new def apply
+ \let\ltx@label\label% -for amsmath.sty
+\fi%
+%instead this coding, active chars in \label must be protected inside a \thanks
+% As the internal macro of \newlabel is \@newl@bel #1 the following
+% definition of \newlabel is removed and replace by \@newl@bel.
+%\ifx\newlabel\undefined\else\@gG{nl}{newlabel}{/}{1}\fi%............ \newlabel
+\ifx\@newl@bel\undefined\else\@gG{nl}{@newl@bel}{//}{3}\fi% -......... \@newl@bel
+\def\@temp@{%
+ \let\@aclORI\addcontentsline% -............................ \addcontentsline
+ \global\let\ifCG\iftrue% -Nullify if-guillemets on a new sectioning
+ \def\addcontentsline####1####2####3{\@ifFTYfalse\bgroup\@Fstr%
+ \@aclORI{####1}{####2}{####3}\egroup\@ifFTYback}%
+ }%
+\@ifundefined{addcontentsline}{\gdef\addcontentsline##1##2##3{}}% -dummy def
+ {\@temp@}%
+\let\ifFrench\iffalse% -let it be known now
+\def\@temp@{%
+ \def\index{\bgroup\ifFrench\@DFP\fi% -Is further redefined
+ \expandafter\egroup\@iORI}% -inside \footnote.
+ }%
+\ifx\index\undefined\else\let\@iORI\index% -.............................. \index
+ \@temp@% -new def apply
+\fi%
+%
+\ifx\list\undefined\else% -Mods to keep track
+ \let\@liORI\list% -that we are in a list environment ........ \list
+\fi%
+ \let\@topsepORI\topsep% -ans save original vertical
+ \let\@partopsepORI\partopsep% -spaces
+ \let\@itemsepORI\itemsep% -so that we could warn when
+ \let\@parsepORI\parsep% -user try to change them.
+%\def\GOfrench{continuation -emacs pb-
+\def\warn@seps{\def\topsep{\@w@s{\string\topsep}\@topsepORI}%
+ \def\partopsep{\@w@s{\string\partopsep}\@partopsepORI}%
+ \def\itemsep{\@w@s{\string\itemsep}\@itemsepORI}%
+ \def\parsep{\@w@s{\string\parsep}\@parsepORI}%
+ \def\@tempa{verse}\def\@tempb{quotation}%
+ \ifx\@tempa\@currenvir\let\@w@s\@gobble\else%
+ \ifx\@tempb\@currenvir\let\@w@s\@gobble\fi%
+ \fi%
+ }%
+\def\@w@s##1{\ifFTSW\f@issue%
+ \@fw{-58- %\@txt@msg{valeur de ##1 ignor\'ee}%
+% dans l\string'environnement \@currenvir%
+ }[##1]\fi}%
+\def\org@seps{\let\topsep\@topsepORI%
+ \let\partopsep\@partopsepORI%
+ \let\itemsep\@itemsepORI%
+ \let\parsep\@parsepORI%
+ }%
+\def\list##1##2{\def\@inAlist{}\@liORI{##1}{%
+ \ifx\@trivlist\@tlORI\else\warn@seps\fi%
+ ##2\org@seps}}%
+\ifx\@makecaption\undefined\else\let\@mcORI\@makecaption\fi% -.... \@makecaption
+%
+\ifx\captionseparator\undefined%
+ \def\captionseparator{~--}% -............................ \captionseparator
+\fi%
+\let\ifFTY\iffalse% -Let it be knwon temporary.
+% \captionseparator is off with memoir.cls, use \captiondelim.
+\ifx\@contdelim\undefined\else% -..............(ccaption/memoir) \@contdelim
+ \ifx\@memerror\undefined%
+ \let\@cdORI\@contdelim% -The definition for ccaption:
+ \def\@contdelim{\ifFTY\space\else\@cdORI\fi}%
+ \else%\let\@contdelim\@cdORI% -Don't modify \@contdelim for memoir.cls
+ \let\captionseparator\empty% -Suppress our \captionseparator for table/figure
+ \let\captionfont\@conttfont% -Apply requested memoir font.
+ \fi%
+\fi%
+\def\ifFTY{\ErrFrench}%
+\ifx\captionfont\undefined% -..................................... \captionfont
+ \let\captionfont\emph% -Std is italics.
+ \else\let\@cfORI\captionfont% -Might be Caption2, thus
+ \def\captionlabelfont{\upshape}% -set defaults.
+ \def\captionfont{\itshape\@cfORI}%
+ \ifx\captionlabeldelim\undefined\else% -Use Caption2 delimitor cs
+ \let\captionlabeldelim\captionseparator% -if any, and set our
+ \let\captionseparator\empty% -default value.
+ \fi%
+\fi%
+\def\@makecaption##1##2{\ifFTY%
+ \def\@secondofmany####1####2\void{####2}%
+% Removed mod for empty \caption (pb with hyperref) 2007/06/28
+% \protected@edef\@tempa{\@secondofmany##2\void}%
+% The previous coding don't remove the unusefull \captionseparator:
+ \def\@tempa{\@secondofmany##2\void}% -To debug.
+ \ifx\@tempa\empty%
+ \let\captionseparator\empty%
+ \fi%
+ \@mcORI{##1}{\relax% -for AmSLaTeX V1.2 96/11
+ \captionfont{##2}}%
+ \else\@mcORI{##1}{##2}\fi}%
+%
+%Leslie claims that "The footnotemarker is regarded as having zero width, which
+%is appropriate when it comes at the end of line"(p164) <== not a French habit.
+\def\@temp@{%
+ \def\thanks####1{\global\let\@makefntext\fr@makefntext% -........... \thanks
+ \bgroup%
+ \ifFTY\ifhmode\ifdim\lastskip>\z@\unskip\fi\nobreak\fi%
+ \def\@footnotemark{\hbox{\@textsuperscript{\normalfont\,\@thefnmark}}}%
+ \fi\let\ifFTY\iffalse\@thORI{####1}%
+ \egroup}%
+ }%
+\ifx\thanks\undefined\else\let\@thORI\thanks\@temp@\fi%
+\let\ifFTY\iffalse% -temp def for next processing
+\ifx\@makefnmark\undefined\else\let\@mfnmORI\@makefnmark% -........ \@makefnmark
+\def\@makefnmark{\ifFTY\hbox{\@textsuperscript{\normalfont%
+ \ifx\thefootnote\relax\else\,\fi%
+ \@thefnmark}}%
+ \else\@mfnmORI\fi}%
+\fi%
+\def\@temp@{\long\def\fr@makefntext####1{% footline starts here %
+ \bgroup%
+ \ifFTY\def\@tempa{footnote}\let\@tfnORI\@thefnmark%
+ \ifx\@tempa\@mpfn% -do it only for page footnotes not minipages ones
+ \def\@thefnmark{% -marker under the footline, no more in superscript.
+% two grouping levels in pure 2e.
+ \egroup\egroup% -no point when no marker
+ \long\def\@tempa{\fnsymbol{footnote}}%
+ \ifx\@tempa\thefootnote% -When using symbols put them
+ \expandafter\raise+0.55ex% -higher (cf Lexique IN p. 33)
+ \fi% -\thefootnote
+ \hbox\bgroup\textnormal\bgroup%
+ \def\@temp@{%
+\ifx\fr@RIfM@cls\undefined% -Remove space when \thanks and AmS classes.
+\ifx\thanks\relax\else\kern-1.1\parindent\fi% -.1 should be explained.
+\else \kern-\parindent% -otherwise remove superfluous spacing.
+\fi%
+%\@ifnextchar\relax{\def\@temp@{\,}}% Prefered:
+ \@ifnextchar\relax{\def\@temp@{\hphantom{.}\kern+0.25em}}%
+ {\def\@temp@{.\kern+0.25em}}%
+ }%
+ \expandafter\@temp@\@tfnORI\@temp@%
+ }%
+ \leavevmode\kern+0.5em% -add some spacing for at least 3 digits
+ \else\def\@thefnmark{\@tfnORI\,}\fi% -add thin space in mpfootmarks
+ \fi\@mfntORI{####1}\egroup}% -\@makefntext
+ }%
+ \let\@mfntORI\@makefntext\@temp@%
+ \let\@makefntext\fr@makefntext% -............................. \@makefntext
+\def\ifFTY{\ErrFrench}%
+\let\@fntORI\@footnotetext% -nullify marginpar in ................ \@footnotext
+\long\def\@footnotetext##1{\bgroup\let\if@labelsinmargin\iffalse%
+ \@fntORI{##1}\egroup}%
+% Why \footnote doesn't \unskip the previous space?
+% Allow hyphenation too with \nobreak (as suggested by Bernd Raichle)
+\let\@fnORI\footnote% -............................................... \footnote
+\def\footnote{\bgroup%
+ \def\index{\@ifnextchar[{\f@index}% -]
+ {\f@index@}%
+ }%
+ \def\f@index[####1]####2{\@ifFTYfalse\@iORI[####1]{####2}%
+ \@ifFTYback}%
+ \def\f@index@####1{\@ifFTYfalse\@iORI{####1}\@ifFTYback}%
+ \ifFTY\ifhmode\ifdim\lastskip>\z@\unskip\fi%
+ \nobreak\fi\fi%
+ \ifmmode\let\@fnORI\fr@footnote\fi%
+ \@ifNextNB[% -] for balancing
+ \@Footnote\@Fntnorm}%
+\long\def\@Footnote[##1]##2{\@fnORI[##1]{##2}%
+ \egroup\@ifNextNBc\footnote\refmark\@Fntcoma{}}%
+\long\def\@Fntnorm##1{\@fnORI{##1}%
+ \egroup\@ifNextNBc\footnote\refmark\@Fntcoma{}}%
+\def\@Fntcoma{\ifFLA\@textsuperscript{,}\nobreak\fi}%
+\def\@Fxloat##1[##2]{\@xfORI{##1}[##2]\csname @Fend\@currenvir\endcsname}%
+\let\@fgeORI\figure\let\@efgeORI\endfigure% -needed for figurette
+\def\@temp@{\let\@fgeORI\figure% -..................................... \figure
+ \def\figure{\let\ifMOVING\iftrue%
+ \let\if@minipage\iftrue%
+ \@set@fr@fn@%
+ \ifx\@xfORI\undefined%
+ \let\@xfORI\@xfloat\let\@xfloat\@Fxloat%
+ \fi%
+ \@fgeORI}}%
+\ifx\figure\undefined\let\@temp@\relax\fi\@temp@%
+\def\@Fendfigure{\let\@efgeORI\endfigure% -.......................... \endfigure
+ \def\endfigure{\@efgeORI%
+ \ifx\@lim\empty\else\marginpar{\@lim@}%
+ \xdef\@lim{}\fi\let\ifMOVING\iffalse}}%
+\ifx\endfigure\undefined\let\@Fendfigure\relax\fi%
+\let\@cnORI\caption% -\caption is redefined in the table environement :
+\def\@tablescaption{\@dblarg\@t@blescaption}% -footnote will be only
+\let\mboxORI\mbox% -save \mbox definition.
+\def\mbox##1{\leavevmode\hbox{\protect\@set@fr@fn@##1}}%% -.............. \mbox
+\def\@set@fr@fn@{\ifFrench\let\footnote\fr@footnote\fi}% -Footnote's text lost
+\def\fr@footnote{\@ifNextNB[\fr@fn@{\fr@fn@[]}% -] in tables
+ }% -caption.
+\def\fr@fn@[##1]##2{\footnotemark%
+ \f@issue%
+ \@fw{-8- % -\@txt@msg{\string\footnotetext{##2} perdu.}
+%\@txt@msg{Coder \'event. \string\protect\string\footnote}%
+ }[##2]% -\mbox
+ }%
+\def\@t@blescaption[##1]##2{\let\cur@fn\footnote% -footnote mark in tables
+ \let\footnote\fr@footnote% -caption and text
+ \@cnORI[##1]{##2}\let\footnote\cur@fn}% -will be lost.
+\def\@temp@{%
+ \let\@tbeORI\table% -footnotes made like in minipages ...... \table
+ \def\table{\let\ifMOVING\iftrue%
+ \let\if@minipage\iftrue%
+ \ifFLA\begingroup%
+ \def\@mpfn{mpfootnote}%
+ \def\thempfn{\thempfootnote}\c@mpfootnote\z@%
+ \ifx\@captype\undefined\def\@captype{table}\fi% -for ams classes
+ \let\caption\@tablescaption% -allow page footnote in \caption
+ \let\@footnotetext\@mpfootnotetext\fi%
+ \ifx\@xfORI\undefined%
+ \let\@xfORI\@xfloat\let\@xfloat\@Fxloat%
+ \fi%
+ \@tbeORI}%
+ \expandafter\let%
+ \expandafter\@dbtbeORI\csname table*\endcsname% -......... \table*
+ \expandafter\def\csname table*\endcsname{\let\ifMOVING\iftrue%
+ \let\if@minipage\iftrue%
+ \ifFLA\begingroup%
+ \def\@mpfn{mpfootnote}%
+ \def\thempfn{\thempfootnote}\c@mpfootnote\z@%
+ \ifx\@captype\undefined\def\@captype{table}\fi% -for amsbook
+ \let\caption\@tablescaption% -allow page footnote in \caption
+ \let\@footnotetext\@mpfootnotetext\fi%
+ \ifx\@xfORI\undefined%
+ \let\@xfORI\@xfloat\let\@xfloat\@Fxloat%
+ \fi%
+ \@dbtbeORI}%
+ }%
+\ifx\table\undefined\let\@temp@\relax\fi\@temp@%
+\def\@Fendtable{% -Will be called by \@Fxloat.
+ \let\@etORI\endtable% -................................... \endtable
+ \def\endtable{\ifFLA\par%
+ \vskip-\lastskip% -make footnotes here
+ \ifvoid\@mpfootins\else\vskip\skip\@mpfootins%
+ \footnoterule\unvbox\@mpfootins\fi%
+ \fi\@etORI\ifFLA\endgroup\fi%
+ \ifx\@lim\empty\else\marginpar{\@lim@}%
+ \xdef\@lim{}\fi\let\ifMOVING\iffalse}%
+ }%
+\ifx\endtable\undefined\let\@Fendtable\relax\fi%
+\def\@temp@{\def\endtable{\ifFLA\endgroup% -\endtable may be \relax
+ \expandafter\let\csname endtable*\endcsname\endtable% -as in endfloat
+ \fi}%
+ }%
+\ifx\endtable\relax\@temp@% -is also used in frenchll for testing purpose
+\fi%
+\expandafter\def\csname @Fendtable*\endcsname{% -Will be called by \@Fxloat.
+ \expandafter\let%
+ \expandafter\@dbetORI\csname endtable*\endcsname% -...... \endtable*
+ \expandafter\def%
+ \csname endtable*\endcsname{\ifFLA\par%
+ \vskip-\lastskip% -make footnotes here
+ \ifvoid\@mpfootins\else\vskip\skip\@mpfootins%
+ \footnoterule\unvbox\@mpfootins\fi%
+ \fi\@dbetORI\ifFLA\endgroup\fi%
+ \ifx\@lim\empty\else\marginpar{\@lim@}%
+ \xdef\@lim{}\fi\let\ifMOVING\iffalse}%
+ }%
+\expandafter\ifx\csname endtable*\endcsname\relax%
+ \expandafter\let\csname endtable*\endcsname\endtable%
+\fi% -for ams classes
+% The following code is for beamer which don't use float for figures/tables.
+\expandafter\ifx\csname\string\table\endcsname\undefined\else%
+ \expandafter\let\expandafter\BfigureORI\csname\string\figure\endcsname%
+ \expandafter\def\csname\string\figure\endcsname{\@Fendfigure\BfigureORI}%
+ \expandafter\let\expandafter\BtableORI\csname\string\table\endcsname%
+ \expandafter\def\csname\string\table\endcsname{\@Fendtable\BtableORI}%
+\fi%
+%#<
+\def\drapeaufg{\ifFLA% -........................................... \drapeaufg
+ \raggedright\hbadness=6000%
+ \rightskip=0.3em plus 0.75em\hfuzz=0.4em\relax%
+ \let\enddrapeaufg\par\fi}%
+\def\drapeaufgIN{\ifFLA% -................/........................ \drapeaufgIN
+ \raggedright\hbadness=6000%
+ \rightskip=0.3em plus 0.75em\hfuzz=6em%
+ \lefthyphenmin=12\righthyphenmin=10\relax%
+ \let\enddrapeaufgIN\par\fi}%
+\def\drapeaufd{\ifFLA\raggedleft% -................................ \drapeaufd
+ \let\enddrapeaufd\par\fi}%
+\def\drapeaufdIN{\ifFLA% -......................................... \drapeaufdIN
+ \raggedleft\hfuzz=6em%
+ \lefthyphenmin=12\righthyphenmin=10\relax%
+ \let\enddrapeaufdIN\par\fi}%
+%#>
+%\GOfrench{ -emacs pb-
+% continuing definition of \GOfrench
+\ifx\undefined\Hy@PDFDef\let\Hy@PDFDef\pdfstringdef\fi% -......... \pdfstringdef
+\ifx\undefined\Hy@PDFDef\else% -For the old hyperref package.
+ \let\@hpdORI\Hy@PDFDef%
+ \def\Hy@PDFDef##1##2{\@ifFTYfalse\afterassignment%
+ \@Fstr\@hpdORI{##1}{##2}\@ifFTYback}%
+\fi%
+\ifx\pdfstringdef\undefined\else%
+ \let\pdfstringdef\Hy@PDFDef%
+\fi%
+ \let\@lti\labelitemi\let\@ltii\labelitemii%
+ \let\@ltiii\labelitemiii\let\@ltiv\labelitemiv%
+ \@ifo% -define French options, GOfrench part 1
+ \let\@ifo\undefined% -now release memory
+ \@doFh% -process language.dat, GOfrench part 2
+ \let\@doFh\undefined% -release memory
+ \let\hyphex\undefined\let\frhyphex\undefined%
+ \let\@temp@\undefined%
+ \let\ifFTY\iffalse\let\ifFTR\iffalse% -if begin language isnt
+ \let\ifFLA\iffalse\let\ifFMA\iffalse\let\ifFH\iffalse% -french
+% Get original \everypar control command but not hebrew macro.
+\def\@tempa##1{\o@everypar{\rl@everypar##1}}%
+\ifx\@tempa\everypar\let\TeXeverypar\o@everypar%
+\else\let\TeXeverypar=\everypar%
+\fi%
+%
+% As eTeX is bugged (no respect of \csname beginL\endcsname=\relax when
+% TeX--XeT option disabled), Philip Taylor suggested the following code
+% to replace the test about \beginL:
+% %\ifx\beginL\undefined\else%
+ \ifx \TeXXeTstate \undefined%
+ \edef \next {\ifx \beginL \undefined 00\else 01\fi}%
+ \else%
+ \edef \next {\ifnum \TeXXeTstate = 0 00\else 01\fi}%
+ \fi%
+ \if \next\let\beginL\relax\let\beginR\relax% -patch eTeX.
+ \else%
+% assume Left to right for *the* document if TeX--XeT.
+ \edef\@fepORI{{\the\TeXeverypar}}%
+ \def\@SetBFWdirection{\csname begin%
+ \beginFWdirection\endcsname}%
+ \TeXeverypar={\@SetBFWdirection%
+ \let\@SetBFWdirection\relax%
+ {\let\@nodocument\relax% -In case hebrew.
+ \@fepORI}}%
+ \fi%
+ \let\ErrFrench\@Ffnt\def\@Ffnt##1{}%
+% insure files integrity
+\ifx\undefined\babel@core@loaded% -already done for Babel in .ldf
+\protected@write\@auxout{}{\protect%
+\csname auxWARNINGi\protect\endcsname{\protect\typeout%
+ {-34- this file and other auxiliary files require to %
+ use the following}}}%
+\protected@write\@auxout{}{\protect%
+\csname auxWARNINGi\protect\endcsname{\protect\typeout%
+ {-34- LaTeX packages: \frenchpack!}}}%
+\protected@write\@auxout{}{\protect%
+\csname auxWARNINGi\protect\endcsname{\protect\typeout%
+ {-34- check \protect\protect\protect\usepackage%
+ \protect\space or remove these files. %
+ Typesetting is aborted!}%
+ \protect\stop}}%
+%\let\auxWARNINGi=\@gobble% set in the preambule
+\fi%
+% patch inclusion:
+\@finput{frpatch.sty}%
+ \ifx\FSfd@patch\FSfd\else
+ \f@issue%
+ \@fw{-42- %
+%\@txt@msg{The French patch file (frpatch.sty) is not suitable^^J}%
+%\@txt@msg{for this version of the "\frenchpack" package dated \FSfd}%
+ }%
+ \batchmode\@@end%
+ \fi%
+ \let\@Ffnt\ErrFrench\let\ErrFrench\undefined% -ditto
+%%% Since "msg" is in use, \InputIfFileExists no more input the file, why?
+%%% \InputIfFileExists{\frenchname.cfg}{% load site config file.
+%%% \f@issue%
+%%% \@fw{-48- %\@txt@msg{Lecture du fichier de }%
+%%% %\@txt@msg{configuration de \frenchpack}%
+%%% }}{}%
+%%% so we now call \IfFileExists ... \@finput
+ \IfFileExists{\frenchname.cfg}{% -load site config file.
+ \f@issue%
+ \@fw{-48- %\@txt@msg{Lecture du fichier de }%
+ %\@txt@msg{configuration de \frenchpack}%
+ }%
+ \@finput{\frenchname.cfg}}{}%
+ \beginlanguage}% -now the new language (end of \GOfrench)
+%
+ \let\@dORI\document% -................................... \begin{document}
+ \def\document{% -\slidesonly of seminar must not gobble me!
+ \ifx\noxcomment\undefined\else%
+ \global\let\@x@hk\xcomment@hook\global\noxcomment\fi%
+ \ifx\btxselectlanguage\undefined%
+ \else\ifx\babel@savevariable\undefined%
+ \f@issue\@fw{-87- %
+%\@txt@msg{ERREUR \string: }%
+%\@txt@msg{babelbib s'utilise uniquement avec babel}%
+ }%
+ \stop%
+ \fi%
+ \fi%
+ \ifx\@bglngpk\babel@savevariable%
+ \else% -Babel loaded after french.
+ \f@issue\@fw{-71- %
+%\@txt@msg{ATTENTION : }%
+%\@txt@msg{si babel est utilis\'e, mettre \frenchname\space en option}%
+ }%
+ \fi\let\@bglngpk\undefined%
+ \@dORI% -execute original \document
+ \GOfrench% -now initiate the style
+ \let\GOfrench\undefined% -release memory
+ \ifx\noxcomment\undefined\else\let\xcomment@hook\@x@hk%
+ \expandafter\xcomment@hook\fi}%
+% now reset < ` ' > as other chars
+\@makeother`\@makeother<\@makeother>\@makeother'%
+% ReRead of aux file at \end{document} may create problems.
+% As French things are already applied, so it's unuseful after \end{document}
+\let\enddocumentasusual\enddocument% -............................ \enddocument
+ \def\enddocument{\def\@tempa{\AtEndDocument{\french\f@clearpage%
+ \global\let\ifCLA\iffalse% -No more page, thus no layout.
+ \let\ifCLAfrench\iffalse%
+ \endfrench}}%
+%%% Notice we specially use \AtEndDocument to avoid AmS hook material
+%%% to print outside of the current (final) page the \@setaddresses.
+ \csname f@lastpage\endcsname% -Allow user mods here.
+ \@CGroup% -end any remaining opened << group
+ \ifFLA% -At the real end of document we should
+ \@tempa% -output last page in french.
+ \def\@tempa{empty}\ifx\@specialstyle\@tempa%
+ \else\gdef\@specialstyle{french}\fi%
+ \fi%
+ \let\GOfrench\relax% -Stop to generate \beginL.
+ \switchtolanguage\englishTeXmods%
+ \let\f@clearpage\clearpage% -Keep \clearpage for \AtEndDocument
+% Avoid the lastpage package do a \clearpage until last \french page
+\ifx\lastpage@putlabel\undefined% -and avoid any change of
+\else\let\clearpage\relax% -the page counter:
+ \let\lastpage@putlabelORI\lastpage@putlabel%
+ \def\lastpage@putlabel{\addtocounter{page}{+1}\lastpage@putlabelORI%
+ \addtocounter{page}{-1}}%
+\fi%
+% Redef of \@newl@bel due to Babel \select@language
+ \ifx\undefined\babel@core@loaded\else% -i.e. \@testdef:
+ \ifx\@testdef\undefined\else% -................ \newlabel
+ \@gG{@td}{@testdef}{//}{3}\fi% -............ \@testdef
+ \fi%
+% Let few stuff expand in \edef for TeX4ht.
+\ifx\ConfigureToc\undefined\else%
+ \let\@ifFTYfalse\relax\let\@ifFTYback\relax%
+ \@Fstr\let\@Fstr\relax%
+\fi%
+ \enddocumentasusual%
+ }%
+\let\@whatUCH\relax% -\@whatUCH is \relax with french light.
+%#<
+% ===============================
+% | Hyphenation |
+% ===============================
+%
+% Allow or not hyphenation of words starting with a capital letter
+\def\allowfulluchyph{\@noBDfr%
+ \uchyph=1\let\@whatUCH\allowfulluchyph% -.. \allowfulluchyph
+ \let\@uchbox\empty}%
+\def\allowuchyph{\@noBDfr%
+ \uchyph=1\let\@whatUCH\allowuchyph% -.............. \allowuchyph
+ \let\@uchbox\hbox}%
+\def\disallowuchyph{\@noBDfr%
+ \uchyph=-1% -................................ \disallowuchyph
+ \let\@whatUCH\disallowuchyph\let\@uchbox\hbox}%
+\def\notthyphenation{\@noBDfr%
+ {\tt\hyphenchar\font=-1}% -.................\notthyphenation
+ \let\ifTTH\iffalse}%
+\def\tthyphenation{\@noBDfr%
+ {\tt\hyphenchar\font=`\-}% -.................. \tthyphenation
+ \let\ifTTH\iftrue}%
+\let\@whatUCH\allowuchyph% -is normaly the TeX default
+\let\ifTTH\iffalse% -we presume that there no tt hyph. by default
+\let\ifFH\iffalse% -we assume we start with no French hyphenation (wrong!)
+%
+% A macro asking to load a language specific exceptions file.
+% Argument provides the language name. File name is in language.dat
+\def\hyphex#1{% -available before \begin{document}
+ \if#1\empty% -........................................... (\hyphex)
+ \else% -a general macro for other languages
+ \edef\@excn{#1}\fi%
+ \let\if@FE\iftrue}% -\hyphex{} before begin document will
+% % load exceptions files
+\def\frhyphex{% -available before \begin{document}
+ \if@PMF\else\hyphex{\frenchname}\fi}% -................. \frhyphex
+%#>
+% ===============================
+% | Translations |
+% ===============================
+%
+% The following is to ``repair'' default captions used in standard V2 styles
+% prior October 91 as "Figure n:" and "Table n:".
+\def\@eatDP{\@ifNextNB:{\@gobble}{}}%
+%\def\@eatP#1{\@ifNextNB.{\@gobble}{}}% for any AmS class
+\def\f@ffrench{\ifx\listoffigures\relax\else%
+ \figurename~\thefigure\ifFTY\captionseparator\fi\fi%
+ \ifFTY\expandafter\@eatDP\fi}%
+\def\f@tfrench{\ifx\listoftables\relax\else%
+ \tablename~\thetable\ifFTY\captionseparator\fi\fi%
+ \ifFTY\expandafter\@eatDP\fi}%
+\def\unnumberedcaptions#1{\@noBDfr%
+%............................... \unnumberedcaptions
+ \expandafter\let\csname listof#1s\endcsname\relax%
+ \ifx\listoffigures\relax\ifx\listoftables\relax%
+ \let\unnumberedcaptions\undefined%
+ \fi\fi%
+ }%
+%
+% Titles ....................................................... \captionsnames
+\@ifundefined{captionsnames}{\def\captionsnames{\relax}\let\@tempa\@currname%
+% load English captions but force language name for ...
+\xdef\@currname{fenglish}\@finput{fenglish.sty}\let\@currname\@tempa}{}%
+\def\languagename{french}% -... any further msg message with \kbencoding.
+\let\ifnonenglishheadings\iftrue% -Bypass to a LaTeX slight bug...
+%#<
+\def\tocreduite#1#2{}% -Reduce toc to a toc-summary for \sommaire.
+\def\@sEAT#1#2{\@sORI*{\sommairename}}% -Normally a \sommaire is short
+\def\@cEAT#1#2{\@chORI*{\sommairename}}% -and need no headings.
+\def\@smr[#1]{\let\@tempa\contentsname% -Save it for
+ \let\contentsname\sommairename% -memoir.cls.
+ \ifx\tableofcontents\undefined\else%
+ \begingroup\ifcase #1 0% -Process \sommaire[1-4]
+ \or \let\l@paragraph\tocreduite% -.....\sommaire[1]
+ \let\l@subparagraph\tocreduite%
+ \or \let\l@subsubsection\tocreduite% -.\sommaire[2]
+ \let\l@paragraph\tocreduite%
+ \let\l@subparagraph\tocreduite%
+ \or \let\l@subsection\tocreduite% -....\sommaire[3] DEFAULT
+ \let\l@subsubsection\tocreduite%
+ \let\l@paragraph\tocreduite%
+ \let\l@subparagraph\tocreduite%
+ \else \let\l@section\tocreduite% -.......\sommaire[4]
+ \let\l@subsection\tocreduite%
+ \let\l@subsubsection\tocreduite%
+ \let\l@paragraph\tocreduite%
+ \let\l@subparagraph\tocreduite%
+ \fi%
+ \let\@sORI\section\let\@chORI\chapter%
+ \let\section\@sEAT\let\chapter\@sEAT%
+ \let\@ToCisNOT\relax% -let it be a sommaire first ie there is no toc
+ \def\@starttoc##1{% -\@startoc locally redefined to let toc reusable
+ \ifx\fr@RIfM@cls\undefined% -special case AmS document class
+ \else\chapter*{\sommairename}% -print sommaire now
+ \fi%
+ \begingroup\makeatletter% -any case require a second pass
+ \immediate\openin\@inputcheck \jobname.##1 %
+ \if@filesw \expandafter\newwrite\csname tf@##1\endcsname\fi%
+ \ifeof\@inputcheck \@Ffnt{\jobname.##1}%
+ \if@filesw\immediate\openout \csname tf@##1\endcsname%
+ \jobname.##1\relax\fi%
+ \else\immediate\closein\@inputcheck \relax\@@input \jobname.##1 %
+ \@ifundefined{@ToCisNOT}{% -let a toc be defined further
+ \if@filesw\immediate\openout \csname tf@##1\endcsname%
+ \jobname.##1\relax\fi}{}%
+ \fi\global\@nobreakfalse \endgroup}%
+ \ifx\fr@RIfM@cls\undefined% -special case AmS document class
+ \else\def\contentsname{}% -dont print table of contents at all here!
+ \fi% -in usual cases (LaTeX document classes) we do
+ \tableofcontents\endgroup% -print the sommaire now.
+ \def\tableofcontents{% -new def that records there is a toc in the doc
+ \ifx\pdfstringdef\undefined% -Reset orginal \contentsline
+ \else\let\contentsline\contentslineORI\fi% -for hyperref.
+ \addtocontents{toc}{\protect%
+ \let% -just to be not
+ \protect\@ToCisNOT\protect\empty}% -as relax
+ \begingroup% -\@starttoc locally redefined to avoid pb with Atari
+ \def\@starttoc####1{\begingroup% -normal def without newdef of tf@
+ \makeatletter\@input{\jobname.####1}%
+ \if@filesw\immediate\openout \csname tf@####1\endcsname%
+ \jobname.####1\relax\fi%
+ \global\@nobreakfalse \endgroup}%
+ \@tocORI\endgroup}% -now the original toc command
+ \fi% -of \if\tableofcontents\undefined
+ \let\contentsname\@tempa% -Restore it for memoir.cls.
+ }% -\@smr
+\def\sommaire{\@ifNextNB[{\@smr}{\@smr[3]}% -]......................... \sommaire
+ }% -a Sommaire is a TOC in front of a document
+\def\@temp@{\let\if@twocolumn\iffalse}%
+\@ifundefined{if@twocolumn}{\@temp@}{}%
+\@ifundefined{abstract}{% -undefined in book
+ \def\abstract{\let\@w@s\@gobble%
+ \if@twocolumn\section*{\abstractname}%
+ \else\sm@ller\begin{center}%
+ \textbf{\abstractname\vspace*{-.5em}\vspace*{\z@}}%
+ \end{center}\quotation\fi}%
+ \def\endabstract{\if@twocolumn\else\endquotation\fi}}{}%
+\@ifundefined{resume}{% -there are styles already defining \resume
+\def\resume{% -.......................................................... \resume
+ \let\@w@s\@gobble% -no warning for \parsep mod.
+ \abstract}%
+\let\endresume\endabstract% -......................................... \endresume
+ }{}%
+%
+\def\@tempa{%
+\def\endkeywords{\@noBDfr}%
+\def\keywords{\@noBDfr% -.............................................. \keywords
+ \let\@w@s\@gobble% -no warning for \parsep mod.
+ \quotation\noindent\sm@ller{%
+ \ifx\fr@RIfM@cls\undefined%
+ \else\let\textbf\textsc\fi% -for AmS classes
+ \kwname}%
+ \let\endkeywords=\endquotation}% -.................... \endkeywords
+ }%
+\@ifundefined{keywords}{\@tempa}%
+ {\ifx\fr@RIfM@cls\undefined%
+ \else\@tempa% -do redefine AmS class keyords def
+ \fi%
+ }%
+\@ifundefined{endkeywords}{\let\endkeywords\relax}{}%
+%
+\def\motsclef{\keywords\relax% case any arg. % -....................... \motsclef
+ \def\endmotsclef{\endkeywords}}% -.................... \endmotsclef
+%
+\let\ifFTR\iftrue% -Default translation is on.
+\ifx\texteuro\undefined\else%
+ \let\textcurrencyORI\textcurrency% -.............................. \textcurrency
+ \def\textcurrency{\ifFTR\expandafter\texteuro%
+ \else\expandafter\textcurrencyORI%
+ \fi}%
+\fi%
+\def\annexe {\@ann{\appendixname}}% -................................... \annexe
+\def\annexes{\@ann{\appendixname s}}% -................................. \annexes
+\def\@ann#1{\@noBDfr\leavevmode%
+ \ifx\fr@RIfM@cls\undefined\else% -for AmS classes
+ \let\chaptername\appendixname% -forget Chapter
+ \fi%
+ \ifx\chapter\undefined\else%
+ \par\setcounter{chapter}{0}\setcounter{section}{0}%
+ \def\@chapapp{\appendixname}\def\thechapter{\Alph{chapter}}%
+ \addcontentsline{toc}{chapter}{\protect#1}%
+ \fi}%
+\@ifundefined{@restonecolfalse}{\def\@restonecolfalse{}%
+ \def\@restonecoltrue{}}{}% -dummy def
+\@ifundefined{@mkboth}{\def\@mkboth#1#2{}}{}% -idem
+\def\glossaire{\@glo{%\protect%
+ \glossaryname}}% -............................. \glossaire
+\def\glossaires{\@glo{%\protect%
+ \glossaryname s}}% -......................... \glossaires
+\def\@glo#1{\ifx\chapter\undefined\else%
+ \setcounter{chapter}{0}\setcounter{section}{0}%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\fi%
+ \hbox{}% -to simulate any text that will allow the writes
+ \clearpage% -to be done to the file instead of the terminal
+ \ifx\fr@RIfM@cls\undefined% -no need with AmS classes
+ \chapter*{#1%
+ \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}%
+ }%
+ \addcontentsline{toc}{chapter}{\protect#1}%
+ \else\chapter*{#1}% -just this for AmS classes
+ \fi%
+ \ifx\undefined\@glossaryfile\else%
+ \immediate\closeout\@glossaryfile%
+ \ifx\undefined\glossaryentry% -dummy def .... \glossaryentry
+ \long\def\glossaryentry##1##2{\noindent-- ##1\par}%
+ \fi%
+ \ifx\undefined\theglossary%
+% default glossary defs, type \glossary{[entry :] comments}
+% and use \printglossary[filename] default is jobname.gls ..... \printglossary
+ \let\theglossary\description%
+ \let\endtheglossary\enddescription%
+ \let\scan@allowedfalse\makeatother% -gglo.ist call this
+ \def\pfill##1 {}% -nullify page num. unneded
+ \def\@pgf[##1]{\@finput{##1}}%
+ \def\printglossary{\@ifNextNB[% -] emacs
+ {\@pgf}{\@pgf[\jobname.gls]}}%
+ \fi%
+ \fi\fi}% -\input \jobname.glo will typeset the glossary
+%#>
+\def\datefrench{%
+\def\todayfrench{\ifx\ier\undefined\def\ier{er}\fi%
+ \ifnum\day=1\relax 1\ier%
+ \else \number\day\fi%
+ \space\ifcase\month\or janvier\or f\'evrier\or mars\or %
+ avril\or mai\or juin\or juillet\or ao\^ut\or septembre\or %
+ octobre\or novembre\or d\'ecembre\fi \space\number\year}%
+}\datefrench%
+\if@filesw
+ \def\ordinalSecondNam{{s}econd}%
+ \def\ordinalSecondName{{s}econde}%
+\else%
+ \def\ordinalSecondNam{{d}euxi\`eme}%
+ \let\ordinalSecondName\ordinalSecondNam%
+\fi%
+ \def\@osn#1#2{\expandafter\ifx\csname#1osn\endcsname%
+ \relax#2\else\csname#1osn\endcsname\fi}%
+ \def\ordinal#1{\ifcase\value{#1}\or {p}remier%
+ \or\@osn{#1}{\ordinalSecondNam}\else\ordin@l{#1}\fi}%
+ \def\ordin@l#1{\ifcase\value{#1}\or\or\or %
+ {t}roisi\`eme\if@filesw{\protected@write\@auxout{}{%
+ \protect\expandafter%
+ \protect\gdef\protect\csname#1osn%
+ \protect\endcsname%
+ {{d}euxi\`eme}}}%
+ \fi%
+ \or {q}uatri\`eme\or {c}inqui\`eme\or {s}ixi\`eme\or %
+ {s}epti\`eme\or {h}uiti\`eme\or {n}euvi\`eme\or {d}ixi\`eme\or %
+ {o}nzi\`eme\or {d}ouzi\`eme\or {t}reizi\`eme\or {q}uatorzi\`eme\or %
+ {q}uinzi\`eme\or {s}eizi\`eme\or {d}ix-septi\`eme\or {d}ix-huiti\`eme\or %
+ {d}ix-neuvi\`eme\or {v}ingti\`eme\fi}%
+ \def\ordinale#1{\ifcase\value{#1}\or {p}remi\`ere%
+ \or\@osn{#1}{\ordinalSecondName}\else\ordin@l{#1}\fi}%
+ \def\Ordinal{\expandafter\uppercase\ordinal}%
+ \def\Ordinale{\expandafter\uppercase\ordinale}%
+%
+\def\captionsfrench{% -......................................... \captionsfrench
+ \ifFTR% -Is French translation allowed?
+ \ifx\captionsnames\captionsfrench\else%
+ \let\@tdORI\today% -................................................... \today
+ \let\f@fORI\fnum@figure% -......................................... \fnum@...
+ \let\f@tORI\fnum@table%
+ \let\@cnsORI\captionsnames%
+% The following for styles or classes: article, report and book
+ \def\pagename{page}%
+ \def\refname{R\'ef\'erences}%
+ \def\abstractname{R\'esum\'e}%
+\ifx\bibname\undefined\else%
+ \def\bibname{Bibliographie}%
+\fi%
+\ifx\btxselectlanguage\undefined% -Don't call \bibsfrench if babelbib loaded.
+ \csname bibsfrench\endcsname% -more bibs-names if any.
+\fi%
+ \def\contentsname{Table des mati\`eres}%
+ \def\listfigurename{Table des figures}%
+ \def\listtablename{Liste des tableaux}%
+\ifx\listalgorithmname\undefined\else%
+ \def\ALG@name{algorithme}%
+ \def\listalgorithmname{Liste des \ALG@name s}%
+\fi%
+ \def\indexname{Index}%
+ \def\seename{\emph{voir}}% -used normally in makeidx.sty
+ \def\seealsoname{\emph{voir aussi}}% -added macro \seealso
+ \def\figurename{\textsc{Fig.}}%
+ \def\tablename{\textsc{Tab.}}%
+ \def\sommairename{Sommaire}%
+ \def\partname{% -"Premi\`ere partie" instead of "Part I"
+ \ignorespaces\Ordinale{part}\space partie%
+ \@RPtNoInDoc\noexpand\@RPtNoInToc}%
+ \def\glossaryname{Glossaire}% -added
+ \def\kwname{\textbf{Mots-cl\'e} : }%
+ \def\draftname{- \noexpand\351preuve -}% -PostScript IsoLatin1 \'epreuve
+ \def\prefacename{Pr\'eface}%
+\ifx\proofname\undefined\else\def\proofname{D\'emonstration}\fi%
+%
+% Comment for further dev:
+% Next ones depend from the class of document in use, thus the translations
+% should apply _only_ when the corresponding class is loaded. Thus it should
+% be better to define these names when loading french, not dynamically at
+% run time when typesetting the document.
+%
+\ifx\fr@RIfM@cls\undefined% -figure and table captions modified
+ \let\fnum@figure\f@ffrench% -except for any AmSLaTeX V1.2 class
+ \let\fnum@table\f@tfrench% -for which it remains unsolved pbs.
+ \def\@RPtNoInToc{}%
+ \def\@RPtNoInDoc{\def\thepart{}}% -nullify \thepart
+ \else\def\@RPtNoInToc##1.{.}% -remove until dot
+ \def\@RPtNoInDoc##1\thepart{}% -remove until value
+% \let\@eatDP\@eatP%
+\fi%
+% The following is only for letter
+\ifx\opening\undefined\else%
+ \def\headtoname{}%
+ \def\ccname{c.c. }% -copie conforme
+ \def\enclname{P.j. }% -Pieces jointes
+ \def\PSname{P.-S. :}% -Post-Scriptum
+ \def\Objectname{Objet :}% -Object of the letter
+ \def\YourRefname{v/r\'ef. :}% -Your reference number
+ \def\OurRefname{n/r\'ef. :}% -Our reference number
+ \def\emailname{m.\'el. :}% -Email address
+\fi%
+% The following is for seminar
+\ifx\slidename\undefined\else%
+ \def\slidename{Transparent}%
+ \def\listslidename{Liste des transparents}%
+\fi%
+% The following is for endnotes 98/01
+\ifx\notesname\undefined\else%
+ \def\notesname{Notes}%
+\fi%
+% The following is only for report and book ...
+ \def\chaptername{Chapitre}%
+ \def\appendixname{Annexe}%
+ \let\captionsnames\captionsfrench%
+\fi% \else of \ifx\captionsnames\captionsfrench%
+ \let\today\todayfrench%
+\def\@cORI{\@cnsORI% -Restore original caption names
+ \let\today\@tdORI%
+ \let\fnum@figure\f@fORI%
+ \let\fnum@table\f@tORI}%
+\fi% -\ifFTR
+}% -end of captionsfrench
+%#<
+\iffrenchbibliography%
+ \ifx\@rbibstyid\undefined%
+ \let\@rbibstyid\empty%
+ \ifx\jb@pkg@name\undefined\else%
+ \def\@rbibstyid{jb}%
+ \fi%
+ \fi%
+ \ifx\bibsfrench\undefined%
+ \edef\@tempa{fr\@rbibstyid bib.ldf}%
+ \IfFileExists{\@tempa}{%
+\f@issue%
+\@fW{ -65- %
+%\@txt@msg{\frenchname.sty charge }%
+%\@txt@msg{les traductions pour la bibliographie \string:}%
+ }\@finput{\@tempa}}{}%
+ \fi%
+ \ifx\bibsenglish\relax%
+ \edef\@tempa{en\@rbibstyid bib.ldf}%
+ \InputIfFileExists{\@tempa}{}{}%
+ \fi%
+\fi%
+%#>
+%%%%%%%%%%%%%%%%%%
+% ===============================
+% | Layout |
+% ===============================
+%
+% NB: See elsewhere in the code for appearance of \ifFLA, to find
+% all French layout coding.
+\let\@tlORI\@trivlist%
+\def\frenchtrivsepwarnings{\let\ifFTSW\iftrue}% -........ \frenchtrivsepwarnings
+\def\nofrenchtrivsepwarnings{\let\ifFTSW\iffalse}% -... \nofrenchtrivsepwarnings
+\long\def\frtrivseplengths#1{% -............................... \frtrivseplengths
+ \nofrenchtrivsepwarnings%
+ \long\def\fr@tsl{#1}%
+ }%
+\def\fr@tsl{\setlength{\parsep}{0.2ex plus 0.1ex minus 0.1ex}%
+ \setlength{\itemsep}{0.2ex plus 0.1ex minus 0.1ex}%
+ \setlength{\topsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \setlength{\partopsep}{1.6ex plus 0.8ex minus 0.8ex}%
+ }%
+\def\frenchtrivsep{\ifFLA\def\@trivlist{% -...................... \frenchtrivsep
+ \fr@tsl\@tlORI}%
+ \fi}
+\def\nofrenchtrivsep{\let\@trivlist\@tlORI}% -................. \nofrenchtrivsep
+\@ifundefined{@afterindenttrue}{\let\@afterindenttrue\relax%
+ \let\@afterindentfalse\relax}{}%
+\let\@aifORI\@afterindentfalse% -save first indent
+\edef\@piORI{\the\parindent}% -save \parindent
+\begingroup \catcode `| =0 \catcode `[ = 1 \catcode`] =2%
+ \catcode `\{=12 \catcode `\}=12 \catcode`\\=12%
+ |gdef|@xversatim#1\end{versatim}[#1|end[versatim]]%
+ |endgroup% -running macro for versatim
+%
+\let\@FIM@\relax% -Macro is relax with french light
+%#<
+\def\@FIM@{\ifCG\else\ifFLA\ifEPG\ifEPGR\else\leftguillemets\fi\fi\fi\fi}%
+\let\checkitemguillemets\@FIM@%
+%#>
+\def\fr@idf{\let\@afterindentfalse\@afterindenttrue\@afterindenttrue}%
+\def\fr@nidf{\let\@afterindentfalse\@aifORI\@afterindentfalse}%
+\ifx\titlespacing\undefined%
+ \let\which@indent\fr@idf% -French default is \indentfirst
+\else\let\which@indent\fr@nidf% -but let's titlesec package decide if loaded.
+\fi%
+\def\fr@lbi{\def\labelitemi{\@FIM@--}\def\labelitemii{\@FIM@--}%
+ \def\labelitemiii{\@FIM@--}\def\labelitemiv{\@FIM@--}%
+ }%
+\long\def\frlabelitems#1{\ifFLA\long\def\fr@lbi{#1}% -............. \frlabelitems
+ \fr@lbi\fi}%
+\def\@FIM{% -Correct labels in itemize environement .............. \labelitem..
+ \fr@lbi%
+ \def\indentfirst{\ifFLA\fr@idf\fi}% -.................... \indentfirst
+ \def\nonindentfirst{\ifFLA\fr@nidf\fi}% -............. \nonindentfirst
+ \which@indent% -Apply requested indent in first paragraph
+ %#<
+% The "order" list .................... \begin{order} & \end{order}
+ \def\labelfrenchenumi{\@FIM@\quando={\arabic{enumi}}}%
+ \def\labelfrenchenumii{\@FIM@\quando={\arabic{enumii}}}%
+ \def\labelfrenchenumiii{\@FIM@\quando={\arabic{enumiii}}}%
+ \def\labelfrenchenumiv{\@FIM@\quando={\arabic{enumiv}}}%
+ \def\order{\ifnum \@enumdepth >3 \@toodeep\else%
+ \advance\@enumdepth \@ne%
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list%
+ {\csname labelfrench\@enumctr\endcsname}%
+ {\usecounter{\@enumctr}%
+ \ifFLA% -French layout might be switched after the definition
+ \addtolength{\leftmargin}{0.9em}% -allow a second digit and <<
+ \fi%
+ \def\makelabel####1{\hss\llap{####1}}}\fi}% -\order
+ \let\endorder =\endlist%
+% The "versatim" environment .... \begin{versatim} & \end{versatim}
+% inapropriate for multi-level of indentation!
+ \def\versatim{\bgroup\let\@w@s\@gobble% -nullify warning 58
+ \ifFLA% -protect our new settings
+ \let\dospecials\@dsversa% -our specials for versatim
+ \def\@xobeysp{\leavevmode{}\space}% -allow hypenation at space
+ \ifx\verbatim@font\undefined\let\verbatim@font=\tt\fi%
+ \let\@ttORI\verbatim@font% -save the original \tt definition
+ \def\verbatim@font{\@ttORI% -execute it first to know the font
+ \verse% -now enter verse environment (\itemindent is negative)
+ \vskip-2\parskip% -remove vertical par skips
+ \vskip-1\partopsep\vskip-\topsep%
+ \leavevmode%
+ \leftskip=-2\itemindent% -the margin is increased
+ \parindent=2\itemindent% -each line will go in the margin
+ \parskip\z@% -no more interline (interpar) spacing
+ \pretolerance=\@M\tolerance=\@M\hbadness=\@M% -max tolerance
+ \hyphenchar\the\font=`\-}%
+ \let\tt=\verbatim@font% -useful outside NFSS
+ \fi% -ifFLA end of \verbatim@font new def
+ \let\@xverbatim\@xversatim% -define environment
+ \verbatim}% -now enter usual verbatim
+ \def\endversatim{\endverse%
+ \ifTTH\else\hyphenchar\the\font=-1\fi% -was a global def
+ \endverbatim\ifFLA\vskip+1\partopsep\fi\egroup}%
+ \@ifundefined{vers}{%
+ \def\@vers##1{\def\@tempa ####1##1{\leavevmode\null####1%
+ \endgroup}\@tempa}%
+ \def\vers{% -................................................ \vers
+ \begingroup% -protect local modifications
+ \def\@xobeysp{\ifFLA\else\penalty\@M\fi\space}% -allow
+ \catcode``=13 \@noligs \tt% -hyphenation at blank space
+% word hyphenation done only if \tthyphenation typed
+ \ifFLA\let\dospecials\@dsversa\fi%
+ \let\do\@makeother\dospecials\@vobeyspaces \frenchspacing%
+ \@vers}}{}%
+ \@ifundefined{verbatimfile}% -........................... \verbatimfile
+ {\def\verbatimfile##1{\begingroup\@verbatim\frenchspacing
+ \@vobeyspaces\input ##1\endgroup}}{}%
+%#>
+}% -end of \@FIM
+%===================== for the letter ...
+\def\@temp@{% -a temporary def of all material
+\let\@ps@fp\ps@firstpage%
+\def\@opening{%
+\let\@wideletter\relax% -Definitions for french light here.
+\let\emailadd\@empty\let\@yourref\@empty\let\@ourref\@empty%
+\let\@object\@empty%
+%#<
+ \@ifundefined{wideletter}{%
+ \def\@wideletter{}\def\wideletter{% -.............................. \wideletter
+ \def\@wideletter{\leftskip-0.25\indentedwidth}}}{}%
+ \@ifundefined{email}{%
+ \def\email####1{\def\emailadd{\texttt{####1}}}}{}% -.................... \email
+ \@ifundefined{emailadd}{\def\emailadd{}}{}%
+ \@ifundefined{yourref}{%
+ \def\yourref####1{\def\@yourref{####1}}}{}% -......................... \yourref
+ \@ifundefined{@yourref}{\def\@yourref{}}{}%
+ \@ifundefined{ourref}{%
+ \def\ourref####1{\def\@ourref{####1}}}{}% -............................ \ourref
+ \@ifundefined{@ourref}{\def\@ourref{}}{}%
+ \@ifundefined{object}{%
+ \def\object####1{\def\@object{####1}}}{}% -............................ \object
+ \@ifundefined{@object}{\def\@object{}}{}%
+ \@ifundefined{PS}{%
+ \def\PS####1{{\raggedright\PSname\space ####1}}}{}% -...................... \PS
+%#>
+ \def\ps@firstpage{\ifFLA%
+ \advance\topmargin by -20\p@% -I also suggest to add in
+% document preambule: \advance\textheight by 20\p@%
+ \def\@oddhead{\ifx\undefined\formhead\else%
+ \bgroup\hss\formhead\hss\egroup\fi}%
+ \def\@oddfoot{\raisebox{-45\p@}[\z@]%
+ {\hbox to \textwidth{%
+ \ifcase \@ptsize\relax%
+ \normalsize%
+ \or \sm@ller%
+ \or \footnotesize%
+ \fi%
+%\hspace*{100\p@}\fromlocation \hfill \telephonenum
+ \ifx\undefined\formfoot\hfill\else%
+ \bgroup\hss\formfoot\hss\egroup\fi%
+ }}\hss}%
+ \def\@evenhead{}\def\@evenfoot{}%
+ \else\@ps@fp\fi}%
+ \long\def\opening####1{% -.......................................... \opening
+\ifFLA%%% -these 3 counts not saved for other languages (unnecessary)
+ \advance\indentedwidth by -0.25\longindentation%
+ \advance\longindentation by 0.22\textwidth%
+ \advance\parindent by 1.5em% -null in standard .....
+ %%%
+ \let\nopagenumbers\relax% -Avoid to switch to empty page style.
+ \thispagestyle{firstpage}% -set firstpage allowing the user to
+% use \@oddhead & \@oddfoot in \ps@firstpage
+ \raggedbottom% -force address to remain in the same place
+ \ifx\@empty\fromlocation\location{Le}\fi%
+ \ifx\@empty\fromaddress\let\fromaddress\space\fi% -make an blank box
+ {\raggedright\hspace*{-0.25\indentedwidth}%
+ \parbox[t]{0.5\textwidth}{\ignorespaces%
+ \vbox to 0\p@{\fromaddress\vss}}%
+ \\*[1.75\baselineskip]%
+% \\*[0.65in]% dont let the date appearing in the window
+% \vspace*{-5\baselineskip}\vspace*{60\p@}% error average
+ \par}%
+ \ifx\@empty\toname% -in fact \toname is never empty in LaTeX V2.09!
+% except if you code \begin{letter}{}
+ {\raggedleft\bgroup\fromlocation\space\@date\egroup\par}%
+ \else%
+ {\raggedleft\begin{tabular}{l}\ignorespaces%
+% \toname\\ \toaddress\\*[8\parskip]%
+ \toname\\ \toaddress\\*[6\parskip]%
+ \fromlocation\space\@date\end{tabular}\par}%
+ \fi%
+ \ifx\@empty\@ourref\else%
+ {\raggedright \hspace*{-0.25\indentedwidth}%
+ \OurRefname\space\@ourref \par}%
+ \fi%
+ \ifx\@empty\@yourref\else%
+ {\raggedright \hspace*{-0.25\indentedwidth}%
+ \YourRefname\space\@yourref \par}%
+ \fi%
+ \ifx\@empty\@object\else%
+ {\raggedright \hspace*{-0.25\indentedwidth}%
+ \textbf{\Objectname}\space\@object \par}%
+ \fi%
+ \par\vspace*{3\parskip}%
+\noindent####1\hfill\vspace*{3\parskip}% no need of \linebreak%
+ \@wideletter%
+ \else\@oORI{####1}%
+ \fi}}%
+\def\@closing{%
+ \def\closing{\fclosing@[9]}% -...................................... \closing
+ \def\fclosing{\@ifNextNB[{\fclosing@}{\fclosing@[9]}% -]........... \fclosing
+ }%
+ \long\def\fclosing@[####1]####2{%
+ \ifFLA%
+ \par% -\nobreak
+ \vspace{\parskip}\stopbreaks%
+ \ignorespaces ####2\\[####1\medskipamount]%
+ \ifx\@empty\fromaddress\else%
+ \hspace*{-0.25\indentedwidth}%
+ \hspace*{\longindentation}\fi%
+ {\raggedright\begin{tabular}{l}\ignorespaces%
+ \ifx\@empty\fromsig%
+ \fromname%
+ \else \fromsig \fi%
+ \ifx\@empty\emailadd\else\\{\footnotesize%
+ \emph{\emailname} \emailadd}\fi%
+ \strut\end{tabular}}\par%
+ \vskip 0pt plus 1fil% -un peu d'elasticite
+ \else\@cloORI{####2}%
+ \fi}%
+ \def\endletter{\ifFLA\vskip 0pt plus 3fil\fi% -un peu d'elasticite
+ \@elORI}}% -@closing
+\@ifundefined{opening}{\def\@opening{}\def\@closing{}}%
+ {\let\@oORI\opening\let\@cloORI\closing%
+ \let\@elORI\endletter%
+ \@opening\@closing}%
+}% -\@temp@
+\ifx\opening\undefined\let\@temp@\relax\fi%
+\@temp@% -only if letter .....
+%=====================
+%#<
+%............................................................ \begin{figurette}
+\let\ifFLA\iffalse% -dummy def for next processing
+\def\@temp@{%
+\def\figurette{\@noBDfr%
+ \ifx\@fgeORI\undefined\figure\fi% -can't work without figure
+ \ifFLA\bgroup%
+ \def\@xfloat####1[h]{%
+ \expandafter\let\csname end####1\endcsname\endfigurette%
+ \vskip\intextsep\def\@captype{####1}\parindent\z@}%
+ \@fgeORI[h]\else\figure[h]\fi}%
+\def\endfigurette{\@noBDfr%
+%.......................................... \end{figurette}
+ \ifFLA\vskip\intextsep\egroup\else\@efgeORI\fi%
+ \ifx\@lim\empty\else\marginpar{\@lim@}\xdef\@lim{}\fi%
+ \let\ifMOVING\iffalse}%
+ }%
+\ifx\figure\undefined\def\@temp@{}\fi% -only when \figure is already defined
+\@temp@%
+%#>
+% Reset chapter counter when starting a part --> \GOfrench
+%
+% Check for AmS package's class
+\def\@tempa{\let\fr@RIfM@cls\undefined}% -will set the no AmS class loaded flag
+\let\fr@RIfM@cls\RIfM@% -if no AmS package, no class as well
+ \ifx\RIfM@\undefined\else%
+ \expandafter\ifx\csname @classname\endcsname\relax\@tempa%
+ \else\def\@tempb#1#2#3#4\@nil{%
+ \if#1a\if#2m\if#3s\else\@tempa\fi%
+ \else\@tempa\fi\else\@tempa\fi}%
+ \expandafter\@tempb\@classname\@nil%
+ \fi%
+ \fi% -\RIfM@\undefined
+%
+% This is the French pagestyle to use instead in place of plain wrongly
+% used by LaTeX in many situations. Quite simple one................ \ps@french
+\def\@temp@{\def\ps@french{\if@fancyplain\ps@plain@fancy\else\ps@plain\fi}}%
+\ifx\ps@fancyplain\undefined% -do nothing outside fancyheadings
+ \ifx\fr@RIfM@cls\undefined\def\ps@french{}% -in standard LaTeX, but not
+ \else\def\ps@french{\global\topskip\normaltopskip}% -with AmS classes.
+ \fi% \fr@RIfM@cls\undefined%
+\else\@temp@% -to avoid pb in case \if@fancy... undefined
+\fi%
+\let\ps@frenchORI\ps@french% -Save final french page style def.
+\let\@sdORI\secdef% -will be used at each new sectioning.
+\def\nofrenchpagestyle{\let\secdef\@sdORI}% -................. \nofrenchpagestyle
+\def\frenchpagestyle{% -........................................ \frenchpagestyle
+ \def\secdef{\ifFLA\thispagestyle{french}\fi\@sdORI}% -.............. (\secdef)
+ }%
+\frenchpagestyle% -Now run the french page style if \frenchlayout.
+\ifx\aliaspagestyle\undefined% -Is memoir.cls loaded? no:
+\def\nobeginingfolio{\let\ps@french\ps@empty}% -................ \nobeginingfolio
+\else%
+\def\nobeginingfolio{\let\ps@french\ps@empty% -yes:
+ \aliaspagestyle{chapter}{empty}%
+ }%
+\fi%
+\def\beginingfolio{\let\ps@french\ps@frenchORI% -................. \beginingfolio
+ \frenchpagestyle}% -This is the default value.
+%#<
+\@ifundefined{nopagenumbers}{% -don't run everywhere............ (\nopagenumbers)
+ \def\nopagenumbers{\ifFLA\pagestyle{empty}%
+ \thispagestyle{empty}\fi}%
+ }{}%
+\def\ifFLA{\ErrFrench}%
+%
+ \newif\ifnonvoid% -still an outer def.
+\def\@desarm{% -the \noeveryparguillemets processing
+ \newbox\@FrBoxi\newbox\@FrBoxii\newbox\@FrBoxiii%
+ \newbox\@FrBoxiiii\newbox\@FrBoxvi\newbox\@FrBoxvii\newbox\@FrBoxQuotes%
+ \ifx\@FrDimenS\undefined\newdimen\@FrDimenS\fi%
+ \def\@setpartozero{\widowpenalty=\z@\clubpenalty=\z@%
+ \interlinepenalty=\z@\brokenpenalty=\z@\displaywidowpenalty=\z@}%
+ \def\nonvoidtrue{\let\ifnonvoid\iftrue}%
+ \def\nonvoidfalse{\let\ifnonvoid\iffalse}%
+ \def\@transfervbox##1##2{\nonvoidtrue%
+ \loop%
+ \setbox\@FrBoxi=\vbox{\unvbox##1\global\setbox\@FrBoxiii=\lastbox%
+ \unskip}%
+ \ifvoid\@FrBoxiii\nonvoidfalse\fi%
+ \ifnonvoid%
+ \setbox\@FrBoxii=\vbox{\unvbox##2\box\@FrBoxiii}%
+ \setbox##1=\box\@FrBoxi\setbox##2=\box\@FrBoxii%
+ \repeat}%
+ \def\@transferaddvbox##1##2{\nonvoidtrue%
+ \setbox\@FrBoxi=\vbox{\unvbox##1\global\setbox\@FrBoxiii=\lastbox%
+ \unskip}%
+ \setbox##2=\vbox{\box\@FrBoxiii}%
+ \setbox##1=\box\@FrBoxi%
+ \loop%
+ \setbox\@FrBoxi=\vbox{\unvbox##1\global\setbox\@FrBoxiii=\lastbox%
+ \unskip}%
+ \ifvoid\@FrBoxiii\nonvoidfalse\setbox##1=\box\@FrBoxi\fi%
+ \ifnonvoid%
+ \setbox\@FrBoxii=\vbox{\unvbox##2%
+ \hbox to \@FrDimen{\copy\@FrBoxQuotes\unhbox\@FrBoxiii}}%
+ \setbox##1=\box\@FrBoxi\setbox##2=\box\@FrBoxii%
+ \repeat}%
+ \def\@sendtopage##1{\nonvoidtrue%
+ \loop%
+ \setbox\@FrBoxi=\vbox{\unvbox##1\global\setbox\@FrBoxiii=\lastbox%
+ \unskip}%
+ \ifvoid\@FrBoxiii\nonvoidfalse\setbox##1=\box\@FrBoxi\fi%
+ \ifnonvoid%
+ \unhbox\@FrBoxiii\unskip\break%
+ \setbox##1=\box\@FrBoxi%
+ \repeat}%
+ \def\@stared{\egroup%
+ \@transfervbox\@FrBoxvi\@FrBoxvii%
+ \@transferaddvbox\@FrBoxvii\@FrBoxvi%
+ \setbox\@FrBoxvii=\vbox{\unvbox\@FrBoxvi%
+ \global\setbox\@FrBoxiiii=\lastbox\unskip}%
+ \@transfervbox\@FrBoxvii\@FrBoxvi%
+ \noindent \@sendtopage\@FrBoxvi%
+ \unhbox\@FrBoxiiii\unskip\unskip\unpenalty}%
+ \def\@fniv2{\egroup%
+ \@transfervbox\@FrBoxvi\@FrBoxvii%
+ \@transferaddvbox\@FrBoxvii\@FrBoxvi%
+ \setbox\@FrBoxvii=\vbox{\unvbox\@FrBoxvi%
+ \global\setbox\@FrBoxiiii=\lastbox\unskip}%
+ \@transfervbox\@FrBoxvii\@FrBoxvi%
+ \noindent \@sendtopage\@FrBoxvi%
+ \setbox\@FrBoxvii=\vbox\bgroup\@setpartozero%
+ \noindent \unhbox\@FrBoxiiii\unskip\unskip\unpenalty}%
+ \def\@qqguill{\relax}%
+ \def\@staring{\global\setbox\@FrBoxQuotes=\hbox to 0.81em{\@qqguill}\egroup%
+ \setbox\@FrBoxvi=\vbox{\unvbox\@FrBoxvii%
+ \global\setbox\@FrBoxiiii=\lastbox\unskip}%
+ \@transfervbox\@FrBoxvi\@FrBoxvii%
+ \noindent\@sendtopage\@FrBoxvii%
+ \setbox\@FrBoxvi=\vbox\bgroup\@setpartozero%
+ \hangindent=\wd\@FrBoxQuotes\hangafter=1%
+ \setbox\@FrBoxvii=\hbox{\unhcopy\@FrBoxiiii\unskip\unskip%
+ \unpenalty}%
+ \@FrDimenS=\@FrDimen \advance\@FrDimenS by -2em%
+ \ifvoid\@FrBoxiiii\indent\copy\@FrBoxQuotes%
+ \else%
+ \parindent=\z@%
+ \ifdim \wd\@FrBoxvii>\@FrDimenS \unhbox\@FrBoxvii\break%
+ \else \unhbox\@FrBoxvii%
+ \fi\fi}%
+ \def\@qquotes{\setbox\@FrBoxvii=\vbox\bgroup\@setpartozero}%
+}% -end \@desarm
+%#>
+\def\@EIM{\def\labelitemi{\@lti}\def\labelitemii{\@ltii}%
+ \def\labelitemiii{\@ltiii}\def\labelitemiv{\@ltiv}%
+ \let\@afterindentfalse\@aifORI\@afterindentfalse%
+ \parindent\@piORI}% -restore \parindent
+\let\@FL\relax% -\@FL is \relax with french light.
+%#<
+{\catcode`.=12\catcode`p=12\catcode`t=12\gdef\auTo@gf#1.#2pt{#1}}%
+\def\@FL{% -LETTRINES defs
+\def\automaticlettrine{%
+ \ifx\lettrinefontname\undefined% -..... \automaticlettrine
+ \def\@tempa####1 ####2\@@{% -extract font name
+ \def\lettrinefontname{####1}}%
+ \edef\@tempb{ }%
+ \expandafter\@tempa\fontname%
+ \expandafter\font\@tempb\@@\fi%
+ \let\sv@lf=\lettrinefont}%
+\def\noautomaticlettrine{%
+ \let\lettrinefontname=\undefined% -.\noautomaticlettrine
+ \let\lettrinefont=\sv@lf}% -reset font
+\ifx\lettrine\undefined% -............................................. \lettrine
+\def\lettrine{\par%
+ \let\@tempa\relax%
+ \def\@tempa{\def\@fbr{\fboxrule=\z@}%
+ \protect\@lettrineS%
+ }%
+ \@tempa}%
+\if@PMF\def\@Ettrine[##1]{##1}\let\@ettrine\relax\else%
+ \def\@ettrine##1##2\par{\bgroup\parskip=\z@% -NFSS requires a
+ {\ly\xdef\bef@ly{\the\font}}% -global def!
+ \let\newpage=\relax\let\clearpage=\relax%
+ \let\cleardoublepage=\relax%
+ \edef\bef@fnt{\the\font}%
+ \ifCG\def\bef@let{}%
+ \else\def\bef@let{\bef@fnt\def\ly{\bef@ly}%
+ \leftguillemets\space}%
+ \fi\@@ttrine{##1}{##2}\egroup}%
+ \def\@@ttrine##1##2{\ifFLA\def\@@ttrnxt{\@@@trine##1\@@{##2}}%
+ \else\def\@@ttrnxt{##1\space\ignorespaces##2}%
+ \fi% -fol.hbox to start a new par after 1 line lett.
+ \@@ttrnxt\unskip\par% -First \par is for lineno package.
+ \f@par% -The second \par ends the \lettrine.
+ \@nobreakfalse}% -Allow breaks after that paragraph.
+ \def\@@@trine##1##2\@@##3{\@fbr\TeXeverypar{}%
+%%% start of automatic font calculation (a piece of code coming from Ronan)
+ \ifx\lettrinefontname\undefined\let\auTo@lh\undefined%
+ \else\let\auTo@lh\lettrinehang%
+ \ifx\auTo@lh\undefined\def\auTo@lh{2}\fi%
+ \bgroup%
+ \ifx\@htfreq\undefined\newdimen\@htfreq\newdimen\@htfbase\fi%
+ \setbox0=\hbox{M}\@htfreq=\ht0%
+ \def\dimentocount####1{\expandafter\auTo@gf\the####1}%
+ \font\@fontreq=\lettrinefontname%
+ \setbox0=\hbox{\@fontreq ##1}\@htfbase=\ht0%
+ \advance\@htfreq by \auTo@lh\baselineskip%
+ \advance\@htfreq by \lineskip% -inapropriate increment
+ \advance\@htfreq by -\baselineskip%
+ \multiply\@htfreq by 100 % -To be more precise
+ \multiply\@htfbase by 100 %
+ \divide\@htfreq by \dimentocount\@htfbase% -\relax
+ \multiply\@htfreq by \@m%
+\global\font\lettrinefont=\lettrinefontname\space scaled \dimentocount\@htfreq%
+ \egroup%
+ \fi%
+%%% end of automatic font calculation
+ \setbox0\hbox{% -\fbox is eliminated for that measuring
+ {\shortstack{\bef@let{\lettrinefont##1}\relax%
+ \ifdim\fontdimen\@ne\font>\z@\/\space\fi}}}%
+ \@FrDimenH=\ht0\advance\@FrDimenH by\dp0%
+ \@FrDimenS=\@FrDimenH\advance\@FrDimenS by\fboxsep%
+ \ifdim\baselineskip\superieura0pt%
+ \divide\@FrDimenS by\baselineskip%
+ \fi\@FrCount=\@FrDimenS%
+ \@FrDimen=\baselineskip\multiply\@FrDimen by-\@FrCount%
+ \advance\@FrDimen by\@FrDimenH%
+ \ifdim\@FrDimen>0.025\baselineskip \advance\@FrCount by 1\fi%
+ \ifx\auTo@lh\undefined\else\@FrCount=\auTo@lh\fi%
+ \ifx\lettrinehang\undefined\else\@FrCount=\lettrinehang\fi%
+ \@FrDimenI=\wd0%
+ \ifdim\fboxrule=\z@\else\advance\@FrDimenI by2\fboxrule%
+ \advance\@FrDimenI by2\fboxsep\fi%
+ \@FrDimenS=\fontdimen2\font\advance\@FrDimenI by+3\@FrDimenS%
+ \ifdim\fboxrule=\z@\advance\@FrDimenI by-0.30\@FrDimenS\fi%
+ \advance\@FrCount by -1%
+ \@FrDimen=\@FrCount\baselineskip%
+ \advance\@FrCount by 1%
+ \ifdim\fboxrule=\z@\else\advance\@FrDimen by -\fboxrule\fi%
+ \@FrDimenH=-\dp0% -to get baseline alignement
+ \setbox0\hbox{\ifdim\fboxrule=\z@\kern-\fboxsep\fi%
+ \fbox{\shortstack{{%
+ \def\@LSG{\f@issue\@fw{-5- %
+%\@txt@msg{d\'efinition de lettrine incorrecte}%
+ }}%
+ \let\@RSG=\@LSG\bef@let%
+ \lettrinefont\raise-\@FrDimen\hbox{##1}\relax%
+ \ifdim\fontdimen\@ne\font>\z@\/\space\fi}}}}%
+ \box0\@FrDimen=\@FrDimenH%
+ \advance\@FrDimenH by-\@FrCount\baselineskip%
+ \advance\@FrDimenH by \lineskip% -inapropriate action
+ \ifdim\fboxrule=\z@\else\advance\@FrDimenH by -\fboxrule\fi%
+ \vspace*{\@FrDimenH}% -where to write the rest of the line
+ \hangindent=\@FrDimenI%
+\ifx\lettrinehang\undefined% -hangafter change then allowed
+ \ifdim\@FrDimen<-0.025\baselineskip% -if dp0 > 25/1000 then
+ \advance\@FrCount by\@ne% -add one more line hangafter
+ \divide\@FrDimen by-\baselineskip% -and may be it could
+ \advance\@FrCount by\@FrDimen% -extend past a line.
+ \fi%
+\fi%
+ \ifnum\@FrCount=1\f@issue\@fw{-6- %\@txt@msg{lettrine \`a revoir}%
+ }\fi%
+ \hangafter=-\@FrCount%
+ \noindent\kern-2.5\@FrDimenS%
+ \def\@temp@{##2}%
+ \ifx\empty\@temp@\f@issue\@fw{-7- %
+ %\@txt@msg{lettrine r\'eduite \`a 1 seule lettre}%
+ }%
+ \else{\scshape ##2}\fi\def\@temp@{##3}%
+ \ifx\@temp@\empty\else\space\ignorespaces##3\fi%
+ }% -@@@trine
+ \def\@Ettrine[##1 ##2 ##3]##4\par{\bgroup\parskip=0pt% -NFSS requires a
+ {\ly\xdef\bef@ly{\the\font}}% -global def!
+ \let\newpage=\relax%
+ \edef\bef@fnt{\the\font}\@gN%
+ \ifFLA\def\bef@let{\bef@fnt\def\ly{\bef@ly}##1\space}%
+ \else ##1\space\fi%
+ \@@ttrine{##2}{{\def\@aft@let{##3}\ifx\@aft@let\empty%
+ \else##3\space\fi%
+ \ignorespaces ##4}}\egroup}%
+\fi% -\if@PMF
+\def\flettrine{\par% -................................................ \flettrine
+ \let\@tempa\relax%
+ \def\@tempa{\def\@fbr{}\protect\@lettrineS}%
+ \@tempa}%
+\def\@lettrineS{\ifx\@FrDimenH\undefined%
+ \newdimen\@FrDimenH\newdimen\@FrDimenI\fi%
+ \ifx\@FrDimenS\undefined\newdimen\@FrDimenS\fi%
+ \@ifNextNB[{\@Ettrine}{\@ettrine}% -] emacs
+ }%
+\fi% -\lettrine undefined
+ }% -end of \@FL
+%%%%%%%%%%%%%%%%%
+%#>
+% ===============================
+% | Typography |
+% ===============================
+%
+% Let the possibility to turn all off
+\def\nonfrench{\ifFrench\@DFP% -....................... \begin & \end{nonfrench}
+ \def\@temp@{\@AFP}% -\@AFP only for non LaTeX users
+ \else\@NoFr\def\@temp@{\relax}\fi%
+ \def\endnonfrench{\@temp@\ignorespaces}%
+ \ignorespaces}%
+%
+% Original settings of \dospecials et \@sanitize saved at \begin{document}
+% include ! ? ; : < > ` ' ^ " in dospecials and sanitize:
+\def\@dospecialsfrench{\do\`\do'\@dsversa}% -..................\@dospecialsfrench
+\def\@dsversa{% -specials reduced for versatim envir..........\@dsversa
+\do\ \do\\\do\{\do\}\do\$\do\&\do\#\do\|\do\^^K\do\_\do\^^A\do\%\do\~% -$emacs
+ \do\!\do\?\do\;\do\:\do\<\do\>\do\^\do\"}%
+\def\@sanitizefrench{% -.........................................\@sanitizefrench
+% \@makeother\ \@makeother\\\@makeother\$\@makeother\&%$emacs
+% \@makeother\#\@makeother\|\@makeother\^^K\@makeother\_%
+% \@makeother\^^A\@makeother\%\@makeother\~%
+ \@saORI% -get original \@sanitize and add ours:
+ \@makeother\!\@makeother\?\@makeother\;\@makeother\:%
+ \@makeother\`\@makeother'\@makeother\<\@makeother\>%
+ \@makeother\^\@makeother\"}%
+%
+%\@ifNextNB X {YES} {NO} ... if next char is X then YES else NO ... \@ifNextNB
+\def\@ifNextNB#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet%
+ \@tempc\@Fifnch}%
+ \def\@Fifnch{\ifx \@tempc \@tempe\let\@tempd\@tempa% -Next char may be an
+ \else\let\@tempd\@tempb\fi\@tempd}% -active space.
+%\ifNextNBc X or Y {YES} {NO} ... ... \@ifNextNBc
+\def\@ifNextNBc#1#2#3#4{\let\@tempe=#1\let\@tempf=#2%
+ \def\@tempa{#3}\def\@tempb{#4}\futurelet%
+ \@tempc\@Fifnchc}%
+ \def\@Fifnchc{\ifx\@tempc\@tempf\@tempa\else\@Fifnch\fi}%
+%
+\def\@skiplastspace{\ifdim\lastskip>\z@\unskip\penalty\@M\fi}% -..\@skiplastspace
+%
+\let\ifFrench\iftrue% -temporary setting
+\def\@AFP{% -................................ \@AFP = Activate French Punctuation
+ \let\dospecials\@dospecialsfrench%
+ \let\@sanitize\@sanitizefrench%
+ \AFPdp\AFPinfsup}%
+\def\AFPdp{\ifFrench\catcode`\!=\active\catcode`\?=\active%
+ \catcode`\;=\active\catcode`\:=\active\fi}%
+\let\AFPinfsup\relax%
+%#<
+\def\AFPinfsup{\ifFrench\ifFG\catcode`\<=\active\catcode`\>=\active\fi\fi}%
+%#>
+\def\AFPq{\ifFrench\catcode`'=\active\catcode``=\active\fi}%
+\def\AFPdq{\catcode`"=\active}%
+%
+\def\@DFP{% -............................ \@DFP = Desactivate French Punctuation
+ \DFPq\DFPinfsup\ifLPA\else\DFPdp%
+ \let\dospecials\@dsORI%
+ \let\@sanitize\@saORI\fi}%
+\def\DFPq{\ifFrench\catcode``=12\catcode`'=12\fi}%
+\let\DFPinfsup\relax%
+%#<
+\def\DFPinfsup{\ifFrench\catcode`<=12\catcode`>=12\fi}%
+%#>
+\def\DFPdp{\ifFrench\catcode`;=12\catcode`:=12%
+ \catcode`!=12\catcode`?=12\fi}%
+\def\DFPdq{\catcode`"=12}%
+%#<
+% Typographic process of dots (default is: let dots macros as usual)
+%
+\let\@doORI\dots\let\@ldoORI\ldots%
+\def\TeXdots{\@noBDfr%
+ \ifFTY\let\dots\@doORI\let\ldots\@ldoORI\fi}% -.............\TeXdots
+\def\noTeXdots{\@noBDfr%
+ \ifFTY\def\dots{...}\def\ldots{...}\fi}% -............ \noTeXdots
+%
+% i dotless (for those who haven't a good text editor)
+%
+\let\@hatORI\^\let\@treORI\"%
+\def\idotless{\@noBDfr%
+ \ifFTY% -............................................... \idotless
+ \def\^##1{{\expandafter\@hatORI\ifx ##1i\i\else##1\fi}}%
+ \def\"##1{{\expandafter\@treORI\ifx ##1i\i\else##1\fi}}%
+ \fi}%
+\def\iwithdot{\@noBDfr%
+ \let\^\@hatORI\let\"\@treORI}% -.....(no MlTeX command). \iwithdot
+%#>
+% Typographic process of double punctuation:
+%
+\let\ifLPA\iffalse% -\ifLPA must be initiated.
+\let\ifFG\iffalse% -\ifFG must be initiated.
+\def\@tempa#1{\f@issue%
+ \@fw{-13- %\@txt@msg{le caract\`ere "#1" est d\'ej\`a actif}%
+ }[#1]%
+ \let\@tempb\next\let\@tempc\empty}% -warning message
+\let\@tempb\empty%
+\AFPdp% -activate first part
+\let\ifWTS\iffalse% -set wrong typed spaces to false
+\def\@WTS{\relax\ifmmode\else\ifhmode% -skip wrong typed space
+ \ifdim\lastskip>\z@\unskip\fi%
+ \fi\fi}%
+% Add a thin space before punctuation ; : and ! in place of a space
+\def\@tempc{%
+\def;{\ifFTY\protect\@PV%{}% -............................................... ";"
+ \else\ifWTS\@WTS\fi\string;\fi}%
+ }%
+\def\@tempd{\@tempa{\string;}}%
+\ifx;\undefined\def\@tempd{}\fi\@tempd\@tempc%
+\def\@PV{\relax\ifmmode\string;\else%
+ \ifhmode\ifUSP\unskip\space\fi%
+ \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi%
+ \fi\string;\fi}%
+\def\@tempc{%
+\def:{\ifFTY\protect\@DP%{}% -............................................... ":"
+ \else\ifWTS\@WTS\fi\string:\fi}%
+ }%
+\def\@tempd{\@tempa{\string:}}%
+\ifx:\undefined\def\@tempd{}\fi\@tempd\@tempc%
+\@ifundefined{@beginparpenalty}{\def\@beginparpenalty=#1{\penalty#1}}{}%
+\def\@DP{\relax\ifmmode\string:\else%
+ \ifhmode\ifUSP\unskip\space\fi%
+ \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi%
+ \fi%
+ \string:%
+ \@beginparpenalty=\@M\relax%
+ -Page break forbidden after ":"
+\fi}% % -but remains not perfect...
+% Stuff for \WindowsUnits
+\def\@wu#1{\@@wu#1,\void}%
+\def\@@wu#1,#2{\ifx#1\empty\else\@@@wu #1\fi%
+ \def\@tempa{\@@wu#2}%
+ \ifx#2\void\else\expandafter\@tempa\fi%
+ }%
+\def\@@@wu#1=#2{\expandafter\edef\csname #1\endcsname:{#2\string:}}%
+% \hhline modification should be removed if the version
+% [1997/11/24 v3.x beta] is generally in use (and distributed).
+\ifx\hhline\undefined\else\let\@hhlORI\hhline% -......................... \hhline
+ \def\hhline{\omit\ifFrench\let:\@cidp\fi%
+ \expandafter\@gobble\@hhlORI}%
+\fi%
+\def\@tempc{%
+\def!{\ifFTY\protect\@PE%{}% -............................................... "!"
+ \else\ifWTS\@WTS\fi\string!\fi}%
+ }%
+\def\@tempd{\@tempa{\string!}}%
+\ifx!\undefined\def\@tempd{}\fi\@tempd\@tempc%
+\def\@PE{\ifmmode\string!\else%
+ \ifhmode\ifUSP\unskip\space\fi%
+ \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi%
+ \fi%
+ \string!\fi}%
+\def\@tempc{%
+\def?{\ifFTY\protect\@PI%{}% -............................................... "?"
+ \else\ifWTS\@WTS\fi\string?\fi}%
+ }%
+\def\@tempd{\@tempa{\string?}}%
+\ifx?\undefined\def\@tempd{}\fi\@tempd\@tempc%
+\def\@PI{\relax\ifmmode\string?\else%
+ \ifhmode\ifUSP\unskip\space\fi%
+ \ifdim\lastskip>\z@\unskip\penalty\@M%
+ \hskip +0.09em plus 0.07667em% -max glue accepted
+ \fi%
+ \fi%
+ \string?\fi}%
+\ifx\@tempb\next\let\AFPdp\empty\f@issue%
+ \@fw{-13b- %
+ \@txt@msg{la double ponctuation est alors d\'esactiv\'ee}}\fi%
+\let\ifLPA\ErrFrench% -\ifLPA restored.
+\let\ifFG\ErrFrench% -\ifFG restored.
+\let\@aORI\@array% -........................................ \@array for \array
+\def\@array{}% -default noop, further defined.
+% 2e float placement correction
+\DFPdp\AFPdp% -normally a noop but in case of warning...
+\ifx\AFPdp\empty\else% -only for activated exclamation mark
+\def\@array{\let\noexpand\@tempa=\noexpand!%
+ \def\noexpand!{\noexpand\string\noexpand!}%
+ \edef\noexpand\@tempb{##1}% -asis substitution
+ \let\noexpand!=\noexpand\@tempa}%
+\fi%
+\catcode`<=13\catcode`>=13% -temporary activation
+\let\ifArG\iftrue% -by now assume guillemets are available in arrays.
+\edef\@array[#1]{\edef\noexpand\@tempb{#1}% -default substitution
+ \noexpand\ifArG\noexpand\else%
+ \noexpand\ifnum\catcode`\noexpand<=\active%
+ \noexpand\ifmmode\let\noexpand<\noexpand\inferieura%
+ \let\noexpand>\noexpand\superieura%
+ \noexpand\fi\noexpand\fi\@array%
+ \noexpand\fi%
+ \noexpand\@aORI[{\noexpand\@tempb}]}%
+\let\@eaORI\eqnarray% -.............................................. \eqnarray
+\def\eqnarray{\ifArG\else\ifnum\catcode`<=\active%
+ \let<\inferieura\let>\superieura%
+ \fi\fi\@eaORI}%
+\ifx\@@array\undefined\else% -When array package loaded we must ...... \@@array
+ \let\@@aORI\@@array% -protect it too
+\def\@@array{\ifArG\else\ifnum\catcode`<=\active%
+ \let<\inferieura\let>\superieura%
+ \fi\fi\@@aORI}% -as for eqnarray (and standard array).
+\fi%
+\catcode`<=12\catcode`>=12%
+\DFPdp% -desactivate first part
+\let\@CGroup\relax\let\@@FG\relax% -Should be relax for french light.
+\let\@LG\relax%
+%#<
+% Process of guillemets (typed << and >>)%.......................... Guillemets
+%
+% here is the oldest way to def. guillemets (still useful with plain}
+\def\@og{\leavevmode\ifdim\lastskip>\z@\unskip%
+ \penalty-9\hskip0.35em minus 0.35em\fi%
+ \raise0.27ex\hbox{$\scriptscriptstyle\ll$}\,\nobreak\ignorespaces}%
+\def\@cg{\@skiplastspace\nobreak\,\leavevmode\raise0.27ex%
+ \hbox{$\scriptscriptstyle\gg$}}%
+\let\ifFG\iftrue% -set the default
+\AFPinfsup% -activate for guillemets
+% special definition for \lettrine and \flettrine:
+\def\@gN{\def<##1{\ifx ##1<\leftguillemets\else\@LSG##1\fi}%
+ \def>##1{\ifx ##1>\rightguillemets\else\@RSG##1\fi}}%
+\let\@oldog\<\let\@oldcg\>% -let it run if previously defined
+\def\@ogx<{\ifFTY\@og\else\@DOG\fi}%
+\def\@cgx>{\ifFTY\@cg\else\@DFG\fi}%
+% Guillemets must not be typed \<< and \>>, the following is for compatibility
+%\def\<{\@ifNextNB<{\@ogx}{\@oldog}}%
+%\def\>{\@ifNextNB>{\@cgx}{\@oldcg}}%
+%
+%\def<{\ifnum\catcode`< =\active% look at \normalbrackets................. "<<
+% \expandafter\@genGL\else\@LSG\fi}% \EBCDICbrackets are different
+\def\@@LFG{\ifFTY\ifmmode\protect\@LSG\else%
+ \ifIEB\@SOC\else\@LSG\fi% -EBCDICbracket
+ \fi%
+ \else\@LSG\fi}%
+\global\let\ifCG\iftrue%
+\let\inside@an@expand\empty% -Stuff to expand in an usual \edef.
+\def\if@mid@expandable#1#2{\let\inside@an@expand\relax\relax%
+ \ifx\inside@an@expand\relax%
+ \let\inside@an@expand\empty%
+ \expandafter#2%
+ \else\expandafter#1%
+ \fi}%
+% A command to avoid wrong crash when expanding a macro which is not
+% fully expandable; usage: \edef\XX{\stop@mid@expandable}\XX
+\def\stop@mid@expandable{\if@mid@expandable{%
+ \errmessage{This macro is not expandable, please %
+ \string\protect \space it.}\stop}{}%
+ }%
+%%%\def\@LG{\relax\ifFTY\ifmmode\@DOG\else\@@@OG\fi\else\@DOG\fi}%
+\def\@LG{\relax\if@mid@expandable{\@@@LG}{\@@LG}}%
+\def\@@LG{\ifFTY\ifmmode\@DOG\else\@@@OG\fi\else\@DOG\fi}%
+\def\@@@LG{\relax\noexpand <<\relax}
+\def\@SifDOGon{\global\let\ifDOG\iftrue}% -set scnd level of guillemets flag
+\def\@SifDOGoff{\global\let\ifDOG\iffalse}\@SifDOGoff% -now set it off
+\def\@@@OG{\ifCG\ifFLA\ifEPG\else% -now be tolerant... in noeverypar
+ \hbadness=10000% -all this stuff is really dirty !
+ \ifhmode\newline\fi% -We force newline if any stuff already typeset.
+ \bgroup\def\par{}%
+ \@FrDimen=\textwidth% -line size on mono-column
+ \if@twocolumn\tolerance=5000\pretolerance=5000%
+ \advance\@FrDimen by -\columnsep%
+ \divide\@FrDimen by 2\fi% -for two-column
+ \@ifundefined{@inAlist}{}{% -revisite box size in a list environment
+ \advance\@FrDimen by -\leftmargin\advance\@FrDimen by -\rightmargin%
+ \advance\@FrDimen by -\listparindent\hsize=\@FrDimen}%
+ \@qquotes\fi\fi\fi%
+ \@oguills%
+ \ifFLA\ifEPG\bgroup\def\@currenvir{guillemets}% -simulate an environment
+ \let\@CGroup\egroup\fi\fi% -for error processing
+ \ifCG\ifFLA\ifEPG% -save the current \everypar and apply it first
+ \xdef\@epORI{{\the\TeXeverypar}}%
+ \TeXeverypar={\@epORI% -Original \everypar.
+ \ifEPGR\else% -If not allready done,
+ \@oguills% -insert guillemets and
+ \@ifundefined{@OuvOpen}{% -then according
+ \,% -kerning just after.
+ }{}%
+ \fi}%
+ \fi\fi%
+ \else\@SifDOGon\@AG% -ancient guillemets featuring
+ \ifFLA\ifEPG\else\def\@qqguill{\@oguills}\@staring\fi\fi\fi%
+%%% \protect\@CGfalse%
+ \global\let\ifCG\iffalse%
+ \ifUSP\kern+0.13em\penalty\@M\ignorespaces%
+ \else\kern-0.19em\relax\penalty\@M\fi}% -likely as \ignorespaces\fi
+\def\@AG{\ifAG\let\@LP\@RP\let\@gotl\@gotr%
+ \fi}% -Apply ancient guillemets if required
+\def\f@guillemets{<<}%
+\def\@oguills{%
+ \bgroup\@ifundefined{@OuvOpen}{\def\@OuvOpen{}% -avoid duplicate <<
+ \@ifundefined{ly}{\@og}%
+ {\leavevmode\ifECM\hbox{{\ifGIAF\else\@gfnt\fi%
+ \ifx\@gotl\undefined\char\rq\@LP%
+ \else\@gotl\fi\kern+0.20em}}%
+ \else\hbox{{\ly\@LP\kern-0.20em\@LP\kern+0.20em}}\fi%
+ \nobreak}}{}\egroup}%
+%\def>{\ifnum\catcode`> =\active% look at \normalbrackets................. ">>"
+% \expandafter\@genGR\else\@RSG\fi}% \EBCDICbrackets are different
+\def\@@RFG{\ifFTY\ifmmode\protect\@RSG\else%
+ \ifIEB\@SFC\else\@RSG\fi% -EBCDICbracket
+ \fi%
+ \else\@RSG\fi}%
+\def\@SifFTY{\let\ifFTY\iffalse}% -to turn of FTY temporary
+%%%\def\@RG{\relax\ifmmode\@SifFTY\fi\ifFTY\@@FG\else\@DFG\fi}%
+\def\@RG{\relax\if@mid@expandable{\@@@RG}{\@@RG}}%
+\def\@@RG{\ifmmode\@SifFTY\fi\ifFTY\@@FG\else\@DFG\fi}%
+\def\@@@RG{\relax\noexpand >>\relax}
+\def\endf@guillemets{>>}%
+\ifx\RIfM@\undefined\else% -For AmSTeX we force \nofrenchguillemets.
+ \edef\@emORI{\the\everymath\relax}% -Save original \everymath.
+ \edef\@edORI{\the\everydisplay\relax}% -Save original \everydisplay.
+ \f@issue\@fW{^^J -18- %
+ %\@txt@msg{\frenchname.sty force l'option }% New definition takes care
+ %\@txt@msg{\string\nofrenchguillemets\space en maths avec AmSLaTeX.}%
+ }% -that \nofrenchguillemets may
+ % be still undefined; expansion differed.
+ \everymath={\csname nofrenchguillemets\endcsname\@emORI}%
+ \everydisplay={\csname nofrenchguillemets\endcsname\@edORI}%
+\fi%
+\DFPinfsup% -desactivate for guillemets
+% The grammar environnement from syntax package...................... \grammar
+\ifx\grammar\undefined% -can't use French guillemets.
+ \else\let\@grORI\grammar\def\grammar{\nofrenchguillemets\@grORI}%
+\fi%
+
+\def\@@FG{\ifCG\f@issue%
+\@fw{-14- %\@txt@msg{fermeture de guillemets non ouverts}%
+ }\fi%
+ \ifUSP\unskip\kern+0.13em\else%
+ \ifdim\lastskip>\z@\unskip% -skip previous space
+ \penalty\@M% -don't break here
+ \space% -better than \kern
+ \penalty\@M%
+ \fi%
+ \kern-0.19em%
+ \fi%
+ \xdef\@tempd{\@currenvir}\def\@tempe{guillemets}%
+ \ifx\@tempd\@tempe%
+ \@CGroup\@fguills% -end group if any and put closing guillemets
+ \else\ifEPG%
+ \@fguills% -typeset but no real closing (see \@@@FG)
+ \def\@CGroup{\egroup\@gobble}% -warning until \endguillemets:
+ \ifFLA% -Message issued only when french layout is active.
+ \f@issue%
+ \@fw{-49- %\@txt@msg{fermeture pr\'ematur\'ee de guillemets}%
+ }%
+ \fi%
+ \else\@CGroup\@fguills%
+ \fi%
+ \fi%
+% \edef\@currenvir{\@tempd}% generates error instead of just a warning.
+ \ifDOG\ifFLA\ifEPG\else\@fniv2\fi\fi%
+ \@SifDOGoff\else\@@@FG\fi% -reset secnd and first level
+% following code would be fine but doesn't run:
+% \@ifNextNB\space{\penalty-\@highpenalty}{}% allow break if space after
+ }%
+\let\guillemets\@LG% -................................. \begin & \end guillemets
+\def\RG@{\ifFTY\ifCG% -could be still closed in a prev. envir
+ \else\@RG% -Assume first closing >> and print it
+ \fi%
+ \@CGroup\@@@FG\relax\fi}% -end second level >>
+\let\endguillemets\RG@%
+\def\@@@FG{\ifFLA\ifEPG\ifx\@epORI\undefined\else% -\everypar is restored
+ \expandafter\TeXeverypar=\@epORI\fi%
+ \xdef\@epORI{{}}% -any way \xdef can be cleared
+ \else\@staring\@stared\egroup\fi\fi%
+ \global\let\ifCG\iftrue\let\@CGroup\relax}%
+\def\@fguills{\@ifundefined{ly}{\@cg}% -ECM
+ {\nobreak\leavevmode\ifECM\hbox{{\ifGIAF\else\@gfnt\fi\kern+0.20em%
+ \ifx\@gotr\undefined\char\rq\@RP%
+ \else\@gotr\fi}}%
+ \else\hbox{{\ly\kern+0.20em\@RP\kern-0.20em\@RP}}\fi}%
+\ifGIAF\else\ifdim\fontdimen\@ne\font>\z@\/\fi\fi% -italic correction simulated
+ }%
+%#>
+\def\@normalrq{\relax\ifmmode^\prime\else\@frq\fi}%
+\def\@frq{{\catcode`'=12{\ifNEQ\ifECM\char\rq001%
+ \else\char\rq023\hbox{}\fi%
+ \else\string'\fi}}}%
+\AFPq% -activate quoting
+\def`{\protect\@PLQ}% -..................................................... "``"
+ \let\@PLQ@\lq%
+ \def\@PLQ{\ifmmode\string`\let\@PLQ@\relax%
+ \else\ifNED\let\@PLQ@\@PLQn\fi% -may start a par.
+ \ifhmode\let\@PLQ@\@PLQn\fi%
+ \fi\@PLQ@}%
+ \def\@PLQn{\@ifNextNB`{\protect\@OQ}%
+ {\ifNEQ\ifECM\char\rq000\hbox{}%
+ \else\char\rq022\hbox{}\fi%
+ \else\string`\fi}%
+ }%
+ \def\@OQ`{\ifNED\protect\@LG\else\string``\fi}%
+\def'{\protect\@PRQ}% -..................................................... "''"
+ \let\@PRQ@\rq% -set the default
+ \def\@PRQ{\ifmmode\let\@PRQ@\@SRQ@%
+ \else\ifhmode\let\@PRQ@\@PRQn\fi%
+ \fi\@PRQ@}%
+ \def\@@FGp'{\@@FG}%
+ \def\@PRQn{\let\@PRQ@\rq% -reset the default
+ \@ifNextNB'{\ifNED\let\@PRQn@\@@FGp%
+ \else\let\@PRQn@\relax\string'\fi\@PRQn@}%
+ {\protect\@normalrq}}%
+%
+% SUBOPTIONS definitions............................................ SUBOPTIONS
+\let\ifNED\iffalse% -False for french light.
+\let\ifNEQ\iffalse% -False for french light.
+%#<
+\def\noenglishdoublequotes{\@noBDfr%
+ \AFPq\let\ifNED\iftrue% -...... \noenglishdoublequotes
+ \ifFrench\let\@cilq='\fi}%
+\def\noenglishquote{\@noBDfr%
+ \AFPq\let\ifNEQ\iftrue% -................... \noenglishquote
+ \ifFrench\let\@cilq='\fi}%
+%#>
+\DFPq% -disactivate quoting
+\def\untypedspaces{\@noBDfr%
+ \let\ifUSP\iftrue}% -......................... \untypedspaces
+\def\typedspaces{\@noBDfr%
+ \let\ifUSP\iffalse}% -............................ \typedspaces
+\let\if@labelsinmargin\iffalse% -Should be false for french light.
+%#<
+\def\englishdoublequotes{\@noBDfr%
+ \let\ifNED\iffalse% -.............. \englishdoublequotes
+ \DFPq\ifFrench\let\@cilq='\fi}%
+\def\englishquote{\@noBDfr%
+ \let\ifNEQ\iffalse\DFPq% -...................... \englishquote
+ \ifFrench\let\@cilq='\fi}%
+\def\labelsinmargin{\@noBDfr%
+ \let\if@labelsinmargin\iftrue}% -............ \labelsinmargin
+\def\nolabelsinmargin{\@noBDfr%
+ \let\if@labelsinmargin\iffalse}% -........\nolabelsinmargin
+\def\letpunctuationactivefor{\@noBDfr%
+%........................ \letpunctuationactivefor
+ \global\let\ifLPA\iftrue%
+ \def\wrongtypedspaces{\@noBDfr%
+ \global\let\ifWTS\iftrue}% -.............\wrongtypedspaces
+ }%
+\def\wrongtypedspaces{\f@issue\@fw{-17- %
+%\@txt@msg{\string\wrongtypedspaces\space est }%
+%\@txt@msg{inop\'erant dans ce contexte}%
+ }}%
+\def\nowrongtypedspaces{\@noBDfr%
+ \global\let\ifWTS\iffalse% -......... \nowrongtypedspaces
+ \ifLPA\DFPdp% -don't change \dospecials and \@sanitize
+ \fi\global\let\ifLPA\iffalse}% -it might be dangerous
+% With \tabbingaccents you can't put a diacritic (` or ') on a blank space
+% but it's okay for all accentuated letters. Usefull in full 8bits with
+% ECM too! because 8bits chars are firstly converted to 7bits "a la TeX".
+\def\tabbingaccents{\@noBDfr%
+ \let\@ifTA\iffalse}% -...................... \tabbingaccents
+\def\notabbingaccents{\@noBDfr%
+ \let\@ifTA\iftrue}% -................... \notabbingaccents
+\AFPq%
+% tabbing environment is modified to be able to put diacritics
+\def\@temp@{%
+ \def\tabbing{\def\@tempa{\let`=\lq\let'=\@normalrq}% -............ \tabbing
+% \noenglishquote and \noenglishdoublequotes will do nothing in \tabbing
+ \ifNED\@tempa\fi\ifNEQ\@tempa\fi%
+ \def\@tempa{\let\@ifTA\iftrue}%
+ \ifFTY\else\expandafter\@tempa\fi%
+ \ifFTY\@ifTA\else%
+ \let\@trjORI\@tabrj\let\@tlabORI\@tablab%
+ \let\@ORIrj=\`\let\@ORIlab=\'%
+ \def\@@tabrj{\ifcat\@tempc\space\let\@tempa=\@trjORI%
+ \else\let\@tempa=\@ORIrj\fi\@tempa}%
+ \def\@@tablab{\ifcat\@tempc\space\let\@tempa=\@tlabORI%
+ \else\let\@tempa=\@ORIlab\fi\@tempa}%
+ \def\@tabrj{\futurelet\@tempc\@@tabrj}%
+ \def\@tablab{\futurelet\@tempc\@@tablab}%
+ \fi\fi\@tgORI}%
+ }%
+\ifx\tabbing\undefined%
+ \else\let\@tgORI\tabbing% -put diacritics \` & \'
+ \@temp@% -new def apply
+\fi%
+\DFPq%
+\AFPinfsup% -activate < and >
+\def\EBCDICbrackets{\@noBDfr%
+ \let\ifIEB\iftrue% -......................... \EBCDICbrackets
+ \ifFG%
+ \def<{\protect\@LFG}% -old code generate \ifnum incompatibilty
+ \def\@LFG{\@ifNextNB<{\protect\@OG}{\@@LFG}}%
+ \def\@OG<{\ifnum\catcode`< =\active\expandafter\@LG%
+ \else\@@LFG\@@LFG\fi}%
+ \def>{\protect\@RFG}%
+ \def\@RFG{\@ifNextNB>{\protect\@FG}{\@@RFG}}%
+ \def\@FG>{\ifnum\catcode`> =\active\expandafter\@RG%
+ \else\@@RFG\@@RFG\fi}%
+ \fi}%
+\long\def\@BracesOrNot[#1]{\ifmmode\@PreserveBraces[#1]%
+ \else\expandafter#1\fi}%
+\let\@fobeyspaces\empty%
+\long\def\@genG#1#2#3{\@fobeyspaces%
+ \ifx#2#3\expandafter\protect\csname @#1G\endcsname%
+ \else\csname @@#1FG\endcsname\expandafter\@BracesOrNot%
+ \expandafter[\expandafter{%
+ \expandafter#3\expandafter}\expandafter]%
+ \fi}%
+\edef\@genGL{\noexpand\@genG{L}\noexpand<}%
+\edef\@genGR{\noexpand\@genG{R}\noexpand>}%
+% Hacking for blank space after "<" or ">" doesn't run in any \ifdim x > y
+% like in \footnote, so the code is nullified until...
+%\def\@bobeyspaces{\obeyspaces%
+% \def\@fobeyspaces{\catcode`\ =10\let\@fobeyspaces\relax}}%
+\let\@bobeyspaces\empty
+\def\normalbrackets{\@noBDfr%
+ \let\ifIEB\iffalse% -........................ \normalbrackets
+ \ifFG%
+ \def<{\ifnum\catcode`< =\active\@bobeyspaces\expandafter\expandafter%
+ \expandafter\@genGL\ifmmode\relax\fi%
+ \else\@LSG\fi}%
+ \def>{\ifnum\catcode`> =\active\@bobeyspaces\expandafter\expandafter%
+ \expandafter\@genGR\ifmmode\relax\fi%
+ \else\@RSG\fi}%
+ \fi}%
+\DFPinfsup% -desactivate < and >
+%#>
+\let\ifFG\iffalse% -default further choice
+%#<
+\def\ancientguillemets{\@noBDfr%
+ \let\ifAG\iftrue}% -................... \ancientguillemets
+\def\todayguillemets{\@noBDfr%
+ \let\ifAG\iffalse}% -...................... \todayguillemets
+\def\guillemetsinarrays{\@noBDfr%
+ \let\ifArG\iftrue}% -................ \guillemetsinarrays
+\def\noguillemetsinarrays{\@noBDfr%
+ \let\ifArG\iffalse}% -........... \noguillemetsinarrays
+\def\guillemetsinallfonts{\@noBDfr%
+ \let\ifGIAF\iftrue}% -........... \guillemetsinallfonts
+\def\guillemetsinroman{\@noBDfr%
+ \let\ifGIAF\iffalse}% -................ \guillemetsinroman
+\def\overfullhboxmark{\@noBDfr%
+ \ifFLA\overfullrule=5pt\fi}% -.......... \overfullhboxmark
+\def\nooverfullhboxmark{\@noBDfr%
+ \ifFLA\overfullrule=0pt\fi}% -....... \nooverfullhboxmark
+%#>
+\let\ifFrench\iffalse% -reset original value
+%
+% For compatibility with MlTeX docs but unneeded in this style%...\fhyph \ehyph
+{\def\@genMLhyph{\@ifundefined{french}{}{\gdef\fhyph{\french}}%
+ \@ifundefined{english}{}{\gdef\ehyph{\english}}}%
+\@ifundefined{fhyph}{\@genMLhyph}{}%
+}%
+%
+\gdef\frenchTeXmods{% -............................................\frenchTeXmods
+ \global\let\ifFrench\iftrue%
+\ifCLA%
+ \ifCLAfrench%
+ \@AFP% -activate French punctuation
+ \frenchtypography\frenchtranslation\frenchlayout%
+ \fi%
+\else%
+ \@AFP% -activate French punctuation
+ \frenchtypography\frenchtranslation\frenchlayout%
+\fi%
+ \frenchmacros\frenchwarnings%
+ \let\@HifORI\@Hif\let\@HfiORI\@Hfi%
+ \frenchhyphenation%
+ \csname @xtrasfrench\endcsname% -from other packages
+% (TeX-XeT first direction of writing will be set by the first \everypar)
+ \ifx\GOfrench\undefined% -When document is really started,
+ \csname beginL\endcsname% -set TeX--XeT direction of writing.
+ \fi%
+ \def\languagename{french}% -set it for mlp.
+ \@ufo% -user options
+ \let\switchtolanguage\endfrench%
+ \ignorespaces%
+ }% -end \frenchTeXmods
+% Declare Options, extras and even more extras
+\ifx\undefined\babel@core@loaded%
+ \edef\extrasfrench{}\def\@xtrasfrench{\extrasfrench}% -for other packages.
+ \DeclareOption{french}{\def\beginlanguage{%
+ \ifx\babel@savevariable% -selectlanguage
+ \undefined\french%
+ \else\endenglish\selectlanguage{french}\fi}%
+ }%
+ \DeclareOption{english}{\def\beginlanguage{%
+ \ifx\babel@savevariable% -selectlanguage
+ \undefined\english%
+ \else\selectlanguage{english}\fi}%
+ }%
+\else\let\extrasfrench\frenchTeXmods%
+ \AtBeginDocument{% -With babel, at begin document we should
+ \def\@tempa{\protect\@LabeL}% -test if our label def had
+ \ifx\@tempa\label\else% -been changed by any package such as hyperref
+ \let\@lORI\label\let\label\@tempa\fi% -and then reset it.
+ \def\@tempa{\protect\atgH{r}}% -Same test and action
+ \ifx\@tempa\ref\else\@gG{r}{ref}{/}{1}\fi% -for \ref.
+ }%
+\fi%
+%
+\@ifundefined{switchtolanguage}{%
+ \def\switchtolanguage#1{#1}}{}% -.(style depending)........ \switchtolanguage
+\let\@stlORI\switchtolanguage
+\def\@DFPtestANDset{% -Test if French was activated,
+ \ifx\ifFrench\iffalse% -if not \ifLPA will make French to crash
+ \f@issue\@fw{-71- %
+%\@txt@msg{ATTENTION : }% with message -26*-; better is that message. %
+%\@txt@msg{si babel est utilis\'e, mettre \frenchname\space en option}%
+ }%
+ \fi%
+ \let\@DFPtestANDset\@DFP%
+ \@DFP}%
+\def\endfrench{% -............................................. \endfrench
+%%% This \endL should be omitted otherwise it will be an extra for eTeX.
+%%% \ifx\undefined\GOfrench% When french document really started,
+%%% \csname endL\endcsname% stop any TeX--XeT french direction of writing.
+%%% \fi%
+\ifCLAfrench\else%
+ \@DFPtestANDset%
+ \nofrenchtypography\nofrenchtranslation\nofrenchlayout%
+\fi%
+ \nofrenchmacros%
+ \nofrenchhyphenation%
+ \let\@Hif\@HifORI\let\@Hfi\@HfiORI%
+ \let\switchtolanguage\@stlORI%
+ \let\ifFrench\iffalse\@stlORI%
+ \ignorespaces}% -end of \endfrench
+\let\noextrasfrench\endfrench%
+%#<
+\def\frenchtest{\@finput{french.tst}}% -The Torture Test ........... \frenchtest
+\def\frenchdoc{\@finput{frdoc.tex}}% -The Documentation ............. \frenchdoc
+%#>
+%%%%%%%%%%%%%%%%%%
+% ===============================
+% | Language switch mechanism |
+% ===============================
+% based on language.dat file
+%
+\@ifundefined{englishTeXmods}{\gdef\englishTeXmods{}}{}% -....... \englishTeXmods
+%
+\global\let\@Hif\empty\global\let\@Hfi\empty% -dflt \if...\fi hyphenation switch
+\global\let\if@FE\iffalse% -don't reload hyphenation exception if not required.
+\newif\if@more\@moretrue%
+\def\@doFh{% -define processing for reading language.dat at \begin{document}
+\def\f@ERRdat{\f@issue%
+ \errmessage{-9- %\@txt@msg{Corrupted/absent language.dat file.}%
+ }\global\let\french\@@end%
+ }%
+ \bgroup% -there is a marmelade here for a temporary usage.
+ \let\ORIGfrench\french%
+ \newcount\@FrCount%
+\def\tl@ng##1{}% -no need at this time to test if \<language>TeXmods is defined
+\def\@rhef##1/##2 /{\def\@tempa{##2}% -reloading of hyphenation exceptions files
+ \def\@tempb{##1}% -language name
+ \def\@tempc{\ifx\space\@tempa\else%
+ \expandafter\gdef\csname ##1@hefn\endcsname{##2\relax}%
+ \if@FE\expandafter\@@input##2\relax\fi\fi}%
+ \ifx\undefined\@excn\@tempc%
+ \else\ifx\@tempb\@excn\@tempc\fi\fi}%
+\gdef\NouveauLangage[##1]##2{%....................... \NouveauLangage[##]{name}
+%-- check for an anormal change in language.dat:
+\expandafter\@ifundefined{l@##2}{}% do nothing, unused at initex
+{% First accept babel definitions (\chardef) of languages.
+\chardef\l@no##1\expandafter\if\csname l@##2\endcsname\l@no\else%
+\edef\l@no{##1}\expandafter%
+% Secondly accept our own defs.
+\ifx\csname l@##2\endcsname\l@no% OK
+\else\f@issue\typeout{^^J \frenchname.sty \string: -27- %
+%\@txt@msg{language \l@no\space (##2) was initially }%
+%\@txt@msg{(at initex) numbered \csname l@##2\endcsname\space(ERROR!)}%
+}[##2]\f@ERRdat%
+\fi\fi}%
+%--
+\expandafter\tl@ng\csname##2TeXmods\endcsname%
+\expandafter\gdef\csname##2 \endcsname% The protected language cs.
+{\expandafter\switchtolanguage\csname ##2TeXmods\endcsname%
+\@Hif\language=##1\@Hfi\relax}%
+\expandafter\gdef\csname##2\endcsname% The language cs.
+{\protect\csname##2 \endcsname}%
+}%\NouveauLangage
+\gdef\Nouveau@Langage[##1]##2{% -....................... \Nouveau@Langage[##]{name}
+%arabic as a language should not change the definition of \arabic V5,9995
+% the same is valid for future similar cases V5,9995
+ \expandafter\@ifundefined{##2}{\lang@defifalse}% V5,9995
+ {\lang@defitrue}% V5,9995
+%-- check for an anormal change in language.dat:
+ \expandafter\@ifundefined{l@##2}{}% -do nothing, unused at initex
+ {% -First accept babel definitions (\chardef) of languages.
+ \chardef\l@no##1\expandafter\if\csname l@##2\endcsname\l@no\else%
+ \edef\l@no{##1}\expandafter%
+% Secondly accept our own defs.
+ \ifx\csname l@##2\endcsname\l@no% -OK
+ \else\f@issue\typeout{^^J \frenchname.sty \string: -27- %
+%\@txt@msg{language \l@no\space (##2) was initially }%
+%\@txt@msg{(at initex) numbered \csname l@##2\endcsname\space(ERROR!)}%
+ }[##2]\f@ERRdat%
+ \fi\fi}%
+%--
+ \expandafter\tl@ng\csname##2TeXmods\endcsname%
+ \iflang@defi% V5,9995
+ \expandafter\gdef\csname##2Lang \endcsname% V5,9995
+ {\expandafter\switchtolanguage\csname ##2TeXmods\endcsname% V5,9995
+ \@Hif\language=##1\@Hfi\relax}% V5,9995
+ \expandafter\gdef\csname##2Lang\endcsname% V5,9995
+ {\protect\csname##2Lang \endcsname}% V5,9995
+ \typeout{eFrench Info : % V5,9995
+ <b.o.i>##2Lang commute sur langue ##2 = = = =}% V5,9995
+ \typeout{eFrench Info : % V5,9995
+ et <b.o.i>##2TeXmods pour ses extensions = = = =}% V5,9995
+ \else% V5,9995
+ \expandafter\gdef\csname##2Lang \endcsname%
+ {\expandafter\switchtolanguage\csname ##2TeXmods\endcsname%
+ \@Hif\language=##1\@Hfi\relax}%
+ \expandafter\gdef\csname##2\endcsname% -The language cs.
+ {\protect\csname##2 \endcsname}%
+ \fi% V5,9995
+ }% -\Nouveau@Langage
+% test if #1 equal ``='' that means same language hyphenation but a dialect.
+\edef\@temp@{=}%
+\def\@langue##1##2 ##3 ##4/##5{\def\@tempa{=}\def\@tempb{##1}%
+ \ifx\@tempa\@tempb%
+ \ifnum\@FrCount > 0 \advance\@FrCount by -1\fi%
+ \relax% -relax Max! Why is it absolutely needed?
+ \expandafter\Nouveau@Langage\expandafter[\the\@FrCount]{##2}%
+ \ifnum\@FrCount \@temp@ 0 \@FrCount= -1\fi%
+ \else\edef\@temp@{<}\@l@ngue##1##2 ##3 ##4/{##5}%
+ \fi}%
+\def\@l@ngue##1 ##2 ##3/##4{\Nouveau@Langage[##4]{##1}%
+%%%\typeout{La langue ##1 est utilis\'ee sous le num\'ero \the\@FrCount}
+%\expandafter\@@input##2\relax%% loading of patterns is done at initex
+%% % \if@FE
+ \@rhef##1/##3/% -Check if reload of exceptions file is needed.
+%%%\fi
+ }% -end of \Nouveau@Langage
+%
+\let\hyphenation\f@hyphenation% -use our new macro.
+\openin\@inputcheck = language.dat \def\@tempb{}%
+\ifeof\@inputcheck\@Ffnt{language.dat}%
+ \ifx\undefined\french % -language.dat is absent but \french might be def.
+ \else\xdef\@PrevF{\french}%
+ \gdef\french{\switchtolanguage\frenchTeXmods\@PrevF}%
+ {\@PrevF\f@issue\@fw{-15- %
+%\@txt@msg{le langage \frenchname\space porte le }%
+%\@txt@msg{num\'ero \the\language}%
+ }}%
+ \fi%
+ \ifx\undefined\l@english % -any default English language number?
+ \def\l@english{0}% -set it
+ \fi%
+ \ifx\undefined\english % -check English (fenglish.sty usally loaded)
+ \else\xdef\@PrevE{\language=\l@english}%
+ \gdef\english{\switchtolanguage\englishTeXmods\@PrevE}%
+ {\@PrevE\f@issue\@fw{-16 %
+ %\@txt@msg{the English language\space is numbered }%
+ %\@txt@msg{\the\language}%
+ }}%
+ \fi
+\else\@FrCount=-1%
+\newif\iflang@defi% V5,9995
+\let\englishORI\english% V5,9995
+\let\english\undefined% V5,9995
+\loop \endlinechar=-1 \read\@inputcheck to \@lineD \endlinechar`\^^M%
+ \ifx\@lineD\empty \else \advance\@FrCount by 1%
+ \edef\@lineD{\@lineD\space\space/{\the\@FrCount}}%
+ \expandafter\@langue\@lineD%
+ \fi%
+ \ifeof\@inputcheck \@morefalse \fi%
+ \if@more\repeat%
+\fi\closein\@inputcheck% < language.dat
+\ifx\undefined\english\let\english\englishORI\fi% V5,9995 !
+\let\hyphenation\@hyphenation% -reset original cs.
+%
+\def\@MLtst{\@ifundefined{fhyph}% -if French and \fhyph undef. (no language.dat)
+ {\if@PMF\gdef\french{\switchtolanguage\frenchTeXmods}%
+ \f@issue%
+ \@fw{-19- %
+%\@txt@msg{utilisation du langage interne num\'ero \the\language}%
+ }%
+ \else\f@issue%
+ \typeout{^^J \frenchname.sty: -20b-
+%\@txt@msg{the French language is undefined (ERROR!)}%
+ }\f@ERRdat\fi}%
+%if \fhyph defined as in MlTeX then :
+ {\gdef\french{\switchtolanguage\frenchTeXmods\fhyph}%
+ \gdef\english{\switchtolanguage\englishTeXmods\ehyph}%
+ }%
+ }% -@MLtst
+\@ifundefined{french}{\@MLtst}{}% -French might be still undefined!
+\@ifundefined{endenglish}{\global\let\endenglish\french}{}% -and \endenglish
+\gdef\tl@ng##1{\ifx ##1\relax\f@issue%
+\@fw{-21- %\@txt@msg{##1 n'est pas d\'efini}%
+ }[##1]\fi}%
+\ifx\ORIGfrench\french\f@ERRdat\fi%
+ \egroup% -this is the end of the marmelade
+ }% -end of \@doFh (\GOfrench part 2)
+%%%%%%%%%%%%%%%%%% Insure AmSTeX will not be loaded later.
+\ifx\vert\undefined\else\let\@bvORI\vert\fi% -Already done before macros.
+\def\@fwVIIIII{\f@issue%
+ \kbtypeout{^^J -73- %\@txt@msg{ERREUR avec AmSTeX : }%
+%\@txt@msg{\frenchname.sty a \'et\'e charg\'e trop t\^ot !}%
+ }\stop}%
+\ifx\RIfM@\undefined%
+\def\vert{\ifx\RIfM@\undefined\expandafter\@bvORI\else\expandafter%
+ \@fwVIIIII\fi}%
+\else%
+\def\vert{\@bvORI}%
+\fi%
+%%%%%%%%%%%%%%%%%%
+%#<
+% ===============================
+% | Macros for help |
+% ===============================
+%
+% Abbreviations
+\def\@abbf[#1]{\def\abbrevfilename{#1}}%
+\AFPdq% -Activate " char for the following coding
+\def\abbreviations{\if@PMF\else\AFPdq\fi% -...................... \abbreviations
+ \@abbdefs\let\@abbdefs\relax%
+ \@ifNextNB[% -] emacs
+ {\@abbf}{\@abbf[frabbrev.tex]}}%
+% The following lines are excluded from high speed \if...\fi scan
+\def\f@protect{\ifx\protect\@typeset@protect%
+ \else\f@x@protect\fi}%
+\def\f@x@protect\fi#1{\fi\protect"}%
+\def\@eatprotect#1\protect#2\@nil{#1}%
+\if@PMF\let\f@protect\undefined\let\f@x@protect\undefined%
+ \let\@eatprotect\undefined%
+\fi% -\if@PMF
+\def\@abbdefs{% -the needed defs for abbrevs
+ \def\ABBfound{\global\let\ifABBfound\iftrue}%
+ \let\ifABBfound\iffalse%
+ \def\@abbrev##1##2 ##3##4 ##5/{%
+ \let\ifFMA\iftrue% -allways true here
+ \edef\@tempa{##1##2}%
+ \ifx##3*\edef\@tempb{##4}\edef\@tempc{##4s}%
+ \else\edef\@tempb{##3##4}\edef\@tempc{}%
+ \fi%
+ \ifx\@tempa\@tempb##5\ABBfound%
+ \else\ifx\@tempc\empty%
+ \else\ifx\@tempa\@tempc##5\ABBfound\fi%
+ \fi%
+ \fi%
+ \ifABBfound%
+ \else\edef\@tempa{##2}\edef\@tempb{##4}%
+ \ifx\@tempa\@tempb##5\ABBfound%
+ \else\ifx\@tempc\empty%
+ \else\ifx\@tempa\@tempc##5\ABBfound\fi%
+ \fi%
+ \fi%
+ \fi}%
+ \def\@openabbrev##1{\openin\@inputcheck=##1 %
+ \ifeof\@inputcheck\@Ffnt{##1}\fi}%
+ \def"{\f@protect\AbbrevName}% -"......................................... "xx"
+ \def\AbbrevName##1"{\def\@tempa{##1}\ifx\@tempa\space``\space''%
+ \else\@@bbrev##1"\fi}%
+ \def\@@bbrev##1{\expandafter\@@@bbrev\@eatprotect##1\protect\@nil}%
+ \def\@@@bbrev##1"{\begingroup%
+ \def\ABBMfalse{\global\let\ifABBM\iffalse}%
+ \let\ifABBM\iftrue\global\let\ifABBfound\iffalse%
+ \@openabbrev{\abbrevfilename}%
+ \ifeof\@inputcheck\else%
+ \loop\endlinechar=-1\read\@inputcheck to \@lineD\endlinechar`\^^M%
+ \ifx\@lineD\empty%
+ \else\edef\@lineD{##1 \@lineD/}\expandafter\@abbrev\@lineD\fi%
+ \ifABBfound\ABBMfalse\fi%
+ \ifeof\@inputcheck \ABBMfalse\ifABBfound\else%
+ \f@issue%
+ \@fw{-22- %
+ %\@txt@msg{abr\'eviation de \string"##1\string" non trouv\'ee}%
+ }[##1]%
+ \fi\fi%
+ \ifABBM\repeat%
+ \fi\closein\@inputcheck%
+ \ifABBfound\else``##1''\fi\endgroup}%
+ }% -end of \@abbdefs
+\if@PMF\let\@abbdefs\relax\fi% -No need with PMF.
+\DFPdq% -Deactivate " char
+\def\noabbreviations{\if@PMF\else\DFPdq\fi}% -................. \noabbreviations
+% Save original macros if they exist before the French option loading
+ \let\@atORI\at%
+% \let\@bvORI\vert% Already done before macros.
+ \let\@bsORI\backslash%
+\catcode`\/=0{\catcode`/\=12%
+/gdef/@boiORI{{/protect/string\}}}% -}emacs+TeX
+/catcode`/\=0\catcode`\/=12%
+ \let\@boi\textbackslash% -Should be ok with hyperref
+ \let\@chapORI\chap%
+ \let\@tildeORI\tilde%
+ \let\@etcORI\etc%
+ \let\@numORI\numero%
+ \let\@numsORI\numeros%
+ \let\@NumORI\Numero%
+ \let\@NumsORI\Numeros%
+ \let\@degreORI\degre%
+ \let\@degresORI\degres%
+ \let\@iemeORI\ieme%
+ \let\@iemesORI\iemes%
+ \let\@ierORI\ier%
+ \let\@iersORI\iers%
+ \let\@iereORI\iere%
+ \let\@ieresORI\ieres%
+ \let\@fscORI\fsc%
+ \let\@lscORI\lsc%
+ \let\@ntsORI\!%
+ \let\@hntscORI\halfnegthinspace%
+\def\@ifm{%\noabbreviations% -this is the default
+% original commands would be better preceeded by \expandafter
+ \def\at{\ifFMA\string @\else\@atORI\fi}% -at char ............. \at
+\ifx\RIfM@\undefined%
+ \def\vert{\ifx\RIfM@\undefined%
+ \ifmmode\expandafter\@bvORI%
+ \else\ifFMA\string |\else\@bvORI\fi\fi%
+ \else\expandafter\@fwVIIIII%
+ \fi}%
+\else%
+ \def\vert{\ifmmode\expandafter\@bvORI% -| .............. \vert
+ \else\ifFMA\string |\else\@bvORI\fi\fi}%
+\fi%
+ \def\backslash{\ifmmode\@bsORI% -(barre oblique inversee) ........ \backslash
+ \else\ifFMA%
+ \protect\@boi%
+ \else\@bsORI%
+ \fi%
+ \fi}%
+ \def\chap{\ifFMA\string ^\else\@chapORI\fi}% -hat char ........... \chap
+ \def\tilde{\relax\ifFMA\ifmmode\expandafter% -tilde char.......... \tilde
+ \expandafter\expandafter\@tildeORI%
+ \else\string~\fi\else\expandafter\@tildeORI\fi}%
+ \def\@Fsp##1{\ifFMA\ifmmode^{\mathrm{##1}}%
+ \else$^{\mathrm{##1}}$\fi%
+ \else##1\fi}%
+ \def\@umer##1{\protect\@Fsp{##1}\kern.2em\ignorespaces}%
+ \long\def\etc{\def\@tempa{}% -etc. ................ \etc
+ \ifFMA%
+ \ifhmode\ifUSP\unskip\space\fi%
+ \ifdim\lastskip>\z@\unskip\penalty\@M~\fi%
+ \fi%
+ etc\def\@tempa{\@ifNextNB.{}{%
+ \@fw{-60- %
+%\@txt@msg{point manquant apr\`es \string\etc}%
+ }}}%
+ \else\@etcORI%
+ \fi\@tempa}%
+\let\nombre\undefined% -To avoid redefinition info message of LaTeX.
+\DeclareRobustCommand*{\nombre}% -..................................... \nombre
+ {\ifFMA\expandafter\@nombre% -This control command designed
+ \else\expandafter\@nomORI% -to typeset french numbers
+ \fi}% -with correct spacing like in 123 456,789 012.
+ \def\numero{\ifFMA n\@umer{o}\else\@numORI\fi}% -n^o ........... \numero
+ \def\Numero{\ifFMA N\@umer{o}\else\@NumORI\fi}% -N^o ........... \Numero
+ \def\numeros{\ifFMA n\@umer{os}\else\@numsORI\fi}% -n^os ........... \numeros
+ \def\Numeros{\ifFMA N\@umer{os}\else\@NumsORI\fi}% -N^os ........... \Numeros
+ \def\degre{\ifFMA\r{}\space% -degree char....... \degre
+ \else\expandafter\@degreORI\fi}%
+ \def\degres{\ifFMA\@Fsp{o}\else\@degresORI\fi}% -degrees sign..... \degres
+ \def\leftguillemets{\@noBDfr%
+ \ifFMA\@oguills% -<< char...\leftguillemets
+ \else<<\fi}%
+ \def\rightguillemets{\@noBDfr%
+ \ifFMA\@fguills% ->> char..\rightguillemets
+ \else>>\fi}%
+ \def\fup{\@noBDfr\ifFTY% -.............................................. \fup
+ \expandafter\@fup\fi}\MakeRobustCommand{fup}%
+ \def\@fup{\@ifstar{\csname\string\!\endcsname\@@fup}{\@@fup}}%
+ \def\@@fup##1{\def\@tempa{\leavevmode\raise+0.80ex%
+ \hbox{\protect\sm@llerthree%
+ \MakeLowercase{##1}}%
+ \@ifNextNB\bgroup{\@@@fup}{\kern+.17em}}%
+ \ifFMA\expandafter\@tempa\else##1\fi%
+ }%
+ \def\@@@fup##1{\ifx\empty##1\else\kern+.17em{##1}\fi}%
+% \def\ieme{\ifFMA\protect\fup{e}\else\@iemeORI\fi}%
+% \def\iemes{\ifFMA\protect\fup{es}\else\@iemesORI\fi}%
+ \def\@tgifFMA##1##2{\ifFMA\expandafter\protect\expandafter##1%
+ \else\expandafter\protect\expandafter##2\fi%
+ }%
+ \def\ieme{\@tgifFMA\@Ieme\@iemeORI}% -............... ieme sign..... \ieme
+ \def\@Ieme{\@ifstar{\@ieme}{\@@eme}}%
+ \def\@ieme{\fup*{e}}%
+ \def\@@eme{\fup{e}}\MakeRobustCommand{ieme}%
+ \def\iemes{\@tgifFMA\@Iemes\@iemesORI}% -............ iemes sign..... \iemes
+ \def\@Iemes{\@ifstar{\@iemes}{\@@emes}}%
+ \def\@iemes{\fup*{es}}\MakeRobustCommand{iemes}%
+ \def\@@emes{\fup{es}}%
+ \def\ier{\@tgifFMA\@ier\@ierORI}% -.................. ier sign..... \ier
+ \def\@ier{\fup*{er}}\MakeRobustCommand{ier}%
+ \def\iers{\@tgifFMA\@iers\@iersORI}% -............... iers sign..... \iers
+ \def\iers{\fup*{ers}}\MakeRobustCommand{iers}%
+ \def\iere{\@tgifFMA\@iere\@iereORI}% -............... iere sign..... \iere
+ \def\iere{\fup*{re}}\MakeRobustCommand{iere}%
+ \def\ieres{\@tgifFMA\@ieres\@ieresORI}% -............ ieres sign..... \ieres
+ \def\@ieres{\fup*{res}}\MakeRobustCommand{ieres}%
+ \def\fsc{\@noBDfr\Fsc@@}% -....................... small caps for names \fsc
+ \MakeRobustCommand{fsc}%
+ \def\Fsc@@{\@ifNextNB*{\let\Fsc@F\@sc@F\FSC@}{\let\Fsc@F\relax\FSC@*}}%
+ \def\@sc@F{\rmfamily\mdseries}% -The star option forces cmr and m font.
+ \def\FSC@*##1{\fsc@##1\@@}%
+% Still bugged bec \fsc{{{...}}} generates a wrong output
+ \def\fsc@##1##2\@@{\ifFMA\leavevmode{\ifECM\Fsc@F\else\@sc@F\fi%
+ \textsc{%
+ \@uchbox{\let\protect\@empty%
+ \let\@typeset@protect\@empty%
+ \let\@changed@x\@changed@x@mouth%
+ \if\relax\noexpand##1\fsc@@@##1##2\@@%
+ \else\edef\@tempa{##1}%
+ \expandafter\fsc@@\@tempa##2\@@%
+ \fi}}}%
+ \else\@fscORI##1\fi}%
+ \def\fsc@@##1##2\@@{\MakeUppercase{##1}\lsc@*{##2}}% -remove surrounding {}
+ \def\fsc@@@##1##2##3\@@{\MakeUppercase{##1{##2}}\lsc@*{##3}}%
+%
+ \def\lsc{\@noBDfr\Lsc@@}% -............... allways lower case small caps \lsc
+ \MakeRobustCommand{lsc}%
+ \def\Lsc@@{\@ifNextNB*{\let\Fsc@F\@sc@F\lsc@}{\let\Fsc@F\relax\lsc@*}}%
+ \def\lsc@*##1{\ifFMA\leavevmode{\ifECM\Fsc@F\else\@sc@F\fi%
+ \textsc{\@uchbox{\MakeLowercase{##1}}}}%
+ \else\@lscORI##1\fi}%
+%......................................... \primo \secundo \tertio \quarto%
+%((((..................................... \primo) \secundo) \tertio) \quarto)
+ \def\@FE{\@noBDfr% -( emacs
+ \@ifNextNB){\@@FPE}{\@@FE}}%
+ \def\@@FE{\the\@FrCount$^{\mathrm o}$\kern+.29em}%
+% \def%( emacs
+% \@@FPE){\the\@FrCount\kern-.25em\lower.2ex\hbox{\degre}%
+% \kern-.55em%(emacs
+% )\kern+.3em}%
+ \def% -( emacs
+ \@@FPE){\setbox0=\hbox{\degre}\@FrDimen=\wd0\multiply\@FrDimen by 10%
+ \divide\@FrDimen by 45\leavevmode%
+ \the\@FrCount\kern-\@FrDimen%
+ \setbox0=\hbox{\the\@FrCount}\@tempdima=\ht0%
+ \setbox0=\hbox{\degre}\@tempdimb=\ht0%
+ \advance\@tempdimb by -\@tempdima%
+ \lower\@tempdimb\hbox{\degre}%
+ \multiply\@FrDimen by 45%
+ \divide\@FrDimen by 20%
+ \kern-\@FrDimen% -(emacs
+ )\kern+.3em}%
+ \def\quando=##1{\@FrCount=##1\@FE}% -(emacs.......... \quando=n or \quando=n)
+ \MakeRobustCommand{quando}%
+ \def\primo{\@FrCount=1\@FE}%
+ \def\secundo{\@FrCount=2\@FE}%
+ \def\tertio{\@FrCount=3\@FE}%
+ \def\quarto{\@FrCount=4\@FE}%
+\def\frenchalias##1##2{% -.......................................... \frenchalias
+ \ifx##1\undefined\let##1 ##2\relax%
+ \else\f@issue%
+ \@fw{-1- %\@txt@msg{la macro \string##1 existe d\'ej\`a}%
+ }[\string##1]%
+ \expandafter\stop%
+ \fi}%
+%
+% (Leslie says: "... counters are referencable, footnote counters are not.")
+% Now we do. A facility to be added in future LaTeX releases I hope.
+\@ifundefined{refmark}% -stands for \footnotemark[\ref{...}] .......... \refmark
+ {\def\refmark##1{\@noBDfr%
+ \ifFTY\ifhmode% -unskip last space
+ \ifdim\lastskip>\z@\unskip\fi\fi\fi%
+ \hbox{% -following patch due to NFSS2:
+%%%\ifx\DeclareFontShape\undefined\else\let\bf\mathbf\fi%\bf is used in \ref!
+ $^{\,% -\ref may force \itshape
+ \let\itshape\relax% -which don't run in math.
+\textrm{\scriptsize% -\textrm introduced to avoid \pdfannotlink (13d) to crash.
+ \ref{##1}%
+ }% -(Bypass to be removed when version 14 widely installed).
+ }$}}}{}%....}%
+\def\!{\relax\ifFMA\ifmmode%
+ \mskip-\thinmuskip\else\negthinspace\fi% -......... \!
+ \else\@ntsORI\fi}%
+\expandafter\def\csname\string\!\endcsname{\kern-.083335em}%
+\def\halfnegthinspace{\ifFMA\expandafter% -Not documented macro:
+ \csname\string\!\endcsname% -..... \halfnegthinspace
+ \else\expandafter\@hntsORI\fi}%
+\@ifundefined{moretolerance}{\def\moretolerance{% -.............. \moretolerance
+ \@noBDfr%
+ \advance\tolerance by \the\tolerance% -double each tolerance
+ \advance\pretolerance by \the\pretolerance}}{}%
+\@ifundefined{I}{\def\I{I}}{}% -to uppercase \i ........................... \I
+ \def\Sauter##1Lignes{\@noBDfr%
+ \vspace*{##1\baselineskip}}% -............ \Sauter#Lignes
+ }% -end of \@ifm
+%%%%% Logo symbolisant TeX, LaTeX et les autres
+\@ifundefined{AllTeX}{% -............................................... \AllTeX
+\def\AllTeX{(\kern-.075em L\kern-.36em{\sbox\z@ T\vbox to\ht\z@{\hbox{%
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse%
+ \selectfont A}\vss}}\kern-.15em)\kern-.075em\TeX}%
+\MakeRobustCommand{AllTeX}%
+ }{}%
+%#>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\let\@currname\@currnameORI% -reset current package name
+\def\languagename{english}% -Let's go in english until \begin{document}
+\def\beginlanguage{% -.......\beginlanguage might be used after \begin{document}
+ \ifx\babel@savevariable% -selectlanguage
+ \undefined\french%
+ \else\endenglish\selectlanguage{french}\fi%
+ }%
+\let\@bglngpk\babel@savevariable% -Set it for further integrity tests.
+\ifx\pg@add@to\undefined\else% -polyglot is running
+\def\pg@begin{\begingroup}% -Javier Bezos <jbezos@mx3.redestb.es>
+\def\pg@end{\endgroup}% -as of 98/05/15
+\fi%
+%
+\edef\beginFWdirection{L}% -write Left to right
+\ifx\undefined\babel@core@loaded\ProcessOptions*% -Activate options
+ \else% -special case Babel
+ \PackageInfo{\frenchname}%
+ {Initialisation de l'option \frenchname\space pour Babel}%
+ \GOfrench\let\GOfrench\relax%
+\fi%
+\let\@FW\undefined% -No more used macro.
+% REMember that \french is equal to \frenchTeXmods PLUS hyphen. stuff.
+\resetat% -........................................................ reset @ char
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Let few other packages know that french is loaded.
+%
+\PassOptionsToPackage{french}{varioref}%
+\PassOptionsToPackage{french}{pdfscreen}%
+%
+\endinput%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%