% This is french_doc.pdf (informations en francais dans 
% efrench.pdf et faq.pdf)
% 
% As e-French since 2010 under LPPL Copyright.
%....................................................................
% Copyright GUTenberg-Gaulle 1992-1998, Bernard Gaulle 1999-2007:
% ==============================================================
%
% En tant qu'e-French sous Copypright LPPL depuis 2010.
%....................................................................
% Copyright Gaulle-GUTenberg 1992-1998, B. Gaulle 1999-2007.
% =========================================================
%.........................................................................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 efrench.pdf
%\expandafter\ifx\csname frenchTeXmods\endcsname\relax%
%\else \endinput \fi%
\def\frenchname{french}%
\def\frenchpack{e-french}%          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{6 septembre 2019}%          eFrench
                           \xdef\FSfv{V6,11}% 
                           \xdef\frenchstyleid{\FSfv\space-- \FSfd\space --}%
}}%
                           \edef\FSfd{2019/09/06}%
%
% 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
% > utf8 specialities
% These specifications are here to facilitate the use of 
% french guillemets with a XeLaTex motor under utf8
\newif\ifeF@NoEnc    %No encoding (XeTex, LuaLaTex)
\expandafter\expandafter
\expandafter\ifx\csname XeTeXrevision\endcsname\relax
\else
  \eF@NoEnctrue
\fi
%
\newif\ifeF@LuaTeX
\expandafter\ifx\csname lualatexversion\endcsname\relax
\else
  \eF@LuaTeXtrue \eF@NoEnctrue
\fi
% this is in order having some accomodations with \XeTeXinterchartokenstate
\newif\ifeFr@Typo\eFr@Typotrue
% In order having no encoding by messages declare this :
  \let\kbencoding\@gobble
% < utf8 specialities
\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
%
% V6,0 The reading of *languages.dat* has been reduced to french and 
% english suppressing the problem with \arabic. This reduction is 
% possible because eFrench is not compatible with babel but needs the
% hyphenations rules for french and english. For german or ngerman,
% the mlp module is responsible for finding the hyphenation.
% This is possible because german or ngerman and french are the only 
% language style running without babel.
%  For babel there are other versions of these language packages. 
% Changes made by Raymond Juillerat 2015/10/30
% V6,01   
% Correction of \originaloutput
% Changes made by Raymond Juillerat 2017/02/24
% \newcount, \newdimen, \newbox only not redefind if from eTeX
% Changes made by Raymond Juillerat 2017/08/10
% V6,02
% some preparations for XeLaTeX and LuaLaTeX
% New file efrenchu.tex in order having utf8 french guillemets
% active.
% This file corrects also the hyphenation problem with apostroph
% Problems with LuaLaTex remain but by using msg.sty!
% Changes made by Raymond Juillerat 2019/01/07
% V6,1
% Changes made necessary because of BibLaTeX and Interchartoks
% Changes made by Raymond Juillerat 2019/03/08
% V6,101
% Two minor corrections by interchartoks
% Changes made by Raymond Juillerat 2019/05/30
% V6,11
% Possibility of choice for non-breakable spaces: 
% - as made by Bernard Gaulle (fine spaces except for guillemets)
% - as required by the Imprimerie Nationale de France
%       (fine spaces only for ; ! ? full for : << and >>)
% - only fine spaces like in Guide du Typographe
% and choice of the fine space defined by the user
% Changes made by Raymond Juillerat 2019/09/06
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 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.
%
% 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  languages, as it is normally the case. 
% \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.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\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.
% -now we force French for the msg package.
       \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%
%
\ifeF@LuaTeX\relax\else
\ifx\l@french\undefined\f@issue\typeout{^^J -20- 
             %\@txt@msg{WARNING:}%
             %\@txt@msg{the French language is undefined in your format.}%
                               }%
   \fi%
\fi%
%
% more posibilities by high-punctuation and guillemets
% three commands for the user
% - with \NobrkSpacesINFr punctuation as asked by the Imprimerie Nationnale
% - with \NobrkSpacesFine only fine spaces as in theGuide du Typographe
% - with \NobrkSpacesFpro punctuation as it was till version 6.101
%
%\newif\ifeFrfisp@v@ria
\newif\ifeFr@DPtfine% semicolon fine or not
\newif\ifeFr@Guifine% guillemets fine or not
\newif\ifUSP@GuiFinSpa % for OG space made unbreakable or unused
\newif\ifPonctu@ctived % no more changes in definitions after having used
                       % some non-breaking spaces  
\def\nbsp@ce{\penalty\@M\space}
\def\fispce@rigide{\,}%
\def\eFrFinSp@ce{\penalty\@M%
                     \hskip 0.5\fontdimen2\font}%
% a possibility for the user to define an own fine non breakable space
\def\MonEspaceFine#1#2#3{\def\eFrFinSp@ce{\penalty\@M%
       \hskip #1\fontdimen2\font%
        plus #2\fontdimen3\font%
        minus #3\fontdimen4\font}
}%
% by guillemets, if fine space, it is always present
\def\eFr@OGsp@cSpl{\ifeFr@Guifine\eFrFinSp@ce
                   \else\nbsp@ce\fi\ignorespaces}
% for the user: fine, Imprimerie Nationale-France or Frenchpro
\def\NobrkSpacesFine{\ifPonctu@ctived
% don't redefine punctuation behavior
       \f@issue\@fw{-94-}[NobrkSpacesFine]
    \else\eFr@DPtfinetrue\eFr@Guifinetrue % espaces fines
	\fi}
\def\NobrkSpacesFpro{\ifPonctu@ctived
% don't redefine punctuation behavior
       \f@issue\@fw{-94-}[NobrkSpacesFpro]
    \else\eFr@DPtfinetrue\eFr@Guifinefalse% comme Frenchpro
	\fi}
\def\NobrkSpacesINFr{\ifPonctu@ctived
% don't redefine punctuation behavior
       \f@issue\@fw{-94-}[NobrkSpacesINFr]
    \else\eFr@DPtfinefalse\eFr@Guifinefalse %
%       			           [Imprimerie Nationale de France
     \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
     \ifFrench\english\fi%
     \def\@riginalout##1##2{\immediate\write##1{##2}}%
     \@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)}}}
\ifeF@NoEnc\else
   \IfFileExists{t1lmr.fd}{\PolishGuillemets}{\LasyGuillemets}
\fi
   \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%
% necessary to commute in case of \XeTeXinterchartokenstate
						\eFr@Typofalse
                       }%
\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
% necessary to commute in case of \XeTeXinterchartokenstate
					  \eFr@Typotrue
                     }%
\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.
% but with eTeX these definitions are ok (rj, v 6,01)
\ifx\eTeXversion\undefined%              (rj)   
\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
\fi%                                     (rj)
%
%........................................ 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 package}\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%
% for french guillemets with a XeLaTex motor under utf8
% 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
% by default, the nobreak punctuation set like by Bernard Gaulle
               \NobrkSpacesFpro%
               \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}%
% this part is necessary because some modules like biblatex ares conceived to
% run only with babel or polyglossia and some definitions are necessary
% because of \XeTeXinterchartokenstate
% Necessary :
% Add a thin space before punctuation ; : and ! in place of a space
\def\intercharpunct{%
%    \lccode\lccode8217=8217
      \XeTeXinterchartokenstate=1
      \XeTeXcharclass `\! \french@punctthin
      \XeTeXcharclass `\? \french@punctthin
      \XeTeXcharclass `\; \french@punctthin
      \XeTeXcharclass `\: \french@semicolon  
      \XeTeXinterchartoks \z@ \french@punctthin = {\ifUSP\nobreak\thinspace\fi}%
      \XeTeXinterchartoks \z@ \french@semicolon = {\ifUSP\ifeFr@DPtfine\nobreak\thinspace\else\nobreakspace\fi\fi}%
      \XeTeXinterchartoks 4095 \french@punctthin = {\efr@unskip\nobreak\thinspace}%
      \XeTeXinterchartoks 4095 \french@semicolon = {\efr@unskip\ifeFr@DPtfine\nobreak\thinspace\else\nobreakspace\fi}%
    }
\def\nointercharpunct{%
%    \lccode8217=\z@
    \XeTeXcharclass `\! \z@
    \XeTeXcharclass `\? \z@
    \XeTeXcharclass `\; \z@
    \XeTeXcharclass `\: \z@
    \XeTeXinterchartokenstate=0
    }
\newcount\eF@nonchar
\newif\ifeF@active@punct     % est pour la ponctuation 
\newif\ifeF@xetex@punct
\ifdefined\XeTeXinterchartokenstate
  \eF@xetex@puncttrue\eF@active@punctfalse
  \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
    \eF@nonchar=255 \relax
  \else
    \eF@nonchar=4095 \relax
  \fi
\fi
% ceci ou largeur fixe ? % insecable : space : \char160 fine : \char8239
\ifeF@xetex@punct
  \newXeTeXintercharclass\french@punctthin % ! ? ; et autres
  \newXeTeXintercharclass\french@semicolon % : deux points - Dpt
%
  \def\efr@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi}
%  \def\eFresp@dpt{\ifeFr@DPtfine\nobreak\thinspace\else\nobreakspace\fi}
  \def\xpg@nospace#1{#1}
%
   \ifeFr@Typo\protect\intercharpunct\else\nointercharpunct\fi 
\fi%
% < for XeLaTex 						******

\ifeF@NoEnc
  \@finput{efrenchu.tex}
% and at begin should not use interchartoks
  \AtBeginDocument{\nointercharpunct} 
\fi
% now we come to the treatement of punctuation without \XeTeXinterchartokenstate
% \XeTeXinterchartokenstate make inactive the following treatments 
\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%
% don't redefine punctuation behavior
			\Ponctu@ctivedtrue
                              \ifhmode\ifUSP\unskip\space\fi%
             \ifdim\lastskip>\z@\unskip\eFrFinSp@ce\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%
% don't redefine punctuation behavior
\Ponctu@ctivedtrue
\ifeFr@DPtfine\let\eFresp@dpt=\eFrFinSp@ce
  \else\let\eFresp@dpt=\nbsp@ce\fi
                              \ifhmode\ifUSP\unskip\space\fi%
                                \ifdim\lastskip>\z@\unskip\eFresp@dpt\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%
% don't redefine punctuation behavior
		\Ponctu@ctivedtrue
                              \ifhmode\ifUSP\unskip\space\fi%
			\ifdim\lastskip>\z@\unskip\eFrFinSp@ce\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%
% don't redefine punctuation behavior
		\Ponctu@ctivedtrue
                            \ifhmode\ifUSP\unskip\space\fi%
		\ifdim\lastskip>\z@\unskip\eFrFinSp@ce%
                               \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%
	 \sp@inogfalse%
     \@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\@AG%  -guide du typographe
							\sp@inogtrue%
                            \@oguills% -insert guillemets and
                            \@ifundefined{@OuvOpen}{% -then according
                                                   }{}%
                            \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%
	   \ifeFr@Guifine\USP@GuiFinSpatrue%  OG full space not used
		  \let\eFresp@gui=\eFrFinSp@ce%  OG fine unbreakable space
	   \else\USP@GuiFinSpafalse%           OG full space possible 
	      \let\eFresp@gui=\nbsp@ce%     OG full unbreakable space
	   \fi%
%% don't redefine punctuation behavior
	   \Ponctu@ctivedtrue
	   \ifUSP\USP@GuiFinSpatrue\fi%            OG full space not used
	   \ifUSP@GuiFinSpa\eFr@OGsp@cSpl%
       \else\relax\penalty\@M\fi}%  
%       \ifUSP\kern+0.13em\penalty\@M\ignorespaces%   - >> V6,1 BG
\def\@AG{\ifAG\let\@LP\@RP\let\@gotl\@gotr%
         \fi}% -Apply ancient guillemets if required
\def\f@guillemets{<<}%
% do not repeat the non breakable space
\newif\ifsp@inog
\def\@oguills{%
	\ifeFr@Guifine%
		\let\eFresp@gui=\eFrFinSp@ce%
	\else\let\eFresp@gui=\nbsp@ce%     no space to be made unbreakable
	\fi%
% don't redefine punctuation behavior
	\Ponctu@ctivedtrue
     \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}}%   - >> V6,1 BG
                        \else\@gotl\fi%
					\ifeFr@Guifine%
					\let\eFresp@gui=\eFrFinSp@ce%
					\else\let\eFresp@gui=\nbsp@ce\fi% 
						\ifsp@inog\eFresp@gui\fi}}%    V6,11    RJ
                      \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%

\newif\ifsp@infg
\def\@@FG{\ifCG\f@issue%
               \@fw{-14- %\@txt@msg{fermeture de guillemets non ouverts}%
                   }\fi%
% don't redefine punctuation behavior
			\Ponctu@ctivedtrue		
			\ifeFr@Guifine%
            \USP@GuiFinSpatrue%
                 \fi%
	   \ifUSP\USP@GuiFinSpatrue\fi%            FG full space not used
	   \ifUSP@GuiFinSpa\unskip\eFrFinSp@ce%
       \else
         \ifdim\lastskip>\z@\unskip\nbsp@ce\fi%
          \fi%
	  \sp@infgfalse
      \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% bg
% don't redefine punctuation behavior
        \Ponctu@ctivedtrue
		\ifsp@infg
			\ifeFr@Guifine\let\eFresp@gui=\eFrFinSp@ce%
			\else\let\eFresp@gui=\nbsp@ce\fi%
			\ifUSP\unskip\space\fi
			\ifdim\lastskip>\z@\unskip\eFresp@gui\fi
		\fi	
                                        \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
% ============================================
% begin definition of Nouveau@Langage
\def\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{mlp##2}{\langmlp@defifalse}% 
                {\langmlp@defitrue}%                           
    \def\l@n@test{##2}
% here only the choises french or english, excluding arabic as language V6,0
   \ifx \l@n@fre\l@n@test\langok@defitrue\fi % french is accepted:\def\l@n@fre{french}%
   \ifx \l@n@eng\l@n@test\langok@defitrue\fi % english accepted:  \def\l@n@eng{english}%
%    \iflangok@defi \typeout{ ##1 : ##2}\fi% 
%                                                    < -- arabic prepare
    \expandafter\@ifundefined{l@##2}{}%
         \iflangok@defi 
         {%            
          \expandafter\tl@ng\csname##2TeXmods\endcsname%
        \iflang@defi%               ++ test same name existing?
          \expandafter\gdef\csname##2Lang \endcsname%
          {\expandafter\switchtolanguage\csname ##2TeXmods\endcsname%
           \@Hif\language=##1\@Hfi\relax}%
          \expandafter\gdef\csname##2Lang\endcsname% 
                           {\protect\csname##2Lang \endcsname}% 
            \typeout{eFrench Info : % 
               \\##2Lang commute sur langue ##2 }% 
            \typeout{eFrench Info : % 
                et \\##2TeXmods pour ses extensions }%
            \typeout{eFrench Info : % 
                avec \\ = une seule barre oblique inverse ===}%
           \else%                   ** name not yet existing
          \expandafter\gdef\csname##2 \endcsname%
          {\expandafter\switchtolanguage\csname ##2TeXmods\endcsname%
           \@Hif\language=##1\@Hfi\relax}%
          \expandafter\gdef\csname##2\endcsname%
                           {\protect\csname##2 \endcsname}%
        \fi%                      same name already existing ?                         
           }%
        \fi%                            -- french or english accepted 
                            }% -\Nouveau@Langage
% end definition of Nouveau@Langage
% ============================================
%  using Nouveau@Langage also for dialects:
% 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\langok@defifalse\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.
%
% Nouveau@Langage (as @l@ngue will be use to read language.dat : 
%
\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%
% ===============================
% begin some indicators for language testing
\newif\iflang@defi% V5,9995 RJ
\newif\iflangmlp@defi% V5,9995 RJ 
\newif\iflangok@defi% V6,0 RJ
\def\l@n@fre{french}% V6,0 RJ
\def\l@n@eng{english}% V6,0 RJ
\let\englishORI\english% V5,9995 RJ 
\let\english\undefined% V5,9995 RJ 
% end some indicators
% ===============================
\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\sp@infgtrue\@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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
