diff options
author | Karl Berry <karl@freefriends.org> | 2011-12-05 00:15:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-12-05 00:15:08 +0000 |
commit | f154f5571f07ba54f345aaaeedf3a77130c0fd46 (patch) | |
tree | c14becce78080d0e5a153c0759911805dee168df /Master | |
parent | 4944be8775dae899f24e60c514ab9da59cab1d1c (diff) |
babel (3nov11/13nov11)
git-svn-id: svn://tug.org/texlive/trunk@24756 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
24 files changed, 1310 insertions, 575 deletions
diff --git a/Master/texmf-dist/doc/generic/babel/athnum.pdf b/Master/texmf-dist/doc/generic/babel/athnum.pdf Binary files differindex d665678784b..b379bd29057 100644 --- a/Master/texmf-dist/doc/generic/babel/athnum.pdf +++ b/Master/texmf-dist/doc/generic/babel/athnum.pdf diff --git a/Master/texmf-dist/doc/generic/babel/babel.pdf b/Master/texmf-dist/doc/generic/babel/babel.pdf Binary files differindex 0c5b7504c72..0d5c85f6dc8 100644 --- a/Master/texmf-dist/doc/generic/babel/babel.pdf +++ b/Master/texmf-dist/doc/generic/babel/babel.pdf diff --git a/Master/texmf-dist/doc/generic/babel/bbcompat.pdf b/Master/texmf-dist/doc/generic/babel/bbcompat.pdf Binary files differindex 8959c52d6d2..668d93608d7 100644 --- a/Master/texmf-dist/doc/generic/babel/bbcompat.pdf +++ b/Master/texmf-dist/doc/generic/babel/bbcompat.pdf diff --git a/Master/texmf-dist/doc/generic/babel/bbidxglo.pdf b/Master/texmf-dist/doc/generic/babel/bbidxglo.pdf Binary files differindex 3346da74bfb..e200f1898e7 100644 --- a/Master/texmf-dist/doc/generic/babel/bbidxglo.pdf +++ b/Master/texmf-dist/doc/generic/babel/bbidxglo.pdf diff --git a/Master/texmf-dist/doc/generic/babel/changes.txt b/Master/texmf-dist/doc/generic/babel/changes.txt index b7e0fbca551..20ece3262ff 100644 --- a/Master/texmf-dist/doc/generic/babel/changes.txt +++ b/Master/texmf-dist/doc/generic/babel/changes.txt @@ -8,12 +8,74 @@ are not part of the distribution. ========================================================================== -2008-07-09 Johannes Braams <babel at latex-project.org> +2009-09-24 Johannes Braams (babel at latex-project.org) + + * babel.ins: Added a line for kurmanji + +2009-09-19 Johannes Braams (babel at latex-project.org) + + * kurmanji/kurmanji.dtx: Added the support provided by Jörg + Knappen. + + * frenchb/frenchb.dtx: New version (2.3d) from Daniel + + * danish/danish.dtx: The shorthand "/ introduced in version 1.3q + was still a dutch shorthand. found by Lars Madsen (daleif @ + imf.au.dk) + +2009-09-18 Johannes Braams (babel at latex-project.org) + + * estonian/estonian.dtx: Received a new version of estonian.dtx + from Jaan Vajakas (jv at ut.ee) with the follwoing changes: + - the commands \~o and \~O now work properly in T1 encoding (before, + words containing the commands \~o or \~O were not hyphenated and + with the times package the tilde was placed incorrectly (through + the letter o)) + - in UTF-8 encoding (\usepackage[utf8]{inputenc}) now õ and Õ + work properly (before, words containing the letter õ or Õ + were not hyphenated and with the timesi package, the tilde was + placed incorrectly, probably due to the bug with \~o and \~O), + i. e. the bug + http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4029 + was fixed + - the command \~ now makes tilde to all letters except Å¡, ž, Å + ja Ž, as in other languages (before, \~ made caron to all letters + except õ and Õ) + - because of this, now e.g. the letter ñ is displayed correctly + with \usepackage[utf8]{inputenc} + - now, letters like õ and ñ can be copied and pasted from + Acrobat Reader (before, e.g. õ made with the command \~o became + ~o when copied; the same also with letter õ made directly with + the UTF-8 character õ with \usepackage[utf8]{inputenc}) + - when switching from Estonian to another language, high umlaut is + now restored (e.g. in English OT1-encoding the umlaut of the + letters öäü is higher than in Estonian, but before, if the + command \selectlanguage{english} was used after Estonian text, the + umlaut remained low in the following English text) + - words containing the commands ~s, ~z, ~o, "a, "o, "u, ~S, ~Z, + ~O, "A, "O, "U are now also hyphenated in OT1 encoding (before, + words containing the commands ~o, "a, "o, "u were not hyphenated); + words containing letters made directly with characters + šžäöüŠŽÄÖÜ or commands \~s, \~z, \"a, \"o, \"u, + \~S, \~Z, \"A, \"O, \"U are still not hyphenated in OT1 encoding + (also e.g. the German package allows hyphenation in words + containing the command "a but it OT1 encoding it does not allow + hyphenation in words containing directly the charcater ä or + command \"a) + - minor regression: now words containing directly characters õ or + Õ or commands \~o or \~O are not hyphenated any more in OT1 + encoding (this regression is really marginal because firstly, + words containing any other Estonian accented letter were not + hyphenated in OT1 encoding, secondly, the Estonian hyphenation + rules do not work absolutely correctly in OT1 encoding anyway and + thirdly, with e. g. the German package the situation is similar) + +2008-07-09 Johannes Braams (babel at latex-project.org) * estonian/estonian.dtx : Added the translation for Glossary, provided by Jaan Vajakas. -2008-07-08 Johannes Braams <babel at latex-project.org> +2008-07-08 Johannes Braams (babel at latex-project.org) * base/babel.dtx (subsection{Multiple languages}): The value of \languagename, as dumped in the format needs to be the name of the @@ -21,12 +83,12 @@ are not part of the distribution. 4039). Now temporarily store the wanted name to be restored after all pattern files have been loaded. -2008-07-07 Johannes Braams <babel at latex-project.org> +2008-07-07 Johannes Braams (babel at latex-project.org) * estonian/estonian.dtx : Replaced the translation of "Proof" (PR 4030) -2008-07-06 Johannes Braams <babel at latex-project.org> +2008-07-06 Johannes Braams (babel at latex-project.org) * latin/latin.dtx: Added two missing \end{macro}'s found while compliling babel.drv @@ -62,7 +124,7 @@ are not part of the distribution. * greek/greek.ins: New version from Claudio Beccari -2008-06-01 Johannes Braams <babel at latex-project.org) +2008-06-01 Johannes Braams (babel at latex-project.org) * german/germanb.dtx : Fixed a type (\coptions...) found by Daniel Flipo @@ -72,7 +134,7 @@ are not part of the distribution. * spanish/spanishb.dtx : New version from Javier, fixing a couple of bugs. -2008-03-21 Johannes Braams <babel at latex-project.org) +2008-03-21 Johannes Braams (babel at latex-project.org) * latin/latin.dtx (section{Latin shortcuts} : The way the category code for the equals sign and the caret was being handled was @@ -94,7 +156,7 @@ are not part of the distribution. superfluous double quotes from table) signalled by Michail Vidiassov (master at iaas dot msu dot ru) -2008-03-18 Johannes Braams <babel at latex-project.org) +2008-03-18 Johannes Braams (babel at latex-project.org) * portuges/portuges.dtx : Adde the translation for Glossary from Luiz Carlos Guidolin @@ -104,7 +166,7 @@ are not part of the distribution. * spanish/spanish.dtx: New version from Javier Bezos; now at version 5.0 -2008-03-17 Johannes Braams <babel at latex-project.org) +2008-03-17 Johannes Braams (babel at latex-project.org) * danish/danish.dtx : Set the \lefthyphenmin parameter to 2 by default on request by the Danish users through Palle Jørgensen @@ -120,14 +182,14 @@ are not part of the distribution. ^Y is to be changed we need to make sure that the caret has category code 7. (PR 3992) -2008-03-16 Johannes Braams <babel at latex-project.org) +2008-03-16 Johannes Braams (babel at latex-project.org) * base/babel.dtx (subsubsection{\pkg{hyperref}}): Added some code to let hyphenref swith the shorthands to system level (PR4006) (subsection{Multiple languages}): Added the setting of the hyphenmin parameters to the \hyphenrules command (PR3997) -2008-03-15 Johannes Braams <babel at latex-project.org) +2008-03-15 Johannes Braams (babel at latex-project.org) * bahasa/bahasam.dtx: New version from Bob Margolis with corrected translations. diff --git a/Master/texmf-dist/doc/generic/babel/greek-fdd.pdf b/Master/texmf-dist/doc/generic/babel/greek-fdd.pdf Binary files differindex 83e660d9e25..cccbf09ad32 100644 --- a/Master/texmf-dist/doc/generic/babel/greek-fdd.pdf +++ b/Master/texmf-dist/doc/generic/babel/greek-fdd.pdf diff --git a/Master/texmf-dist/doc/generic/babel/greek-usage.pdf b/Master/texmf-dist/doc/generic/babel/greek-usage.pdf Binary files differindex b32515ec6b2..95ab1227ad6 100644 --- a/Master/texmf-dist/doc/generic/babel/greek-usage.pdf +++ b/Master/texmf-dist/doc/generic/babel/greek-usage.pdf diff --git a/Master/texmf-dist/doc/generic/babel/grmath.pdf b/Master/texmf-dist/doc/generic/babel/grmath.pdf Binary files differindex 6c0c6bc617b..c862ea489be 100644 --- a/Master/texmf-dist/doc/generic/babel/grmath.pdf +++ b/Master/texmf-dist/doc/generic/babel/grmath.pdf diff --git a/Master/texmf-dist/doc/generic/babel/grsymb.pdf b/Master/texmf-dist/doc/generic/babel/grsymb.pdf Binary files differindex ab2d3464479..86d7350913c 100644 --- a/Master/texmf-dist/doc/generic/babel/grsymb.pdf +++ b/Master/texmf-dist/doc/generic/babel/grsymb.pdf diff --git a/Master/texmf-dist/doc/generic/babel/language.skeleton b/Master/texmf-dist/doc/generic/babel/language.skeleton index 23834f76ed2..fab9bffd259 100644 --- a/Master/texmf-dist/doc/generic/babel/language.skeleton +++ b/Master/texmf-dist/doc/generic/babel/language.skeleton @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2008 Johannes L. Braams and any individual authors +% Copyright 1989-2009 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. diff --git a/Master/texmf-dist/doc/generic/babel/tb1202.pdf b/Master/texmf-dist/doc/generic/babel/tb1202.pdf Binary files differindex c92f59791a3..23aa4052c1b 100644 --- a/Master/texmf-dist/doc/generic/babel/tb1202.pdf +++ b/Master/texmf-dist/doc/generic/babel/tb1202.pdf diff --git a/Master/texmf-dist/doc/generic/babel/tb1401.pdf b/Master/texmf-dist/doc/generic/babel/tb1401.pdf Binary files differindex 3d6c621f168..d10f1e87a75 100644 --- a/Master/texmf-dist/doc/generic/babel/tb1401.pdf +++ b/Master/texmf-dist/doc/generic/babel/tb1401.pdf diff --git a/Master/texmf-dist/doc/generic/babel/tb1604.pdf b/Master/texmf-dist/doc/generic/babel/tb1604.pdf Binary files differindex d3881744f1e..fcba890a048 100644 --- a/Master/texmf-dist/doc/generic/babel/tb1604.pdf +++ b/Master/texmf-dist/doc/generic/babel/tb1604.pdf diff --git a/Master/texmf-dist/source/generic/babel/frenchb.dtx b/Master/texmf-dist/source/generic/babel/frenchb.dtx index b8b97f3b0bc..ffdf03fcc99 100644 --- a/Master/texmf-dist/source/generic/babel/frenchb.dtx +++ b/Master/texmf-dist/source/generic/babel/frenchb.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2009 Johannes L. Braams and any individual authors +% Copyright 1989-2011 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. @@ -26,7 +26,7 @@ % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. % \fi -% \CheckSum{2135} +% \CheckSum{2599} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -41,25 +41,25 @@ %<code>\ProvidesLanguage{frenchb} %\ProvidesFile{frenchb.dtx} %<*!cfg> - [2009/03/16 v2.3d French support from the babel system] + [2010/08/21 v2.5a French support from the babel system] %</!cfg> %<*cfg> %% frenchb.cfg: configuration file for frenchb.ldf -%% Daniel Flipo Daniel.Flipo at univ-lille1.fr +%% Daniel Flipo daniel.flipo at free.fr %</cfg> %% File `frenchb.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2009 +%% Copyright (C) 1989 - 2010 %% by Johannes Braams, TeXniek % %<*!cfg> %% Frenchb language Definition File -%% Copyright (C) 1989 - 2009 +%% Copyright (C) 1989 - 2010 %% by Johannes Braams, TeXniek %% Daniel Flipo, GUTenberg % %% Please report errors to: Daniel Flipo, GUTenberg -%% Daniel.Flipo at univ-lille1.fr +%% daniel.flipo at free.fr %</!cfg> % % This file is part of the babel system, it provides the source @@ -84,7 +84,7 @@ \begin{center} \textbf{\Large A Babel language definition file for French}\\[3mm]^^A\] Daniel \textsc{Flipo}\\ - \texttt{Daniel.Flipo@univ-lille1.fr} + \texttt{daniel.flipo@free.fr} \end{center} \RecordChanges \DocInput{frenchb.dtx} @@ -168,7 +168,7 @@ % \item `double punctuation' (|:| |;| |!| |?|) is made % active%\footnote{Actually, they are active in the whole % document, only their expansions differ in French and -% outside French} for correct spacing in French; +% outside French.} for correct spacing in French; % \item |\today| prints the date in French; % \item the caption names are translated into French % (\LaTeX{} only); @@ -281,7 +281,8 @@ % reverts to the standard settings of |list|. This option % replaces the former command |\FrenchListSpacingfalse|. % \item |CompactItemize=false [true*]|; |frenchb| normally -% suppresses any vertical space between items of |itemize| lists +% redefines the |itemize| environment to +% suppresse any vertical space between items of |itemize| lists % in French; setting this option to |false| reverts to the % standard settings of |itemize| lists. This option replaces % the former command |\FrenchItemizeSpacingfalse|. @@ -367,6 +368,9 @@ % ``Premi\`ere partie~I'', ``Deuxi\`eme partie~II'' instead; % when this occurs, this option should be set to |false|, % part titles will then be printed as ``Partie I'', ``Partie II''. +% \item |SuppressWarning=true [false]|; when true |frenchb| issues +% no warnings if |\@makecaption| has been redefined or if the +% bigfoot package is in use. % \item |og=|\texttt{\guillemotleft}, |fg=|\texttt{\guillemotright}; % when guillemets characters are available on the keyboard % (through a compose key for instance), it is nice to use them @@ -519,6 +523,45 @@ % messages when diacritics are used inside |\up{}| (diacritics % should \emph{never} be used in superscripts though!). % +% \subsubsection*{What's new in version 2.4?} +% +% A new option |SuppressWarning| has been added (desactivated by +% default) to suppress warnings if |\@makecaption| has been +% redefined or if the bigfoot package is in use. +% +% French hyphenation patterns are now coded in Unicode, see file +% \file{hyph-fr.tex}. Extra code has been added to deal with +% hyphenation of the French ``apostrophe'' with XeTeX and LuaTeX +% engines. +% +% Better compatibility with the enumitem package. +% +% When typewriter fonts are in use (hence in verbatim mode) no +% space is added after `\guillemotleft' and before +% `\guillemotright' when they are entered as characters +% (see |\frenchbsetup|). +% +% \subsubsection*{What's new in version 2.5?} +% +% The main change is that active characters are no longer used +% in French with (recent) Xe\TeX-based engines (they still are +% with \TeX-based engines). All the functionalities (automatic +% insertion of missing spaces before |:;!?| or bare replacement +% of typed spaces with suitable unbreabable ones, tuning of the +% spaces width) remain available and the user interface is +% unchanged. The use of active characters is replaced by the +% |\XeTeXinterchartoks| mechanism (as in package +% \file{polyglossia}). +% +% A new command |\NoAutoSpacing| has been added. It should be used +% \emph{inside a group} instead of |\shorthandoff{;:!?}| whenever +% active characters or automatic spacing of French punctuation or +% quote characters conflict with other packages; it is designed to +% work with \TeX- and Xe\TeX-based engines. +% +% Bug correction: \file{frenchb.ldf} no longer messes up +% |\frenchspacing| and |\nonfrenchspacing| in other languages. +% % \StopEventually{} % % \subsection{File frenchb.cfg} @@ -536,7 +579,7 @@ %% If you want to customise frenchb, please DO NOT hack into the code! %% Do no put any code in this file either, please use the new command %% \frenchbsetup{} with the proper options to customise frenchb. -%% +%% %% Add \frenchbsetup{ShowOptions} to your preamble to see the list of %% available options and/or read the documentation. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -545,8 +588,6 @@ %</cfg> % \fi % -% \section{\TeX{}nical details} -% % \subsection{Initial setup} % % \changes{v2.1d}{2008/05/02}{Argument of \cs{ProvidesLanguage} changed @@ -676,34 +717,60 @@ % of those expressions, and has to be reset to null when exiting % French. % +% \changes{v2.4a}{2009/11/23}{Added a new `if' \cs{FBunicode} and +% some \cs{lccode} definitions to \cs{extrasfrench} and +% \cs{noextrasfrench}.} +% +% French hyphenation patterns are now coded in Unicode, see file +% \file{hyph-fr.tex}. XeTeX and LuaTeX engines require some extra +% code to deal with the French ``apostrophe''. +% Let's define a new `if' |\FBunicode| which will be true for XeTeX +% and LuaTeX engines and false for 8-bits engines. +% % \begin{macrocode} -\@namedef{extras\CurrentOption}{\lccode`\'=`\'} -\@namedef{noextras\CurrentOption}{\lccode`\'=0} +\newif\ifFBunicode +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname luatexversion\endcsname\relax +\else + \FBunicodetrue +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXrevision\endcsname\relax +\else + \FBunicodetrue +\fi +\@namedef{extras\CurrentOption}{\lccode`\'=`\' + \ifFBunicode\lccode"2019="2019\fi} +\@namedef{noextras\CurrentOption}{\lccode`\'=0 + \ifFBunicode\lccode"2019=0\fi} % \end{macrocode} % \end{macro} % \end{macro} % % One more thing |\extrasfrench| needs to do is to make sure that -% |\frenchspacing| is in effect. |\noextrasfrench| will switch -% |\frenchspacing| off again. +% ``Frenchspacing'' is in effect. |\noextrasfrench| will switch +% ``Frenchspacing'' off again if necessary. % \begin{macrocode} - \expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchspacing} - \expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchspacing} +\addto\extrasfrench{\bbl@frenchspacing} +\addto\noextrasfrench{\bbl@nonfrenchspacing} % \end{macrocode} % % \subsection{Punctuation} % \label{sec-punct} % -% As long as no better solution is available% -% \footnote{Lua\TeX, or pdf\TeX{} might provide alternatives in -% the future\dots}, -% the `double punctuation' characters (|;| |!| |?| and |:|) have to -% be made |\active| for an automatic control of the amount of space -% to insert before them. Before doing so, we have to save the -% standard definition of |\@makecaption| (which includes two ':') -% to compare it later to its definition at the |\begin{document}|. +% \changes{v2.5a}{2010/08/10}{Punctation is no longer made active +% with XeTeX-based engines.} +% +% As long as no better solution is available, the `double +% punctuation' characters (|;| |!| |?| and |:|) have to be made +% |\active| for an automatic control of the amount of space to +% insert before them. Xe\TeX{} provides an alternative to active +% characters and Lua\TeX{} will hopefully do so as well in the +% (near?) future. +% +% Before doing so, we have to save the standard definition of +% |\@makecaption| (which includes two ':') to compare it later to +% its definition at the |\begin{document}|. % \begin{macrocode} \long\def\STD@makecaption#1#2{% \vskip\abovecaptionskip @@ -714,24 +781,200 @@ \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi - \vskip\belowcaptionskip}% + \vskip\belowcaptionskip} % \end{macrocode} % -% We define a new `if' |\FBpunct@active| which will be made false -% whenever a better alternative will be available. Another `if' -% |\FBAutoSpacePunctuation| needs to be defined now. +% \changes{v2.5a}{2010/08/10}{Define \cs{Fthinspace} for those who want +% to customise the width of the space before ; ! and ?.} +% +% According to the I.N. specifications, the `:' requires a normal +% space before it, but some people prefer a |\thinspace| (just +% like the other three). We define |\Fcolonspace| to hold the +% required amount of space (user customisable). In case some users +% are not satisfied with |\thinspace|'s width, it is also +% customisable. % \begin{macrocode} -\newif\ifFBpunct@active \FBpunct@activetrue -\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue +\newcommand*{\Fcolonspace}{\space} +\newcommand*{\Fthinspace}{\thinspace} +% \end{macrocode} +% +% Check the availability of |\XeTeXinterchartokenstate| and decide +% whether the `double punctuation' characters (|;| |!| |?| and |:|) +% have to be made |\active| or not. +% \begin{macrocode} +\newif\ifFB@active@punct \FB@active@puncttrue +\newif\ifFB@xetex@punct +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax +\else + \FB@xetex@puncttrue\FB@active@punctfalse +\fi +% \end{macrocode} +% +% If |\XeTeXinterchartokenstate| is available, we use the +% ``inter char'' mechanism (as in polyglossia, see +% \file{gloss-french.ldf}) to provide correct spacing in French +% before the four characters |;| |!| |?| and |:| and for French +% quotes (\texttt{\guillemotleft} and \texttt{\guillemotright}). +% +% It is assumed that for every character used in French text-mode +% (except spaces), |\XeTeXcharclass| value is 0 before entering +% French. |\XeTeXcharclass| value for spaces is assumed to be 255. +% Otherwise, the spacing before the `double punctuation' characters +% will not be correct. +% +% We switch |\XeTeXinterchartokenstate| to 1 and change the +% |\XeTeXcharclass| values of |;| |!| |?| |:| |(| |]| +% \texttt{\guillemotleft} and \texttt{\guillemotright} when +% entering French. Special care is taken to restore them to their +% inital values when leaving French. +% \begin{macrocode} +\newif\ifFBAutoSpaceGuill \FBAutoSpaceGuilltrue +\ifFB@xetex@punct + \PackageInfo{frenchb.ldf}{No need for active punctuation characters + \MessageBreak with this version of XeTeX! reported} +% \end{macrocode} +% We will need the following code (borrowed from +% \file{zhsusefulmacros.sty}) for loops: +% \begin{macrocode} + \@ifundefined{@for}{% + \def\@nnil{\@nil}% + \def\@empty{}% + \def\@fornoop#1\@@#2#3{}% + \long\def\@for#1:=#2\do#3{% + \expandafter\def\expandafter\@fortmp\expandafter{#2}% + \ifx\@fortmp\@empty \else + \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}% + \long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else + #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}% + \long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \expandafter\@fornoop \else + #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}% + \def\@tfor#1:={\@tf@r#1 }% + \long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else + \@tforloop#2\@nil\@nil\@@#1{#3}\fi}% + \long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \expandafter\@fornoop \else + #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}% + }{}% +% \end{macrocode} +% New character classes, +% \begin{macrocode} + \newcount\FB@interchartokenstateORI + \newXeTeXintercharclass\FB@punctthick + \newXeTeXintercharclass\FB@punctthin + \newXeTeXintercharclass\FB@punctnul + \newXeTeXintercharclass\FB@punctguilo + \newXeTeXintercharclass\FB@punctguilf +% \end{macrocode} +% We define a command to store the |\XeTeXcharclass| values which +% will be modified for French (as a comma separated list) and a +% command to retrieve them. +% \begin{macrocode} +% \newcommand*{\FB@charclassesORI}{} + \def\FB@charclassesORI{} + \def\empty{} + \def\FB@parse#1,#2\endparse{\def\FB@class{#1}% + \def\FB@charclassesORI{#2}}% +% \end{macrocode} +% +% The following command will be executed when entering French, it +% first saves the values to be modified, then fits them to our +% needs. It also redefines |\shorthandoff| and |\shorthandon| +% (locally) to avoid error messages with XeTeX-based engines. +% \begin{macrocode} + \newcommand*{\FB@xetex@punct@french}{% +% \end{macrocode} +% Saving must not be repeated if saved values are already in. +% \begin{macrocode} + \ifx\FB@charclassesORI\empty + \FB@interchartokenstateORI=\XeTeXinterchartokenstate + \@for\FB@char:={`\:,`\;,`\!,`\?,`\[,`\(,"00AB,"00BB}\do + {\edef\FB@charclassesORI{\FB@charclassesORI% + \the\XeTeXcharclass\FB@char,}}% + \let\shorthandonORI\shorthandon + \let\shorthandoffORI\shorthandoff + \fi % \end{macrocode} -% The following code makes the four characters |;| |!| |?| and |:| -% `active' and provides their definitions. +% Set the classes and interactions between classes. +% \begin{macrocode} + \XeTeXinterchartokenstate=1 + \XeTeXcharclass `\: = \FB@punctthick + \XeTeXinterchartoks \z@ \FB@punctthick = {% + \ifhmode\FDP@colonspace\fi}% + \XeTeXinterchartoks \FB@punctguilf \FB@punctthick = {% + \FDP@colonspace}% + \XeTeXinterchartoks 255 \FB@punctthick = {% + \ifhmode\unskip\penalty\@M\Fcolonspace\fi}% + \@for\FB@char:={`\;,`\!,`\?}\do + {\XeTeXcharclass\FB@char=\FB@punctthin}% + \XeTeXinterchartoks \z@ \FB@punctthin = {% + \ifhmode\FDP@thinspace\fi}% + \XeTeXinterchartoks \FB@punctguilf \FB@punctthin = {% + \FDP@thinspace}% + \XeTeXinterchartoks 255 \FB@punctthin = {% + \ifhmode\unskip\penalty\@M\Fthinspace\fi}% +% \end{macrocode} +% This avoids spurious spaces in (!), (???), etc. +% \begin{macrocode} + \@for\FB@char:={`\[,`\(}\do + {\XeTeXcharclass\FB@char=\FB@punctnul}% + \XeTeXinterchartoks \FB@punctnul \FB@punctthin = {}% + \XeTeXcharclass"00AB = \FB@punctguilo + \XeTeXinterchartoks \FB@punctguilo \z@ = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks \FB@punctguilo 255 = {% + \ifFBAutoSpaceGuill\FBguill@spacing\ignorespaces\fi}% + \XeTeXcharclass"00BB = \FB@punctguilf + \XeTeXinterchartoks \z@ \FB@punctguilf = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks \FB@punctthin \FB@punctguilf = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks 255 \FB@punctguilf = {% + \ifFBAutoSpaceGuill\unskip\FBguill@spacing\fi}% +% \end{macrocode} +% With Xe(La)TeX, French defines no active shorthands. +% \begin{macrocode} + \def\shorthandoff##1{% + \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is + helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing + \space *inside a group* instead;\MessageBreak reported}% + }% + \def\shorthandon##1{}% + } +% \end{macrocode} +% +% The following command will be executed when leaving French for +% restoring values and commands modified in French. +% When French is not the main language, |\noextrasfrench| is +% executed `AtBeginDocument', so the test on +% |\FB@charclassesORI| is mandatory. % \begin{macrocode} -\ifFBpunct@active - \initiate@active@char{:} - \initiate@active@char{;} - \initiate@active@char{!} - \initiate@active@char{?} + \newcommand*{\FB@xetex@punct@nonfrench}{% + \ifx\FB@charclassesORI\empty + \else + \@for\FB@char:={`\:,`\;,`\!,`\?,`\[,`\(,"00AB,"00BB}\do + {\expandafter\FB@parse\FB@charclassesORI\endparse + \XeTeXcharclass\FB@char=\FB@class}% + \def\FB@charclassesORI{}% + \XeTeXinterchartokenstate=\FB@interchartokenstateORI + \let\shorthandon\shorthandonORI + \let\shorthandoff\shorthandoffORI + \fi + } + \addto\extrasfrench{\FB@xetex@punct@french} + \addto\noextrasfrench{\FB@xetex@punct@nonfrench} +\fi +% \end{macrocode} +% +% Otherwise we need to make the four characters |;| |!| |?| and |:| +% `active' and provide their definitions. +% \begin{macrocode} +\ifFB@active@punct + \initiate@active@char{:}% + \initiate@active@char{;}% + \initiate@active@char{!}% + \initiate@active@char{?}% % \end{macrocode} % We first tune the amount of space before \texttt{;} % \texttt{!} \texttt{?} and \texttt{:}. This should only happen @@ -746,7 +989,7 @@ \declare@shorthand{french}{;}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi @@ -761,7 +1004,7 @@ \declare@shorthand{french}{!}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi @@ -770,19 +1013,12 @@ \declare@shorthand{french}{?}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi \fi \string?} -% \end{macrocode} -% According to the I.N. specifications, the `:' requires a normal -% space before it, but some people prefer a |\thinspace| (just -% like the other three). We define |\Fcolonspace| to hold the -% required amount of space (user customisable). -% \begin{macrocode} - \newcommand*{\Fcolonspace}{\space} \declare@shorthand{french}{:}{% \ifhmode \ifdim\lastskip>\z@ @@ -793,35 +1029,72 @@ \fi \string:} % \end{macrocode} +% When the active characters appear in an environment where their +% French behaviour is not wanted they should give an `expected' +% result. Therefore we define shorthands at system level as well. +% \begin{macrocode} + \declare@shorthand{system}{:}{\string:} + \declare@shorthand{system}{!}{\string!} + \declare@shorthand{system}{?}{\string?} + \declare@shorthand{system}{;}{\string;} +%} +% \end{macrocode} +% We specify that the French group of shorthands should be used when +% switching to French. +% \begin{macrocode} + \addto\extrasfrench{% + \languageshorthands{french}% +% \end{macrocode} +% These characters are `turned on' once, later their definition may +% vary. Don't misunderstand the following code: they keep being +% active all along the document, even when leaving French. +% \begin{macrocode} + \bbl@activate{:}\bbl@activate{;}% + \bbl@activate{!}\bbl@activate{?}% + } + \addto\noextrasfrench{% + \bbl@deactivate{:}\bbl@deactivate{;}% + \bbl@deactivate{!}\bbl@deactivate{?}} +\fi +% \end{macrocode} +% +% A new `if' |\FBAutoSpacePunctuation| needs to be defined now. +% \begin{macrocode} +\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue +% \end{macrocode} % % \changes{v2.3a}{2008/10/10}{\cs{NoAutoSpaceBeforeFDP} and % \cs{AutoSpaceBeforeFDP} now set the flag % \cs{ifFBAutoSpacePunctuation} accordingly (LaTeX only).} % +% \changes{v2.3e}{2009/10/10}{Execute \cs{AutoSpaceBeforeFDP} +% also in LaTeX to define \cs{FDP@colonspace}: needed for +% tex4ht, pointed out by MPG.} +% % \begin{macro}{\AutoSpaceBeforeFDP} % \begin{macro}{\NoAutoSpaceBeforeFDP} -% |\FDP@thinspace| and |\FDP@space| are defined as unbreakable +% |\FDP@thinspace| and |\FDP@colonspace| are defined as unbreakable % spaces by |\autospace@beforeFDP| or as |\@empty| by % |\noautospace@beforeFDP| (internal commands), user commands % |\AutoSpaceBeforeFDP| and |\NoAutoSpaceBeforeFDP| do the same and % take care of the flag |\ifFBAutoSpacePunctuation| in \LaTeX{}. % Set the default now for Plain (done later for \LaTeX). % \begin{macrocode} - \def\autospace@beforeFDP{% - \def\FDP@thinspace{\penalty\@M\thinspace}% +\def\autospace@beforeFDP{% + \def\FDP@thinspace{\penalty\@M\Fthinspace}% \def\FDP@colonspace{\penalty\@M\Fcolonspace}} - \def\noautospace@beforeFDP{\let\FDP@thinspace\@empty +\def\noautospace@beforeFDP{\let\FDP@thinspace\@empty \let\FDP@colonspace\@empty} - \ifLaTeXe +\ifLaTeXe \def\AutoSpaceBeforeFDP{\autospace@beforeFDP \FBAutoSpacePunctuationtrue} \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP \FBAutoSpacePunctuationfalse} - \else +\else \let\AutoSpaceBeforeFDP\autospace@beforeFDP \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP - \AutoSpaceBeforeFDP \fi +\AutoSpaceBeforeFDP % \end{macrocode} % \end{macro} % \end{macro} @@ -843,56 +1116,59 @@ % % These redefinitions can be canceled if necessary, for instance to % recompile older documents, see option |OriginalTypewriter| below. +% +% \changes{v2.4c}{2010/05/23}{In \cs{ttfamilyFB}, also cancel +% automatic spaces inside French guillemets entered as characters +% (see \cs{frenchbsetup}).} +% +% To be consistent with what is done for `double punctuation' +% characters, |\ttfamilyFB| also switches off insertion of spaces +% inside French guillemets \emph{when they are typed in as +% characters} with the `og'/`fg' option in |\frenchbsetup{}|. +% This is also a workaround for the weird behaviour of these +% characters in verbatim mode. % \begin{macrocode} - \ifLaTeXe +\ifLaTeXe \let\ttfamilyORI\ttfamily \let\rmfamilyORI\rmfamily \let\sffamilyORI\sffamily \DeclareRobustCommand\ttfamilyFB{% + \FBAutoSpaceGuillfalse \noautospace@beforeFDP\ttfamilyORI}% \DeclareRobustCommand\rmfamilyFB{% + \FBAutoSpaceGuilltrue \ifFBAutoSpacePunctuation - \autospace@beforeFDP\rmfamilyORI + \autospace@beforeFDP\rmfamilyORI \else - \noautospace@beforeFDP\rmfamilyORI + \noautospace@beforeFDP\rmfamilyORI \fi}% \DeclareRobustCommand\sffamilyFB{% + \FBAutoSpaceGuilltrue \ifFBAutoSpacePunctuation - \autospace@beforeFDP\sffamilyORI + \autospace@beforeFDP\sffamilyORI \else - \noautospace@beforeFDP\sffamilyORI + \noautospace@beforeFDP\sffamilyORI \fi}% - \fi +\fi % \end{macrocode} % -% When the active characters appear in an environment where their -% French behaviour is not wanted they should give an `expected' -% result. Therefore we define shorthands at system level as well. -% \begin{macrocode} - \declare@shorthand{system}{:}{\string:} - \declare@shorthand{system}{!}{\string!} - \declare@shorthand{system}{?}{\string?} - \declare@shorthand{system}{;}{\string;} -% \end{macrocode} -% We specify that the French group of shorthands should be used. +% \changes{v2.5a}{2010/08/14}{New command \cs{NoAutoSpacing}, +% suggested by MPG.} +% +% The following command will switch off active punctuation +% characters (if any) and disable automatic spacing for French quote +% characters. It is engine independent (works for \TeX{} and +% Xe\TeX{} based engines) and is meant to be used inside a group. +% \begin{macro}{\NoAutoSpacing} % \begin{macrocode} - \addto\extrasfrench{% - \languageshorthands{french}% -% \end{macrocode} -% These characters are `turned on' once, later their definition may -% vary. Don't misunderstand the following code: they keep being -% active all along the document, even when leaving French. -% \begin{macrocode} - \bbl@activate{:}\bbl@activate{;}% - \bbl@activate{!}\bbl@activate{?}% - } - \addto\noextrasfrench{% - \bbl@deactivate{:}\bbl@deactivate{;}% - \bbl@deactivate{!}\bbl@deactivate{?}} -\fi +\newcommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse + \ifFB@active@punct\shorthandoff{;:!?}\fi + \ifFB@xetex@punct\XeTeXinterchartokenstate=0\fi} % \end{macrocode} +% \end{macro} % -% \subsection{French quotation marks} +% \subsection{Commands for French quotation marks} +% \label{sec-quotes} % % \begin{macro}{\og} % \begin{macro}{\fg} @@ -900,7 +1176,8 @@ % (``\underline{o}uvrez \underline{g}uillemets'') and |\fg| % (``\underline{f}ermez \underline{g}uillemets''). % Another option for typesetting quotes in multilingual texts -% is to use the package |csquotes.sty| and its command |\enquote|. +% is to use the package \file{csquotes.sty} and its command +% |\enquote|. % % \begin{macrocode} \newcommand*{\og}{\@empty} @@ -911,6 +1188,8 @@ % % \begin{macro}{\guillemotleft} % \begin{macro}{\guillemotright} +% \begin{macro}{\textquoteddblleft} +% \begin{macro}{\textquoteddblright} % \LaTeX{} users are supposed to use 8-bit output encodings (T1, % LY1,\dots) to typeset French, those who still stick to OT1 should % call |aeguill.sty| or a similar package. In both cases the @@ -921,24 +1200,37 @@ % We will check `AtBeginDocument' that the proper output encodings % are in use (see end of section~\ref{sec-keyval}). % -% We give the following definitions for Plain users only as a (poor) +% \changes{v2.5a}{2010/08/20}{Change \cs{guillemotleft} and +% \cs{guillemotright} definitions for Unicode anf provide +% definitions for \cs{textquotedblleft} and +% \cs{textquotedbright}. Insures correct printing of quotes +% by \cs{og} and \cs{fg} in French and outside.} + +% We give the following definitions for non-LaTeX users only as a % fall-back, they are welcome to change them for anything better. % \begin{macrocode} \ifLaTeXe \else - \ifx\guillemotleft\@undefined + \ifFBunicode + \def\guillemotleft{\char"00AB} + \def\guillemotright{\char"00BB} + \def\textquotedblleft{\char"201C} + \def\textquotedblright{\char"201D} + \else \def\guillemotleft{\leavevmode\raise0.25ex \hbox{$\scriptscriptstyle\ll$}} - \fi - \ifx\guillemotright\@undefined \def\guillemotright{\raise0.25ex \hbox{$\scriptscriptstyle\gg$}} + \def\textquotedblleft{``} + \def\textquotedblright{''} \fi \let\xspace\relax \fi % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % The next step is to provide correct spacing after |\guillemotleft| % and before |\guillemotright|: a space precedes and follows @@ -948,7 +1240,7 @@ % Thierry Bouche. French quotes (including spacing) are printed by % |\FB@og| and |\FB@fg|, the expansion of the top level commands % |\og| and |\og| is different in and outside French. -% We'll try to be smart to users of David~Carlisle's |xspace| +% We'll try to be smart to users of David~Carlisle's \file{xspace} % package: if this package is loaded there will be no need for |{}| % or |\ | to get a space after |\fg|, otherwise |\xspace| will be % defined as |\relax| (done at the end of this file). @@ -957,10 +1249,11 @@ \newcommand*{\FBguill@spacing}{\penalty\@M\hskip.8\fontdimen2\font plus.3\fontdimen3\font minus.8\fontdimen4\font} -\DeclareRobustCommand*{\FB@og}{\leavevmode - \guillemotleft\FBguill@spacing} +\DeclareRobustCommand*{\FB@og}{\leavevmode\guillemotleft + \ifFB@xetex@punct\else\FBguill@spacing\fi} \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \FBguill@spacing\guillemotright\xspace} + \ifFB@xetex@punct\else\FBguill@spacing\fi + \guillemotright\xspace} % \end{macrocode} % % The top level definitions for French quotation marks are switched @@ -968,6 +1261,10 @@ % mechanism. Outside French, |\og| and |\fg| will typeset standard % English opening and closing double quotes. % +% \changes{v2.5a}{2010/08/20}{\cs{og} and \cs{fg} do not print +% correctly in English when using XeTeX, fixed by using +% \cs{textquotedblleft} and \cs{textquotedblright} defined above.} +% % \begin{macrocode} \ifLaTeXe \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}% @@ -976,15 +1273,13 @@ \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi \textquotedblright}} \else - \def\bbl@frenchguillemets{\let\og\FB@og - \let\fg\FB@fg} - \def\bbl@nonfrenchguillemets{\def\og{``}% - \def\fg{\ifdim\lastskip>\z@\unskip\fi ''}} + \def\bbl@frenchguillemets{\let\og\FB@og + \let\fg\FB@fg} + \def\bbl@nonfrenchguillemets{\def\og{\textquotedblleft}% + \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}} \fi -\expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchguillemets} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchguillemets} +\addto\extrasfrench{\bbl@frenchguillemets} +\addto\noextrasfrench{\bbl@nonfrenchguillemets} % \end{macrocode} % % \subsection{Date in French} @@ -999,13 +1294,16 @@ % \changes{v2.1a}{2008/03/25}{\cs{today} changed (correction in 2.0 % was wrong: \cs{today} was printed without spaces in toc).} % +% \changes{v2.5a}{2010/08/20}{Replaced \cs{'}e and \cs{\char94}u +% by c.s. to work with XeTeX.} +% % \begin{macrocode} \@namedef{date\CurrentOption}{% \def\today{{\number\day}\ifnum1=\day {\ier}\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 + \or janvier\or f{\FBeacute}vrier\or mars\or avril\or mai\or + juin\or juillet\or ao{\FBucirconflexe}t\or septembre\or + octobre\or novembre\or d{\FBeacute}cembre\fi \space \number\year}} % \end{macrocode} % \end{macro} @@ -1023,6 +1321,16 @@ % (hyperref safe) of \cs{up} in case it has to be expanded in % the preamble (by beamer's \cs{title} command for instance).} % +% \changes{v2.4d}{2010/07/28}{Command \cs{up} defined with +% \cs{providecommand} instead of \cs{newcommand} as \cs{up} may be +% defined elsewhere (catalan.ldf). +% Bug pointed out by Felip Many\'e i Ballester.} +% +% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the +% tested control sequence defined as \cs{relax} when TRUE. +% Changed \cs{relax} to \cs{undefined} when testing +% \cs{realsuperscript}.} +% % \begin{macro}{\fup} % % \changes{v2.1b}{2008/04/02}{Command \cs{fup} changed to use @@ -1136,20 +1444,20 @@ % \begin{macrocode} \DeclareRobustCommand*{\fup}[1]{% \@ifundefined{realsuperscript}% - {\FB@up{#1}}% + {\FB@up{#1}\let\realsuperscript\undefined}% {\bgroup\let\fakesuperscript\FB@up@fake \realsuperscript{\FB@lc{#1}}\egroup}} % \end{macrocode} -% Temporary definition of |up| (redefined `AtBeginDocument'). +% Temporary definition of |\up|, redefined `AtBeginDocument'as +% |\fup| or |\textsuperscript| later on while processing the options +% of |\frenchbsetup{}|. % \begin{macrocode} - \newcommand*{\up}{\relax} + \providecommand*{\up}{\relax} % \end{macrocode} -% Poor man's definition of |\up| for Plain. In \LaTeXe, -% |\up| will be defined as |\fup| or |\textsuperscript| later on -% while processing the options of |\frenchbsetup{}|. +% Poor man's definition of |\up| for Plain. % \begin{macrocode} \else - \newcommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} + \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} \fi % \end{macrocode} % \end{macro} @@ -1275,6 +1583,32 @@ \fi % \end{macrocode} % +% \changes{v2.5a}{2010/08/20}{New definitions needed for XeTeX to print +% properly some dates and captions: using c.s. like \cs{'e} do not +% work with XeTeX (OK with XeLaTeX).} +% +% French dates and captions make use of four non-ascii characters +% (\texttt{\`a}, \texttt{\`e}, \texttt{\'e} and \texttt{\^u}). +% This is fine except for (plain) XeTeX (|\accent| commands are not +% implemented), so we define four new commands to deal with this +% issue; we also redefine |\degre| (it is an accent in LaTeX). +% \begin{macrocode} +\newcommand*{\FBagrave}{\`a} +\newcommand*{\FBegrave}{\`e} +\newcommand*{\FBeacute}{\'e} +\newcommand*{\FBucirconflexe}{\^u} +\ifFBunicode + \ifLaTeXe + \else + \def\degre{\char"00B0} + \def\FBagrave{\char"00E0} + \def\FBegrave{\char"00E8} + \def\FBeacute{\char"00E9} + \def\FBucirconflexe{\char"00FB} + \fi +\fi +% \end{macrocode} +% % \begin{macro}{\degres} % We now define a macro |\degres| for typesetting the abbreviation % for `degrees' (as in `degrees Celsius'). As the bounding box of @@ -1305,12 +1639,13 @@ \MessageBreak add \protect \usepackage{textcomp} to the preamble. \MessageBreak Degrees used}} + \ifFBunicode\global\let\Warning@degree@TSone\relax\fi \AtBeginDocument{\expandafter\ifx\csname M@TS1\endcsname\relax \DeclareRobustCommand*{\degres}{% \leavevmode\hbox to 0.3em{\hss\degre\hss}% \Warning@degree@TSone \global\let\Warning@degree@TSone\relax}% - \let\textdegree\degres + \let\textdegree\degres \else \DeclareRobustCommand*{\degres}{% \hbox{\UseTextSymbol{TS1}{\textdegree}}}% @@ -1347,11 +1682,10 @@ \advance\dec@mcc by -\@tempcnta \newcommand*{\DecimalMathComma}{\iflanguage{french}% {\mathcode`\,=\dec@mcc}{}% - \addto\extrasfrench{\mathcode`\,=\dec@mcc}} + \addto\extrasfrench{\mathcode`\,=\dec@mcc}} \newcommand*{\StandardMathComma}{\mathcode`\,=\std@mcc - \addto\extrasfrench{\mathcode`\,=\std@mcc}} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \mathcode`\,=\std@mcc} + \addto\extrasfrench{\mathcode`\,=\std@mcc}} +\addto\noextrasfrench{\mathcode`\,=\std@mcc} % \end{macrocode} % \end{macro} % \end{macro} @@ -1360,7 +1694,7 @@ % % \changes{v2.0}{2006/11/06}{\cs{nombre} requires now numprint.sty.} % -% The command |\nombre| is now borrowed from |numprint.sty| for +% The command |\nombre| is now borrowed from \file{numprint.sty} for % \LaTeXe. There is no point to maintain the former tricky code % when a package is dedicated to do the same job and more. % For Plain based formats, |\nombre| no longer formats numbers, @@ -1379,9 +1713,9 @@ % % \begin{macrocode} \let\FBstop@here\relax -\def\FBclean@on@exit{\let\ifLaTeXe\@undefined - \let\LaTeXetrue\@undefined - \let\LaTeXefalse\@undefined} +\def\FBclean@on@exit{\let\ifLaTeXe\undefined + \let\LaTeXetrue\undefined + \let\LaTeXefalse\undefined} \ifx\magnification\@undefined \else \def\FBstop@here{\let\STD@makecaption\relax @@ -1394,10 +1728,15 @@ % What follows now is for \LaTeXe{} \emph{only}. % We redefine |\nombre| for \LaTeXe. A warning is issued % at the first call of |\nombre| if |\numprint| is not -% defined, suggesting what to do. The package |numprint| +% defined, suggesting what to do. The package \file{numprint} % is \emph{not} loaded automatically by |frenchb| because of % possible options conflict. % +% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the +% tested control sequence defined as \cs{relax} when TRUE. +% Changed \cs{relax} to \cs{undefined} when testing +% \cs{numprint}.} +% % \begin{macrocode} \renewcommand*{\nombre}[1]{\Warning@nombre\numprint{#1}} \newcommand*{\Warning@nombre}{% @@ -1410,7 +1749,7 @@ see file numprint.pdf for other options.\MessageBreak \protect\nombre\space called}% \global\let\Warning@nombre\relax - \global\let\numprint\relax + \global\let\numprint\undefined }{}% } % \end{macrocode} @@ -1446,15 +1785,22 @@ % \cs{extrasfrench} now instead of \cs{captionsfrench} % because it has to be reset when leaving French.} % +% \changes{v2.5a}{2010/08/16}{\cs{emph} deleted in \cs{seename} +% and \cs{alsoname} to match what is done for the other languages. +% Suggested by Marc Baudoin.} +% +% \changes{v2.5a}{2010/08/20}{Replaced \cs{'e}, \cs{`e} and \cs{`a} +% by c.s. to work with XeTeX.} +% % \begin{macrocode} \@namedef{captions\CurrentOption}{% - \def\refname{R\'ef\'erences}% - \def\abstractname{R\'esum\'e}% + \def\refname{R{\FBeacute}f{\FBeacute}rences}% + \def\abstractname{R{\FBeacute}sum{\FBeacute}}% \def\bibname{Bibliographie}% - \def\prefacename{Pr\'eface}% + \def\prefacename{Pr{\FBeacute}face}% \def\chaptername{Chapitre}% \def\appendixname{Annexe}% - \def\contentsname{Table des mati\`eres}% + \def\contentsname{Table des mati{\FBegrave}res}% \def\listfigurename{Table des figures}% \def\listtablename{Liste des tableaux}% \def\indexname{Index}% @@ -1464,19 +1810,23 @@ % ``Premi\`ere partie'' instead of ``Part I''. % \begin{macrocode} \def\partname{\protect\@Fpt partie}% - \def\@Fpt{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or - Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or - Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or Onzi\`eme\or - Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or Quinzi\`eme\or - Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or Dix-neuvi\`eme\or - Vingti\`eme\fi}\space\def\thepart{}}% + \def\@Fpt{{\ifcase\value{part}\or Premi{\FBegrave}re\or + Deuxi{\FBegrave}me\or Troisi{\FBegrave}me\or + Quatri{\FBegrave}me\or Cinqui{\FBegrave}me\or + Sixi{\FBegrave}me\or Septi{\FBegrave}me\or Huiti{\FBegrave}me\or + Neuvi{\FBegrave}me\or Dixi{\FBegrave}me\or Onzi{\FBegrave}me\or + Douzi{\FBegrave}me\or Treizi{\FBegrave}me\or + Quatorzi{\FBegrave}me\or Quinzi{\FBegrave}me\or + Seizi{\FBegrave}me\or Dix-septi{\FBegrave}me\or + Dix-huiti{\FBegrave}me\or Dix-neuvi{\FBegrave}me\or + Vingti{\FBegrave}me\fi}\space\def\thepart{}}% \def\pagename{page}% - \def\seename{{\emph{voir}}}% - \def\alsoname{{\emph{voir aussi}}}% + \def\seename{voir}% + \def\alsoname{voir aussi}% \def\enclname{P.~J. }% - \def\ccname{Copie \`a }% + \def\ccname{Copie {\FBagrave} }% \def\headtoname{}% - \def\proofname{D\'emonstration}% + \def\proofname{D{\FBeacute}monstration}% \def\glossaryname{Glossaire}% } % \end{macrocode} @@ -1537,7 +1887,13 @@ % If the definitions differ, |frenchb| doesn't overwrite the changes, % but prints a message in the .log file. % +% \changes{v2.4a}{2009/11/23}{\cs{PackageWarning} changed to +% \cs{FBWarning} (in case \cs{@makecaption} has been customized). +% \cs{FBWarning} is defined as \cs{PackageWarning} by default but +% can be made silent using \cs{frenchbsetup}, (suggested by MPG).} +% % \begin{macrocode} +\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}} \def\CaptionSeparator{\string:\space} \long\def\FB@makecaption#1#2{% \vskip\abovecaptionskip @@ -1553,8 +1909,9 @@ \ifx\@makecaption\STD@makecaption \global\let\@makecaption\FB@makecaption \else - \@ifundefined{@makecaption}{}% - {\PackageWarning{frenchb.ldf}% + \@ifundefined{@makecaption}% + {\let\@makecaption\undefined}% + {\FBWarning{frenchb.ldf}% {The definition of \protect\@makecaption\space has been changed,\MessageBreak frenchb will NOT customise it;\MessageBreak reported}% @@ -1563,10 +1920,10 @@ \let\FB@makecaption\relax \let\STD@makecaption\relax } -\expandafter\addto\csname extras\CurrentOption\endcsname{% +\addto\extrasfrench{% \def\CaptionSeparator{\space\textendash\space}} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \def\CaptionSeparator{\string:\space}} +\addto\noextrasfrench{% + \def\CaptionSeparator{\string:\space}} % \end{macrocode} % \end{macro} % @@ -1733,15 +2090,10 @@ % French which is correct for English but wrong for some languages % like Spanish. Pointed out by Juan Jos\'e Torrens.} % -% We need to save the value of the flag |\if@afterindent| +% We will need to save the value of the flag |\if@afterindent| % `AtBeginDocument' before eventually changing its value. % % \begin{macrocode} -\AtBeginDocument{\ifx\@afterindentfalse\@afterindenttrue - \let\@aifORI\@afterindenttrue - \else \let\@aifORI\@afterindentfalse - \fi -} \def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue \@afterindenttrue} \def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI @@ -1759,7 +2111,7 @@ % \changes{v2.0b}{2007/04/18}{Footnotes: Just do nothing % (except warning) when the bigfoot package is loaded.} % -% The |bigfoot| package deeply changes the way footnotes are +% The \file{bigfoot} package deeply changes the way footnotes are % handled. When |bigfoot| is loaded, we just warn the user that % |frenchb| will drop the customisation of footnotes. % @@ -1778,9 +2130,12 @@ % (any space typed in is removed first). This has no effect on % the layout of the footnote itself. % +% \changes{v2.4a}{2009/11/23}{\cs{PackageWarning} changed to +% \cs{FBWarning} (when bigfoot package in use).} +% % \begin{macrocode} \AtBeginDocument{\@ifpackageloaded{bigfoot}% - {\PackageWarning{frenchb.ldf}% + {\FBWarning{frenchb.ldf}% {bigfoot package in use.\MessageBreak frenchb will NOT customise footnotes;\MessageBreak reported}}% @@ -1960,13 +2315,12 @@ \csname\ifmmode M\else T\fi dots@\endcsname}% \@ifundefined{@xp}{\let\@xp\relax}{}% \@ifundefined{mdots@}{\let\Tdots@ORI\textellipsis - \let\Mdots@\mathellipsis}{}} + \let\Mdots@\mathellipsis + \let\mdots@\undefined}{}} \def\bbl@frenchdots{\let\Tdots@\FBtextellipsis} \def\bbl@nonfrenchdots{\let\Tdots@\Tdots@ORI} -\expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchdots} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchdots} +\addto\extrasfrench{\bbl@frenchdots} +\addto\noextrasfrench{\bbl@nonfrenchdots} % \end{macrocode} % \end{macro} % @@ -2025,6 +2379,8 @@ % in use. When OriginalTypewriter is set to true, frenchb behaves % as in pre-2.3 versions.} % +% \changes{v2.4a}{2009/11/23}{New option SuppressWarning.} +% % We first define a collection of conditionals with their defaults % (true or false). % @@ -2044,6 +2400,7 @@ \newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue \newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue \newif\ifFBPartNameFull \FBPartNameFulltrue +\newif\ifFBSuppressWarning \FBSuppressWarningfalse \newif\ifFBShowOptions \FBShowOptionsfalse % \end{macrocode} % @@ -2092,8 +2449,9 @@ % |\frenchbsetup|, can overrule some of the |StandardLayout| % settings. % -% |GlobalLayoutFrench| forces the layout in French and (as far as -% possible) outside French to meet the French typographic standards. +% When French is the main language, |GlobalLayoutFrench| forces the +% layout in French and (as far as possible) outside French to meet +% the French typographic standards. % % \changes{v2.3d}{2009/03/16}{Warning added to \cs{GlobalLayoutFrench} % when French is not the main language.} @@ -2132,7 +2490,8 @@ {\PackageWarning{frenchb.ldf}% {Option `GlobalLayoutFrench' skipped: \MessageBreak French is *not* - babel's last option.\MessageBreak}}% + babel's last option.\MessageBreak}% + \FBGlobalLayoutFrenchfalse}% \fi}% \define@key{FB}{ReduceListSpacing}[true]% {\csname FBReduceListSpacing#1\endcsname}% @@ -2181,6 +2540,14 @@ {\csname FBLowercaseSuperscripts#1\endcsname} \define@key{FB}{PartNameFull}[true]% {\csname FBPartNameFull#1\endcsname}% + \define@key{FB}{SuppressWarning}[true]% + {\csname FBSuppressWarning#1\endcsname + \ifFBSuppressWarning + \renewcommand{\FBWarning}[2]{\relax}% + \else + \renewcommand{\FBWarning}[2]{% + \PackageWarning{##1}{##2}}% + \fi} \define@key{FB}{ShowOptions}[true]% {\csname FBShowOptions#1\endcsname}% % \end{macrocode} @@ -2195,18 +2562,35 @@ % The quote characters typed in depend on the input encoding, % it can be single-byte (latin1, latin9, applemac,\dots) or % multi-bytes (utf-8, utf8x). We first check whether XeTeX is used -% or not, if not the package |inputenc| has to be loaded before the -% |\begin{document}| with the proper coding option, so we check if -% |\DeclareInputText| is defined. +% or not, if not the package \file{inputenc} has to be loaded before +% the |\begin{document}| with the proper coding option, so we check +% if |\DeclareInputText| is defined. +% +% \changes{v2.4c}{2010/05/23}{In \cs{ttfamilyFB}, also cancel +% automatic spaces inside French guillemets coded as characters +% (see \cs{frenchbsetup}).} +% +% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the +% tested control sequence defined as \cs{relax} when TRUE. +% Changed \cs{relax} to \cs{undefined} when testing +% \cs{XeTeXrevision}, \cs{DeclareInputText}, \cs{uc@dclc}, +% \cs{DeclareUnicodeCharacter}, \cs{mule@def} in \cs{og} and +% \cs{fg}.} +% % \begin{macrocode} \define@key{FB}{og}{% - \newcommand*{\FB@@og}{\iflanguage{french}% - {\FB@og\ignorespaces}{\guillemotleft}}% - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \AtBeginDocument{% - \@ifundefined{DeclareInputText}% + \newcommand*{\FB@@og}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@og\ignorespaces + \else\guillemotleft + \fi}% + {\guillemotleft}}% + \@ifundefined{XeTeXrevision}% + {\AtBeginDocument + {\@ifundefined{DeclareInputText}% {\PackageWarning{frenchb.ldf}% {Option `og' requires package inputenc.\MessageBreak}% + \let\DeclareInputText\undefined }% {\@ifundefined{uc@dclc}% % \end{macrocode} @@ -2216,72 +2600,100 @@ % \end{macrocode} % if |\DeclareUnicodeCharacter| is undefined, utf8 is not loaded % either, we assume 8-bit character input encoding. -% Package MULEenc.sty (from CJK) defines |\mule@def| to map +% Package \file{MULEenc.sty} (from CJK) defines |\mule@def| to map % characters to control sequences. % \begin{macrocode} {\@tempcnta`#1\relax \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{\FB@@og}}% + {\DeclareInputText{\the\@tempcnta}{\FB@@og}% + \let\mule@def\undefined}% {\mule@def{11}{{\FB@@og}}}% + \let\DeclareUnicodeCharacter\undefined }% % \end{macrocode} % utf8 loaded, use |\DeclareUnicodeCharacter|, % \begin{macrocode} {\DeclareUnicodeCharacter{00AB}{\FB@@og}}% + \let\uc@dclc\undefined }% % \end{macrocode} % utf8x loaded, use |\uc@dclc|, % \begin{macrocode} {\uc@dclc{171}{default}{\FB@@og}}% }% + }% + \let\XeTeXrevision\undefined }% % \end{macrocode} -% XeTeX in use, the following trick for defining the active quote -% character is borrowed from \file{inputenc.dtx}. +% XeTeX in use, % \begin{macrocode} - \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{\FB@@og}% - \fi + {\ifFB@xetex@punct +% \end{macrocode} +% |XeTeXinterchartokenstate| is defined, nothing to do here, see +% subsection~\ref{sec-punct}. +% \begin{macrocode} + \else +% \end{macrocode} +% then an old XeTeX in use, the following trick for defining the +% active quote character is borrowed from \file{inputenc.dtx}. +% \begin{macrocode} + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{\FB@@og}% + \fi + }% }% % \end{macrocode} % Same code for the closing quote. % \begin{macrocode} \define@key{FB}{fg}{% - \newcommand*{\FB@@fg}{\iflanguage{french}% - {\FB@fg}{\guillemotright}}% - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \AtBeginDocument{% - \@ifundefined{DeclareInputText}% + \newcommand*{\FB@@fg}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@fg + \else\guillemotright + \fi}% + {\guillemotright}}% + \@ifundefined{XeTeXrevision}% + {\AtBeginDocument + {\@ifundefined{DeclareInputText}% {\PackageWarning{frenchb.ldf}% {Option `fg' requires package inputenc.\MessageBreak}% + \let\DeclareInputText\undefined }% {\@ifundefined{uc@dclc}% {\@ifundefined{DeclareUnicodeCharacter}% {\@tempcnta`#1\relax \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{{\FB@@fg}}}% + {\DeclareInputText{\the\@tempcnta}{{\FB@@fg}}% + \let\mule@def\undefined + }% {\mule@def{27}{{\FB@@fg}}}% + \let\DeclareUnicodeCharacter\undefined + }% + {\DeclareUnicodeCharacter{00BB}{{\FB@@fg}}% }% - {\DeclareUnicodeCharacter{00BB}{{\FB@@fg}}}% + \let\uc@dclc\undefined }% {\uc@dclc{187}{default}{{\FB@@fg}}}% }% + }% + \let\XeTeXrevision\undefined + }% + {\ifFB@xetex@punct + \else + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{{\FB@@fg}}% + \fi }% - \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{{\FB@@fg}}% - \fi }% } % \end{macrocode} @@ -2326,17 +2738,27 @@ % |CompactItemize| suppresses the vertical spacing between list % items in French (done by changing |\itemize| to |\itemizeFB|). % When |GlobalLayoutFrench| is true the same is done outside French. +% +% \changes{v2.4b}{2010/04/30}{Set flag CompactItemize=false when the +% enumitem package is loaded (ensures compatibility).} +% % \begin{macrocode} + \@ifpackageloaded{enumitem}{% + \FBCompactItemizefalse + \FBWarning{frenchb.ldf}% + {Setting CompactItemize=false for compatibility\MessageBreak + with enumitem package,}}% + {}% \ifFBCompactItemize - \addto\extrasfrench{\let\itemize\itemizeFB + \addto\extrasfrench{\let\itemize\itemizeFB \let\enditemize\enditemizeFB}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench + \addto\noextrasfrench{\ifFBGlobalLayoutFrench \let\itemize\itemizeFB \let\enditemize\enditemizeFB - \else + \else \let\itemize\itemizeORI \let\enditemize\enditemizeORI - \fi}% + \fi}% \else \addto\extrasfrench{\let\itemize\itemizeORI \let\enditemize\enditemizeORI}% @@ -2365,16 +2787,18 @@ % % |IndentFirst| forces the first paragraphs of sections to be % indented just like the other ones in French. -% When |GlobalLayoutFrench| is true (the default), the same is -% done outside French except for languages that force a different -% setting. +% When |GlobalLayoutFrench| is true, the same is done outside French +% except for languages that force a different setting. +% |\bbl@nonfrenchindent| has been designed to be smart with other +% languages (like Spanish) who also indent every first paragraphs of +% sections (see section~\ref{sec-indent}). % \begin{macrocode} \ifFBIndentFirst \addto\extrasfrench{\bbl@frenchindent}% \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \bbl@frenchindent + \bbl@frenchindent \else - \bbl@nonfrenchindent + \bbl@nonfrenchindent \fi}% \else \addto\extrasfrench{\bbl@nonfrenchindent}% @@ -2415,15 +2839,15 @@ % |ThinColonSpace| changes the normal unbreakable space typeset in % French before `:' to a thin space. % \begin{macrocode} - \ifFBThinColonSpace\renewcommand*{\Fcolonspace}{\thinspace}\fi + \ifFBThinColonSpace\renewcommand*{\Fcolonspace}{\Fthinspace}\fi % \end{macrocode} % % When |true|, |ThinSpaceInFrenchNumbers| redefines |numprint.sty|'s % command |\npstylefrench| to set |\npthousandsep| to |\,| % (thinspace) instead of |~| (default) . This option has no effect -% if package |numprint.sty| is not loaded with `|autolanguage|'. -% As old versions of |numprint.sty| did not define |\npstylefrench|, -% we have to provide this command. +% if package \file{numprint.sty} is not loaded with `|autolanguage|'. +% As old versions of \file{numprint.sty} did not define +% |\npstylefrench|, we have to provide this command. % \begin{macrocode} \@ifpackageloaded{numprint}% {\ifnprt@autolanguage @@ -2492,6 +2916,7 @@ StandardLayout=true [false]\MessageBreak GlobalLayoutFrench=false [true]\MessageBreak StandardLists=true [false]\MessageBreak + IndentFirst=false [true]\MessageBreak ReduceListSpacing=false [true]\MessageBreak CompactItemize=false [true]\MessageBreak StandardItemLabels=true [false]\MessageBreak @@ -2505,7 +2930,6 @@ \protect\ding{43},... [\textendash]\MessageBreak ItemLabeliv=\textemdash, \textbullet, \protect\ding{43},... [\textendash]\MessageBreak - IndentFirst=false [true]\MessageBreak FrenchFootnotes=false [true]\MessageBreak AutoSpaceFootnotes=false [true]\MessageBreak AutoSpacePunctuation=false [true]\MessageBreak @@ -2515,6 +2939,7 @@ FrenchSuperscripts=false [true]\MessageBreak LowercaseSuperscripts=false [true]\MessageBreak PartNameFull=false [true]\MessageBreak + SuppressWarning=true [false]\MessageBreak og= <left quote character>, fg= <right quote character> \MessageBreak ********************************************* @@ -2533,15 +2958,25 @@ % % \changes{v2.1b}{2008/04/07}{Disable some commands in bookmarks.} % -% At |\begin{document}| we save again the definitions of the `list' -% and `itemize' environments and the values of labelitems so that -% all changes made in the preamble are taken into account in -% languages other than French and in French with the StandardLayout -% option. We also have to provide an |\xspace| command in case the -% |xspace.sty| package is not loaded. +% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the +% tested control sequence defined as \cs{relax} when TRUE. +% Changed \cs{relax} to \cs{undefined} when testing +% \cs{pdfstringdefDisableCommands} AtBeginDocument.} +% +% At |\begin{document}| we save again the value of |\if@afterindent| +% and definitions of the `list' and `itemize' environments and the +% values of labelitems so that all changes made in the preamble are +% taken into account in languages other than French and in French +% with the StandardLayout option. +% We also have to provide an |\xspace| command in case the +% \file{xspace.sty} package is not loaded. % % \begin{macrocode} \AtBeginDocument{% + \ifx\@afterindentfalse\@afterindenttrue + \let\@aifORI\@afterindenttrue + \else \let\@aifORI\@afterindentfalse + \fi \let\listORI\list \let\endlistORI\endlist \let\itemizeORI\itemize @@ -2573,16 +3008,38 @@ \def\fg{\space\guillemotright}% \let\bsc\textsc \let\degres\degre - }}% + }% + \let\pdfstringdefDisableCommands\undefined}% % \end{macrocode} +% % It is time to process the options set with |\frenchboptions{}|. -% Then execute either |\extrasfrench| and |\captionsfrench| or -% |\noextrasfrench| according to the current language at the -% |\begin{document}| (these three commands are updated by -% |\FBprocess@options|). +% Then we need to execute either |\extrasfrench| and +% |\captionsfrench| or |\noextrasfrench| according to the current +% language at the |\begin{document}| (these three commands have been +% updated by |\FBprocess@options|). \emph{But}, when French is the +% main language, |\extrasfrench| is executed \emph{again} now +% (French has been switched on `AtBeginDocument' some time before). +% This is harmless, except for |\bbl@frenchspacing| which will +% redefine |\bbl@nonfrenchspacing| to |\relax|, this will be +% wrong if the user switches to English. +% When French is \emph{not} the main language, |\noextrasfrench| +% executes |\bbl@nonfrenchspacing| (=|\nonfrenchspacing|), thus +% eventually overwriting a |\frenchspacing| command issued by the +% main language (German, Spanish, etc.). +% So we have to define |\bbl@nonfrenchspacing| as |\relax| here +% and restore it's meaning afterwards. +% +% \changes{v2.5a}{2010/08/15}{Define \cs{bbl@nonfrenchspacing} locally +% as \cs{relax}, otherwise the \cs{bbl@frenchspacing} command +% included in germanb.ldf is overwritten here by +% \cs{noextrasfrench}. Bug pointed out by Ulrike Fischer.} +% % \begin{macrocode} \FBprocess@options + \let\bbl@nonfrenchspacingORI\bbl@nonfrenchspacing + \let\bbl@nonfrenchspacing\relax \iflanguage{french}{\extrasfrench\captionsfrench}{\noextrasfrench}% + \let\bbl@nonfrenchspacing\bbl@nonfrenchspacingORI % \end{macrocode} % Some warnings are issued when output font encodings are not % properly set. With XeLaTeX, \file{fontspec.sty} and @@ -2591,24 +3048,25 @@ % Mind that |\encodingdefault| is defined as `long', defining % |\FBOTone| with |\newcommand*| would fail! % \begin{macrocode} - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \begingroup \newcommand{\FBOTone}{OT1}% + \@ifundefined{XeTeXrevision}% + {\begingroup \newcommand{\FBOTone}{OT1}% \ifx\encodingdefault\FBOTone \PackageWarning{frenchb.ldf}% {OT1 encoding should not be used for French. \MessageBreak Add \protect\usepackage[T1]{fontenc} to the - preamble\MessageBreak of your document,} + preamble\MessageBreak of your document,}% \fi - \endgroup - \else - \@ifundefined{DeclareUTFcharacter}% - {\PackageWarning{frenchb.ldf}% - {Add \protect\usepackage{fontspec} *and*\MessageBreak - \protect\usepackage{xunicode} to the preamble\MessageBreak - of your document,}}% - {}% - \fi + \endgroup + \let\XeTeXrevision\undefined + }% + {\@ifundefined{DeclareUTFcharacter}% + {\PackageWarning{frenchb.ldf}% + {Add \protect\usepackage{xltxtra} to the\MessageBreak + preamble of your document,}% + \let\DeclareUTFcharacter\undefined}% + {}% + }% } % \end{macrocode} % diff --git a/Master/texmf-dist/source/generic/babel/frenchb.ins b/Master/texmf-dist/source/generic/babel/frenchb.ins index 5bd27edfee3..6bf6dd29fb8 100644 --- a/Master/texmf-dist/source/generic/babel/frenchb.ins +++ b/Master/texmf-dist/source/generic/babel/frenchb.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1989-2009 Johannes L. Braams and any individual authors +%% Copyright 1989-2011 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% %% This file is part of the Babel system. @@ -53,7 +53,7 @@ \declarepreamble\mainpreamble This is a generated file. -Copyright 1989-2009 Johannes L. Braams and any individual authors +Copyright 1989-2011 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. This file was generated from file(s) of the Babel system. @@ -87,7 +87,7 @@ extension .ins) which are part of the distribution. \declarepreamble\fdpreamble This is a generated file. -Copyright 1989-2009 Johannes L. Braams and any individual authors +Copyright 1989-2011 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. This file was generated from file(s) of the Babel system. diff --git a/Master/texmf-dist/source/generic/babel/spanish.dtx b/Master/texmf-dist/source/generic/babel/spanish.dtx index dce24b98abf..a1661503d1e 100644 --- a/Master/texmf-dist/source/generic/babel/spanish.dtx +++ b/Master/texmf-dist/source/generic/babel/spanish.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2009 Johannes L. Braams and any individual authors +% Copyright 1989-2011 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. @@ -27,15 +27,15 @@ % extension .ins) which are part of the distribution. % \fi % \ProvidesFile{spanish.dtx} -% [2009/01/02 v5.0h Spanish support from the babel system] +% [2011/10/06 v5.0k Spanish support from the babel system] %\iffalse %% File `spanish.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2008 +%% Copyright (C) 1989 - 2011 %% by Johannes Braams, TeXniek % %% Spanish Language Definition File -%% Copyright (C) 1997 - 2009 +%% Copyright (C) 1997 - 2011 %% Javier Bezos (www.tex-tipografia.com) %% and %% CervanTeX (www.cervantex.es) @@ -49,19 +49,19 @@ % code for the Spanish language definition file. % The original version of this file was written by Javier Bezos. % The latest release is available on CTAN:/language/spanish/ +% \fi % +% \iffalse %<*filedriver> \let\ooverb\verb \documentclass[spanish,a4paper]{ltxdoc} \let\verb\ooverb -\usepackage[activeacute]{babel} +\usepackage{babel} \usepackage{hyperref} \let\meta\emph -\usepackage{pslatex} -\usepackage{mathptmx} -\usepackage{color} +\usepackage{pslatex,mathptmx,color} \usepackage[cp1252]{inputenc} \usepackage[T1]{fontenc} \newcommand\act[1]{% @@ -80,8 +80,6 @@ Se define siempre, sin depender de un grupo.} \newcommand\opp{\qquad Opción de paquete} -%\makeindex - \newcommand*\babel{\textsf{babel}} \newcommand*\file[1]{\texttt{#1}} @@ -98,7 +96,7 @@ \else \def\@decl@date{\NEWfeature{#1}}% \fi - \noindent%\hspace{-\leftmargini}% + \noindent \begin{tabular}{|l|}\hline\ignorespaces}% {\\\hline\end{tabular}\nobreak\@decl@date\par\nobreak \vspace{2.3ex}\vskip-\parskip} @@ -140,7 +138,7 @@ % \title{Estilo \textsf{spanish}\\ % para el sistema \babel.\footnote{Este % archivo está actualmente en la versión -% 5.0h con fecha 2 de enero del 2009. ^^A@# +% 5.0k con fecha 6 de octubre del 2011. ^^A@# % Esta copia del manual se compuso el~\today.}} % % \author{Javier Bezos\footnote{Por favor, envíen comentarios y @@ -152,7 +150,7 @@ % \textit{Tipografía española con \TeX.} Para información sobre % actualizaciones: http://www.cervantex.es/}} % -% \date{2 de enero del 2009} ^^A@# +% \date{6 de octubre del 2011} ^^A@# % % \maketitle % @@ -162,7 +160,7 @@ % % \begin{itemize} % \item[\textcolor{blue}{$\Rightarrow$}] Macros para -% ser usadas en el texto. +% ser usadas en el texto (generan texto o lo estructuran). % \item[\textcolor{magenta}{$\star$}] Macros de % configuración y preferencias. % \item[\textcolor{green}{$\surd$}] Grupo que @@ -175,13 +173,11 @@ % % \section{Uso de \textsf{spanish} para babel} % -% El estilo de \textsf{spanish} para babel tiene con finalidad adaptar una -% serie de elementos de los documentos de \LaTeX\ al castellano, -% tanto en las traducciones como en la tipografía. Para -% usarlo, basta con emplear la opción \textsf{spanish} al cargar babel: -%\begin{verbatim} -%\usepackage[spanish]{babel} -%\end{verbatim} +% El estilo \textsf{spanish} para babel adapta una serie de elementos +% de los documentos de \LaTeX\ al castellano, tanto en las +% traducciones como en la tipografía. Para usarlo, basta con dar +% la opción \textsf{spanish} al cargar babel: \begin{verbatim} +% \usepackage[spanish]{babel} \end{verbatim} % % Esto es todo lo que hace falta para conseguir que el documento tenga % un aspecto español. En caso de estar en México, véase, además, el @@ -198,7 +194,7 @@ % órdenes y entornos como: %\begin{center} %\begin{tabular}{lll} -% |enumerate| & |\roman| & |\section| \\ +% |enumerate| & |\roman| & |\section|\\ % |itemize| & |\fnsymbol| & |\subsection|\\ % |\%| & |\alph| & |\subsubsection|\\ % & |\Alph| & \\ @@ -551,7 +547,7 @@ % % Para poder usar apóstrofos como abreviaciones de acentos es % necesaria esta opción en |\usepackage|. Puede cambiarse este -% comportamiento con la orden |\es@acuteactive| en el archivo de +% comportamiento con |\es@acuteactive| en el archivo de % configuración |spanish.cfg|; en ese caso los apóstrofos se activan % siempre. % @@ -584,7 +580,7 @@ % \con |es-noshorthands|\opp % \end{decl} % -% No activa ninguna abreviación. +% No activa ninguna abreviación. % % \subsection{Coma decimal} % @@ -622,15 +618,14 @@ % \con |es-nodecimaldot|\opp % \end{decl} % -% Cancela por completo el mecanismo del punto decimal. +% Cancela el mecanismo del punto decimal. % % \subsection{División de palabras} % -% \textsf{Spanish} comprueba la -% codificación en el momento en que se usa un acento: si la -% codificación es |OT1| se toman medidas para facilitar -% la división, que pese a todo nunca será perfecta, mientras que con -% |T1| se accede directamente al carácter correspondiente. +% \textsf{Spanish} comprueba la codificación en el momento en que se +% usa un acento: si es |OT1|, se toman medidas para facilitar la +% división, que pese a todo nunca será perfecta, y si es |T1|, +% se accede directamente al carácter correspondiente. % % \begin{decl} % \txt |"- "= "~|\act{shorthands} @@ -640,12 +635,12 @@ % Para matizar la división de palabras hay cuatro posibilidades, dos % de ellas con el método de abreviaciones: % \begin{itemize} -% \item la orden |\-| es un guión opcional que no permite +% \item |\-| es un guión opcional que no permite % más divisiones, % % \item |"-| es similar pero permite más divisiones, % -% \item un |-| es un guión que no permite más divisiones ni +% \item |-| es un guión que no permite más divisiones ni % antes ni después, y % % \item |"=| es el equivalente que sí las permite,\footnote{No @@ -668,8 +663,8 @@ % éste es un comportamiento correcto.} % \end{quote} % -% La abreviación |"~| se usa cuando se quiere que el guión -% también aparezca al comienzo de la siguiente línea. Por ejemplo: +% Con la abreviación |"~|, el guión +% también aparece al comienzo de la siguiente línea. Por ejemplo: % \begin{quote}\small\begin{tabbing} % |infra"~rojo| \quad \= in\hmk fra-ro\hmk jo, pero infra-\hmk-rojo. % \end{tabbing}\end{quote} @@ -722,10 +717,8 @@ % en la línea de base y expresiones como <<am/pm>> resultan poco % estéticas. |"/| produce una barra que, de ser necesario, se baja % ligeramente. Computer Modern tiene una barra bien diseñada y no es -% posible ilustrar aquí este punto pero en todo caso se escribiría -% |am"/pm|.\footnote{En \MEA{141} se recurre a una solución que es la -% única sencilla en programas de maquetación: usar un cuerpo menor. -% Pero con \TeX{} es mucho más fácil automatizar las tareas.} +% posible ilustrar aquí este punto, pero se escribiría +% |am"/pm|. % % \begin{decl} % \txt |"y|\act{shorthand}\deact{\textit{es-noshorthands, es-sloppy}} @@ -756,7 +749,7 @@ % grandes o muy pequeños, donde los resultados son meramente % aceptables. % -% En Plain \TeX{} se ejecuta la orden |\sptextfont| para la +% En Plain \TeX{} se ejecuta |\sptextfont| para la % letra voladita, de forma que |{\bf\let\sptextfont\bf 1"o}| da el % resultado correcto (|\mit| si es para cursiva). Para usar un tipo % nuevo con |\sptext| hay que definir también las variantes @@ -764,9 +757,9 @@ % % \subsection{Espaciado} % -% Salvo excepciones, el espaciado español difiere relativamente poco -% del inglés; una de ellas es que en \textsf{spanish} |\frenchspacing| -% está activo. +% El espaciado español difiere relativamente poco del inglés, con +% alguna excepción; una de ellas es que en \textsf{spanish} +% |\frenchspacing| está activo. % % \begin{decl} % \txt |\...|\act{text}\deact{\textit{es-sloppy}} @@ -788,22 +781,21 @@ % \txt |\%|\act{text}\deact{\textit{es-minimal, es-sloppy}} % \end{decl} % -% Se añade un espacio fino antes del signo (que -% más exactamente es |\,|, con lo cual se puede "<recuperar"> con -% su opuesto |\!| si |\%| no sigue a una cifra; también se puede -% emplear |\percentsign|). +% Se añade un espacio fino antes del signo (en concreto |\,|), con +% lo cual se puede "<recuperar"> con su opuesto |\!| si |\%| no sigue +% a una cifra; también se puede emplear |\percentsign|). % % \begin{decl} % \con |\spanishplainpercent| % \end{decl} % -% Orden para que |\%| no añada el espacio fino. Puede ser útil -% en cuadros, si |\%| aparece siempre entre paréntesis. +% Orden para que |\%| no añada el espacio fino. Puede ser útil +% en cuadros, si |\%| aparece siempre entre paréntesis. % % \subsection{Fuentes} % % \begin{decl} -% \txt |\lsc|\marg{texto}\act{text}\deact{\textit{es-sloppy}} +% \txt |\lsc|\marg{texto}\act{text}\deact{\textit{es-sloppy}} % \end{decl} % % Pasa \textit{texto} a versalitas: @@ -821,36 +813,35 @@ % excepciones, como con las negritas). % % \begin{decl} -% \txt |\í|\alw +% \txt |\í|\alw % \end{decl} % -% Lo mismo que |í|. +% Lo mismo que |í|. % % \subsection{Entrecomillados} % % \begin{decl} -% \txt |\begin{quoting} ... \end{quoting}|\alw +% \txt |\begin{quoting} ... \end{quoting}|\alw % \end{decl} % -% El entorno |quoting| entrecomilla un -% texto, añadiendo comillas de seguir al comienzo de -% cada párrafo en su interior.\footnote{Se puede encontrar -% una detallada exposición de las comillas en \DTL{44 ss.} De ahí -% se ha tomado algún ejemplo.} +% El entorno |quoting| entrecomilla un texto, añadiendo comillas de +% seguir al comienzo de cada párrafo en su interior.\footnote{Se puede +% encontrar una detallada exposición de las comillas en \DTL{44 ss.} +% De ahí se ha tomado algún ejemplo.} % % \begin{decl} -% \txt |<< >>|\act{shorthands}\deact{es-noquoting, \textit{es-noshorthands, es-minimal, +% \txt |<< >>|\act{shorthands}\deact{es-noquoting, \textit{es-noshorthands, es-minimal, % es-sloppy}} % \end{decl} %\vskip-1.5pc\vskip0pt % \begin{decl} -% \txt |"` "'|\act{shorthands}\deact{\textit{es-noshorthands, es-sloppy}} +% \txt |"` "'|\act{shorthands}\deact{\textit{es-noshorthands, es-sloppy}} % \end{decl} % % También se pueden emplear las abreviaciones |<<| y |>>| (o % alternativamente |"`| y |"'|) que se limitan a llamar a |quoting|, % que por ser entorno considera sus cambios internos como locales. -% (Es decir, |<< ... >>| implica |{<< ... >>}|.) Las abreviaciones +% (Es decir, |<< ... >>| implica |{<< ... >>}|.) Las abreviaciones % |"<| y |">| continúan dando sin más los caracteres de comillas de % abrir y cerrar, respectivamente. % @@ -882,7 +873,7 @@ % está pensado para ser usado también en el texto. % % \begin{decl} -% \con |\lquoti| |\rquoti| |\lquotii| |\rquotii| |\lquotiii| +% \con |\lquoti| |\rquoti| |\lquotii| |\rquotii| |\lquotiii| % |\rquotiii| % \end{decl} % @@ -908,7 +899,7 @@ % \end{table} % % \begin{decl} -% \con |\activatequoting \deactivatequoting| +% \con |\activatequoting \deactivatequoting| % \end{decl} % % Las incompatibilidades potenciales de estas abreviaciones son @@ -946,14 +937,14 @@ % % Con \textsf{spanish} pueden seguirse varias convenciones con ayuda % de las siguientes órdenes: -% \begin{decl} \con |\accentedoperators| |\unaccentedoperators| +% \begin{decl} \con |\accentedoperators| |\unaccentedoperators| % \end{decl} % Activa o desactiva los acentos. % Por omisión se acentúan, como por ejemplo: $\lim_{x\to 0}(1/x)$ % (|$\lim_{x\to 0}(1/x)$|). % % \begin{decl} -% \con |\spacedoperators| |\unspacedoperators| +% \con |\spacedoperators| |\unspacedoperators| % \end{decl} % Activa o desactiva el espacio entre "<arc"> y la función. % Lo habitual ha sido con espacio; así pues, por omisión @@ -962,14 +953,14 @@ % También se añaden |\sen|, |\arcsen|, |\tg| y |\arctg|, % que dan las funciones respectivas. % \begin{decl} -% \con |\spanishoperators| +% \con |\spanishoperators| % \end{decl} % % Otras funciones trigonométricas se encuentran almacenadas en el % parámetro |\spanishoperators|, que inicialmente incluye cotg, -% cosec, senh y tgh. La razón por la que estas funciones se han +% cosec, senh y tgh. La razón por la que estas funciones se han % separado es porque su forma no está normalizada en el ámbito -% hispanohablante. De esta forma se puede cambiar por otras con, por +% hispanohablante. De esta forma se puede cambiar por otras con, por % ejemplo: %\begin{verbatim} % \renewcommand{\spanishoperators}{ctg arc\,ctg sh ch th} @@ -990,12 +981,12 @@ % |\begin{document}|. % % \begin{decl} -% \txt |\dotlessi|\act{math}\deact{\textit{es-sloppy}} +% \txt |\dotlessi|\act{math}\deact{\textit{es-sloppy}} % \end{decl} % % La \textit{i} sin punto también es accesible directamente en modo -% matemático con la orden |\dotlessi|, de forma que se puede escribir -% |\acute{\dotlessi}|. Por ejemplo, +% matemático con |\dotlessi|, de forma que se puede escribir +% |\acute{\dotlessi}|. Por ejemplo, % |$V_{\mathbf{cr\acute{\dotlessi}t}}$| da % $V_{\mathbf{cr\acute{\dotlessi}t}}$. % @@ -1008,14 +999,14 @@ % las funciones de \textsf{spanish}. % % \begin{decl} -% \con |es-minimal|\opp +% \con |es-minimal|\opp % \end{decl} % % Anula la mayoría de los cambios pero deja unas cuantas utilidades % que pueden resultar utiles en el momento de escribir el texto. % % \begin{decl} -% \con |es-sloppy|\opp +% \con |es-sloppy|\opp % \end{decl} % % Anula, además, todas las ligaduras sin excepción, la eñe en listas y los @@ -1034,7 +1025,7 @@ % en órdenes como |\savebox|, |\title|, |\newtheorem|, etc. % % La orden |\selectspanish| permite activar \textsf{spanish} con sus -% extensiones y abreviaciones antes de +% extensiones y abreviaciones antes de % |\begin{document}|.\footnote{Algunos detalles, que % apenas afectan a \textsf{spanish}, siguen sin activarse hasta el % comienzo del documento.} @@ -1065,16 +1056,16 @@ % \end{decl} % % La primera cambia \textit{cuadro} a \textit{tabla} y desactiva tanto -% |<||<>||>| como el punto decimal. También cambia -% |"`| y |"'| a ``\,`\,"<\,">\,'\,''. Es decir, aparte de +% |<||<>||>| como el punto decimal. También cambia +% |"`| y |"'| a ``\,`\,"<\,">\,'\,''. Es decir, aparte de % redefinir las comillas, equivale a: % a: %\begin{verbatim} %\usepackage[spanish,es-nodecimaldot,es-tabla,es-noquoting]{spanish} %\end{verbatim} % La segunda es similar -% pero sí activa el punto decimal. (Obsérvese que no van precedidas -% de |es-|.) +% pero sí activa el punto decimal. (Obsérvese que no van precedidas +% de |es-|.) % % Probablemente, esta opción también sea apropiada en algunos % países de América Central y del Sur. @@ -1092,7 +1083,7 @@ % Activa las abreviaciones con apóstrofos, sin que sea % necesario incluir |activeacute| como opción en |\usepackage|. % -% \begin{decl} \con |\es@enumerate{<leveli>}|% +% \begin{decl} \con |\es@enumerate{<leveli>}|% % |{<levelii>}{<leveliii>}{<leveliv>}|\alw % \end{decl} % Cambia los valores preestablecidos por \textsf{spanish} para @@ -1102,7 +1093,7 @@ % |a| (minúscula \emph{cursiva}\,\footnote{La letra es cursiva % pero no los signos que le puedan seguir. Más bien debería % decirse destacada, ya que se usa |\string\emph|. -% Véase \DTL{11}.}), |A| (versal), +% Véase \DTL{11}.}), |A| (versal), % |i| (romano \emph{versalita}), |I| (romano versal) o % finalmente |o| (ordinal\,\footnote{Lo normal es no añadir ningún % signo tras ordinal.}). @@ -1114,7 +1105,7 @@ % \es@enumerate{1.}{a)}{1)}{a$'$)} %\end{verbatim} % -% \begin{decl} \con |\es@itemize{<leveli>}|% +% \begin{decl} \con |\es@itemize{<leveli>}|% % |{<levelii>}{<leveliii>}{<leveliv>}|\alw % \end{decl} % Lo mismo para |itemize|, sólo que los argumentos se @@ -1144,10 +1135,10 @@ % % \subsection{Pasar opciones desde un paquete o clase} % -% \begin{decl} \con |\spanishoptions| +% \begin{decl} \con |\spanishoptions| % \end{decl} % -% Como |\PassOptionsToPackage| añade opciones al comienzo y +% Como |\PassOptionsToPackage| añade opciones al comienzo y % las opciones específicas de \textsf{spanish} han de ir al final, definiendo % esta macro se puede controlar el comportamiento de \textsf{spanish} antes % de su carga. @@ -1157,7 +1148,7 @@ % Las adaptaciones se encuentran organizadas en varios grupos, a los % que corresponden sendas macros: % |\textspanish|, |\mathspanish|, -% |\shorthandsspanish|, |\datespanish| y |\captionsspanish|. Pueden +% |\shorthandsspanish|, |\datespanish| y |\captionsspanish|. Pueden % cancelarse con: %\begin{verbatim} % \renewcommand\textspanish{} @@ -1173,7 +1164,7 @@ % Se incluyen: traducciones, casi todas las abreviaciones, coma % decimal, utilidades para división de palabras, ordinales en una % versión simplificada (y no muy elegante), funciones matemáticas, -% |\í| y espaciado. La selección de la lengua es inmediata al +% |\í| y espaciado. La selección de la lengua es inmediata al % cargar el archivo. % % En cambio no están disponibles: entrecomillados, @@ -1191,8 +1182,8 @@ % % En la versión 5 el grupo \textsf{layout} no se retrasa a % |\begin{document}|, como en la 4, sino que se ejecuta -% inmediatamente. Esto permite cambios en el preámbulo con otros -% paquetes. Con ello, además, |\selectspanish*| carece de utilidad. +% inmediatamente. Esto permite cambios en el preámbulo con otros +% paquetes. Con ello, además, |\selectspanish*| carece de utilidad. % La opción de paquete |es-delayed| restaura el comportamiento % anterior, por si hubiera alguna incompatibilidad. % @@ -1628,7 +1619,7 @@ % \fi % \endgroup % -%\StopEventually{} +% \StopEventually{} % %^^A ========== End of manual =============== % @@ -1649,21 +1640,29 @@ % subscripts with lim and the like; problem with \cs{roman} and hyperref.} % \changes{spanish~5.0h}{2009/01/02}{Removed unnecessary \cs{string}s % with two acutes. Added es-noenumerate, es-noitemize.} +% \changes{spanish~5.0i}{2009/05/11}{romanidx not working. Some \cs{es@roman} +% replaced with \cs{es@scroman}.} +% \changes{spanish~5.0j}{2010/01/06}{Overdot \cs{.} was not robust.} +% \changes{spanish~5.0j}{2010/04/04}{Colon in saved catcodes, because +% babel doesn't restore it after french} +% \changes{spanish~5.0k}{2011/08/08}{When saving ., check if +% \cs{mathcode} is 8000} % -% This file provides definition for both \LaTeXe{} and non -% \LaTeXe{} formats. +% This file is for both \LaTeXe{} and Plain formats. % % \begin{macrocode} %<*code> \ProvidesLanguage{spanish.ldf} - [2009/01/02 v5.0h Spanish support from the babel system] + [2011/10/06 v5.0k Spanish support from the babel system] \LdfInit{spanish}\captionsspanish \edef\es@savedcatcodes{% \catcode`\noexpand\~=\the\catcode`\~ - \catcode`\noexpand\"=\the\catcode`\"} + \catcode`\noexpand\"=\the\catcode`\" + \catcode`\noexpand\:=\the\catcode`\:} \catcode`\~=\active \catcode`\"=12 +\catcode`\:=12 \ifx\undefined\l@spanish \@nopatterns{Spanish} @@ -1671,6 +1670,7 @@ \fi \def\es@sdef#1{\babel@save#1\def#1} +\def\es@sDRC#1{\babel@save#1\DeclareRobustCommand*#1} \@ifundefined{documentclass} {\let\ifes@latex\iffalse} @@ -1821,7 +1821,7 @@ % \end{macrocode} % % Instead of joining all the extras directly in |\extrasspanish|, -% we subdivide them in three further groups. +% we subdivide them in three further groups. % % \begin{macrocode} \def\extrasspanish{% @@ -1845,7 +1845,7 @@ \fi \csname es@restorelist\endcsname} -\addto\textspanish{\es@sdef\sptext{\protect\es@sptext}} +\addto\textspanish{\es@sDRC\sptext{\es@sptext}} \def\es@orddot{.} % \end{macrocode} @@ -1891,15 +1891,14 @@ \fi % \end{macrocode} % -% Now, lowercase small caps. First, we test if there are actual -% small caps for the current font. If not, faked small caps are -% used. The \cs{selectfont} in \cs{es@lsc} could seem redundant, -% but it's not. An intermediate macro allows using an optimized -% variant for Roman numerals. +% Lowercase small caps. We check if the current font has small +% caps. If not, we fakes them. \cs{selectfont} in \cs{es@lsc} +% seems redundant, but it's not. An intermediate macro allows +% using an optimized variant for Roman numerals. % % \begin{macrocode} \ifes@latex - \addto\textspanish{\es@sdef\lsc{\protect\es@lsc}} + \addto\textspanish{\es@sDRC\lsc{\es@lsc}} \def\es@lsc{\es@xlsc\MakeUppercase\MakeLowercase} \def\es@xlsc#1#2#3{% \leavevmode @@ -1919,9 +1918,8 @@ \fi % \end{macrocode} % -% The |quoting| environment. This part is not available -% in Plain. Overriding the default |\everypar| is -% a bit tricky. +% The |quoting| environment (not available in Plain). Overriding +% the default |\everypar| is a bit tricky. % % \begin{macrocode} \newif\ifes@listquot @@ -1955,7 +1953,7 @@ \let\es@quotcont\@empty % \end{macrocode} % -% If there is a margin par inside quoting, we don't add the +% If there is a marginpar inside quoting, we don't add the % quotes. |\es@listqout| stores the quotes to be used before % item labels; otherwise they could appear after the labels. % @@ -1967,32 +1965,31 @@ \fi % \end{macrocode} % -% Now, the |\frenchspacing|, followed by |\...| and |\%|. +% |\frenchspacing|, |\...| and |\%|. % % \begin{macrocode} \addto\textspanish{\bbl@frenchspacing} \addto\notextspanish{\bbl@nonfrenchspacing} \addto\textspanish{% \let\es@save@dot\.% - \es@sdef\.{\@ifnextchar.{\es@dots}{\es@save@dot}}} + \es@sDRC\.{\@ifnextchar.{\es@dots}{\es@save@dot}}} \def\es@dots..{\leavevmode\hbox{...}\spacefactor\@M} \def\es@sppercent{\unskip\textormath{$\m@th\,$}{\,}} \def\spanishplainpercent{\let\es@sppercent\@empty} \addto\textspanish{% \let\percentsign\%% - \es@sdef\%{\es@sppercent\percentsign{}}} + \es@sDRC\%{\es@sppercent\percentsign{}}} % \end{macrocode} % -% We follow with the math group. It's not easy to add an accent to -% an operator. The difficulty is that we must avoid using text -% (that is, |\mbox|) because we have no control on font and size, -% and at time we should access |\i|, which is a text command -% forbidden in math mode. |\dotlessi| must be converted to -% uppercase if necessary in \LaTeXe. There are two versions, -% depending on the format. +% Now, the math group. It's not easy to add an accent to an +% operator, because we must avoid using text (that is, |\mbox|) +% where we have no control on font and size, and at the same time +% we need |\i|, which is forbidden in math mode. |\dotlessi| must +% be converted to uppercase if necessary in \LaTeXe. There are two +% versions, depending on the format. % % \begin{macrocode} -\addto\mathspanish{\es@sdef\dotlessi{\protect\es@dotlessi}} +\addto\mathspanish{\es@sDRC\dotlessi{\es@dotlessi}} \let\nomathspanish\relax \ifes@latex @@ -2038,9 +2035,9 @@ \fi % \end{macrocode} % -% The operators are stored in |\es@operators|, which in turn is +% Operators are stored in |\es@operators|, which is % included in the math group. Since |\operator@font| is -% defined in \LaTeXe{} only, we defined in the plain variant. +% defined in \LaTeXe{} only, we define it in the plain variant. % % \begin{macrocode} \def\es@operators{% @@ -2110,14 +2107,14 @@ \fi} \def\es@use@shorthand{% - \ifx\thepage\relax + \if@safe@actives \bbl@afterelse \string \else \bbl@afterfi - {\ifx\protect\@unexpandable@protect + {\ifx\thepage\relax \bbl@afterelse - \noexpand + \string \else \bbl@afterfi \es@use@sh @@ -2125,9 +2122,9 @@ \fi} \def\es@use@sh#1{% - \if@safe@actives + \ifx\protect\@unexpandable@protect \bbl@afterelse - \string#1% + \noexpand#1% \else% \bbl@afterfi \textormath @@ -2147,7 +2144,8 @@ \def\es@spdeactivate#1{% \if.#1% - \mathcode`\.=\es@period@code + \mathcode`\.=\es@period@math\relax + \begingroup\lccode`\~=`\.\lowercase{\endgroup\let~\es@period@code}% \else \begingroup \lccode`\~=`#1 @@ -2299,21 +2297,32 @@ \decimalcomma \es@ifoption{nodecimaldot}{} {\AtBeginDocument{\bgroup\@fileswfalse}% - \es@set@shorthand{.}% + \begingroup\lccode`\~=`\.\lowercase{\endgroup + \let\es@period@code~% + \es@set@shorthand{.}% + \let~\es@period@code}% \AtBeginDocument{\egroup}% \@namedef{normal@char\string.}{% \@ifnextchar\egroup - {\mathchar\es@period@code\relax}% + {\es@period@code}% {\csname active@char\string.\endcsname}}% - \declare@shorthand{system}{.}{\mathchar\es@period@code\relax}% + \declare@shorthand{system}{.}{\es@period@code}% \addto\shorthandsspanish{% - \mathchardef\es@period@code\the\mathcode`\.% \babel@savevariable{\mathcode`\.}% - \mathcode`\.="8000 % + \edef\es@period@math{\the\mathcode`\.}% + \babel@save\es@period@code + \ifnum\es@period@math="8000 + \begingroup\lccode`\~=`\.\lowercase{\endgroup\let\es@period@code~}% + \else + \mathchardef\es@period@code\es@period@math\relax + \mathcode`\.="8000 % + \fi + \begingroup\lccode`\~=`\.\lowercase{\endgroup\babel@save~}% \es@activate{.}}% \def\es@a#1{\es@declare{.#1}{\es@decimal#1}}% \es@a1\es@a2\es@a3\es@a4\es@a5\es@a6\es@a7\es@a8\es@a9\es@a0} + \es@ifoption{notilde}{}{\es@set@shorthand{~}} \def\deactivatetilden{% \expandafter\let\csname spanish@sh@\string~@n@\endcsname\relax @@ -2495,7 +2504,7 @@ \def\esromanindex##1##2{##1{\uppercase{##2}}}% \def\@roman{\@Roman}}} {\def\es@romandef{% - \def\esromanindex##1##2{##1{\protect\es@roman{##2}}}% + \def\esromanindex##1##2{##1{\es@scroman{##2}}}% \def\@roman##1{\es@roman{\number##1}}% \def\es@roman##1{\es@scroman{\romannumeral##1}}% \DeclareRobustCommand\es@scroman{\es@xlsc\uppercase\@firstofone}}} @@ -2645,7 +2654,7 @@ \newif\ifes@encapsulated -\def\es@roman#1{#1} +\def\es@scroman#1{#1} \edef\es@slash{\expandafter\@gobble\string\\} \def\indexentry{% @@ -2670,7 +2679,7 @@ \lowercase{ \gdef\es@idxentry#1{% - \in@{\es@roman}{#1}% + \in@{\es@scroman}{#1}% \ifin@ \advance\es@converted\@ne \immediate\write\es@indexfile{% @@ -2746,3 +2755,4 @@ + diff --git a/Master/texmf-dist/source/generic/babel/spanish.ins b/Master/texmf-dist/source/generic/babel/spanish.ins index 73844365aed..d643bded1b1 100644 --- a/Master/texmf-dist/source/generic/babel/spanish.ins +++ b/Master/texmf-dist/source/generic/babel/spanish.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1989-2009 Johannes L. Braams and any individual authors +%% Copyright 1989-2011 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% %% This file is part of the Babel system. @@ -53,7 +53,7 @@ \declarepreamble\mainpreamble This is a generated file. -Copyright 1989-2009 Johannes L. Braams and any individual authors +Copyright 1989-2011 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. This file was generated from file(s) of the Babel system. @@ -87,7 +87,7 @@ extension .ins) which are part of the distribution. \declarepreamble\fdpreamble This is a generated file. -Copyright 1989-2009 Johannes L. Braams and any individual authors +Copyright 1989-2011 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. This file was generated from file(s) of the Babel system. diff --git a/Master/texmf-dist/source/generic/babel/tb1202.tex b/Master/texmf-dist/source/generic/babel/tb1202.tex index fbec780704e..8b8f6cd3af9 100644 --- a/Master/texmf-dist/source/generic/babel/tb1202.tex +++ b/Master/texmf-dist/source/generic/babel/tb1202.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2008 Johannes L. Braams and any individual authors +% Copyright 1989-2009 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. diff --git a/Master/texmf-dist/source/generic/babel/tb1401.tex b/Master/texmf-dist/source/generic/babel/tb1401.tex index 00373e522fa..a1f2a78d151 100644 --- a/Master/texmf-dist/source/generic/babel/tb1401.tex +++ b/Master/texmf-dist/source/generic/babel/tb1401.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2008 Johannes L. Braams and any individual authors +% Copyright 1989-2009 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. diff --git a/Master/texmf-dist/source/generic/babel/tb1604.tex b/Master/texmf-dist/source/generic/babel/tb1604.tex index 579bf65f504..f5f2b74fc4d 100644 --- a/Master/texmf-dist/source/generic/babel/tb1604.tex +++ b/Master/texmf-dist/source/generic/babel/tb1604.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1989-2008 Johannes L. Braams and any individual authors +% Copyright 1989-2009 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. diff --git a/Master/texmf-dist/tex/generic/babel/frenchb.cfg b/Master/texmf-dist/tex/generic/babel/frenchb.cfg index 4a864468b5c..f83b7ca1136 100644 --- a/Master/texmf-dist/tex/generic/babel/frenchb.cfg +++ b/Master/texmf-dist/tex/generic/babel/frenchb.cfg @@ -1,8 +1,8 @@ %% frenchb.cfg: configuration file for frenchb.ldf -%% Daniel Flipo Daniel.Flipo at univ-lille1.fr +%% Daniel Flipo daniel.flipo at free.fr %% File `frenchb.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2009 +%% Copyright (C) 1989 - 2010 %% by Johannes Braams, TeXniek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% WARNING: THIS FILE SHOULD NO LONGER BE USED %%%%%%%%% diff --git a/Master/texmf-dist/tex/generic/babel/frenchb.ldf b/Master/texmf-dist/tex/generic/babel/frenchb.ldf index 2f4d1481cf6..ebe446e025c 100644 --- a/Master/texmf-dist/tex/generic/babel/frenchb.ldf +++ b/Master/texmf-dist/tex/generic/babel/frenchb.ldf @@ -7,7 +7,7 @@ %% frenchb.dtx (with options: `code') %% This is a generated file. %% -%% Copyright 1989-2009 Johannes L. Braams and any individual authors +%% Copyright 1989-2011 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% %% This file was generated from file(s) of the Babel system. @@ -37,17 +37,17 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesLanguage{frenchb} - [2009/03/16 v2.3d French support from the babel system] + [2010/08/21 v2.5a French support from the babel system] %% File `frenchb.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2009 +%% Copyright (C) 1989 - 2010 %% by Johannes Braams, TeXniek %% Frenchb language Definition File -%% Copyright (C) 1989 - 2009 +%% Copyright (C) 1989 - 2010 %% by Johannes Braams, TeXniek %% Daniel Flipo, GUTenberg %% Please report errors to: Daniel Flipo, GUTenberg -%% Daniel.Flipo at univ-lille1.fr +%% daniel.flipo at free.fr \def\CurrentOption{french} \LdfInit\CurrentOption\datefrench \newif\ifLaTeXe @@ -98,12 +98,23 @@ \def\extrasfrenchb{\extrasfrench} \def\noextrasfrancais{\noextrasfrench} \def\noextrasfrenchb{\noextrasfrench} -\@namedef{extras\CurrentOption}{\lccode`\'=`\'} -\@namedef{noextras\CurrentOption}{\lccode`\'=0} - \expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchspacing} - \expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchspacing} +\newif\ifFBunicode +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname luatexversion\endcsname\relax +\else + \FBunicodetrue +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXrevision\endcsname\relax +\else + \FBunicodetrue +\fi +\@namedef{extras\CurrentOption}{\lccode`\'=`\' + \ifFBunicode\lccode"2019="2019\fi} +\@namedef{noextras\CurrentOption}{\lccode`\'=0 + \ifFBunicode\lccode"2019=0\fi} +\addto\extrasfrench{\bbl@frenchspacing} +\addto\noextrasfrench{\bbl@nonfrenchspacing} \long\def\STD@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1: #2}% @@ -113,18 +124,121 @@ \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi - \vskip\belowcaptionskip}% -\newif\ifFBpunct@active \FBpunct@activetrue -\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue -\ifFBpunct@active - \initiate@active@char{:} - \initiate@active@char{;} - \initiate@active@char{!} - \initiate@active@char{?} + \vskip\belowcaptionskip} +\newcommand*{\Fcolonspace}{\space} +\newcommand*{\Fthinspace}{\thinspace} +\newif\ifFB@active@punct \FB@active@puncttrue +\newif\ifFB@xetex@punct +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax +\else + \FB@xetex@puncttrue\FB@active@punctfalse +\fi +\newif\ifFBAutoSpaceGuill \FBAutoSpaceGuilltrue +\ifFB@xetex@punct + \PackageInfo{frenchb.ldf}{No need for active punctuation characters + \MessageBreak with this version of XeTeX! reported} + \@ifundefined{@for}{% + \def\@nnil{\@nil}% + \def\@empty{}% + \def\@fornoop#1\@@#2#3{}% + \long\def\@for#1:=#2\do#3{% + \expandafter\def\expandafter\@fortmp\expandafter{#2}% + \ifx\@fortmp\@empty \else + \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}% + \long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else + #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}% + \long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \expandafter\@fornoop \else + #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}% + \def\@tfor#1:={\@tf@r#1 }% + \long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else + \@tforloop#2\@nil\@nil\@@#1{#3}\fi}% + \long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \expandafter\@fornoop \else + #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}% + }{}% + \newcount\FB@interchartokenstateORI + \newXeTeXintercharclass\FB@punctthick + \newXeTeXintercharclass\FB@punctthin + \newXeTeXintercharclass\FB@punctnul + \newXeTeXintercharclass\FB@punctguilo + \newXeTeXintercharclass\FB@punctguilf + \def\FB@charclassesORI{} + \def\empty{} + \def\FB@parse#1,#2\endparse{\def\FB@class{#1}% + \def\FB@charclassesORI{#2}}% + \newcommand*{\FB@xetex@punct@french}{% + \ifx\FB@charclassesORI\empty + \FB@interchartokenstateORI=\XeTeXinterchartokenstate + \@for\FB@char:={`\:,`\;,`\!,`\?,`\[,`\(,"00AB,"00BB}\do + {\edef\FB@charclassesORI{\FB@charclassesORI% + \the\XeTeXcharclass\FB@char,}}% + \let\shorthandonORI\shorthandon + \let\shorthandoffORI\shorthandoff + \fi + \XeTeXinterchartokenstate=1 + \XeTeXcharclass `\: = \FB@punctthick + \XeTeXinterchartoks \z@ \FB@punctthick = {% + \ifhmode\FDP@colonspace\fi}% + \XeTeXinterchartoks \FB@punctguilf \FB@punctthick = {% + \FDP@colonspace}% + \XeTeXinterchartoks 255 \FB@punctthick = {% + \ifhmode\unskip\penalty\@M\Fcolonspace\fi}% + \@for\FB@char:={`\;,`\!,`\?}\do + {\XeTeXcharclass\FB@char=\FB@punctthin}% + \XeTeXinterchartoks \z@ \FB@punctthin = {% + \ifhmode\FDP@thinspace\fi}% + \XeTeXinterchartoks \FB@punctguilf \FB@punctthin = {% + \FDP@thinspace}% + \XeTeXinterchartoks 255 \FB@punctthin = {% + \ifhmode\unskip\penalty\@M\Fthinspace\fi}% + \@for\FB@char:={`\[,`\(}\do + {\XeTeXcharclass\FB@char=\FB@punctnul}% + \XeTeXinterchartoks \FB@punctnul \FB@punctthin = {}% + \XeTeXcharclass"00AB = \FB@punctguilo + \XeTeXinterchartoks \FB@punctguilo \z@ = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks \FB@punctguilo 255 = {% + \ifFBAutoSpaceGuill\FBguill@spacing\ignorespaces\fi}% + \XeTeXcharclass"00BB = \FB@punctguilf + \XeTeXinterchartoks \z@ \FB@punctguilf = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks \FB@punctthin \FB@punctguilf = {% + \ifFBAutoSpaceGuill\FBguill@spacing\fi}% + \XeTeXinterchartoks 255 \FB@punctguilf = {% + \ifFBAutoSpaceGuill\unskip\FBguill@spacing\fi}% + \def\shorthandoff##1{% + \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is + helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing + \space *inside a group* instead;\MessageBreak reported}% + }% + \def\shorthandon##1{}% + } + \newcommand*{\FB@xetex@punct@nonfrench}{% + \ifx\FB@charclassesORI\empty + \else + \@for\FB@char:={`\:,`\;,`\!,`\?,`\[,`\(,"00AB,"00BB}\do + {\expandafter\FB@parse\FB@charclassesORI\endparse + \XeTeXcharclass\FB@char=\FB@class}% + \def\FB@charclassesORI{}% + \XeTeXinterchartokenstate=\FB@interchartokenstateORI + \let\shorthandon\shorthandonORI + \let\shorthandoff\shorthandoffORI + \fi + } + \addto\extrasfrench{\FB@xetex@punct@french} + \addto\noextrasfrench{\FB@xetex@punct@nonfrench} +\fi +\ifFB@active@punct + \initiate@active@char{:}% + \initiate@active@char{;}% + \initiate@active@char{!}% + \initiate@active@char{?}% \declare@shorthand{french}{;}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi @@ -133,7 +247,7 @@ \declare@shorthand{french}{!}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi @@ -142,13 +256,12 @@ \declare@shorthand{french}{?}{% \ifhmode \ifdim\lastskip>\z@ - \unskip\penalty\@M\thinspace + \unskip\penalty\@M\Fthinspace \else \FDP@thinspace \fi \fi \string?} - \newcommand*{\Fcolonspace}{\space} \declare@shorthand{french}{:}{% \ifhmode \ifdim\lastskip>\z@ @@ -158,74 +271,88 @@ \fi \fi \string:} - \def\autospace@beforeFDP{% - \def\FDP@thinspace{\penalty\@M\thinspace}% + \declare@shorthand{system}{:}{\string:} + \declare@shorthand{system}{!}{\string!} + \declare@shorthand{system}{?}{\string?} + \declare@shorthand{system}{;}{\string;} + \addto\extrasfrench{% + \languageshorthands{french}% + \bbl@activate{:}\bbl@activate{;}% + \bbl@activate{!}\bbl@activate{?}% + } + \addto\noextrasfrench{% + \bbl@deactivate{:}\bbl@deactivate{;}% + \bbl@deactivate{!}\bbl@deactivate{?}} +\fi +\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue +\def\autospace@beforeFDP{% + \def\FDP@thinspace{\penalty\@M\Fthinspace}% \def\FDP@colonspace{\penalty\@M\Fcolonspace}} - \def\noautospace@beforeFDP{\let\FDP@thinspace\@empty +\def\noautospace@beforeFDP{\let\FDP@thinspace\@empty \let\FDP@colonspace\@empty} - \ifLaTeXe +\ifLaTeXe \def\AutoSpaceBeforeFDP{\autospace@beforeFDP \FBAutoSpacePunctuationtrue} \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP \FBAutoSpacePunctuationfalse} - \else +\else \let\AutoSpaceBeforeFDP\autospace@beforeFDP \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP - \AutoSpaceBeforeFDP \fi - \ifLaTeXe +\AutoSpaceBeforeFDP +\ifLaTeXe \let\ttfamilyORI\ttfamily \let\rmfamilyORI\rmfamily \let\sffamilyORI\sffamily \DeclareRobustCommand\ttfamilyFB{% + \FBAutoSpaceGuillfalse \noautospace@beforeFDP\ttfamilyORI}% \DeclareRobustCommand\rmfamilyFB{% + \FBAutoSpaceGuilltrue \ifFBAutoSpacePunctuation - \autospace@beforeFDP\rmfamilyORI + \autospace@beforeFDP\rmfamilyORI \else - \noautospace@beforeFDP\rmfamilyORI + \noautospace@beforeFDP\rmfamilyORI \fi}% \DeclareRobustCommand\sffamilyFB{% + \FBAutoSpaceGuilltrue \ifFBAutoSpacePunctuation - \autospace@beforeFDP\sffamilyORI + \autospace@beforeFDP\sffamilyORI \else - \noautospace@beforeFDP\sffamilyORI + \noautospace@beforeFDP\sffamilyORI \fi}% - \fi - \declare@shorthand{system}{:}{\string:} - \declare@shorthand{system}{!}{\string!} - \declare@shorthand{system}{?}{\string?} - \declare@shorthand{system}{;}{\string;} - \addto\extrasfrench{% - \languageshorthands{french}% - \bbl@activate{:}\bbl@activate{;}% - \bbl@activate{!}\bbl@activate{?}% - } - \addto\noextrasfrench{% - \bbl@deactivate{:}\bbl@deactivate{;}% - \bbl@deactivate{!}\bbl@deactivate{?}} \fi +\newcommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse + \ifFB@active@punct\shorthandoff{;:!?}\fi + \ifFB@xetex@punct\XeTeXinterchartokenstate=0\fi} \newcommand*{\og}{\@empty} \newcommand*{\fg}{\@empty} + \ifLaTeXe \else - \ifx\guillemotleft\@undefined + \ifFBunicode + \def\guillemotleft{\char"00AB} + \def\guillemotright{\char"00BB} + \def\textquotedblleft{\char"201C} + \def\textquotedblright{\char"201D} + \else \def\guillemotleft{\leavevmode\raise0.25ex \hbox{$\scriptscriptstyle\ll$}} - \fi - \ifx\guillemotright\@undefined \def\guillemotright{\raise0.25ex \hbox{$\scriptscriptstyle\gg$}} + \def\textquotedblleft{``} + \def\textquotedblright{''} \fi \let\xspace\relax \fi \newcommand*{\FBguill@spacing}{\penalty\@M\hskip.8\fontdimen2\font plus.3\fontdimen3\font minus.8\fontdimen4\font} -\DeclareRobustCommand*{\FB@og}{\leavevmode - \guillemotleft\FBguill@spacing} +\DeclareRobustCommand*{\FB@og}{\leavevmode\guillemotleft + \ifFB@xetex@punct\else\FBguill@spacing\fi} \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \FBguill@spacing\guillemotright\xspace} + \ifFB@xetex@punct\else\FBguill@spacing\fi + \guillemotright\xspace} \ifLaTeXe \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}% \renewcommand*{\fg}{\FB@fg}} @@ -233,21 +360,19 @@ \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi \textquotedblright}} \else - \def\bbl@frenchguillemets{\let\og\FB@og - \let\fg\FB@fg} - \def\bbl@nonfrenchguillemets{\def\og{``}% - \def\fg{\ifdim\lastskip>\z@\unskip\fi ''}} + \def\bbl@frenchguillemets{\let\og\FB@og + \let\fg\FB@fg} + \def\bbl@nonfrenchguillemets{\def\og{\textquotedblleft}% + \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}} \fi -\expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchguillemets} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchguillemets} +\addto\extrasfrench{\bbl@frenchguillemets} +\addto\noextrasfrench{\bbl@nonfrenchguillemets} \@namedef{date\CurrentOption}{% \def\today{{\number\day}\ifnum1=\day {\ier}\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 + \or janvier\or f{\FBeacute}vrier\or mars\or avril\or mai\or + juin\or juillet\or ao{\FBucirconflexe}t\or septembre\or + octobre\or novembre\or d{\FBeacute}cembre\fi \space \number\year}} \newif\ifFB@poorman \newdimen\FB@Mht @@ -283,12 +408,12 @@ \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup} \DeclareRobustCommand*{\fup}[1]{% \@ifundefined{realsuperscript}% - {\FB@up{#1}}% + {\FB@up{#1}\let\realsuperscript\undefined}% {\bgroup\let\fakesuperscript\FB@up@fake \realsuperscript{\FB@lc{#1}}\egroup}} - \newcommand*{\up}{\relax} + \providecommand*{\up}{\relax} \else - \newcommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} + \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} \fi \def\ieme{\up{\lowercase{e}}\xspace} \def\iemes{\up{\lowercase{es}}\xspace} @@ -336,6 +461,20 @@ \newcommand*{\tild}{\char126} \newcommand*{\boi}{$\backslash$} \fi +\newcommand*{\FBagrave}{\`a} +\newcommand*{\FBegrave}{\`e} +\newcommand*{\FBeacute}{\'e} +\newcommand*{\FBucirconflexe}{\^u} +\ifFBunicode + \ifLaTeXe + \else + \def\degre{\char"00B0} + \def\FBagrave{\char"00E0} + \def\FBegrave{\char"00E8} + \def\FBeacute{\char"00E9} + \def\FBucirconflexe{\char"00FB} + \fi +\fi \ifLaTeXe \newcommand*{\degres}{\degre} \def\Warning@degree@TSone{% @@ -344,12 +483,13 @@ \MessageBreak add \protect \usepackage{textcomp} to the preamble. \MessageBreak Degrees used}} + \ifFBunicode\global\let\Warning@degree@TSone\relax\fi \AtBeginDocument{\expandafter\ifx\csname M@TS1\endcsname\relax \DeclareRobustCommand*{\degres}{% \leavevmode\hbox to 0.3em{\hss\degre\hss}% \Warning@degree@TSone \global\let\Warning@degree@TSone\relax}% - \let\textdegree\degres + \let\textdegree\degres \else \DeclareRobustCommand*{\degres}{% \hbox{\UseTextSymbol{TS1}{\textdegree}}}% @@ -368,17 +508,16 @@ \advance\dec@mcc by -\@tempcnta \newcommand*{\DecimalMathComma}{\iflanguage{french}% {\mathcode`\,=\dec@mcc}{}% - \addto\extrasfrench{\mathcode`\,=\dec@mcc}} + \addto\extrasfrench{\mathcode`\,=\dec@mcc}} \newcommand*{\StandardMathComma}{\mathcode`\,=\std@mcc - \addto\extrasfrench{\mathcode`\,=\std@mcc}} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \mathcode`\,=\std@mcc} + \addto\extrasfrench{\mathcode`\,=\std@mcc}} +\addto\noextrasfrench{\mathcode`\,=\std@mcc} \newcommand*{\nombre}[1]{{#1}\message{% *** \noexpand\nombre no longer formats numbers\string! ***}}% \let\FBstop@here\relax -\def\FBclean@on@exit{\let\ifLaTeXe\@undefined - \let\LaTeXetrue\@undefined - \let\LaTeXefalse\@undefined} +\def\FBclean@on@exit{\let\ifLaTeXe\undefined + \let\LaTeXetrue\undefined + \let\LaTeXefalse\undefined} \ifx\magnification\@undefined \else \def\FBstop@here{\let\STD@makecaption\relax @@ -397,7 +536,7 @@ see file numprint.pdf for other options.\MessageBreak \protect\nombre\space called}% \global\let\Warning@nombre\relax - \global\let\numprint\relax + \global\let\numprint\undefined }{}% } \newcommand*{\ThinSpaceInFrenchNumbers}{% @@ -406,32 +545,36 @@ \MessageBreak Command \protect\ThinSpaceInFrenchNumbers\space is no longer\MessageBreak defined in frenchb v.2,}} \@namedef{captions\CurrentOption}{% - \def\refname{R\'ef\'erences}% - \def\abstractname{R\'esum\'e}% + \def\refname{R{\FBeacute}f{\FBeacute}rences}% + \def\abstractname{R{\FBeacute}sum{\FBeacute}}% \def\bibname{Bibliographie}% - \def\prefacename{Pr\'eface}% + \def\prefacename{Pr{\FBeacute}face}% \def\chaptername{Chapitre}% \def\appendixname{Annexe}% - \def\contentsname{Table des mati\`eres}% + \def\contentsname{Table des mati{\FBegrave}res}% \def\listfigurename{Table des figures}% \def\listtablename{Liste des tableaux}% \def\indexname{Index}% \def\figurename{{\scshape Figure}}% \def\tablename{{\scshape Table}}% \def\partname{\protect\@Fpt partie}% - \def\@Fpt{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or - Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or - Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or Onzi\`eme\or - Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or Quinzi\`eme\or - Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or Dix-neuvi\`eme\or - Vingti\`eme\fi}\space\def\thepart{}}% + \def\@Fpt{{\ifcase\value{part}\or Premi{\FBegrave}re\or + Deuxi{\FBegrave}me\or Troisi{\FBegrave}me\or + Quatri{\FBegrave}me\or Cinqui{\FBegrave}me\or + Sixi{\FBegrave}me\or Septi{\FBegrave}me\or Huiti{\FBegrave}me\or + Neuvi{\FBegrave}me\or Dixi{\FBegrave}me\or Onzi{\FBegrave}me\or + Douzi{\FBegrave}me\or Treizi{\FBegrave}me\or + Quatorzi{\FBegrave}me\or Quinzi{\FBegrave}me\or + Seizi{\FBegrave}me\or Dix-septi{\FBegrave}me\or + Dix-huiti{\FBegrave}me\or Dix-neuvi{\FBegrave}me\or + Vingti{\FBegrave}me\fi}\space\def\thepart{}}% \def\pagename{page}% - \def\seename{{\emph{voir}}}% - \def\alsoname{{\emph{voir aussi}}}% + \def\seename{voir}% + \def\alsoname{voir aussi}% \def\enclname{P.~J. }% - \def\ccname{Copie \`a }% + \def\ccname{Copie {\FBagrave} }% \def\headtoname{}% - \def\proofname{D\'emonstration}% + \def\proofname{D{\FBeacute}monstration}% \def\glossaryname{Glossaire}% } \AtBeginDocument{\let\captions@French\captionsfrench @@ -459,6 +602,7 @@ \def\extrasacadian{\extrasfrench}% \def\noextrasacadian{\noextrasfrench}% }{} +\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}} \def\CaptionSeparator{\string:\space} \long\def\FB@makecaption#1#2{% \vskip\abovecaptionskip @@ -474,8 +618,9 @@ \ifx\@makecaption\STD@makecaption \global\let\@makecaption\FB@makecaption \else - \@ifundefined{@makecaption}{}% - {\PackageWarning{frenchb.ldf}% + \@ifundefined{@makecaption}% + {\let\@makecaption\undefined}% + {\FBWarning{frenchb.ldf}% {The definition of \protect\@makecaption\space has been changed,\MessageBreak frenchb will NOT customise it;\MessageBreak reported}% @@ -484,10 +629,10 @@ \let\FB@makecaption\relax \let\STD@makecaption\relax } -\expandafter\addto\csname extras\CurrentOption\endcsname{% +\addto\extrasfrench{% \def\CaptionSeparator{\space\textendash\space}} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \def\CaptionSeparator{\string:\space}} +\addto\noextrasfrench{% + \def\CaptionSeparator{\string:\space}} \let\listORI\list \let\endlistORI\endlist \def\FB@listsettings{% @@ -559,17 +704,12 @@ \FB@enterFrenchtrue \fi } -\AtBeginDocument{\ifx\@afterindentfalse\@afterindenttrue - \let\@aifORI\@afterindenttrue - \else \let\@aifORI\@afterindentfalse - \fi -} \def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue \@afterindenttrue} \def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI \@afterindentfalse} \AtBeginDocument{\@ifpackageloaded{bigfoot}% - {\PackageWarning{frenchb.ldf}% + {\FBWarning{frenchb.ldf}% {bigfoot package in use.\MessageBreak frenchb will NOT customise footnotes;\MessageBreak reported}}% @@ -642,13 +782,12 @@ \csname\ifmmode M\else T\fi dots@\endcsname}% \@ifundefined{@xp}{\let\@xp\relax}{}% \@ifundefined{mdots@}{\let\Tdots@ORI\textellipsis - \let\Mdots@\mathellipsis}{}} + \let\Mdots@\mathellipsis + \let\mdots@\undefined}{}} \def\bbl@frenchdots{\let\Tdots@\FBtextellipsis} \def\bbl@nonfrenchdots{\let\Tdots@\Tdots@ORI} -\expandafter\addto\csname extras\CurrentOption\endcsname{% - \bbl@frenchdots} -\expandafter\addto\csname noextras\CurrentOption\endcsname{% - \bbl@nonfrenchdots} +\addto\extrasfrench{\bbl@frenchdots} +\addto\noextrasfrench{\bbl@nonfrenchdots} \newif\ifFBStandardLayout \FBStandardLayouttrue \newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchfalse \newif\ifFBReduceListSpacing \FBReduceListSpacingfalse @@ -664,6 +803,7 @@ \newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue \newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue \newif\ifFBPartNameFull \FBPartNameFulltrue +\newif\ifFBSuppressWarning \FBSuppressWarningfalse \newif\ifFBShowOptions \FBShowOptionsfalse \AtEndOfPackage{% \iflanguage{french}{\FBReduceListSpacingtrue @@ -712,7 +852,8 @@ {\PackageWarning{frenchb.ldf}% {Option `GlobalLayoutFrench' skipped: \MessageBreak French is *not* - babel's last option.\MessageBreak}}% + babel's last option.\MessageBreak}% + \FBGlobalLayoutFrenchfalse}% \fi}% \define@key{FB}{ReduceListSpacing}[true]% {\csname FBReduceListSpacing#1\endcsname}% @@ -761,69 +902,103 @@ {\csname FBLowercaseSuperscripts#1\endcsname} \define@key{FB}{PartNameFull}[true]% {\csname FBPartNameFull#1\endcsname}% + \define@key{FB}{SuppressWarning}[true]% + {\csname FBSuppressWarning#1\endcsname + \ifFBSuppressWarning + \renewcommand{\FBWarning}[2]{\relax}% + \else + \renewcommand{\FBWarning}[2]{% + \PackageWarning{##1}{##2}}% + \fi} \define@key{FB}{ShowOptions}[true]% {\csname FBShowOptions#1\endcsname}% \define@key{FB}{og}{% - \newcommand*{\FB@@og}{\iflanguage{french}% - {\FB@og\ignorespaces}{\guillemotleft}}% - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \AtBeginDocument{% - \@ifundefined{DeclareInputText}% + \newcommand*{\FB@@og}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@og\ignorespaces + \else\guillemotleft + \fi}% + {\guillemotleft}}% + \@ifundefined{XeTeXrevision}% + {\AtBeginDocument + {\@ifundefined{DeclareInputText}% {\PackageWarning{frenchb.ldf}% {Option `og' requires package inputenc.\MessageBreak}% + \let\DeclareInputText\undefined }% {\@ifundefined{uc@dclc}% {\@ifundefined{DeclareUnicodeCharacter}% {\@tempcnta`#1\relax \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{\FB@@og}}% + {\DeclareInputText{\the\@tempcnta}{\FB@@og}% + \let\mule@def\undefined}% {\mule@def{11}{{\FB@@og}}}% + \let\DeclareUnicodeCharacter\undefined }% {\DeclareUnicodeCharacter{00AB}{\FB@@og}}% + \let\uc@dclc\undefined }% {\uc@dclc{171}{default}{\FB@@og}}% }% + }% + \let\XeTeXrevision\undefined + }% + {\ifFB@xetex@punct + \else + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{\FB@@og}% + \fi }% - \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{\FB@@og}% - \fi }% \define@key{FB}{fg}{% - \newcommand*{\FB@@fg}{\iflanguage{french}% - {\FB@fg}{\guillemotright}}% - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \AtBeginDocument{% - \@ifundefined{DeclareInputText}% + \newcommand*{\FB@@fg}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@fg + \else\guillemotright + \fi}% + {\guillemotright}}% + \@ifundefined{XeTeXrevision}% + {\AtBeginDocument + {\@ifundefined{DeclareInputText}% {\PackageWarning{frenchb.ldf}% {Option `fg' requires package inputenc.\MessageBreak}% + \let\DeclareInputText\undefined }% {\@ifundefined{uc@dclc}% {\@ifundefined{DeclareUnicodeCharacter}% {\@tempcnta`#1\relax \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{{\FB@@fg}}}% + {\DeclareInputText{\the\@tempcnta}{{\FB@@fg}}% + \let\mule@def\undefined + }% {\mule@def{27}{{\FB@@fg}}}% + \let\DeclareUnicodeCharacter\undefined + }% + {\DeclareUnicodeCharacter{00BB}{{\FB@@fg}}% }% - {\DeclareUnicodeCharacter{00BB}{{\FB@@fg}}}% + \let\uc@dclc\undefined }% {\uc@dclc{187}{default}{{\FB@@fg}}}% }% + }% + \let\XeTeXrevision\undefined + }% + {\ifFB@xetex@punct + \else + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{{\FB@@fg}}% + \fi }% - \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{{\FB@@fg}}% - \fi }% } \newcommand*{\FBprocess@options}{% @@ -843,16 +1018,22 @@ \addto\noextrasfrench{\let\list\listORI \let\endlist\endlistORI}% \fi + \@ifpackageloaded{enumitem}{% + \FBCompactItemizefalse + \FBWarning{frenchb.ldf}% + {Setting CompactItemize=false for compatibility\MessageBreak + with enumitem package,}}% + {}% \ifFBCompactItemize - \addto\extrasfrench{\let\itemize\itemizeFB + \addto\extrasfrench{\let\itemize\itemizeFB \let\enditemize\enditemizeFB}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench + \addto\noextrasfrench{\ifFBGlobalLayoutFrench \let\itemize\itemizeFB \let\enditemize\enditemizeFB - \else + \else \let\itemize\itemizeORI \let\enditemize\enditemizeORI - \fi}% + \fi}% \else \addto\extrasfrench{\let\itemize\itemizeORI \let\enditemize\enditemizeORI}% @@ -873,9 +1054,9 @@ \ifFBIndentFirst \addto\extrasfrench{\bbl@frenchindent}% \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \bbl@frenchindent + \bbl@frenchindent \else - \bbl@nonfrenchindent + \bbl@nonfrenchindent \fi}% \else \addto\extrasfrench{\bbl@nonfrenchindent}% @@ -892,7 +1073,7 @@ \let\rmfamily\rmfamilyFB \let\sffamily\sffamilyFB \fi - \ifFBThinColonSpace\renewcommand*{\Fcolonspace}{\thinspace}\fi + \ifFBThinColonSpace\renewcommand*{\Fcolonspace}{\Fthinspace}\fi \@ifpackageloaded{numprint}% {\ifnprt@autolanguage \providecommand*{\npstylefrench}{}% @@ -938,6 +1119,7 @@ StandardLayout=true [false]\MessageBreak GlobalLayoutFrench=false [true]\MessageBreak StandardLists=true [false]\MessageBreak + IndentFirst=false [true]\MessageBreak ReduceListSpacing=false [true]\MessageBreak CompactItemize=false [true]\MessageBreak StandardItemLabels=true [false]\MessageBreak @@ -951,7 +1133,6 @@ \protect\ding{43},... [\textendash]\MessageBreak ItemLabeliv=\textemdash, \textbullet, \protect\ding{43},... [\textendash]\MessageBreak - IndentFirst=false [true]\MessageBreak FrenchFootnotes=false [true]\MessageBreak AutoSpaceFootnotes=false [true]\MessageBreak AutoSpacePunctuation=false [true]\MessageBreak @@ -961,6 +1142,7 @@ FrenchSuperscripts=false [true]\MessageBreak LowercaseSuperscripts=false [true]\MessageBreak PartNameFull=false [true]\MessageBreak + SuppressWarning=true [false]\MessageBreak og= <left quote character>, fg= <right quote character> \MessageBreak ********************************************* @@ -968,6 +1150,10 @@ \fi } \AtBeginDocument{% + \ifx\@afterindentfalse\@afterindenttrue + \let\@aifORI\@afterindenttrue + \else \let\@aifORI\@afterindentfalse + \fi \let\listORI\list \let\endlistORI\endlist \let\itemizeORI\itemize @@ -996,27 +1182,32 @@ \def\fg{\space\guillemotright}% \let\bsc\textsc \let\degres\degre - }}% + }% + \let\pdfstringdefDisableCommands\undefined}% \FBprocess@options + \let\bbl@nonfrenchspacingORI\bbl@nonfrenchspacing + \let\bbl@nonfrenchspacing\relax \iflanguage{french}{\extrasfrench\captionsfrench}{\noextrasfrench}% - \expandafter\ifx\csname XeTeXrevision\endcsname\relax - \begingroup \newcommand{\FBOTone}{OT1}% + \let\bbl@nonfrenchspacing\bbl@nonfrenchspacingORI + \@ifundefined{XeTeXrevision}% + {\begingroup \newcommand{\FBOTone}{OT1}% \ifx\encodingdefault\FBOTone \PackageWarning{frenchb.ldf}% {OT1 encoding should not be used for French. \MessageBreak Add \protect\usepackage[T1]{fontenc} to the - preamble\MessageBreak of your document,} + preamble\MessageBreak of your document,}% \fi - \endgroup - \else - \@ifundefined{DeclareUTFcharacter}% - {\PackageWarning{frenchb.ldf}% - {Add \protect\usepackage{fontspec} *and*\MessageBreak - \protect\usepackage{xunicode} to the preamble\MessageBreak - of your document,}}% - {}% - \fi + \endgroup + \let\XeTeXrevision\undefined + }% + {\@ifundefined{DeclareUTFcharacter}% + {\PackageWarning{frenchb.ldf}% + {Add \protect\usepackage{xltxtra} to the\MessageBreak + preamble of your document,}% + \let\DeclareUTFcharacter\undefined}% + {}% + }% } \loadlocalcfg{frenchb} \FBclean@on@exit diff --git a/Master/texmf-dist/tex/generic/babel/romanidx.sty b/Master/texmf-dist/tex/generic/babel/romanidx.sty index 851b5c370dd..a6b284f5b41 100644 --- a/Master/texmf-dist/tex/generic/babel/romanidx.sty +++ b/Master/texmf-dist/tex/generic/babel/romanidx.sty @@ -7,7 +7,7 @@ %% spanish.dtx (with options: `indexes') %% This is a generated file. %% -%% Copyright 1989-2009 Johannes L. Braams and any individual authors +%% Copyright 1989-2011 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% %% This file was generated from file(s) of the Babel system. @@ -38,10 +38,10 @@ %% extension .ins) which are part of the distribution. %% File `spanish.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2008 +%% Copyright (C) 1989 - 2011 %% by Johannes Braams, TeXniek %% Spanish Language Definition File -%% Copyright (C) 1997 - 2009 +%% Copyright (C) 1997 - 2011 %% Javier Bezos (www.tex-tipografia.com) %% and %% CervanTeX (www.cervantex.es) @@ -137,7 +137,7 @@ \newif\ifes@encapsulated -\def\es@roman#1{#1} +\def\es@scroman#1{#1} \edef\es@slash{\expandafter\@gobble\string\\} \def\indexentry{% @@ -162,7 +162,7 @@ \lowercase{ \gdef\es@idxentry#1{% - \in@{\es@roman}{#1}% + \in@{\es@scroman}{#1}% \ifin@ \advance\es@converted\@ne \immediate\write\es@indexfile{% diff --git a/Master/texmf-dist/tex/generic/babel/spanish.ldf b/Master/texmf-dist/tex/generic/babel/spanish.ldf index 1dbbe470a69..73f2493886c 100644 --- a/Master/texmf-dist/tex/generic/babel/spanish.ldf +++ b/Master/texmf-dist/tex/generic/babel/spanish.ldf @@ -7,7 +7,7 @@ %% spanish.dtx (with options: `code') %% This is a generated file. %% -%% Copyright 1989-2009 Johannes L. Braams and any individual authors +%% Copyright 1989-2011 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% %% This file was generated from file(s) of the Babel system. @@ -38,10 +38,10 @@ %% extension .ins) which are part of the distribution. %% File `spanish.dtx' %% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2008 +%% Copyright (C) 1989 - 2011 %% by Johannes Braams, TeXniek %% Spanish Language Definition File -%% Copyright (C) 1997 - 2009 +%% Copyright (C) 1997 - 2011 %% Javier Bezos (www.tex-tipografia.com) %% and %% CervanTeX (www.cervantex.es) @@ -52,14 +52,16 @@ \ProvidesLanguage{spanish.ldf} - [2009/01/02 v5.0h Spanish support from the babel system] + [2011/10/06 v5.0k Spanish support from the babel system] \LdfInit{spanish}\captionsspanish \edef\es@savedcatcodes{% \catcode`\noexpand\~=\the\catcode`\~ - \catcode`\noexpand\"=\the\catcode`\"} + \catcode`\noexpand\"=\the\catcode`\" + \catcode`\noexpand\:=\the\catcode`\:} \catcode`\~=\active \catcode`\"=12 +\catcode`\:=12 \ifx\undefined\l@spanish \@nopatterns{Spanish} @@ -67,6 +69,7 @@ \fi \def\es@sdef#1{\babel@save#1\def#1} +\def\es@sDRC#1{\babel@save#1\DeclareRobustCommand*#1} \@ifundefined{documentclass} {\let\ifes@latex\iffalse} @@ -208,7 +211,7 @@ \fi \csname es@restorelist\endcsname} -\addto\textspanish{\es@sdef\sptext{\protect\es@sptext}} +\addto\textspanish{\es@sDRC\sptext{\es@sptext}} \def\es@orddot{.} \ifes@latex @@ -244,7 +247,7 @@ \fi}} \fi \ifes@latex - \addto\textspanish{\es@sdef\lsc{\protect\es@lsc}} + \addto\textspanish{\es@sDRC\lsc{\es@lsc}} \def\es@lsc{\es@xlsc\MakeUppercase\MakeLowercase} \def\es@xlsc#1#2#3{% \leavevmode @@ -300,14 +303,14 @@ \addto\notextspanish{\bbl@nonfrenchspacing} \addto\textspanish{% \let\es@save@dot\.% - \es@sdef\.{\@ifnextchar.{\es@dots}{\es@save@dot}}} + \es@sDRC\.{\@ifnextchar.{\es@dots}{\es@save@dot}}} \def\es@dots..{\leavevmode\hbox{...}\spacefactor\@M} \def\es@sppercent{\unskip\textormath{$\m@th\,$}{\,}} \def\spanishplainpercent{\let\es@sppercent\@empty} \addto\textspanish{% \let\percentsign\%% - \es@sdef\%{\es@sppercent\percentsign{}}} -\addto\mathspanish{\es@sdef\dotlessi{\protect\es@dotlessi}} + \es@sDRC\%{\es@sppercent\percentsign{}}} +\addto\mathspanish{\es@sDRC\dotlessi{\es@dotlessi}} \let\nomathspanish\relax \ifes@latex @@ -407,14 +410,14 @@ \fi} \def\es@use@shorthand{% - \ifx\thepage\relax + \if@safe@actives \bbl@afterelse \string \else \bbl@afterfi - {\ifx\protect\@unexpandable@protect + {\ifx\thepage\relax \bbl@afterelse - \noexpand + \string \else \bbl@afterfi \es@use@sh @@ -422,9 +425,9 @@ \fi} \def\es@use@sh#1{% - \if@safe@actives + \ifx\protect\@unexpandable@protect \bbl@afterelse - \string#1% + \noexpand#1% \else% \bbl@afterfi \textormath @@ -444,7 +447,8 @@ \def\es@spdeactivate#1{% \if.#1% - \mathcode`\.=\es@period@code + \mathcode`\.=\es@period@math\relax + \begingroup\lccode`\~=`\.\lowercase{\endgroup\let~\es@period@code}% \else \begingroup \lccode`\~=`#1 @@ -569,17 +573,27 @@ \decimalcomma \es@ifoption{nodecimaldot}{} {\AtBeginDocument{\bgroup\@fileswfalse}% - \es@set@shorthand{.}% + \begingroup\lccode`\~=`\.\lowercase{\endgroup + \let\es@period@code~% + \es@set@shorthand{.}% + \let~\es@period@code}% \AtBeginDocument{\egroup}% \@namedef{normal@char\string.}{% \@ifnextchar\egroup - {\mathchar\es@period@code\relax}% + {\es@period@code}% {\csname active@char\string.\endcsname}}% - \declare@shorthand{system}{.}{\mathchar\es@period@code\relax}% + \declare@shorthand{system}{.}{\es@period@code}% \addto\shorthandsspanish{% - \mathchardef\es@period@code\the\mathcode`\.% \babel@savevariable{\mathcode`\.}% - \mathcode`\.="8000 % + \edef\es@period@math{\the\mathcode`\.}% + \babel@save\es@period@code + \ifnum\es@period@math="8000 + \begingroup\lccode`\~=`\.\lowercase{\endgroup\let\es@period@code~}% + \else + \mathchardef\es@period@code\es@period@math\relax + \mathcode`\.="8000 % + \fi + \begingroup\lccode`\~=`\.\lowercase{\endgroup\babel@save~}% \es@activate{.}}% \def\es@a#1{\es@declare{.#1}{\es@decimal#1}}% \es@a1\es@a2\es@a3\es@a4\es@a5\es@a6\es@a7\es@a8\es@a9\es@a0} @@ -740,7 +754,7 @@ \def\esromanindex##1##2{##1{\uppercase{##2}}}% \def\@roman{\@Roman}}} {\def\es@romandef{% - \def\esromanindex##1##2{##1{\protect\es@roman{##2}}}% + \def\esromanindex##1##2{##1{\es@scroman{##2}}}% \def\@roman##1{\es@roman{\number##1}}% \def\es@roman##1{\es@scroman{\romannumeral##1}}% \DeclareRobustCommand\es@scroman{\es@xlsc\uppercase\@firstofone}}} |