Update LuaTeX testfiles for ^@ change
[latex2e.git] / latex2e-20170101 / base / testfiles / helpers / german.sty
blob6d3e41a1b1a5e0973cddacf4138c63f584c62ca5
1 %%
2 %% This is file `german.sty', generated
3 %% on <1995/1/20> with the docstrip utility (2.2i).
4 %%
5 %% The original source files were:
6 %%
7 %% german.dtx
8 %%
9 %% This file is part of the GERMAN.STY package,
10 %% a PACKAGE for writing german texts with
11 %% plainTeX or LaTeX version 2e/2.09.
12 %%
13 %% -- Copyright 1995 by B.Raichle and DANTE e.V. All rights reserved. --
14 %% Maintained by Bernd Raichle (Uni Stuttgart),
15 %% using ideas by H.Partl (TU Wien, Uni.f.Bodenkultur Wien)
16 %% and many other people.
17 %%
18 %%
19 %% Copying of this file is authorized only if either
20 %% (1) you make absolutely no changes to your copy, including name, or
21 %% (2) if you do make changes, you name it something other than
22 %% german.dtx, german.sty, german.tex, or german.doc.
23 %% This restriction helps ensure that all styles developed for
24 %% DANTE e.V. (the users group of german speaking TeX users)
25 %% remain identical.
26 %%
27 %% You are NOT ALLOWED to distribute this file alone. You are NOT
28 %% ALLOWED to take money for the distribution or use of either this
29 %% file or a changed version, except for some nominal charge for
30 %% copying etc.
31 %%
32 %% Error Reports in case of UNCHANGED versions to
33 %%
34 %% Bernd Raichle
35 %% Stettener Str. 73
36 %% 73732 Esslingen
37 %% Federal Republic of Germany
38 %% Email: raichle@Informatik.Uni-Stuttgart.DE
39 %%
40 %% or
41 %% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
42 %% Koordinator ``german.sty''
43 %% Postfach 10 18 40
44 %% 69008 Heidelberg
45 %% Federal Republic of Germany
46 %% Email: german@dante.de
47 %%
49 %% This is GERMAN.DTX/GERMAN.STY, Version 2.5b, 20. Jan 1995
51 %% Copyright (C) 1987-1990 by H.Partl
52 %% Copyright (C) 1991-1995 by B.Raichle and DANTE e.V.
53 %% All rights reserved.
55 %% Please read the documentation file `germdoc.tex' for more
56 %% information of how to use this macro file and how to install
57 %% the pattern files necessary for german hyphenation.
59 \expandafter\ifx\csname grmn@VersionNo\endcsname\relax \else
60 \ifdim \number\grmn@VersionNo < 9502\relax
61 \mathchardef\grmn@VersionNo=9502\relax % 2/95 = v2.5b
62 \else
63 \germanTeX
64 \expandafter\expandafter\expandafter\endinput%
65 \fi\fi
66 \message{Package `german', Version 2.5b of 95/01/20.}
67 \begingroup\expandafter\expandafter\expandafter\endgroup
68 \expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
69 \ProvidesPackage{german}[1995/01/20 v2.5b %
70 Package for writing german texts (br)]
71 \fi
72 \chardef\atcode=\catcode`\@
73 \catcode`\@=11 % \makeatletter
74 \expandafter\ifx\csname @ifundefined\endcsname\relax
75 \def\@ifundefined#1{%
76 \expandafter\ifx\csname #1\endcsname\relax
77 \expandafter\grmn@first\else\expandafter\grmn@second\fi}
78 \fi
79 \def\grmn@dqfirst#1#2{#1}
80 \def\grmn@dqsecond#1#2{#2}
81 \begingroup\expandafter\expandafter\expandafter\endgroup
82 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax \else
83 \@ifundefined{UseTextSymbol}{%
84 \def\UseTextSymbol#1#2{{\fontencoding{#1}\selectfont #2}}
85 }{}
86 \@ifundefined{UseTextAccent}{%
87 \def\UseTextAccent#1#2#3{%
88 {\let\@curr@enc\f@encoding
89 \fontencoding{#1}\selectfont
90 #2{\fontencoding\@curr@enc\selectfont #3}}}%
91 }{}
92 \@ifundefined{ProvideTextCommand}{%
93 \def\ProvideTextCommand#1#2{%
94 %%% misses \RobustTextCommand{#1}{...etc.etc...}!!
95 \expandafter\providecommand\csname #2\string#1\endcsname}%
96 }{}
97 \@ifundefined{ProvideTextCommandDefault}{%
98 \def\ProvideTextCommandDefault#1{%
99 \ProvideTextCommand{#1}{U}}%
101 \@ifundefined{DeclareTextCompositeCommand}{%
102 \def\DeclareTextCompositeCommand#1#2#3#4{%
103 % define a `dummy' text composite
104 \DeclareTextComposite{#1}{#2}{#3}{`\Z}%
105 % then redefine this command including the new command
106 \expandafter\def\csname\expandafter\string\csname
107 #2\endcsname\string#1-\string#3\endcsname##1##2{#4}}%
109 \ProvideTextCommandDefault{\"}{\UseTextAccent{OT1}{\"}}
110 \ProvideTextCommandDefault{\ss}{\UseTextSymbol{OT1}\ss}
111 \ProvideTextCommandDefault{\i}{\UseTextSymbol{OT1}\i}
112 \@ifundefined{textquotedblleft}{%
113 \ProvideTextCommandDefault{\textquotedblleft}{%
114 \UseTextSymbol{OT1}\textquotedblleft}%
115 \DeclareTextSymbol{\textquotedblleft}{OT1}{92}%
116 \DeclareTextSymbol{\textquotedblleft}{T1}{16}%
118 \@ifundefined{textquotedblright}{%
119 \ProvideTextCommandDefault{\textquotedblright}{%
120 \UseTextSymbol{OT1}\textquotedblright}%
121 \DeclareTextSymbol{\textquotedblright}{OT1}{`\"}%
122 \DeclareTextSymbol{\textquotedblright}{T1}{17}%
123 %% \DeclareTextSymbol{\textquotedbl}{T1}{`\"}%
125 \@ifundefined{textquoteleft}{%
126 \ProvideTextCommandDefault{\textquoteleft}{%
127 \UseTextSymbol{OT1}\textquoteleft}%
128 \DeclareTextSymbol{\textquoteleft}{OT1}{`\`}%
129 \DeclareTextSymbol{\textquoteleft}{T1}{`\`}%
131 \@ifundefined{textquoteright}{
132 \ProvideTextCommandDefault{\textquoteright}{%
133 \UseTextSymbol{OT1}\textquoteright}%
134 \DeclareTextSymbol{\textquoteright}{OT1}{`\'}%
135 \DeclareTextSymbol{\textquoteright}{T1}{`\'}%
137 \@ifundefined{quotesinglbase}{%
138 \DeclareTextSymbol{\quotesinglbase}{T1}{13}%
140 \@ifundefined{quotedblbase}{%
141 \DeclareTextSymbol{\quotedblbase}{T1}{18}%
143 \@ifundefined{guillemotleft}{%
144 \DeclareTextSymbol{\guillemotleft}{T1}{19}%
146 \@ifundefined{guillemotright}{%
147 \DeclareTextSymbol{\guillemotright}{T1}{20}%
149 \@ifundefined{guilsinglleft}{%
150 \DeclareTextSymbol{\guilsinglleft}{T1}{14}%
152 \@ifundefined{guilsinglright}{%
153 \DeclareTextSymbol{\guilsinglright}{T1}{15}%
156 \expandafter\let\expandafter\protect\csname protect\endcsname
157 \def\allowhyphens{\penalty\@M \hskip\z@skip}
158 \lccode`\^^Y=`\^^Y
159 \def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}%
160 \setbox\z@\hbox{\dimen@\ht\z@ \advance\dimen@ -\ht\tw@
161 \lower\dimen@\box\z@}%
162 \ht\z@\ht\tw@ \dp\z@\dp\tw@}
163 \def\save@sf@q#1{{\ifhmode
164 \edef\@SF{\spacefactor\the\spacefactor}\else
165 \let\@SF\empty \fi \leavevmode #1\@SF}}
166 \expandafter\ifx\csname grmn@U@D\endcsname\relax
167 \csname newdimen\endcsname\grmnU@D
169 \def\newumlaut#1{{\grmnU@D 1ex%
170 {\setbox\z@\hbox{\char127}\dimen@-.45ex\advance\dimen@\ht\z@
171 \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
172 \accent127\fontdimen5\font\grmnU@D #1}\allowhyphens}
173 \begingroup\expandafter\expandafter\expandafter\endgroup
174 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
175 \def\highumlaut#1{{\accent127 #1}\allowhyphens}
176 \else
177 \def\highumlaut#1{\"{#1}\allowhyphens}
179 \def\mdqon{\catcode`\"\active}
180 \def\mdqoff{\catcode`\"12\relax}
181 \begingroup \mdqoff
182 \def\x{\endgroup
183 \def\@UMLAUT{\"}%
184 \def\@MATHUMLAUT{\ddot}% = \mathaccent"707F
185 \def\@SS{\mathchar"7019 }% TODO: correct?
186 \def\dq{"}}% TODO: or \textquotedbl?
188 \begingroup
189 \def\do{\noexpand\do\noexpand}%
190 \edef\x{\endgroup
191 \def\noexpand\dospecials{\dospecials\do\"}}%
193 \begingroup\expandafter\expandafter\expandafter\endgroup
194 \expandafter\ifx\csname @sanitize\endcsname\relax \else
195 \begingroup
196 \def\@makeother{\noexpand\@makeother\noexpand}%
197 \edef\x{\endgroup
198 \def\noexpand\@sanitize{\@sanitize\@makeother\"}}%
201 \let\grmn@original@three=\3 % \3 may be defined or undefined.
202 \def\ck{\penalty\@M\discretionary{k-}{}{c}k\allowhyphens}
203 \begingroup\expandafter\expandafter\expandafter\endgroup
204 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
205 \def\@glqq{\save@sf@q{\set@low@box{''\/}\box\z@
206 \kern-.04em\allowhyphens}}
207 \def\glqq{\protect\@glqq}
208 \def\@grqq{\save@sf@q{\kern-.07em``\kern.07em}}% ('')
209 \def\grqq{\protect\@grqq}
210 \def\@glq{\save@sf@q{\set@low@box{'\/}\box\z@
211 \kern-.04em\allowhyphens}}
212 \def\glq{\protect\@glq}
213 \def\@grq{\save@sf@q{\kern-.0125em`\kern.07em}}
214 \def\grq{\protect\@grq}
215 \def\@flqq{\relax\ifmmode \ll \else \save@sf@q{\penalty\@M
216 \raise .2ex\hbox{$\scriptscriptstyle \ll $}\allowhyphens}\fi}
217 \def\flqq{\protect\@flqq}
218 \def\@frqq{\relax\ifmmode \gg \else \save@sf@q{\penalty\@M
219 \raise .2ex\hbox{$\scriptscriptstyle \gg $}\allowhyphens}\fi}
220 \def\frqq{\protect\@frqq}
221 \def\@flq{\relax\ifmmode <\else \save@sf@q{\penalty\@M
222 \raise .2ex\hbox{$\scriptscriptstyle <$}\allowhyphens}\fi}
223 \def\flq{\protect\@flq}
224 \def\@frq{\relax\ifmmode >\else \save@sf@q{\penalty\@M
225 \raise .2ex\hbox{$\scriptscriptstyle >$}\allowhyphens}\fi}
226 \def\frq{\protect\@frq}
227 \else
228 \DeclareRobustCommand{\glqq}{%
229 \ifmmode\mbox{\quotedblbase}\else\quotedblbase\fi}
230 \ProvideTextCommandDefault{\quotedblbase}{%
231 \UseTextSymbol{OT1}\quotedblbase}
232 \ProvideTextCommand{\quotedblbase}{OT1}{%
233 \save@sf@q{\set@low@box{\textquotedblright\/}\box\z@
234 \kern-.04em\allowhyphens}}
235 \DeclareRobustCommand{\grqq}{%
236 \save@sf@q{\kern-.07em%
237 \ifmmode\mbox{\textquotedblleft}\else\textquotedblleft\fi
238 \kern.07em\relax}}
239 \DeclareRobustCommand{\glq}{%
240 \ifmmode\mbox{\quotesinglbase}\else\quotesinglbase\fi}
241 \ProvideTextCommandDefault{\quotesinglbase}{%
242 \UseTextSymbol{OT1}\quotesinglbase}
243 \ProvideTextCommand{\quotesinglbase}{OT1}{%
244 \save@sf@q{\set@low@box{\textquoteright\/}\box\z@
245 \kern-.04em\allowhyphens}}
246 \DeclareRobustCommand{\grq}{%
247 \save@sf@q{\kern-.0125em%
248 \ifmmode\mbox{\textquoteleft}\else\textquoteleft\fi
249 \kern.07em\relax}}
250 \DeclareRobustCommand{\flqq}{%
251 \ifmmode\mbox{\guillemotleft}\else\guillemotleft\fi}
252 \ProvideTextCommandDefault{\guillemotleft}{%
253 \UseTextSymbol{OT1}\guillemotleft}
254 \ProvideTextCommand{\guillemotleft}{OT1}{%
255 \ifmmode \ll \else \save@sf@q{\penalty\@M
256 \raise .2ex\hbox{$\scriptscriptstyle \ll $}\allowhyphens}\fi}
257 \DeclareRobustCommand{\frqq}{%
258 \ifmmode\mbox{\guillemotright}\else\guillemotright\fi}
259 \ProvideTextCommandDefault{\guillemotright}{%
260 \UseTextSymbol{OT1}\guillemotright}
261 \ProvideTextCommand{\guillemotright}{OT1}{%
262 \ifmmode \gg \else \save@sf@q{\penalty\@M
263 \raise .2ex\hbox{$\scriptscriptstyle \gg $}\allowhyphens}\fi}
264 \DeclareRobustCommand{\flq}{%
265 \ifmmode\mbox{\guilsinglleft}\else\guilsinglleft\fi}
266 \ProvideTextCommandDefault{\guilsinglleft}{%
267 \UseTextSymbol{OT1}\guilsinglleft}
268 \ProvideTextCommand{\guilsinglleft}{OT1}{%
269 \ifmmode <\else \save@sf@q{\penalty\@M
270 \raise .2ex\hbox{$\scriptscriptstyle <$}\allowhyphens}\fi}
271 \DeclareRobustCommand{\frq}{%
272 \ifmmode\mbox{\guilsinglright}\else\guilsinglright\fi}
273 \ProvideTextCommandDefault{\guilsinglright}{%
274 \UseTextSymbol{OT1}\guilsinglright}
275 \ProvideTextCommand{\guilsinglright}{OT1}{%
276 \ifmmode >\else \save@sf@q{\penalty\@M
277 \raise .2ex\hbox{$\scriptscriptstyle >$}\allowhyphens}\fi}
279 \begingroup\expandafter\expandafter\expandafter\endgroup
280 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
281 \def\umlauthigh{\def\"##1{{\accent127 ##1}}}
282 \def\umlautlow{\def\"{\protect\newumlaut}}
283 \else
284 \def\umlauthigh{\def\grmn@OTumlaut##1{{\accent 127 ##1}}}
285 \def\umlautlow{\def\grmn@OTumlaut{\protect\newumlaut}}
286 \umlauthigh
287 \DeclareTextAccent{\"}{T1}{4}
288 \DeclareTextAccent{\"}{OT1}{127}
289 \DeclareTextCompositeCommand{\"}{OT1}{a}{\grmn@OTumlaut{a}}%
290 \DeclareTextCompositeCommand{\"}{OT1}{o}{\grmn@OTumlaut{o}}%
291 \DeclareTextCompositeCommand{\"}{OT1}{u}{\grmn@OTumlaut{u}}%
292 \DeclareTextCompositeCommand{\"}{OT1}{A}{\grmn@OTumlaut{A}}%
293 \DeclareTextCompositeCommand{\"}{OT1}{O}{\grmn@OTumlaut{O}}%
294 \DeclareTextCompositeCommand{\"}{OT1}{U}{\grmn@OTumlaut{U}}%
295 \DeclareTextComposite{\"}{T1}{a}{228}
296 \begingroup\expandafter\expandafter\expandafter\endgroup
297 \expandafter\ifx\csname AtBeginDocument\endcsname\relax \else
298 \AtBeginDocument{%
299 \DeclareTextAccent{\"}{T1}{4}% % from `ltpatch.tex'
300 \DeclareTextAccent{\"}{OT1}{127}% % from `ltpatch.tex'
301 % \DeclareTextCommand{\"}{OT1}{\newumlaut}% from `ltpatch.tex'
302 % % has to be removed
303 \DeclareTextCompositeCommand{\"}{OT1}{a}{\grmn@OTumlaut{a}}%
304 \DeclareTextCompositeCommand{\"}{OT1}{o}{\grmn@OTumlaut{o}}%
305 \DeclareTextCompositeCommand{\"}{OT1}{u}{\grmn@OTumlaut{u}}%
306 \DeclareTextCompositeCommand{\"}{OT1}{A}{\grmn@OTumlaut{A}}%
307 \DeclareTextCompositeCommand{\"}{OT1}{O}{\grmn@OTumlaut{O}}%
308 \DeclareTextCompositeCommand{\"}{OT1}{U}{\grmn@OTumlaut{U}}%
309 \DeclareTextComposite{\"}{T1}{a}{228}% % from `ltpatch.tex'
313 \def\dqwarninglevel#1{\chardef\grmn@dqwarninglevel=#1\relax}
314 \dqwarninglevel{1}
315 \expandafter\ifx\csname on@line\endcsname\relax
316 \ifx\inputlineno\undefined \let\on@line\@empty
317 \else
318 \ifnum\inputlineno<\z@ \let\on@line\@empty
319 \else \def\on@line{ on input line \the\inputlineno}
320 \fi\fi\fi
321 \def\grmn@dq@error#1{%
322 \errhelp{Use `` for a simple double quote character.}%
323 \errmessage{german: The command \dq\string#1 is undefined}}
324 \def\grmn@dq@warning#1{%
325 \immediate\write\sixt@@n{german: %
326 \dq\string#1 is possibly wrong\on@line.}}
327 \def\grmn@dq@macro#1#2{%
328 \expandafter#1\csname @grmn@@\string #2dq\endcsname}
329 \def\def@dqmacro#1#2#3{%
330 \grmn@dqredefcheck{#1}%
331 \grmn@dq@macro\def{#1}{{#2}{#3}}}
332 \def\let@dqmacro#1#2{\begingroup
333 \grmn@dqredefcheck{#1}%
334 \edef\x{\endgroup \let
335 \grmn@dq@macro\noexpand{#1}\grmn@dq@macro\noexpand{#2}}%
337 \def\grmn@dqredefcheck#1{}
338 \def\@active@dq#1{%
339 \grmn@dq@macro\ifx{#1}\relax
340 \ifnum\grmn@dqwarninglevel>\z@ \grmn@dq@error{#1}\fi
341 \expandafter\grmn@@normal@dq
342 \else
343 \expandafter\grmn@@active@dq
344 \fi {#1}}
345 \def\grmn@@active@dq#1{%
346 \grmn@dq@macro\ifx{#1}\noexpand
347 \expandafter\grmn@normal@dq
348 \else
349 \expandafter\grmn@@@active@dq
350 \fi {#1}}
351 \def\grmn@@normal@dq#1{``#1}
352 \def\grmn@normal@dq#1{\dq #1}
353 \begingroup
354 \catcode`\(=1\lccode`\(=`\{\catcode`\{=12
355 \catcode`\)=2\lccode`\)=`\}\catcode`\}=12
356 \catcode`\ =11\relax% <= do not delete these and the
357 \lowercase(\endgroup% <=== following percent characters!
358 \def\grmn@@@active@dq#1(%
359 \expandafter\grmn@@@@active@dq\expandafter{\string#1})%
360 \def\grmn@@@@active@dq(%
361 \ifx\protect\relax\else\ifx\protect\empty\else%
362 \expandafter\expandafter\expandafter\protect%
363 \fi\fi%
364 \active@dq \dq@prtct )%
365 \def\dq@prtct#1#(\@dq@prtct)%
366 \def\@dq@prtct#1(\string\dq@prtct{\string#1})%
367 \def\dq@prtct #1{#2}(\string\dq@prtct{\string#2})%
368 \def\active@dq #1{#2}(\grmn@active@@dq(#2))%
370 \def\active@dq#1#{\grmn@active@@dq}%
371 \def\grmn@active@@dq#1{%
372 \csname grmn@dq\ifmmode second\else first\fi
373 \expandafter\expandafter\expandafter\expandafter
374 \grmn@dq@macro\endcsname{#1}}
375 \grmn@dq@macro\let{0}=\noexpand
376 \let@dqmacro{1}{0}\let@dqmacro{2}{0}\let@dqmacro{3}{0}
377 \let@dqmacro{4}{0}\let@dqmacro{5}{0}\let@dqmacro{6}{0}
378 \let@dqmacro{7}{0}\let@dqmacro{8}{0}\let@dqmacro{9}{0}
379 \let@dqmacro{A}{0}\let@dqmacro{B}{0}\let@dqmacro{C}{0}
380 \let@dqmacro{D}{0}\let@dqmacro{E}{0}\let@dqmacro{F}{0}
381 \def@dqmacro{}{\dq{}}{\dq{}}
382 \def@dqmacro{a}{\@UMLAUT a}{\@MATHUMLAUT a}
383 \def@dqmacro{o}{\@UMLAUT o}{\@MATHUMLAUT o}
384 \def@dqmacro{u}{\@UMLAUT u}{\@MATHUMLAUT u}
385 \def@dqmacro{A}{\@UMLAUT A}{\@MATHUMLAUT A}
386 \def@dqmacro{O}{\@UMLAUT O}{\@MATHUMLAUT O}
387 \def@dqmacro{U}{\@UMLAUT U}{\@MATHUMLAUT U}
388 \def@dqmacro{s}{\ss{}}{\@SS{}}
389 \def@dqmacro{S}{SS}{SS}
390 \let@dqmacro{z}{s}
391 \def@dqmacro{Z}{SZ}{SZ}
392 \def@dqmacro{e}{\highumlaut e}{\@MATHUMLAUT e}
393 \def@dqmacro{E}{\highumlaut E}{\@MATHUMLAUT E}
394 \def@dqmacro{i}{\highumlaut{\i}}{\@MATHUMLAUT\imath}
395 \def@dqmacro{I}{\highumlaut I}{\@MATHUMLAUT I}
396 \def@dqmacro{`}{\glqq{}}{\glqq{}}
397 \def@dqmacro{'}{\grqq{}}{\grqq{}}
398 \def@dqmacro{<}{\flqq{}}{\flqq{}}
399 \def@dqmacro{>}{\frqq{}}{\frqq{}}
400 \def@dqmacro{-}{\penalty\@M\-\allowhyphens}%
401 {\penalty\@M\-\allowhyphens}
402 \def@dqmacro{|}{\penalty\@M\discretionary{-}{}{\kern.03em}%
403 \allowhyphens}{}
404 \def@dqmacro{"}{\hskip\z@skip}{\hskip\z@skip}
405 \def@dqmacro{~}{\leavevmode\hbox{-}}{-}
406 \def@dqmacro{=}{\penalty\@M-\hskip\z@skip}%
407 {\penalty\@M-\hskip\z@skip}
408 \def\grmn@dqdisc#1#2{\penalty\@M
409 \ifnum\grmn@dqwarninglevel>\@ne \grmn@dq@warning{#1}\fi
410 \discretionary{#2-}{}{#1}\allowhyphens}
411 \def@dqmacro{c}{\grmn@dqdisc ck}{c}
412 \def@dqmacro{C}{\grmn@dqdisc CK}{C}
413 \def@dqmacro{f}{\grmn@dqdisc f{ff}}{f}
414 \def@dqmacro{F}{\grmn@dqdisc F{FF}}{F}
415 \def@dqmacro{l}{\grmn@dqdisc l{ll}}{l}
416 \def@dqmacro{L}{\grmn@dqdisc L{LL}}{L}
417 \def@dqmacro{m}{\grmn@dqdisc m{mm}}{m}
418 \def@dqmacro{M}{\grmn@dqdisc M{MM}}{M}
419 \def@dqmacro{n}{\grmn@dqdisc n{nn}}{n}
420 \def@dqmacro{N}{\grmn@dqdisc N{NN}}{N}
421 \def@dqmacro{p}{\grmn@dqdisc p{pp}}{p}
422 \def@dqmacro{P}{\grmn@dqdisc P{PP}}{P}
423 \def@dqmacro{r}{\grmn@dqdisc r{rr}}{r}
424 \def@dqmacro{R}{\grmn@dqdisc R{RR}}{R}
425 \def@dqmacro{t}{\grmn@dqdisc t{tt}}{t}
426 \def@dqmacro{T}{\grmn@dqdisc T{TT}}{T}
427 \def\grmn@dqredefcheck#1{%
428 \immediate\write\m@ne{german: %
429 \grmn@dq@macro\ifx{#1}\relax \else re\fi
430 defining dq-command for `\string#1'\on@line.}}%
431 \def\month@german{\ifcase\month \or
432 Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
433 Juli\or August\or September\or Oktober\or November\or Dezember\fi}
434 \def\dategerman{\def\today{\number\day.~\month@german
435 \space\number\year}}
436 \def\dateaustrian{\def\today{\number\day.~\ifnum 1=\month
437 J\"anner\else \month@german\fi \space\number\year}}
438 \def\month@english{\ifcase\month \or
439 January\or February\or March\or April\or May\or June\or
440 July\or August\or September\or October\or November\or December\fi}
441 \def\dateUSenglish{\def\today{\month@english
442 \space\number\day, \number\year}}
443 \def\dateenglish{\def\today{\number\day \ifcase\day \or
444 st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 1..10
445 th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or% 11..20
446 st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 21..30
447 st\fi
448 ~\month@english \space\number\year}}
449 \def\datefrench{\def\today{\number\day \ifnum1=\day \/$^{\rm er}$\fi
450 \space\ifcase\month \or
451 janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
452 juillet\or ao\^ut\or septembre\or
453 octobre\or novembre\or d\'ecembre\fi
454 \space\number\year}}
455 \def\captionsgerman{%
456 \def\prefacename{Vorwort}%
457 \def\refname{Literatur}%
458 \def\abstractname{Zusammenfassung}%
459 \def\bibname{Literaturverzeichnis}%
460 \def\chaptername{Kapitel}%
461 \def\appendixname{Anhang}%
462 \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt
463 \def\listfigurename{Abbildungsverzeichnis}%
464 \def\listtablename{Tabellenverzeichnis}%
465 \def\indexname{Index}%
466 \def\figurename{Abbildung}%
467 \def\tablename{Tabelle}% % oder: Tafel
468 \def\partname{Teil}%
469 \def\enclname{Anlage(n)}% % oder: Beilage(n)
470 \def\ccname{Verteiler}% % oder: Kopien an
471 \def\headtoname{An}%
472 \def\pagename{Seite}%
473 \def\seename{siehe}%
474 \def\alsoname{siehe auch}}
475 \let\captionsaustrian=\captionsgerman
476 \def\captionsenglish{%
477 \def\prefacename{Preface}%
478 \def\refname{References}%
479 \def\abstractname{Abstract}%
480 \def\bibname{Bibliography}%
481 \def\chaptername{Chapter}%
482 \def\appendixname{Appendix}%
483 \def\contentsname{Contents}%
484 \def\listfigurename{List of Figures}%
485 \def\listtablename{List of Tables}%
486 \def\indexname{Index}%
487 \def\figurename{Figure}%
488 \def\tablename{Table}%
489 \def\partname{Part}%
490 \def\enclname{encl}%
491 \def\ccname{cc}%
492 \def\headtoname{To}%
493 \def\pagename{Page}%
494 \def\seename{see}%
495 \def\alsoname{see also}}
496 \let\captionsUSenglish=\captionsenglish
497 \def\captionsfrench{%
498 \def\prefacename{Pr\'eface}%
499 \def\refname{R\'ef\'erences}%
500 \def\abstractname{R\'esum\'e}%
501 \def\bibname{Bibliographie}%
502 \def\chaptername{Chapitre}%
503 \def\appendixname{Annexe}%
504 \def\contentsname{Table des mati\`eres}%
505 \def\listfigurename{Liste des figures}%
506 \def\listtablename{Liste des tableaux}%
507 \def\indexname{Index}%
508 \def\figurename{Figure}%
509 \def\tablename{Tableau}%
510 \def\partname{Partie}%
511 \def\enclname{P.~J.}%
512 \def\ccname{Copie \`a}%
513 \def\headtoname{A}%
514 \def\pagename{Page}%
515 \def\seename{voir}%
516 \def\alsoname{voir aussi}}%
517 \let\extrasUSenglish=\relax \let\noextrasUSenglish=\empty
518 \let\extrasenglish=\relax \let\noextrasenglish=\empty
519 \def\extrasgerman{\frenchspacing
520 \lefthyphenmin\tw@ \righthyphenmin\tw@}
521 \def\noextrasgerman{%
522 \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi
523 \lefthyphenmin\the\lefthyphenmin \righthyphenmin\the\righthyphenmin}
524 \let\extrasaustrian=\extrasgerman
525 \let\noextrasaustrian=\noextrasgerman
526 \def\extrasfrench{\frenchspacing}
527 \def\noextrasfrench{%
528 \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi}
529 \expandafter\ifx\csname l@USenglish\endcsname\relax
530 \expandafter\ifx\csname l@english\endcsname\relax
531 \chardef\l@USenglish=255
532 \else
533 \chardef\l@USenglish=\l@english
535 \wlog{german -- \string\language\space number for USenglish %
536 undefined, default \number\l@USenglish\space used.}
538 \expandafter\ifx\csname l@english\endcsname\relax
539 \chardef\l@english=\l@USenglish
540 \wlog{german -- \string\language\space number for UKenglish %
541 undefined, default \number\l@english\space used.}
543 \expandafter\ifx\csname l@german\endcsname\relax
544 \expandafter\ifx\csname l@austrian\endcsname\relax
545 \chardef\l@german=255
546 \message{german -- \string\language\space number for German %
547 undefined, default \number\l@german\space used,}
548 \message{german -- Please read \string"germdoc.tex\string" how %
549 to install hyphenation patterns.}
550 \else
551 \chardef\l@german=\l@austrian
552 \wlog{german -- \string\language\space number for German %
553 undefined, default \number\l@german\space used.}
556 \expandafter\ifx\csname l@austrian\endcsname\relax
557 \chardef\l@austrian=\l@german
558 \wlog{german -- \string\language\space number for Austrian %
559 undefined, default \number\l@austrian\space used.}
561 \expandafter\ifx\csname l@french\endcsname\relax
562 \chardef\l@french=255
563 \wlog{german -- \string\language\space number for French %
564 undefined, default \number\l@french\space used.}
566 \def\grmn@originalTeX{}
567 \def\p@selectlanguage#1{\relax
568 \expandafter\ifx\csname l@#1\endcsname\relax
569 \errhelp{Your command will be ignored, type <return> to proceed}%
570 \errmessage{You haven't defined the language #1 yet}%
571 \else
572 \grmn@originalTeX
573 \edef\grmn@originalTeX{\csname noextras#1\endcsname
574 \def\noexpand\grmn@originalTeX{}}%
575 \csname date#1\endcsname
576 \csname captions#1\endcsname
577 %\language \csname l@#1\endcsname\relax
578 \csname extras#1\endcsname\relax
579 \language \csname l@#1\endcsname\relax
580 \fi}
581 \def\selectlanguage#1{\protect\p@selectlanguage{%
582 \ifnum\escapechar=\expandafter`\string#1\empty
583 \else \string#1\empty\fi}}
584 \expandafter\ifx\csname language\endcsname\relax
585 \csname newcount\endcsname\language
586 \language=0 \fi
587 \expandafter\ifx\csname lefthyphenmin\endcsname\relax
588 \csname newcount\endcsname\lefthyphenmin
589 \lefthyphenmin=2 \fi
590 \expandafter\ifx\csname righthyphenmin\endcsname\relax
591 \csname newcount\endcsname\righthyphenmin
592 \righthyphenmin=3 \fi
593 \expandafter\ifx\csname setlanguage\endcsname\relax
594 \def\setlanguage{\relax
595 \ifhmode \else
596 \errhelp{Use \selectlanguage to switch languages.}%
597 \errmessage{\setlanguage allowed only in horizontal mode}%
599 \begingroup\afterassignment\endgroup\count@=}
601 \begingroup \mdqon
602 \def\x{\endgroup
603 \def\originalTeX{\mdqoff \let"\dq \umlauthigh
604 \let\3\grmn@original@three
605 \selectlanguage{USenglish}}%
606 \def\germanTeX{\mdqon \let"\@active@dq \umlautlow
607 \let\grmn@original@three\3\let\3\ss
608 \selectlanguage{german}}}%
610 \catcode`\@=\atcode % return to previous catcode
611 \germanTeX
612 \endinput
614 %% End of file `german.sty'.