diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-06 22:17:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-06 22:17:47 +0000 |
commit | 97be36944506368e0d4ceba9aac964bdb09df0ab (patch) | |
tree | 7f237115f9857f5690a59db4854af8388998356d /Master/texmf-dist/tex/generic/babel/babel.sty | |
parent | 9c014b016ad2023abb6061e05ab16b2c4c3e4a3c (diff) |
babel 3.9a (at long last)
git-svn-id: svn://tug.org/texlive/trunk@30253 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.sty | 436 |
1 files changed, 273 insertions, 163 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty index add9ef8b471..1fd791be7f7 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.sty +++ b/Master/texmf-dist/tex/generic/babel/babel.sty @@ -7,6 +7,7 @@ %% babel.dtx (with options: `package') %% This is a generated file. %% +%% Copyright 2012-2013 Javier Bezos and Johannes L. Braams. %% Copyright 1989-2008 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% @@ -23,7 +24,7 @@ %% %% This work has the LPPL maintenance status "maintained". %% -%% The Current Maintainer of this work is Johannes Braams. +%% The Current Maintainer of this work is Javier Bezos. %% %% This file may only be distributed together with a copy of the Babel %% system. You may however distribute the Babel system without @@ -36,185 +37,294 @@ %% The list of derived (unpacked) files belonging to the distribution %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. -%% \NeedsTeXFormat{LaTeX2e}[2005/12/01] %% File 'babel.dtx' -%%\ProvidesFile{babel.dtx}[2008/07/08 v3.8m The Babel package] +%%\ProvidesFile{babel.dtx}[2013/04/15 v3.9e The Babel package] %% Babel package for LaTeX2e. %% Copyright (C) 1989 -- 2008 by Johannes Braams, %% TeXniek %% all rights reserved. -%% Please report errors to: J.L. Braams -%% babel at braams.xs4all.nl +%% Copyright (C) 2013 by Johannes Braams +%% TeXniek +%% by Javier Bezos +%% all rights reserved. \ProvidesPackage{babel} - [2008/07/08 v3.8m % + [2013/04/15 v3.9e % The Babel package] -\ifx\LdfInit\@undefined\input babel.def\relax\fi -\DeclareOption{acadian}{\input{frenchb.ldf}} -\DeclareOption{albanian}{\input{albanian.ldf}} -\DeclareOption{afrikaans}{\input{dutch.ldf}} -\DeclareOption{american}{\input{english.ldf}} -\DeclareOption{australian}{\input{english.ldf}} -\DeclareOption{austrian}{\input{germanb.ldf}} -\DeclareOption{bahasa}{\input{bahasai.ldf}} -\DeclareOption{indonesian}{\input{bahasai.ldf}} -\DeclareOption{indon}{\input{bahasai.ldf}} -\DeclareOption{bahasai}{\input{bahasai.ldf}} -\DeclareOption{malay}{\input{bahasam.ldf}} -\DeclareOption{meyalu}{\input{bahasam.ldf}} -\DeclareOption{bahasam}{\input{bahasam.ldf}} -\DeclareOption{basque}{\input{basque.ldf}} -\DeclareOption{brazil}{\input{portuges.ldf}} -\DeclareOption{brazilian}{\input{portuges.ldf}} -\DeclareOption{breton}{\input{breton.ldf}} -\DeclareOption{british}{\input{english.ldf}} -\DeclareOption{bulgarian}{\input{bulgarian.ldf}} -\DeclareOption{canadian}{\input{english.ldf}} -\DeclareOption{canadien}{\input{frenchb.ldf}} -\DeclareOption{catalan}{\input{catalan.ldf}} -\DeclareOption{croatian}{\input{croatian.ldf}} -\DeclareOption{czech}{\input{czech.ldf}} -\DeclareOption{danish}{\input{danish.ldf}} -\DeclareOption{dutch}{\input{dutch.ldf}} -\DeclareOption{english}{\input{english.ldf}} -\DeclareOption{esperanto}{\input{esperanto.ldf}} -\DeclareOption{estonian}{\input{estonian.ldf}} -\DeclareOption{finnish}{\input{finnish.ldf}} -\DeclareOption{francais}{\input{frenchb.ldf}} -\DeclareOption{frenchb}{\input{frenchb.ldf}} -\DeclareOption{french}{\input{frenchb.ldf}}% -\DeclareOption{galician}{\input{galician.ldf}} -\DeclareOption{german}{\input{germanb.ldf}} -\DeclareOption{germanb}{\input{germanb.ldf}} -\DeclareOption{greek}{\input{greek.ldf}} -\DeclareOption{polutonikogreek}{% - \input{greek.ldf}% - \languageattribute{greek}{polutoniko}} -\DeclareOption{hebrew}{% - \input{rlbabel.def}% - \input{hebrew.ldf}} -\DeclareOption{hungarian}{\input{magyar.ldf}} -\DeclareOption{icelandic}{\input{icelandic.ldf}} -\DeclareOption{interlingua}{\input{interlingua.ldf}} -\DeclareOption{irish}{\input{irish.ldf}} -\DeclareOption{italian}{\input{italian.ldf}} -\DeclareOption{latin}{\input{latin.ldf}} -\DeclareOption{lowersorbian}{\input{lsorbian.ldf}} -\DeclareOption{magyar}{\input{magyar.ldf}} -\DeclareOption{naustrian}{\input{ngermanb.ldf}} -\DeclareOption{newzealand}{\input{english.ldf}} -\DeclareOption{ngerman}{\input{ngermanb.ldf}} -\DeclareOption{norsk}{\input{norsk.ldf}} -\DeclareOption{samin}{\input{samin.ldf}} -\DeclareOption{nynorsk}{\input{norsk.ldf}} -\DeclareOption{polish}{\input{polish.ldf}} -\DeclareOption{portuges}{\input{portuges.ldf}} -\DeclareOption{portuguese}{\input{portuges.ldf}} -\DeclareOption{romanian}{\input{romanian.ldf}} -\DeclareOption{russian}{\input{russianb.ldf}} -\DeclareOption{scottish}{\input{scottish.ldf}} -\DeclareOption{serbian}{\input{serbian.ldf}} -\DeclareOption{slovak}{\input{slovak.ldf}} -\DeclareOption{slovene}{\input{slovene.ldf}} -\DeclareOption{spanish}{\input{spanish.ldf}} -\DeclareOption{swedish}{\input{swedish.ldf}} -\DeclareOption{turkish}{\input{turkish.ldf}} -\DeclareOption{ukrainian}{\input{ukraineb.ldf}} -\DeclareOption{uppersorbian}{\input{usorbian.ldf}} -\DeclareOption{welsh}{\input{welsh.ldf}} -\DeclareOption{UKenglish}{\input{english.ldf}} -\DeclareOption{USenglish}{\input{english.ldf}} -\DeclareOption*{% - \InputIfFileExists{\CurrentOption.ldf}{}{% - \PackageError{babel}{% - Language definition file \CurrentOption.ldf not found}{% - Maybe you misspelled the language option?}}% - } -\InputIfFileExists{bblopts.cfg}{% - \typeout{*************************************^^J% - * Local config file bblopts.cfg used^^J% - *}% - }{} +\@ifpackagewith{babel}{debug} + {\let\bbl@tempa\relax} + {\def\bbl@tempa{3.9e}}% +\ifx\bbl@version\bbl@tempa\else + \input switch.def\relax +\fi +\def\bbl@for#1#2#3{\@for#1:=#2\do{\ifx#1\@empty\else#3\fi}} +\def\bbl@add#1#2{% + \@ifundefined{\expandafter\@gobble\string#1}% + {\def#1{#2}}% + {\expandafter\def\expandafter#1\expandafter{#1#2}}} +\def\bbl@csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}% +\long\def\bbl@afterelse#1\else#2\fi{\fi#1} +\long\def\bbl@afterfi#1\fi{\fi#1} +\def\AfterBabelLanguage#1{% + \global\expandafter\bbl@add\csname#1.ldf-h@@k\endcsname}% +\@ifpackagewith{babel}{base}{% + \DeclareOption*{\bbl@patterns{\CurrentOption}}% + \DeclareOption{base}{}% + \ProcessOptions + \global\expandafter\let\csname opt@babel.sty\endcsname\relax + \global\expandafter\let\csname ver@babel.sty\endcsname\relax + \global\let\@ifl@ter@@\@ifl@ter + \def\@ifl@ter#1#2#3#4#5{\global\let\@ifl@ter\@ifl@ter@@}% + \endinput}{}% +\bbl@csarg\let{tempa\expandafter}\csname opt@babel.sty\endcsname +\def\bbl@tempb#1.#2{% + #1\ifx\@empty#2\else,\bbl@afterfi\bbl@tempb#2\fi}% +\def\bbl@tempd#1.#2\@nnil{% + \ifx\@empty#2% + \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}% + \else + \in@{=}{#1}\ifin@ + \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.#2}% + \else + \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}% + \bbl@csarg\edef{mod@#1}{\bbl@tempb#2}% + \fi + \fi} +\let\bbl@tempc\@empty +\bbl@for\bbl@tempa\bbl@tempa{% + \expandafter\bbl@tempd\bbl@tempa.\@empty\@nnil} +\expandafter\let\csname opt@babel.sty\endcsname\bbl@tempc \DeclareOption{activeacute}{} \DeclareOption{activegrave}{} \DeclareOption{KeepShorthandsActive}{} +\DeclareOption{debug}{} +\DeclareOption{noconfigs}{} +\DeclareOption{showlanguages}{} +\DeclareOption{shorthands=off}{\bbl@tempa shorthands=\bbl@tempa} +\DeclareOption{strings}{\def\bbl@opt@strings{\BabelStringsDefault}} +\DeclareOption{strings=encoded}{\let\bbl@opt@strings\relax} +\DeclareOption{safe=none}{\let\bbl@opt@safe\@empty} +\DeclareOption{safe=bib}{\def\bbl@opt@safe{B}} +\DeclareOption{safe=ref}{\def\bbl@opt@safe{R}} +\DeclareOption{math=active}{} +\DeclareOption{math=normal}{\def\bbl@mathnormal{\noexpand\textormath}} +\def\BabelStringsDefault{generic} +\let\bbl@opt@shorthands\@nnil +\let\bbl@opt@config\@nnil +\let\bbl@opt@main\@nnil +\let\bbl@opt@strings\@nnil +\let\bbl@opt@headfoot\@nnil +\def\bbl@tempa#1=#2\bbl@tempa{% + \expandafter\ifx\csname bbl@opt@#1\endcsname\@nnil + \expandafter\edef\csname bbl@opt@#1\endcsname{#2}% + \else + \bbl@error{% + Bad option `#1=#2'. Either you have misspelled the\\% + key or there is a previous setting of `#1'}{% + Valid keys are `shorthands', `config', `strings', `main',\\% + `headfoot', `safe', `math'} + \fi} +\let\bbl@language@opts\@empty +\DeclareOption*{% + \@expandtwoargs\in@{\string=}{\CurrentOption}% + \ifin@ + \expandafter\bbl@tempa\CurrentOption\bbl@tempa + \else + \edef\bbl@language@opts{% + \ifx\bbl@language@opts\@empty\else\bbl@language@opts,\fi + \CurrentOption}% + \fi} \ProcessOptions* +\def\bbl@sh@string#1{% + \ifx#1\@empty\else + \ifx#1t\string~% + \else\ifx#1c\string,% + \else\string#1% + \fi\fi + \expandafter\bbl@sh@string + \fi} +\ifx\bbl@opt@shorthands\@nnil + \def\bbl@ifshorthand#1#2#3{#2}% +\else\ifx\bbl@opt@shorthands\@empty + \def\bbl@ifshorthand#1#2#3{#3}% +\else + \def\bbl@ifshorthand#1{% + \@expandtwoargs\in@{\string#1}{\bbl@opt@shorthands}% + \ifin@ + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + \edef\bbl@opt@shorthands{% + \expandafter\bbl@sh@string\bbl@opt@shorthands\@empty}% + + \bbl@ifshorthand{'}% + {\PassOptionsToPackage{activeacute}{babel}}{} + \bbl@ifshorthand{`}% + {\PassOptionsToPackage{activegrave}{babel}}{} +\fi\fi +\ifx\bbl@opt@headfoot\@nnil\else + \g@addto@macro\@resetactivechars{% + \set@typeset@protect + \expandafter\select@language@x\expandafter{\bbl@opt@headfoot}% + \let\protect\noexpand} +\fi +\@ifundefined{bbl@opt@safe}{\def\bbl@opt@safe{BR}}{} +\ifx\bbl@opt@main\@nnil\else + \edef\bbl@language@opts{% + \ifx\bbl@language@opts\@empty\else\bbl@language@opts,\fi + \bbl@opt@main} +\fi +\ifx\bbl@languages\@undefined\else + \begingroup + \catcode`\^^I=12 + \@ifpackagewith{babel}{showlanguages}{% + \begingroup + \def\bbl@elt#1#2#3#4{\wlog{#2^^I#1^^I#3^^I#4}}% + \wlog{<*languages>}% + \bbl@languages + \wlog{</languages>}% + \endgroup}{} + \endgroup + \def\bbl@elt#1#2#3#4{% + \ifnum#2=\z@ + \gdef\bbl@nulllanguage{#1}% + \def\bbl@elt##1##2##3##4{}% + \fi}% + \bbl@languages +\fi +\let\bbl@afterlang\relax +\let\BabelModifiers\relax +\let\bbl@loaded\@empty +\def\bbl@load@language#1{% + \InputIfFileExists{#1.ldf}% + {\edef\bbl@loaded{\CurrentOption + \ifx\bbl@loaded\@empty\else,\bbl@loaded\fi}% + \expandafter\let\expandafter\bbl@afterlang + \csname\CurrentOption.ldf-h@@k\endcsname + \expandafter\let\expandafter\BabelModifiers + \csname bbl@mod@\CurrentOption\endcsname}% + {\bbl@error{% + Unknow option `\CurrentOption'. Either you misspelled it\\% + or the language definition file \CurrentOption.ldf was not found}{% + Valid options are: shorthands=..., KeepShorthandsActive,\\% + activeacute, activegrave, noconfigs, safe=, main=, math=\\% + headfoot=, strings=, config=, or a language name.}}} +\DeclareOption{acadian}{\bbl@load@language{frenchb}} +\DeclareOption{afrikaans}{\bbl@load@language{dutch}} +\DeclareOption{american}{\bbl@load@language{english}} +\DeclareOption{australian}{\bbl@load@language{english}} +\DeclareOption{austrian}{\bbl@load@language{germanb}} +\DeclareOption{bahasa}{\bbl@load@language{bahasai}} +\DeclareOption{bahasai}{\bbl@load@language{bahasai}} +\DeclareOption{bahasam}{\bbl@load@language{bahasam}} +\DeclareOption{brazil}{\bbl@load@language{portuges}} +\DeclareOption{brazilian}{\bbl@load@language{portuges}} +\DeclareOption{british}{\bbl@load@language{english}} +\DeclareOption{canadian}{\bbl@load@language{english}} +\DeclareOption{canadien}{\bbl@load@language{frenchb}} +\DeclareOption{francais}{\bbl@load@language{frenchb}} +\DeclareOption{french}{\bbl@load@language{frenchb}}% +\DeclareOption{german}{\bbl@load@language{germanb}} +\DeclareOption{hebrew}{% + \input{rlbabel.def}% + \bbl@load@language{hebrew}} +\DeclareOption{hungarian}{\bbl@load@language{magyar}} +\DeclareOption{indon}{\bbl@load@language{bahasai}} +\DeclareOption{indonesian}{\bbl@load@language{bahasai}} +\DeclareOption{lowersorbian}{\bbl@load@language{lsorbian}} +\DeclareOption{malay}{\bbl@load@language{bahasam}} +\DeclareOption{meyalu}{\bbl@load@language{bahasam}} +\DeclareOption{naustrian}{\bbl@load@language{ngermanb}} +\DeclareOption{newzealand}{\bbl@load@language{english}} +\DeclareOption{ngerman}{\bbl@load@language{ngermanb}} +\DeclareOption{nynorsk}{\bbl@load@language{norsk}} +\DeclareOption{polutonikogreek}{% + \bbl@load@language{greek}% + \languageattribute{greek}{polutoniko}} +\DeclareOption{portuguese}{\bbl@load@language{portuges}} +\DeclareOption{russian}{\bbl@load@language{russianb}} +\DeclareOption{UKenglish}{\bbl@load@language{english}} +\DeclareOption{ukrainian}{\bbl@load@language{ukraineb}} +\DeclareOption{uppersorbian}{\bbl@load@language{usorbian}} +\DeclareOption{USenglish}{\bbl@load@language{english}} +\ifx\bbl@opt@config\@nnil + \@ifpackagewith{babel}{noconfigs}{}% + {\InputIfFileExists{bblopts.cfg}% + {\typeout{*************************************^^J% + * Local config file bblopts.cfg used^^J% + *}}% + {}}% +\else + \InputIfFileExists{\bbl@opt@config.cfg}% + {\typeout{*************************************^^J% + * Local config file \bbl@opt@config.cfg used^^J% + *}}% + {\bbl@error{% + Local config file `\bbl@opt@config.cfg' not found}{% + Perhaps you misspelled it.}}% +\fi +\bbl@for\bbl@tempa\bbl@language@opts{% + \@ifundefined{ds@\bbl@tempa}% + {\edef\bbl@tempb{% + \noexpand\DeclareOption + {\bbl@tempa}% + {\noexpand\bbl@load@language{\bbl@tempa}}}% + \bbl@tempb}% + \@empty} +\bbl@for\bbl@tempa\@classoptionslist{% + \@ifundefined{ds@\bbl@tempa}% + {\IfFileExists{\bbl@tempa.ldf}% + {\edef\bbl@tempb{% + \noexpand\DeclareOption + {\bbl@tempa}% + {\noexpand\bbl@load@language{\bbl@tempa}}}% + \bbl@tempb}% + \@empty}% + \@empty} +\ifx\bbl@opt@main\@nnil\else + \expandafter + \let\expandafter\bbl@loadmain\csname ds@\bbl@opt@main\endcsname + \DeclareOption{\bbl@opt@main}{} +\fi +\def\AfterBabelLanguage#1{% + \bbl@ifsamestring\CurrentOption{#1}{\global\bbl@add\bbl@afterlang}{}} +\DeclareOption*{} +\ProcessOptions* +\ifx\bbl@opt@main\@nnil + \edef\bbl@tempa{\@classoptionslist,\bbl@language@opts} + \let\bbl@tempc\@empty + \bbl@for\bbl@tempb\bbl@tempa{% + \@expandtwoargs\in@{,\bbl@tempb,}{,\bbl@loaded,}% + \ifin@\edef\bbl@tempc{\bbl@tempb}\fi} + \def\bbl@tempa#1,#2\@nnil{\def\bbl@tempb{#1}} + \expandafter\bbl@tempa\bbl@loaded,\@nnil + \ifx\bbl@tempb\bbl@tempc\else + \bbl@warning{% + Last declared language option is `\bbl@tempc,\\% + but the last processed one was `\bbl@tempb'.\\% + The main language cannot be set as both a global\\% + and a package option. Use `main=\bbl@tempc' as\\% + option. Reported}% + \fi +\else + \DeclareOption{\bbl@opt@main}{\bbl@loadmain} + \ExecuteOptions{\bbl@opt@main} + \DeclareOption*{} + \ProcessOptions* +\fi +\def\AfterBabelLanguage{% + \bbl@error + {Too late for \string\AfterBabelLanguage}% + {Languages have been loaded, so I can do nothing}} \ifx\bbl@main@language\@undefined - \PackageError{babel}{% + \bbl@error{% You haven't specified a language option}{% - You need to specify a language, either as a global - option\MessageBreak + You need to specify a language, either as a global option\\% or as an optional argument to the \string\usepackage\space - command; \MessageBreak + command;\\% You shouldn't try to proceed from here, type x to quit.} - \input{babel.def} \fi -\def\substitutefontfamily#1#2#3{% - \lowercase{\immediate\openout15=#1#2.fd\relax}% - \immediate\write15{% - \string\ProvidesFile{#1#2.fd}% - [\the\year/\two@digits{\the\month}/\two@digits{\the\day} - \space generated font description file]^^J - \string\DeclareFontFamily{#1}{#2}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J - }% - \closeout15 - } -\@onlypreamble\substitutefontfamily -\AtBeginDocument{% - \@ifpackageloaded{ifthen}{% - \bbl@redefine@long\ifthenelse#1#2#3{% - \let\bbl@tempa\pageref - \let\pageref\org@pageref - \@safe@activestrue - \org@ifthenelse{#1}{% - \let\pageref\bbl@tempa - \@safe@activesfalse - #2}{% - \let\pageref\bbl@tempa - \@safe@activesfalse - #3}% - }% - }{}% - } -\AtBeginDocument{% - \@ifpackageloaded{varioref}{% - \bbl@redefine\@@vpageref#1[#2]#3{% - \@safe@activestrue - \org@@@vpageref{#1}[#2]{#3}% - \@safe@activesfalse}% - \bbl@redefine\vrefpagenum#1#2{% - \@safe@activestrue - \org@vrefpagenum{#1}{#2}% - \@safe@activesfalse}% - \expandafter\def\csname Ref \endcsname#1{% - \protected@edef\@tempa{\org@ref{#1}}\expandafter\MakeUppercase\@tempa} - }{}% - } -\AtBeginDocument{% - \@ifpackageloaded{hhline}% - {\expandafter\ifx\csname normal@char\string:\endcsname\relax - \else - \makeatletter - \def\@currname{hhline}\input{hhline.sty}\makeatother - \fi}% - {}} -\AtBeginDocument{% - \@ifundefined{pdfstringdefDisableCommands}% - {}% - {\pdfstringdefDisableCommands{% - \languageshorthands{system}}% - }% -} -\DeclareRobustCommand{\FOREIGNLANGUAGE}[1]{% - \lowercase{\foreignlanguage{#1}}} %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z |