2 %% This is file `german.sty', generated
3 %% on <1995/1/20> with the docstrip utility (2.2i).
5 %% The original source files were:
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.
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.
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)
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
32 %% Error Reports in case of UNCHANGED versions to
37 %% Federal Republic of Germany
38 %% Email: raichle@Informatik.Uni-Stuttgart.DE
41 %% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
42 %% Koordinator ``german.sty''
45 %% Federal Republic of Germany
46 %% Email: german@dante.de
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
64 \expandafter\expandafter\expandafter\endinput%
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)
]
72 \chardef\atcode=
\catcode`\@
73 \catcode`\@=
11 % \makeatletter
74 \expandafter\ifx\csname @ifundefined
\endcsname\relax
76 \expandafter\ifx\csname #1\endcsname\relax
77 \expandafter\grmn@first
\else\expandafter\grmn@second
\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}}
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}}}%
92 \@ifundefined
{ProvideTextCommand
}{%
93 \def\ProvideTextCommand#1#2{%
94 %%% misses \RobustTextCommand{#1}{...etc.etc...}!!
95 \expandafter\providecommand\csname #2\string#1\endcsname}%
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
}
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}
177 \def\highumlaut#1{\"
{#1}\allowhyphens}
179 \def\mdqon{\catcode`\"
\active}
180 \def\mdqoff{\catcode`\"
12\relax}
184 \def\@MATHUMLAUT
{\ddot}% = \mathaccent"707F
185 \def\@SS
{\mathchar"
7019 }% TODO: correct?
186 \def\dq{"
}}% TODO: or \textquotedbl?
189 \def\do{\noexpand\do\noexpand}%
191 \def\noexpand\dospecials{\dospecials\do\"
}}%
193 \begingroup\expandafter\expandafter\expandafter\endgroup
194 \expandafter\ifx\csname @sanitize
\endcsname\relax \else
196 \def\@makeother
{\noexpand\@makeother
\noexpand}%
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
}
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
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
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}}
284 \def\umlauthigh{\def\grmn@OTumlaut#
#1{{\accent 127 #
#1}}}
285 \def\umlautlow{\def\grmn@OTumlaut
{\protect\newumlaut}}
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
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}
315 \expandafter\ifx\csname on@line
\endcsname\relax
316 \ifx\inputlineno\undefined \let\on@line\@empty
318 \ifnum\inputlineno<
\z@
\let\on@line\@empty
319 \else \def\on@line
{ on input line
\the\inputlineno}
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{}
339 \grmn@dq@macro
\ifx{#1}\relax
340 \ifnum\grmn@dqwarninglevel>
\z@
\grmn@dq@error
{#1}\fi
341 \expandafter\grmn@@normal@dq
343 \expandafter\grmn@@active@dq
345 \def\grmn@@active@dq
#1{%
346 \grmn@dq@macro
\ifx{#1}\noexpand
347 \expandafter\grmn@normal@dq
349 \expandafter\grmn@@@active@dq
351 \def\grmn@@normal@dq
#1{``
#1}
352 \def\grmn@normal@dq
#1{\dq #1}
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%
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
}
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
}%
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
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
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
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
469 \def\enclname{Anlage(n)
}% % oder: Beilage(n)
470 \def\ccname{Verteiler
}% % oder: Kopien an
472 \def\pagename{Seite
}%
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
}%
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
}%
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
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.
}
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
}%
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
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
587 \expandafter\ifx\csname lefthyphenmin
\endcsname\relax
588 \csname newcount
\endcsname\lefthyphenmin
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
596 \errhelp{Use
\selectlanguage to switch languages.
}%
597 \errmessage{\setlanguage allowed only in horizontal mode
}%
599 \begingroup\afterassignment\endgroup\count@=
}
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
614 %% End of file `german.sty'.