2 %% This is file `ngerman.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% german.dtx (with options: `new')
9 %% This file is part of the `german' collection,
10 %% providing German language support for
11 %% plain TeX or LaTeX version 2e/2.09.
13 %% ----------- Copyright (C) 1998, 1999 by B.Raichle ----------
14 %% ------------------- All rights reserved. -------------------
15 %% Maintained by Bernd Raichle (Uni Stuttgart),
16 %% using ideas by H.Partl (TU Wien, Uni.f.Bodenkultur Wien)
17 %% and many other people.
22 %% This program can be redistributed and/or modified under the terms
23 %% of the LaTeX Project Public License Distributed from CTAN
24 %% archives in directory macros/latex/base/lppl.txt; either
25 %% version 1 of the License, or any later version.
28 %% Error Reports (in case of UNCHANGED versions) should be sent to:
30 %% Bernd Raichle <raichle@Informatik.Uni-Stuttgart.DE>
32 \expandafter\ifx\csname ngrm\string @VersionNo\endcsname\relax
34 \ifnum\number\csname ngrm\string @VersionNo\endcsname<9806\relax
35 \else \ngermanTeX \expandafter\expandafter\expandafter\endinput
37 \expandafter\mathchardef\csname ngrm\string @VersionNo\endcsname
39 \message{v2.5e 1998-07-08}
40 \begingroup\expandafter\expandafter\expandafter\endgroup
41 \expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
42 \ProvidesPackage{ngerman}[1998/07/08 v2.5e %
43 Support for writing german texts (br)]
45 \chardef\atcode=\catcode`\@
46 \catcode`\@=11 % \makeatletter
47 \expandafter\ifx\csname @ifundefined\endcsname\relax
49 \expandafter\ifx\csname #1\endcsname\relax
50 \expandafter\grmn@dqfirst\else\expandafter\grmn@dqsecond\fi}
52 \def\grmn@dqfirst#1#2{#1}
53 \def\grmn@dqsecond#1#2{#2}
54 \begingroup\expandafter\expandafter\expandafter\endgroup
55 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
56 \@ifundefined{SS}{\def\SS{SS}}{}
58 \begingroup\expandafter\expandafter\expandafter\endgroup
59 \expandafter\ifx\csname ProvideTextCommandDefault\endcsname\relax
62 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
64 !! Dies ist eine zu alte LaTeX2e-Version, die nicht}
66 !! alle fuer german/ngerman notwendigen Deklarationen}
68 !! zur Verfuegung stellt. Dennoch koennen Sie diese}
70 !! Pakete, eventuell mit kleinen Fehlern, verwenden.}
71 \immediate\write17{!!}
73 !! Bitte installieren Sie eine neuere LaTeX2e-Version,}
75 !! da zukuenftige Versionen der Pakete diese}
77 !! LaTeX2e-Version nicht mehr unterstuetzen werden!}
79 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
82 \@ifundefined{UseTextSymbol}{%
83 \def\UseTextSymbol#1#2{{\fontencoding{#1}\selectfont #2}}
85 \@ifundefined{UseTextAccent}{%
86 \def\UseTextAccent#1#2#3{%
87 {\let\@curr@enc\f@encoding
88 \fontencoding{#1}\selectfont
89 #2{\fontencoding\@curr@enc\selectfont #3}}}%
91 \@ifundefined{ProvideTextCommand}{%
92 \def\ProvideTextCommand#1#2{%
93 %%% misses \RobustTextCommand{#1}{...etc.etc...}!!
94 \expandafter\providecommand\csname #2\string#1\endcsname}%
96 \@ifundefined{ProvideTextCommandDefault}{%
97 \def\ProvideTextCommandDefault#1{%
98 \ProvideTextCommand{#1}{U}}%
100 \@ifundefined{DeclareTextCompositeCommand}{%
101 \def\DeclareTextCompositeCommand#1#2#3#4{%
102 % define a `dummy' text composite
103 \DeclareTextComposite{#1}{#2}{#3}{`\Z}%
104 % then redefine this command including the new command
105 \expandafter\def\csname\expandafter\string\csname
106 #2\endcsname\string#1-\string#3\endcsname##1##2{#4}}%
108 \@ifundefined{OT1\string\ss}{%
109 \wlog{ngerman: Re-declaration of \string\ss\space for OT1!}%
110 \DeclareTextSymbol{\ss}{OT1}{25}}{}
111 \@ifundefined{OT1\string\i}{%
112 \wlog{ngerman: Re-declaration of \string\i\space for OT1!}%
113 \DeclareTextSymbol{\i}{OT1}{16}}{}
114 \ProvideTextCommandDefault{\"}{\UseTextAccent{OT1}{\"}}
115 \ProvideTextCommandDefault{\ss}{\UseTextSymbol{OT1}\ss}
116 \ProvideTextCommandDefault{\i}{\UseTextSymbol{OT1}\i}
117 \ProvideTextCommandDefault{\SS}{SS}
118 \@ifundefined{textquotedblleft}{%
119 \ProvideTextCommandDefault{\textquotedblleft}{%
120 \UseTextSymbol{OT1}\textquotedblleft}%
121 \DeclareTextSymbol{\textquotedblleft}{OT1}{92}%
122 \DeclareTextSymbol{\textquotedblleft}{T1}{16}%
124 \@ifundefined{textquotedblright}{%
125 \ProvideTextCommandDefault{\textquotedblright}{%
126 \UseTextSymbol{OT1}\textquotedblright}%
127 \DeclareTextSymbol{\textquotedblright}{OT1}{`\"}%
128 \DeclareTextSymbol{\textquotedblright}{T1}{17}%
129 %% \DeclareTextSymbol{\textquotedbl}{T1}{`\"}%
131 \@ifundefined{textquoteleft}{%
132 \ProvideTextCommandDefault{\textquoteleft}{%
133 \UseTextSymbol{OT1}\textquoteleft}%
134 \DeclareTextSymbol{\textquoteleft}{OT1}{`\`}%
135 \DeclareTextSymbol{\textquoteleft}{T1}{`\`}%
137 \@ifundefined{textquoteright}{%
138 \ProvideTextCommandDefault{\textquoteright}{%
139 \UseTextSymbol{OT1}\textquoteright}%
140 \DeclareTextSymbol{\textquoteright}{OT1}{`\'}%
141 \DeclareTextSymbol{\textquoteright}{T1}{`\'}%
143 \@ifundefined{quotesinglbase}{%
144 \DeclareTextSymbol{\quotesinglbase}{T1}{13}}{}
145 \@ifundefined{quotedblbase}{%
146 \DeclareTextSymbol{\quotedblbase}{T1}{18}}{}
147 \@ifundefined{guillemotleft}{%
148 \DeclareTextSymbol{\guillemotleft}{T1}{19}}{}
149 \@ifundefined{guillemotright}{%
150 \DeclareTextSymbol{\guillemotright}{T1}{20}}{}
151 \@ifundefined{guilsinglleft}{%
152 \DeclareTextSymbol{\guilsinglleft}{T1}{14}}{}
153 \@ifundefined{guilsinglright}{%
154 \DeclareTextSymbol{\guilsinglright}{T1}{15}}{}
156 \expandafter\let\expandafter\protect\csname protect\endcsname
157 \def\allowhyphens{\penalty\@M \hskip\z@skip}
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 grmnU@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}
177 \def\highumlaut#1{\"{#1}\allowhyphens}
179 \def\mdqon{\catcode`\"\active}
180 \def\mdqoff{\catcode`\"12\relax}
183 \def\@MATHUMLAUT{\ddot}% = \mathaccent"707F
184 \def\@MATHss{\mathord{\mathchar"7019}}% TODO: correct?
185 \def\dq{"}}% TODO: or \textquotedbl?
188 \def\do{\noexpand\do\noexpand}%
190 \def\noexpand\dospecials{\dospecials\do\"}}%
192 \begingroup\expandafter\expandafter\expandafter\endgroup
193 \expandafter\ifx\csname @sanitize\endcsname\relax \else
195 \def\@makeother{\noexpand\@makeother\noexpand}%
197 \def\noexpand\@sanitize{\@sanitize\@makeother\"}}%
200 \let\grmn@original@three=\3 % \3 may be defined or undefined.
202 \ifnum\grmn@dqwarninglevel>\@ne
203 \grmn@dq@warning@obsolete{\string\ck}{ck}%
205 \penalty\@M\-\allowhyphens ck}
206 \begingroup\expandafter\expandafter\expandafter\endgroup
207 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
208 \expandafter\def\csname glqq \endcsname{%
209 \save@sf@q{\set@low@box{''\/}\box\z@\kern-.04em\allowhyphens}}
210 \edef\glqq{\noexpand\protect
211 \expandafter\noexpand\csname glqq \endcsname}
213 \expandafter\def\csname grqq \endcsname{%
214 \save@sf@q{\kern-.07em``\kern.07em}}% ('')
215 \edef\grqq{\noexpand\protect
216 \expandafter\noexpand\csname grqq \endcsname}
218 \expandafter\def\csname glq \endcsname{%
219 \save@sf@q{\set@low@box{'\/}\box\z@\kern-.04em\allowhyphens}}
220 \edef\glq{\noexpand\protect
221 \expandafter\noexpand\csname glq \endcsname}
223 \expandafter\def\csname grq\endcsname{%
224 \save@sf@q{\kern-.0125em`\kern.07em}}
225 \edef\grq{\noexpand\protect
226 \expandafter\noexpand\csname grq \endcsname}
228 \expandafter\def\csname flqq \endcsname{%
229 \relax\ifmmode \mathrel{\ll}\else \save@sf@q{\penalty\@M
230 \raise .27ex\hbox{$\m@th\scriptscriptstyle \ll $}%
232 \edef\flqq{\noexpand\protect
233 \expandafter\noexpand\csname flqq \endcsname}
235 \expandafter\def\csname frqq \endcsname{%
236 \relax\ifmmode \mathrel{\gg}\else \save@sf@q{\penalty\@M
237 \raise .27ex\hbox{$\m@th\scriptscriptstyle \gg $}%
239 \edef\frqq{\noexpand\protect
240 \expandafter\noexpand\csname frqq \endcsname}
242 \expandafter\def\csname flq \endcsname{%
243 \relax\ifmmode <\else \save@sf@q{\penalty\@M
244 \raise .27ex\hbox{$\m@th\scriptscriptstyle <$}\allowhyphens}\fi}
245 \edef\flq{\noexpand\protect
246 \expandafter\noexpand\csname flq \endcsname}
248 \expandafter\def\csname frq \endcsname{%
249 \relax\ifmmode >\else \save@sf@q{\penalty\@M
250 \raise .27ex\hbox{$\m@th\scriptscriptstyle >$}\allowhyphens}\fi}
251 \edef\frq{\noexpand\protect
252 \expandafter\noexpand\csname frq \endcsname}
255 \DeclareRobustCommand{\glqq}{%
256 \ifmmode\hbox{\quotedblbase}\else\quotedblbase\fi}
257 \ProvideTextCommandDefault{\quotedblbase}{%
258 \UseTextSymbol{OT1}\quotedblbase}
259 \ProvideTextCommand{\quotedblbase}{OT1}{%
260 \save@sf@q{\set@low@box{\textquotedblright\/}\box\z@
261 \kern-.04em\allowhyphens}}
262 \ProvideTextCommand{\grqq}{T1}{\textquotedblleft}
263 \ProvideTextCommand{\grqq}{OT1}{%
264 \save@sf@q{\kern-.07em%
265 \ifmmode\hbox{\textquotedblleft}\else\textquotedblleft\fi
267 \ProvideTextCommandDefault{\grqq}{\UseTextSymbol{OT1}\grqq}
268 \DeclareRobustCommand{\glq}{%
269 \ifmmode\hbox{\quotesinglbase}\else\quotesinglbase\fi}
270 \ProvideTextCommandDefault{\quotesinglbase}{%
271 \UseTextSymbol{OT1}\quotesinglbase}
272 \ProvideTextCommand{\quotesinglbase}{OT1}{%
273 \save@sf@q{\set@low@box{\textquoteright\/}\box\z@
274 \kern-.04em\allowhyphens}}
275 \ProvideTextCommand{\grq}{T1}{\textquoteleft}
276 \ProvideTextCommand{\grq}{OT1}{%
277 \save@sf@q{\kern-.0125em%
278 \ifmmode\hbox{\textquoteleft}\else\textquoteleft\fi
280 \ProvideTextCommandDefault{\grq}{\UseTextSymbol{OT1}\grq}
281 \DeclareRobustCommand{\flqq}{%
282 \ifmmode\mathrel{\hbox{\guillemotleft}}\else\guillemotleft\fi}
283 \ProvideTextCommandDefault{\guillemotleft}{%
284 \UseTextSymbol{OT1}\guillemotleft}
285 \ProvideTextCommand{\guillemotleft}{OT1}{%
286 \ifmmode \ll \else \save@sf@q{\penalty\@M
287 \raise .27ex\hbox{$\m@th\scriptscriptstyle \ll $}%
289 \DeclareRobustCommand{\frqq}{%
290 \ifmmode\mathrel{\hbox{\guillemotright}}\else\guillemotright\fi}
291 \ProvideTextCommandDefault{\guillemotright}{%
292 \UseTextSymbol{OT1}\guillemotright}
293 \ProvideTextCommand{\guillemotright}{OT1}{%
294 \ifmmode \gg \else \save@sf@q{\penalty\@M
295 \raise .27ex\hbox{$\m@th\scriptscriptstyle \gg $}%
297 \DeclareRobustCommand{\flq}{%
298 \ifmmode\mathbin{\hbox{\guilsinglleft}}\else\guilsinglleft\fi}
299 \ProvideTextCommandDefault{\guilsinglleft}{%
300 \UseTextSymbol{OT1}\guilsinglleft}
301 \ProvideTextCommand{\guilsinglleft}{OT1}{%
302 \ifmmode <\else \save@sf@q{\penalty\@M
303 \raise .27ex\hbox{$\m@th\scriptscriptstyle <$}\allowhyphens}\fi}
304 \DeclareRobustCommand{\frq}{%
305 \ifmmode\mathbin{\hbox{\guilsinglright}}\else\guilsinglright\fi}
306 \ProvideTextCommandDefault{\guilsinglright}{%
307 \UseTextSymbol{OT1}\guilsinglright}
308 \ProvideTextCommand{\guilsinglright}{OT1}{%
309 \ifmmode >\else \save@sf@q{\penalty\@M
310 \raise .27ex\hbox{$\m@th\scriptscriptstyle >$}\allowhyphens}\fi}
312 \begingroup\expandafter\expandafter\expandafter\endgroup
313 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
314 \def\umlauthigh{\def\"##1{{\accent127 ##1}}}
315 \def\umlautlow{\def\"{\protect\newumlaut}}
317 \def\umlauthigh{\def\grmn@OTumlaut##1{{\accent 127 ##1}}}
318 \def\umlautlow{\def\grmn@OTumlaut{\protect\newumlaut}}
320 \DeclareTextAccent{\"}{T1}{4}
321 \DeclareTextAccent{\"}{OT1}{127}
322 \DeclareTextCompositeCommand{\"}{OT1}{a}{\grmn@OTumlaut{a}}%
323 \DeclareTextCompositeCommand{\"}{OT1}{o}{\grmn@OTumlaut{o}}%
324 \DeclareTextCompositeCommand{\"}{OT1}{u}{\grmn@OTumlaut{u}}%
325 \DeclareTextCompositeCommand{\"}{OT1}{A}{\grmn@OTumlaut{A}}%
326 \DeclareTextCompositeCommand{\"}{OT1}{O}{\grmn@OTumlaut{O}}%
327 \DeclareTextCompositeCommand{\"}{OT1}{U}{\grmn@OTumlaut{U}}%
328 \DeclareTextComposite{\"}{T1}{a}{228}
329 \begingroup\expandafter\expandafter\expandafter\endgroup
330 \expandafter\ifx\csname AtBeginDocument\endcsname\relax \else
332 \DeclareTextAccent{\"}{T1}{4}% % from `ltpatch.tex'
333 \DeclareTextAccent{\"}{OT1}{127}% % from `ltpatch.tex'
334 % \DeclareTextCommand{\"}{OT1}{\newumlaut}% from `ltpatch.tex'
335 % % has to be removed
336 \DeclareTextCompositeCommand{\"}{OT1}{a}{\grmn@OTumlaut{a}}%
337 \DeclareTextCompositeCommand{\"}{OT1}{o}{\grmn@OTumlaut{o}}%
338 \DeclareTextCompositeCommand{\"}{OT1}{u}{\grmn@OTumlaut{u}}%
339 \DeclareTextCompositeCommand{\"}{OT1}{A}{\grmn@OTumlaut{A}}%
340 \DeclareTextCompositeCommand{\"}{OT1}{O}{\grmn@OTumlaut{O}}%
341 \DeclareTextCompositeCommand{\"}{OT1}{U}{\grmn@OTumlaut{U}}%
342 \DeclareTextComposite{\"}{T1}{a}{228}% % from `ltpatch.tex'
346 \def\dqwarninglevel#1{\chardef\grmn@dqwarninglevel=#1\relax}
348 \expandafter\ifx\csname on@line\endcsname\relax
349 \ifx\inputlineno\undefined \def\on@line{}%
351 \ifnum\inputlineno<\z@ \def\on@line{}%
352 \else \def\on@line{ on input line \the\inputlineno}%
354 \def\grmn@dq@error#1{%
355 \errhelp{Use `` for a simple double quote character.}%
356 \errmessage{ngerman: The command \dq\string#1 is undefined}}
357 \def\grmn@dq@warning#1{%
358 \immediate\write\sixt@@n
359 {ngerman: \dq\string#1 is possibly wrong\on@line.}}
360 \def\grmn@dq@warning@obsolete#1#2{%
361 \immediate\write\sixt@@n
362 {ngerman: #1 is now obsolete, please use #2 instead\on@line.}}
363 \def\grmn@dqobsolete@three#1{#1#1%
364 \ifnum\grmn@dqwarninglevel>\@ne
365 \grmn@dq@warning@obsolete{\dq#1#1}{#1#1#1}%
367 \penalty\@M\-\allowhyphens}
368 \def\grmn@dqobsolete@ck#1#2{%
369 \ifnum\grmn@dqwarninglevel>\@ne
370 \grmn@dq@warning@obsolete{\dq#1#2}{#1#2}%
372 \penalty\@M\-\allowhyphens#1}
373 \def\grmn@dq@macro#1#2{%
374 \expandafter#1\csname @grmn@@\string #2dq\endcsname}
375 \def\def@dqmacro#1#2#3{%
376 \grmn@dqredefcheck{#1}%
377 \grmn@dq@macro\def{#1}{{#2}{#3}}}
378 \def\let@dqmacro#1#2{\begingroup
379 \grmn@dqredefcheck{#1}%
380 \edef\x{\endgroup \let
381 \grmn@dq@macro\noexpand{#1}\grmn@dq@macro\noexpand{#2}}%
383 \def\grmn@dqredefcheck#1{}
385 \grmn@dq@macro\ifx{#1}\relax
386 \ifnum\grmn@dqwarninglevel>\z@ \grmn@dq@error{#1}\fi
387 \expandafter\grmn@@normal@dq
389 \expandafter\grmn@@active@dq
391 \def\grmn@@active@dq#1{%
392 \grmn@dq@macro\ifx{#1}\noexpand
393 \expandafter\grmn@normal@dq
395 \expandafter\grmn@@@active@dq
397 \def\grmn@@normal@dq#1{``#1}
398 \def\grmn@normal@dq#1{\dq #1}
400 \catcode`\(=1\lccode`\(=`\{\catcode`\{=12
401 \catcode`\)=2\lccode`\)=`\}\catcode`\}=12
402 \catcode`\ =11\relax% <= do not delete this and the
403 \lowercase(\endgroup% <=== following percent characters!
404 \def\grmn@@@active@dq#1(%
405 \expandafter\grmn@@@@active@dq\expandafter{\string#1})%
406 \def\grmn@@@@active@dq(%
407 \ifx\protect\relax\else\ifx\protect\empty\else%
408 \expandafter\expandafter\expandafter\protect%
410 \active@dq \dq@prtct )%
411 \def\dq@prtct#1#(\@dq@prtct)%
412 \def\@dq@prtct#1(\string\dq@prtct{\string#1})%
413 \def\dq@prtct #1{#2}(\string\dq@prtct{\string#2})%
414 \def\active@dq #1{#2}(\grmn@active@@dq(#2))%
416 \def\active@dq#1#{\@active@dq}%
417 \def\grmn@active@@dq#1{%
418 \csname grmn@dq\ifmmode second\else first\fi
419 \expandafter\expandafter\expandafter\expandafter
420 \grmn@dq@macro\endcsname{#1}}
421 \grmn@dq@macro\let{0}=\noexpand
422 \let@dqmacro{1}{0}\let@dqmacro{2}{0}\let@dqmacro{3}{0}
423 \let@dqmacro{4}{0}\let@dqmacro{5}{0}\let@dqmacro{6}{0}
424 \let@dqmacro{7}{0}\let@dqmacro{8}{0}\let@dqmacro{9}{0}
425 \let@dqmacro{A}{0}\let@dqmacro{B}{0}\let@dqmacro{C}{0}
426 \let@dqmacro{D}{0}\let@dqmacro{E}{0}\let@dqmacro{F}{0}
427 \def@dqmacro{}{\dq{}}{\dq{}}
428 \def@dqmacro{a}{\"a}{\@MATHUMLAUT a}
429 \def@dqmacro{o}{\"o}{\@MATHUMLAUT o}
430 \def@dqmacro{u}{\"u}{\@MATHUMLAUT u}
431 \def@dqmacro{A}{\"A}{\@MATHUMLAUT A}
432 \def@dqmacro{O}{\"O}{\@MATHUMLAUT O}
433 \def@dqmacro{U}{\"U}{\@MATHUMLAUT U}
434 \begingroup\expandafter\expandafter\expandafter\endgroup
435 \expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
436 \def@dqmacro{s}{\ss{}}{\@MATHss}
438 \def@dqmacro{s}{\ss}{\@MATHss}
440 \def@dqmacro{S}{\SS}{\SS}
442 \def@dqmacro{Z}{SZ}{SZ}
443 \def@dqmacro{e}{\highumlaut e}{\@MATHUMLAUT e}
444 \def@dqmacro{E}{\highumlaut E}{\@MATHUMLAUT E}
445 \def@dqmacro{i}{\highumlaut{\i}}{\@MATHUMLAUT\imath}
446 \def@dqmacro{I}{\highumlaut I}{\@MATHUMLAUT I}
447 \def@dqmacro{`}{\glqq}{\glqq}
448 \def@dqmacro{'}{\grqq}{\grqq}
449 \def@dqmacro{<}{\flqq}{\flqq}
450 \def@dqmacro{>}{\frqq}{\frqq}
451 \def@dqmacro{-}{\penalty\@M\-\allowhyphens}%
452 {\penalty\@M\-\allowhyphens}
453 \def@dqmacro{|}{\penalty\@M\discretionary{-}{}{\kern.03em}%
455 \def@dqmacro{"}{\hskip\z@skip}{\hskip\z@skip}
456 \def@dqmacro{~}{\leavevmode\hbox{-}}{-}
457 \def@dqmacro{=}{\penalty\@M-\hskip\z@skip}%
458 {\penalty\@M-\hskip\z@skip}
459 \def@dqmacro{c}{\grmn@dqobsolete@ck ck}{c}
460 \def@dqmacro{C}{\grmn@dqobsolete@ck CK}{C}
461 \def@dqmacro{l}{\grmn@dqobsolete@three l}{l}
462 \def@dqmacro{L}{\grmn@dqobsolete@three L}{L}
463 \def@dqmacro{m}{\grmn@dqobsolete@three m}{m}
464 \def@dqmacro{M}{\grmn@dqobsolete@three M}{M}
465 \def@dqmacro{n}{\grmn@dqobsolete@three n}{n}
466 \def@dqmacro{N}{\grmn@dqobsolete@three N}{N}
467 \def@dqmacro{p}{\grmn@dqobsolete@three p}{p}
468 \def@dqmacro{P}{\grmn@dqobsolete@three P}{P}
469 \def@dqmacro{r}{\grmn@dqobsolete@three r}{r}
470 \def@dqmacro{R}{\grmn@dqobsolete@three R}{R}
471 \def@dqmacro{t}{\grmn@dqobsolete@three t}{t}
472 \def@dqmacro{T}{\grmn@dqobsolete@three T}{T}
473 \def@dqmacro{F}{\grmn@dqobsolete@three F}{F}
474 \def@dqmacro{f}{\grmn@dqobsolete@three f}{f}
475 \def\grmn@dqredefcheck#1{%
476 \wlog{ngerman: \grmn@dq@macro\ifx{#1}\relax \else re\fi
477 defining dq-command for `\string#1'\on@line.}}%
478 \def\month@ngerman{\ifcase\month \or
479 Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
480 Juli\or August\or September\or Oktober\or November\or Dezember\fi}
481 \def\datengerman{\def\today{\number\day.~\month@ngerman
483 \def\datenaustrian{\def\today{\number\day.~\ifnum 1=\month
484 J\"anner\else \month@ngerman\fi \space\number\year}}
485 \def\month@english{\ifcase\month \or
486 January\or February\or March\or April\or May\or June\or
487 July\or August\or September\or October\or November\or December\fi}
488 \def\dateUSenglish{\def\today{\month@english
489 \space\number\day, \number\year}}
490 \def\dateenglish{\def\today{\number\day \ifcase\day \or
491 st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 1..10
492 th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or% 11..20
493 st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 21..30
495 ~\month@english \space\number\year}}
496 \def\datefrench{\def\today{\number\day \ifnum1=\day \/$^{\rm er}$\fi
497 \space\ifcase\month \or
498 janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
499 juillet\or ao\^ut\or septembre\or
500 octobre\or novembre\or d\'ecembre\fi
502 \def\captionsngerman{%
503 \def\prefacename{Vorwort}%
504 \def\refname{Literatur}%
505 \def\abstractname{Zusammenfassung}%
506 \def\bibname{Literaturverzeichnis}%
507 \def\chaptername{Kapitel}%
508 \def\appendixname{Anhang}%
509 \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt
510 \def\listfigurename{Abbildungsverzeichnis}%
511 \def\listtablename{Tabellenverzeichnis}%
512 \def\indexname{Index}%
513 \def\figurename{Abbildung}%
514 \def\tablename{Tabelle}% % oder: Tafel
516 \def\enclname{Anlage(n)}% % oder: Beilage(n)
517 \def\ccname{Verteiler}% % oder: Kopien an
519 \def\pagename{Seite}%
521 \def\alsoname{siehe auch}}
522 \let\captionsnaustrian=\captionsngerman
523 \def\captionsenglish{%
524 \def\prefacename{Preface}%
525 \def\refname{References}%
526 \def\abstractname{Abstract}%
527 \def\bibname{Bibliography}%
528 \def\chaptername{Chapter}%
529 \def\appendixname{Appendix}%
530 \def\contentsname{Contents}%
531 \def\listfigurename{List of Figures}%
532 \def\listtablename{List of Tables}%
533 \def\indexname{Index}%
534 \def\figurename{Figure}%
535 \def\tablename{Table}%
542 \def\alsoname{see also}}
543 \let\captionsUSenglish=\captionsenglish
544 \def\captionsfrench{%
545 \def\prefacename{Pr\'eface}%
546 \def\refname{R\'ef\'erences}%
547 \def\abstractname{R\'esum\'e}%
548 \def\bibname{Bibliographie}%
549 \def\chaptername{Chapitre}%
550 \def\appendixname{Annexe}%
551 \def\contentsname{Table des mati\`eres}%
552 \def\listfigurename{Liste des figures}%
553 \def\listtablename{Liste des tableaux}%
554 \def\indexname{Index}%
555 \def\figurename{Figure}%
556 \def\tablename{Tableau}%
557 \def\partname{Partie}%
558 \def\enclname{P.~J.}%
559 \def\ccname{Copie \`a}%
563 \def\alsoname{voir aussi}}%
564 \def\extrasUSenglish{}
565 \let\noextrasUSenglish=\extrasUSenglish
566 \let\extrasenglish=\extrasUSenglish
567 \let\noextrasenglish=\extrasenglish
568 \def\extrasngerman{\frenchspacing \uchyph\@ne
569 \lefthyphenmin\tw@ \righthyphenmin\tw@}
570 \def\noextrasngerman{%
571 \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi
572 \uchyph\the\uchyph\relax
573 \lefthyphenmin\the\lefthyphenmin
574 \righthyphenmin\the\righthyphenmin}
575 \let\extrasnaustrian=\extrasngerman
576 \let\noextrasnaustrian=\noextrasngerman
577 \def\extrasfrench{\frenchspacing}
578 \def\noextrasfrench{%
579 \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi}
580 \@ifundefined{l@USenglish}{%
581 \@ifundefined{l@english}{\chardef\l@USenglish=255 }%
582 {\chardef\l@USenglish=\l@english}%
583 \wlog{ngerman -- \string\language\space number for USenglish %
584 undefined, default \number\l@USenglish\space used.}%
586 \@ifundefined{l@english}{%
587 \chardef\l@english=\l@USenglish
588 \wlog{ngerman -- \string\language\space number for UKenglish %
589 undefined, default \number\l@english\space used.}%
591 \@ifundefined{l@ngerman}{%
592 \@ifundefined{l@naustrian}{%
593 \chardef\l@ngerman=255 %
594 \message{ngerman -- \string\language\space number for ngerman %
595 undefined, default \number\l@ngerman\space used,}%
596 \message{ngerman -- Please read \string"gerdoc.tex\string" how %
597 to install hyphenation patterns.}%
599 \chardef\l@ngerman=\l@naustrian
600 \wlog{ngerman -- \string\language\space number for ngerman %
601 undefined, default \number\l@ngerman\space used.}%
604 \@ifundefined{l@naustrian}{%
605 \chardef\l@naustrian=\l@ngerman
606 \wlog{ngerman -- \string\language\space number for naustrian %
607 undefined, default \number\l@naustrian\space used.}%
609 \@ifundefined{l@french}{%
610 \chardef\l@french=255
611 \wlog{ngerman -- \string\language\space number for French %
612 undefined, default \number\l@french\space used.}%
614 \def\grmn@originalTeX{}
616 \expandafter\def\csname selectlanguage \endcsname#1{\relax
617 \expandafter\ifx\csname l@#1\endcsname\relax
618 \errhelp{Your command will be ignored, type <return> to proceed}%
619 \errmessage{You haven't defined the language #1 yet}%
622 \edef\languagename{#1}%
623 \edef\grmn@originalTeX{\csname noextras#1\endcsname
624 \def\noexpand\grmn@originalTeX{}}%
625 \csname date#1\endcsname
626 \csname captions#1\endcsname
627 \csname extras#1\endcsname\relax
628 % Diese Zeile ist fuer `bibgerm' ...
629 \csname bibs#1\endcsname
630 % ... sie wird in spaeteren `german.sty'-Versionen nicht
631 % mehr vorhanden sein. Also nicht darauf verlassen!
632 \language \csname l@#1\endcsname\relax
634 \begingroup\catcode`\ =11\relax% <= do not delete this and the
635 \toks0={\endgroup% <=== following percent characters!
636 \def\selectlanguage#1{\protect\selectlanguage {%
637 \ifnum\escapechar=\expandafter`\string#1\empty%
638 \else\string#1\empty\fi}}}%
640 \def\p@selectlanguage{\selectlanguage}
642 \ifx\csname l@#1\endcsname\relax
643 \expandafter\grmn@dqsecond
644 \else \ifnum\csname l@#1\endcsname=\language
645 \expandafter\expandafter\expandafter\grmn@dqfirst
647 \expandafter\expandafter\expandafter\grmn@dqsecond
650 \expandafter\ifx\csname language\endcsname\relax
651 \csname newcount\endcsname\language
653 \expandafter\ifx\csname lefthyphenmin\endcsname\relax
654 \csname newcount\endcsname\lefthyphenmin
656 \expandafter\ifx\csname righthyphenmin\endcsname\relax
657 \csname newcount\endcsname\righthyphenmin
658 \righthyphenmin=3 \fi
659 \expandafter\ifx\csname setlanguage\endcsname\relax
660 \def\setlanguage{\relax
662 \errhelp{Use \selectlanguage to switch languages.}%
663 \errmessage{\setlanguage allowed only in horizontal mode}%
665 \begingroup\afterassignment\endgroup\count@=}
669 \def\originalTeX{\mdqoff \let"\dq \umlauthigh
670 \let\3\grmn@original@three
671 \selectlanguage{USenglish}}%
672 \def\ngermanTeX{\mdqon \let"\@active@dq \umlautlow
673 \let\grmn@original@three\3\let\3\ss
674 \selectlanguage{ngerman}}}%
676 \catcode`\@=\atcode % return to previous catcode
680 %% End of file `ngerman.sty'.