[latex3-commits] [git/LaTeX3-latex3-latex2e] utf-8-protected: bump helpers/german.sty from 2.5b to experimental 2.5f (ctan has had 2.5e since 1998) (a0b9baef)
David Carlisle
d.p.carlisle at gmail.com
Sun Feb 20 19:16:06 CET 2022
Repository : https://github.com/latex3/latex2e
On branch : utf-8-protected
Link : https://github.com/latex3/latex2e/commit/a0b9baef0a197a22a57cc88dfaa25cbcf3997bdd
>---------------------------------------------------------------
commit a0b9baef0a197a22a57cc88dfaa25cbcf3997bdd
Author: David Carlisle <d.p.carlisle at gmail.com>
Date: Sun Feb 20 18:16:06 2022 +0000
bump helpers/german.sty from 2.5b to experimental 2.5f (ctan has had 2.5e since 1998)
>---------------------------------------------------------------
a0b9baef0a197a22a57cc88dfaa25cbcf3997bdd
base/testfiles/helpers/german.sty | 394 ++++++++++++++++++++++----------------
1 file changed, 227 insertions(+), 167 deletions(-)
diff --git a/base/testfiles/helpers/german.sty b/base/testfiles/helpers/german.sty
index f30b5c4a..7fa727e1 100644
--- a/base/testfiles/helpers/german.sty
+++ b/base/testfiles/helpers/german.sty
@@ -1,85 +1,84 @@
%%
-%% This is file `german.sty', generated
-%% on <1995/1/20> with the docstrip utility (2.2i).
+%% This is file `german.sty',
+%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% german.dtx
+%% german.dtx (with options: `old')
%%
-%% This file is part of the GERMAN.STY package,
-%% a PACKAGE for writing german texts with
-%% plainTeX or LaTeX version 2e/2.09.
+%% This file is part of the `german' collection,
+%% providing German language support for
+%% plain TeX or LaTeX version 2e/2.09.
%%
-%% -- Copyright 1995 by B.Raichle and DANTE e.V. All rights reserved. --
+%% ----------- Copyright (C) 1998, 1999 by B.Raichle ----------
+%% ------------------- All rights reserved. -------------------
%% Maintained by Bernd Raichle (Uni Stuttgart),
%% using ideas by H.Partl (TU Wien, Uni.f.Bodenkultur Wien)
%% and many other people.
%%
%%
-%% Copying of this file is authorized only if either
-%% (1) you make absolutely no changes to your copy, including name, or
-%% (2) if you do make changes, you name it something other than
-%% german.dtx, german.sty, german.tex, or german.doc.
-%% This restriction helps ensure that all styles developed for
-%% DANTE e.V. (the users group of german speaking TeX users)
-%% remain identical.
+%% IMPORTANT NOTICE:
%%
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for some nominal charge for
-%% copying etc.
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
%%
-%% Error Reports in case of UNCHANGED versions to
%%
-%% Bernd Raichle
-%% Stettener Str. 73
-%% 73732 Esslingen
-%% Federal Republic of Germany
-%% Email: raichle at Informatik.Uni-Stuttgart.DE
+%% Error Reports (in case of UNCHANGED versions) should be sent to:
%%
-%% or
-%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
-%% Koordinator ``german.sty''
-%% Postfach 10 18 40
-%% 69008 Heidelberg
-%% Federal Republic of Germany
-%% Email: german at dante.de
+%% Bernd Raichle <raichle at Informatik.Uni-Stuttgart.DE>
%%
-%%
-%% This is GERMAN.DTX/GERMAN.STY, Version 2.5b, 20. Jan 1995
-%%
-%% Copyright (C) 1987-1990 by H.Partl
-%% Copyright (C) 1991-1995 by B.Raichle and DANTE e.V.
-%% All rights reserved.
-%%
-%% Please read the documentation file `germdoc.tex' for more
-%% information of how to use this macro file and how to install
-%% the pattern files necessary for german hyphenation.
-%%
-\expandafter\ifx\csname grmn at VersionNo\endcsname\relax \else
-\ifdim \number\grmn at VersionNo < 9502\relax
- \mathchardef\grmn at VersionNo=9502\relax % 2/95 = v2.5b
+\expandafter\ifx\csname grmn\string @VersionNo\endcsname\relax
\else
- \germanTeX
- \expandafter\expandafter\expandafter\endinput%
-\fi\fi
-\message{Package `german', Version 2.5b of 95/01/20.}
+ \ifnum\number\csname grmn\string @VersionNo\endcsname<9806\relax
+ \else \germanTeX \expandafter\expandafter\expandafter\endinput
+ \fi\fi
+\expandafter\mathchardef\csname grmn\string @VersionNo\endcsname
+=9806\relax % = v2.5f
+\message{v2.5f 1998-07-08}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
- \ProvidesPackage{german}[1995/01/20 v2.5b %
- Package for writing german texts (br)]
+ \ProvidesPackage{german}[1998/07/08 v2.5f %
+ Support for writing german texts (br)]
\fi
\chardef\atcode=\catcode`\@
\catcode`\@=11 % \makeatletter
\expandafter\ifx\csname @ifundefined\endcsname\relax
\def\@ifundefined#1{%
\expandafter\ifx\csname #1\endcsname\relax
- \expandafter\grmn at first\else\expandafter\grmn at second\fi}
+ \expandafter\grmn at dqfirst\else\expandafter\grmn at dqsecond\fi}
\fi
\def\grmn at dqfirst#1#2{#1}
\def\grmn at dqsecond#1#2{#2}
\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax \else
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+\@ifundefined{SS}{\def\SS{SS}}{}
+\else
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ProvideTextCommandDefault\endcsname\relax
+ \immediate\write17{}
+ \immediate\write17{%
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
+ \immediate\write17{%
+!! Dies ist eine zu alte LaTeX2e-Version, die nicht}
+ \immediate\write17{%
+!! alle fuer german/ngerman notwendigen Deklarationen}
+ \immediate\write17{%
+!! zur Verfuegung stellt. Dennoch koennen Sie diese}
+ \immediate\write17{%
+!! Pakete, eventuell mit kleinen Fehlern, verwenden.}
+ \immediate\write17{!!}
+ \immediate\write17{%
+!! Bitte installieren Sie eine neuere LaTeX2e-Version,}
+ \immediate\write17{%
+!! da zukuenftige Versionen der Pakete diese}
+ \immediate\write17{%
+!! LaTeX2e-Version nicht mehr unterstuetzen werden!}
+ \immediate\write17{%
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
+ \immediate\write17{}
+\fi
\@ifundefined{UseTextSymbol}{%
\def\UseTextSymbol#1#2{{\fontencoding{#1}\selectfont #2}}
}{}
@@ -106,9 +105,16 @@
\expandafter\def\csname\expandafter\string\csname
#2\endcsname\string#1-\string#3\endcsname##1##2{#4}}%
}{}
+\@ifundefined{OT1\string\ss}{%
+ \wlog{german: Re-declaration of \string\ss\space for OT1!}%
+ \DeclareTextSymbol{\ss}{OT1}{25}}{}
+\@ifundefined{OT1\string\i}{%
+ \wlog{german: Re-declaration of \string\i\space for OT1!}%
+ \DeclareTextSymbol{\i}{OT1}{16}}{}
\ProvideTextCommandDefault{\"}{\UseTextAccent{OT1}{\"}}
\ProvideTextCommandDefault{\ss}{\UseTextSymbol{OT1}\ss}
\ProvideTextCommandDefault{\i}{\UseTextSymbol{OT1}\i}
+\ProvideTextCommandDefault{\SS}{SS}
\@ifundefined{textquotedblleft}{%
\ProvideTextCommandDefault{\textquotedblleft}{%
\UseTextSymbol{OT1}\textquotedblleft}%
@@ -128,30 +134,24 @@
\DeclareTextSymbol{\textquoteleft}{OT1}{`\`}%
\DeclareTextSymbol{\textquoteleft}{T1}{`\`}%
}{}
-\@ifundefined{textquoteright}{
+\@ifundefined{textquoteright}{%
\ProvideTextCommandDefault{\textquoteright}{%
\UseTextSymbol{OT1}\textquoteright}%
\DeclareTextSymbol{\textquoteright}{OT1}{`\'}%
\DeclareTextSymbol{\textquoteright}{T1}{`\'}%
}{}
\@ifundefined{quotesinglbase}{%
- \DeclareTextSymbol{\quotesinglbase}{T1}{13}%
-}{}
+ \DeclareTextSymbol{\quotesinglbase}{T1}{13}}{}
\@ifundefined{quotedblbase}{%
- \DeclareTextSymbol{\quotedblbase}{T1}{18}%
-}{}
+ \DeclareTextSymbol{\quotedblbase}{T1}{18}}{}
\@ifundefined{guillemotleft}{%
- \DeclareTextSymbol{\guillemotleft}{T1}{19}%
-}{}
+ \DeclareTextSymbol{\guillemotleft}{T1}{19}}{}
\@ifundefined{guillemotright}{%
- \DeclareTextSymbol{\guillemotright}{T1}{20}%
-}{}
+ \DeclareTextSymbol{\guillemotright}{T1}{20}}{}
\@ifundefined{guilsinglleft}{%
- \DeclareTextSymbol{\guilsinglleft}{T1}{14}%
-}{}
+ \DeclareTextSymbol{\guilsinglleft}{T1}{14}}{}
\@ifundefined{guilsinglright}{%
- \DeclareTextSymbol{\guilsinglright}{T1}{15}%
-}{}
+ \DeclareTextSymbol{\guilsinglright}{T1}{15}}{}
\fi
\expandafter\let\expandafter\protect\csname protect\endcsname
\def\allowhyphens{\penalty\@M \hskip\z at skip}
@@ -163,7 +163,7 @@
\def\save at sf@q#1{{\ifhmode
\edef\@SF{\spacefactor\the\spacefactor}\else
\let\@SF\empty \fi \leavevmode #1\@SF}}
-\expandafter\ifx\csname grmn at U@D\endcsname\relax
+\expandafter\ifx\csname grmnU at D\endcsname\relax
\csname newdimen\endcsname\grmnU at D
\fi
\def\newumlaut#1{{\grmnU at D 1ex%
@@ -180,9 +180,8 @@
\def\mdqoff{\catcode`\"12\relax}
\begingroup \mdqoff
\def\x{\endgroup
- \def\@UMLAUT{\"}%
\def\@MATHUMLAUT{\ddot}% = \mathaccent"707F
- \def\@SS{\mathchar"7019 }% TODO: correct?
+ \def\@MATHss{\mathord{\mathchar"7019}}% TODO: correct?
\def\dq{"}}% TODO: or \textquotedbl?
\x
\begingroup
@@ -202,79 +201,109 @@
\def\ck{\penalty\@M\discretionary{k-}{}{c}k\allowhyphens}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
-\def\@glqq{\save at sf@q{\set at low@box{''\/}\box\z@
- \kern-.04em\allowhyphens}}
-\def\glqq{\protect\@glqq}
-\def\@grqq{\save at sf@q{\kern-.07em``\kern.07em}}% ('')
-\def\grqq{\protect\@grqq}
-\def\@glq{\save at sf@q{\set at low@box{'\/}\box\z@
- \kern-.04em\allowhyphens}}
-\def\glq{\protect\@glq}
-\def\@grq{\save at sf@q{\kern-.0125em`\kern.07em}}
-\def\grq{\protect\@grq}
-\def\@flqq{\relax\ifmmode \ll \else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle \ll $}\allowhyphens}\fi}
-\def\flqq{\protect\@flqq}
-\def\@frqq{\relax\ifmmode \gg \else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle \gg $}\allowhyphens}\fi}
-\def\frqq{\protect\@frqq}
-\def\@flq{\relax\ifmmode <\else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle <$}\allowhyphens}\fi}
-\def\flq{\protect\@flq}
-\def\@frq{\relax\ifmmode >\else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle >$}\allowhyphens}\fi}
-\def\frq{\protect\@frq}
+\expandafter\def\csname glqq \endcsname{%
+ \save at sf@q{\set at low@box{''\/}\box\z@\kern-.04em\allowhyphens}}
+\edef\glqq{\noexpand\protect
+ \expandafter\noexpand\csname glqq \endcsname}
+\let\@glqq=\glqq
+\expandafter\def\csname grqq \endcsname{%
+ \save at sf@q{\kern-.07em``\kern.07em}}% ('')
+\edef\grqq{\noexpand\protect
+ \expandafter\noexpand\csname grqq \endcsname}
+\let\@grqq=\grqq
+\expandafter\def\csname glq \endcsname{%
+ \save at sf@q{\set at low@box{'\/}\box\z@\kern-.04em\allowhyphens}}
+\edef\glq{\noexpand\protect
+ \expandafter\noexpand\csname glq \endcsname}
+\let\@glq=\glq
+\expandafter\def\csname grq\endcsname{%
+ \save at sf@q{\kern-.0125em`\kern.07em}}
+\edef\grq{\noexpand\protect
+ \expandafter\noexpand\csname grq \endcsname}
+\let\@grq=\grq
+\expandafter\def\csname flqq \endcsname{%
+ \relax\ifmmode \mathrel{\ll}\else \save at sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle \ll $}%
+ \allowhyphens}\fi}
+\edef\flqq{\noexpand\protect
+ \expandafter\noexpand\csname flqq \endcsname}
+\let\@flqq=\flqq
+\expandafter\def\csname frqq \endcsname{%
+ \relax\ifmmode \mathrel{\gg}\else \save at sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle \gg $}%
+ \allowhyphens}\fi}
+\edef\frqq{\noexpand\protect
+ \expandafter\noexpand\csname frqq \endcsname}
+\let\@frqq=\frqq
+\expandafter\def\csname flq \endcsname{%
+ \relax\ifmmode <\else \save at sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle <$}\allowhyphens}\fi}
+\edef\flq{\noexpand\protect
+ \expandafter\noexpand\csname flq \endcsname}
+\let\@flq=\flq
+\expandafter\def\csname frq \endcsname{%
+ \relax\ifmmode >\else \save at sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle >$}\allowhyphens}\fi}
+\edef\frq{\noexpand\protect
+ \expandafter\noexpand\csname frq \endcsname}
+\let\@frq=\frq
\else
\DeclareRobustCommand{\glqq}{%
- \ifmmode\mbox{\quotedblbase}\else\quotedblbase\fi}
+ \ifmmode\hbox{\quotedblbase}\else\quotedblbase\fi}
\ProvideTextCommandDefault{\quotedblbase}{%
\UseTextSymbol{OT1}\quotedblbase}
\ProvideTextCommand{\quotedblbase}{OT1}{%
\save at sf@q{\set at low@box{\textquotedblright\/}\box\z@
\kern-.04em\allowhyphens}}
-\DeclareRobustCommand{\grqq}{%
+\ProvideTextCommand{\grqq}{T1}{\textquotedblleft}
+\ProvideTextCommand{\grqq}{OT1}{%
\save at sf@q{\kern-.07em%
- \ifmmode\mbox{\textquotedblleft}\else\textquotedblleft\fi
+ \ifmmode\hbox{\textquotedblleft}\else\textquotedblleft\fi
\kern.07em\relax}}
+\ProvideTextCommandDefault{\grqq}{\UseTextSymbol{OT1}\grqq}
\DeclareRobustCommand{\glq}{%
- \ifmmode\mbox{\quotesinglbase}\else\quotesinglbase\fi}
+ \ifmmode\hbox{\quotesinglbase}\else\quotesinglbase\fi}
\ProvideTextCommandDefault{\quotesinglbase}{%
\UseTextSymbol{OT1}\quotesinglbase}
\ProvideTextCommand{\quotesinglbase}{OT1}{%
\save at sf@q{\set at low@box{\textquoteright\/}\box\z@
\kern-.04em\allowhyphens}}
-\DeclareRobustCommand{\grq}{%
+\ProvideTextCommand{\grq}{T1}{\textquoteleft}
+\ProvideTextCommand{\grq}{OT1}{%
\save at sf@q{\kern-.0125em%
- \ifmmode\mbox{\textquoteleft}\else\textquoteleft\fi
+ \ifmmode\hbox{\textquoteleft}\else\textquoteleft\fi
\kern.07em\relax}}
+\ProvideTextCommandDefault{\grq}{\UseTextSymbol{OT1}\grq}
\DeclareRobustCommand{\flqq}{%
- \ifmmode\mbox{\guillemotleft}\else\guillemotleft\fi}
+ \ifmmode\mathrel{\hbox{\guillemotleft}}\else\guillemotleft\fi}
\ProvideTextCommandDefault{\guillemotleft}{%
\UseTextSymbol{OT1}\guillemotleft}
\ProvideTextCommand{\guillemotleft}{OT1}{%
\ifmmode \ll \else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle \ll $}\allowhyphens}\fi}
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle \ll $}%
+ \allowhyphens}\fi}
\DeclareRobustCommand{\frqq}{%
- \ifmmode\mbox{\guillemotright}\else\guillemotright\fi}
+ \ifmmode\mathrel{\hbox{\guillemotright}}\else\guillemotright\fi}
\ProvideTextCommandDefault{\guillemotright}{%
\UseTextSymbol{OT1}\guillemotright}
\ProvideTextCommand{\guillemotright}{OT1}{%
\ifmmode \gg \else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle \gg $}\allowhyphens}\fi}
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle \gg $}%
+ \allowhyphens}\fi}
\DeclareRobustCommand{\flq}{%
- \ifmmode\mbox{\guilsinglleft}\else\guilsinglleft\fi}
+ \ifmmode\mathbin{\hbox{\guilsinglleft}}\else\guilsinglleft\fi}
\ProvideTextCommandDefault{\guilsinglleft}{%
\UseTextSymbol{OT1}\guilsinglleft}
\ProvideTextCommand{\guilsinglleft}{OT1}{%
\ifmmode <\else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle <$}\allowhyphens}\fi}
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle <$}\allowhyphens}\fi}
\DeclareRobustCommand{\frq}{%
- \ifmmode\mbox{\guilsinglright}\else\guilsinglright\fi}
+ \ifmmode\mathbin{\hbox{\guilsinglright}}\else\guilsinglright\fi}
\ProvideTextCommandDefault{\guilsinglright}{%
\UseTextSymbol{OT1}\guilsinglright}
\ProvideTextCommand{\guilsinglright}{OT1}{%
\ifmmode >\else \save at sf@q{\penalty\@M
- \raise .2ex\hbox{$\scriptscriptstyle >$}\allowhyphens}\fi}
+ \raise .27ex\hbox{$\m at th\scriptscriptstyle >$}\allowhyphens}\fi}
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
@@ -311,19 +340,19 @@
\fi
\fi
\def\dqwarninglevel#1{\chardef\grmn at dqwarninglevel=#1\relax}
-\dqwarninglevel{1}
+ \dqwarninglevel{1}
\expandafter\ifx\csname on at line\endcsname\relax
- \ifx\inputlineno\undefined \let\on at line\@empty
+ \ifx\inputlineno\undefined \def\on at line{}%
\else
- \ifnum\inputlineno<\z@ \let\on at line\@empty
- \else \def\on at line{ on input line \the\inputlineno}
+ \ifnum\inputlineno<\z@ \def\on at line{}%
+ \else \def\on at line{ on input line \the\inputlineno}%
\fi\fi\fi
\def\grmn at dq@error#1{%
\errhelp{Use `` for a simple double quote character.}%
\errmessage{german: The command \dq\string#1 is undefined}}
\def\grmn at dq@warning#1{%
- \immediate\write\sixt@@n{german: %
- \dq\string#1 is possibly wrong\on at line.}}
+ \immediate\write\sixt@@n
+ {german: \dq\string#1 is possibly wrong\on at line.}}
\def\grmn at dq@macro#1#2{%
\expandafter#1\csname @grmn@@\string #2dq\endcsname}
\def\def at dqmacro#1#2#3{%
@@ -335,7 +364,7 @@
\grmn at dq@macro\noexpand{#1}\grmn at dq@macro\noexpand{#2}}%
\x}
\def\grmn at dqredefcheck#1{}
-\def\@active at dq#1{%
+\protected\def\@active at dq#1{%
\grmn at dq@macro\ifx{#1}\relax
\ifnum\grmn at dqwarninglevel>\z@ \grmn at dq@error{#1}\fi
\expandafter\grmn@@normal at dq
@@ -353,7 +382,7 @@
\begingroup
\catcode`\(=1\lccode`\(=`\{\catcode`\{=12
\catcode`\)=2\lccode`\)=`\}\catcode`\}=12
- \catcode`\ =11\relax% <= do not delete these and the
+ \catcode`\ =11\relax% <= do not delete this and the
\lowercase(\endgroup% <=== following percent characters!
\def\grmn@@@active at dq#1(%
\expandafter\grmn@@@@active at dq\expandafter{\string#1})%
@@ -367,7 +396,7 @@
\def\dq at prtct #1{#2}(\string\dq at prtct{\string#2})%
\def\active at dq #1{#2}(\grmn at active@@dq(#2))%
)%
-\def\active at dq#1#{\grmn at active@@dq}%
+\def\active at dq#1#{\@active at dq}%
\def\grmn at active@@dq#1{%
\csname grmn at dq\ifmmode second\else first\fi
\expandafter\expandafter\expandafter\expandafter
@@ -379,24 +408,29 @@
\let at dqmacro{A}{0}\let at dqmacro{B}{0}\let at dqmacro{C}{0}
\let at dqmacro{D}{0}\let at dqmacro{E}{0}\let at dqmacro{F}{0}
\def at dqmacro{}{\dq{}}{\dq{}}
-\def at dqmacro{a}{\@UMLAUT a}{\@MATHUMLAUT a}
-\def at dqmacro{o}{\@UMLAUT o}{\@MATHUMLAUT o}
-\def at dqmacro{u}{\@UMLAUT u}{\@MATHUMLAUT u}
-\def at dqmacro{A}{\@UMLAUT A}{\@MATHUMLAUT A}
-\def at dqmacro{O}{\@UMLAUT O}{\@MATHUMLAUT O}
-\def at dqmacro{U}{\@UMLAUT U}{\@MATHUMLAUT U}
-\def at dqmacro{s}{\ss{}}{\@SS{}}
-\def at dqmacro{S}{SS}{SS}
+\def at dqmacro{a}{\"a}{\@MATHUMLAUT a}
+\def at dqmacro{o}{\"o}{\@MATHUMLAUT o}
+\def at dqmacro{u}{\"u}{\@MATHUMLAUT u}
+\def at dqmacro{A}{\"A}{\@MATHUMLAUT A}
+\def at dqmacro{O}{\"O}{\@MATHUMLAUT O}
+\def at dqmacro{U}{\"U}{\@MATHUMLAUT U}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+ \def at dqmacro{s}{\ss{}}{\@MATHss}
+\else
+ \def at dqmacro{s}{\ss}{\@MATHss}
+\fi
+\def at dqmacro{S}{\SS}{\SS}
\let at dqmacro{z}{s}
\def at dqmacro{Z}{SZ}{SZ}
\def at dqmacro{e}{\highumlaut e}{\@MATHUMLAUT e}
\def at dqmacro{E}{\highumlaut E}{\@MATHUMLAUT E}
\def at dqmacro{i}{\highumlaut{\i}}{\@MATHUMLAUT\imath}
\def at dqmacro{I}{\highumlaut I}{\@MATHUMLAUT I}
-\def at dqmacro{`}{\glqq{}}{\glqq{}}
-\def at dqmacro{'}{\grqq{}}{\grqq{}}
-\def at dqmacro{<}{\flqq{}}{\flqq{}}
-\def at dqmacro{>}{\frqq{}}{\frqq{}}
+\def at dqmacro{`}{\glqq}{\glqq}
+\def at dqmacro{'}{\grqq}{\grqq}
+\def at dqmacro{<}{\flqq}{\flqq}
+\def at dqmacro{>}{\frqq}{\frqq}
\def at dqmacro{-}{\penalty\@M\-\allowhyphens}%
{\penalty\@M\-\allowhyphens}
\def at dqmacro{|}{\penalty\@M\discretionary{-}{}{\kern.03em}%
@@ -410,8 +444,6 @@
\discretionary{#2-}{}{#1}\allowhyphens}
\def at dqmacro{c}{\grmn at dqdisc ck}{c}
\def at dqmacro{C}{\grmn at dqdisc CK}{C}
-\def at dqmacro{f}{\grmn at dqdisc f{ff}}{f}
-\def at dqmacro{F}{\grmn at dqdisc F{FF}}{F}
\def at dqmacro{l}{\grmn at dqdisc l{ll}}{l}
\def at dqmacro{L}{\grmn at dqdisc L{LL}}{L}
\def at dqmacro{m}{\grmn at dqdisc m{mm}}{m}
@@ -424,9 +456,18 @@
\def at dqmacro{R}{\grmn at dqdisc R{RR}}{R}
\def at dqmacro{t}{\grmn at dqdisc t{tt}}{t}
\def at dqmacro{T}{\grmn at dqdisc T{TT}}{T}
+\def at dqmacro{F}{\grmn at dqdisc F{FF}}{F}
+\def at dqmacro{f}{\grmn at dqdiscff}{f}
+\def\grmn at dqdiscff{\penalty\@M
+ \ifnum\grmn at dqwarninglevel>\@ne \grmn at dq@warning f\fi
+ \afterassignment\grmn at dqinsertff \let\grmn at dqnextff= }
+\def\grmn at dqinsertff{%
+ \if f\grmn at dqnextff
+ \expandafter\grmn at dqfirst\else\expandafter\grmn at dqsecond\fi
+ {\relax\discretionary{ff-}{f}{ff}\allowhyphens}{f\grmn at dqnextff}}
+\let\grmn at dqnextff=f
\def\grmn at dqredefcheck#1{%
- \immediate\write\m at ne{german: %
- \grmn at dq@macro\ifx{#1}\relax \else re\fi
+ \wlog{german: \grmn at dq@macro\ifx{#1}\relax \else re\fi
defining dq-command for `\string#1'\on at line.}}%
\def\month at german{\ifcase\month \or
Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
@@ -514,73 +555,92 @@
\def\pagename{Page}%
\def\seename{voir}%
\def\alsoname{voir aussi}}%
-\let\extrasUSenglish=\relax \let\noextrasUSenglish=\empty
-\let\extrasenglish=\relax \let\noextrasenglish=\empty
-\def\extrasgerman{\frenchspacing
+\def\extrasUSenglish{}
+\let\noextrasUSenglish=\extrasUSenglish
+\let\extrasenglish=\extrasUSenglish
+\let\noextrasenglish=\extrasenglish
+\def\extrasgerman{\frenchspacing \uchyph\@ne
\lefthyphenmin\tw@ \righthyphenmin\tw@}
\def\noextrasgerman{%
\ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi
- \lefthyphenmin\the\lefthyphenmin \righthyphenmin\the\righthyphenmin}
+ \uchyph\the\uchyph\relax
+ \lefthyphenmin\the\lefthyphenmin
+ \righthyphenmin\the\righthyphenmin}
\let\extrasaustrian=\extrasgerman
\let\noextrasaustrian=\noextrasgerman
\def\extrasfrench{\frenchspacing}
\def\noextrasfrench{%
\ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi}
-\expandafter\ifx\csname l at USenglish\endcsname\relax
- \expandafter\ifx\csname l at english\endcsname\relax
- \chardef\l at USenglish=255
- \else
- \chardef\l at USenglish=\l at english
- \fi
+\@ifundefined{l at USenglish}{%
+ \@ifundefined{l at english}{\chardef\l at USenglish=255 }%
+ {\chardef\l at USenglish=\l at english}%
\wlog{german -- \string\language\space number for USenglish %
- undefined, default \number\l at USenglish\space used.}
-\fi
-\expandafter\ifx\csname l at english\endcsname\relax
+ undefined, default \number\l at USenglish\space used.}%
+}{}
+\@ifundefined{l at english}{%
\chardef\l at english=\l at USenglish
\wlog{german -- \string\language\space number for UKenglish %
- undefined, default \number\l at english\space used.}
-\fi
-\expandafter\ifx\csname l at german\endcsname\relax
- \expandafter\ifx\csname l at austrian\endcsname\relax
- \chardef\l at german=255
+ undefined, default \number\l at english\space used.}%
+}{}
+\@ifundefined{l at german}{%
+ \@ifundefined{l at austrian}{%
+ \chardef\l at german=255 %
\message{german -- \string\language\space number for German %
- undefined, default \number\l at german\space used,}
- \message{german -- Please read \string"germdoc.tex\string" how %
- to install hyphenation patterns.}
- \else
+ undefined, default \number\l at german\space used,}%
+ \message{german -- Please read \string"gerdoc.tex\string" how %
+ to install hyphenation patterns.}%
+ }{%
\chardef\l at german=\l at austrian
\wlog{german -- \string\language\space number for German %
- undefined, default \number\l at german\space used.}
- \fi
-\fi
-\expandafter\ifx\csname l at austrian\endcsname\relax
+ undefined, default \number\l at german\space used.}%
+ }%
+}{}
+\@ifundefined{l at austrian}{%
\chardef\l at austrian=\l at german
\wlog{german -- \string\language\space number for Austrian %
- undefined, default \number\l at austrian\space used.}
-\fi
-\expandafter\ifx\csname l at french\endcsname\relax
+ undefined, default \number\l at austrian\space used.}%
+}{}
+\@ifundefined{l at french}{%
\chardef\l at french=255
\wlog{german -- \string\language\space number for French %
- undefined, default \number\l at french\space used.}
-\fi
+ undefined, default \number\l at french\space used.}%
+}{}
\def\grmn at originalTeX{}
-\def\p at selectlanguage#1{\relax
+\def\languagename{}
+\expandafter\def\csname selectlanguage \endcsname#1{\relax
\expandafter\ifx\csname l@#1\endcsname\relax
\errhelp{Your command will be ignored, type <return> to proceed}%
\errmessage{You haven't defined the language #1 yet}%
\else
\grmn at originalTeX
+ \edef\languagename{#1}%
\edef\grmn at originalTeX{\csname noextras#1\endcsname
- \def\noexpand\grmn at originalTeX{}}%
+ \def\noexpand\grmn at originalTeX{}}%
\csname date#1\endcsname
\csname captions#1\endcsname
- %\language \csname l@#1\endcsname\relax
\csname extras#1\endcsname\relax
+ % Diese Zeile ist fuer `bibgerm' ...
+ \csname bibs#1\endcsname
+ % ... sie wird in spaeteren `german.sty'-Versionen nicht
+ % mehr vorhanden sein. Also nicht darauf verlassen!
\language \csname l@#1\endcsname\relax
\fi}
-\def\selectlanguage#1{\protect\p at selectlanguage{%
- \ifnum\escapechar=\expandafter`\string#1\empty
- \else \string#1\empty\fi}}
+\begingroup\catcode`\ =11\relax% <= do not delete this and the
+\toks0={\endgroup% <=== following percent characters!
+\def\selectlanguage#1{\protect\selectlanguage {%
+\ifnum\escapechar=\expandafter`\string#1\empty%
+\else\string#1\empty\fi}}}%
+\the\toks0\relax%
+\def\p at selectlanguage{\selectlanguage}
+\def\iflanguage#1{%
+ \ifx\csname l@#1\endcsname\relax
+ \expandafter\grmn at dqsecond
+ \else \ifnum\csname l@#1\endcsname=\language
+ \expandafter\expandafter\expandafter\grmn at dqfirst
+ \else
+ \expandafter\expandafter\expandafter\grmn at dqsecond
+ \fi\fi
+}
\expandafter\ifx\csname language\endcsname\relax
\csname newcount\endcsname\language
\language=0 \fi
More information about the latex3-commits
mailing list.