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