summaryrefslogtreecommitdiff
path: root/support/word_tex/german.tex
blob: b00661e918e2549feb626425ffa556d2b74c1006 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
%% GERMAN
%% This is GERMAN.TEX or GERMAN.STY, Vers. 2.3e, 31 Jul 1991
%    collected by H.Partl (TU Wien),
%    using ideas by W.Appelt, F.Hommes et al. (GMD St.Augustin),
%    T.Hofmann (CIBA-GEIGY Basel), N.Schwarz (Uni Bochum),
%    J.Schrod (TH Darmstadt), D.Armbruster (Uni Stuttgart),
%    R.Schoepf (Uni Mainz, Uni Heidelberg) and F.Mittelbach
%    (Uni Mainz, EDS Ruesselsheim), J.Knappen (Uni Mainz),
%    P.Breitenlohner (MPI Muenchen), B.Raichle (Uni Stuttgart)
%    and many others.
%%
%% DOCUMENT STYLE OPTION for writing german texts
%% with TeX version 2.x (Plain TeX) or with LaTeX version 2.09.
%%
% It can be called via
%    \input german
% or (with LaTeX) via
%    \documentstyle[german]{anystyle}
%
% This file conforms to the standard for ``Einheitliche deutsche
% TeX-Befehle'' as proposed at the 6th Meeting of German TeX Users
% in M\"unster, October 1987. It is available from DANTE (the users
% group of German speaking TeX users) at the University of Heidelberg
% (e.g. with GET GERMAN STY from the Bitnet server LISTSERV@DHDURZ1,
% or by requesting a PC diskette).
%
% Commands to be used by the end users:
% "a                 for Umlaut-a (like \"a), also for all other vowels.
% "s                 for sharp s  (like \ss{}).
% "ck                for ck to be hyphenated as k-k.
% "ff                for ff to be hyphenated as ff-f, also for certain
%                    other consonants.
% "S                 for SS to be \uppercase{"s}
% "A, "CK, "FF etc.  uppercase versions of the above.
% "|                 to separate ligatures.
% "-                 like \-, but allowing hyphenation in the rest of
%                    the word.
% ""                 like "-, but producing no hyphen sign (for x-""y).
% "` or \glqq        for german left  double quotes  (similar to ,,)
% "' or \grqq        for german right double quotes  (similar to ``)
%       \glq         for german left  single quotes  (similar to , )
%       \grq         for german right single quotes  (similar to ` )
% "< or \flqq        for french left  double quotes  (similar to <<)
% "> or \frqq        for french right double quotes  (similar to >>)
%       \flq         for french left  single quotes  (similar to < )
%       \frq         for french right single quotes  (similar to > )
% \dq                for the original quotes character (")
% \selectlanguage{n} to select the main language of the document,
%                    specified by the parameter n, which should be
%                    one of the following command names:
%                    \austrian \french \english \german \USenglish;
%                    - this changes the date format, captions and (if
%                    the command is properly modified) hyphenation.
% \originalTeX       to restore everything to the original settings
%                    of TeX and LaTeX (well, almost everything).
% \germanTeX         to re-activate the german settings.
%
% Obsolete commands, provided for compatibility with existing
% applications:
% \3                 for sharp s (like "s).
% \ck                for ck to be hyphenated as k-k (like "ck).
%
% Obsolete command, incompatible with the former definition:
% \setlanguage       the former name of \selectlanguage
%                    TeX 3.x introduces a new primitive with the
%                    same name (DO NOT USE \setlanguage!)
%
% Lower level commands and features:
% \umlautlow        redefines the Umlaut accent such that the dots come
%                   nearer to the letter and that hyphenation is enabled
%                   in the rest of the word.
% \umlauthigh       restores \" to its original meaning.
% \ss               is \lccode'd to enable hyphenation.
% \mdqon            makes " an active (meta-) character that does the
%                   pretty things described above.
% \mdqoff           restores " to its original meaning.
% \dospecials,\@sanitize  are extended to include the ".
% \dateaustrian, \dategerman, \dateenglish, \dateUSenglish, \datefrench
%                   redefine \today to use the respective date format.
% \captionsgerman, \captionsenglish, \captionsfrench
%                   switch to german, english or french chapter captions
%                   and the like, resp.  This will have an effect only
%                   if the document style files use the symbolic names
%                   \chaptername etc. instead of the original english
%                   words. ("International LaTeX")
% \language         a count that may be set by \selectlanguage to switch
%                   hyphenation patterns or other language dependent
%                   items like, e.g., document style declarations of
%                   the form
%                      \ifnum\language=\english .textengl.\else
%                      \ifnum\language=\german  .textgerm.\fi\fi
%
% Finally, \germanTeX is switched on.
%
%
% Notes:
%
% This file can be used both with Plain TeX and with LaTeX and other
% macro packages, and with the original TeX and LaTeX fonts. Usage of
% german hyphenation patterns is recommended to accompany this style
% file when writing german texts.
%
% The file should be read in vertical mode only (usually at the
% beginning of the document) to avoid spurious spaces.
%
% \undefined must be an undefined control sequence.
%
% Multiple calls of this file (e.g. at the beginning of each subfile)
% will do no harm. Only the first call (i.e., if \mdqon is undefined)
% performs all the definitions and settings. Later calls only switch
% to \germanTeX.
%
% The catcode of @ remains unchanged after processing of this file.
% All of the definitions are local (except one \newdimen), the
% switching on of the german options is local.
%
% The commands \mdqon, \mdqoff, \originalTeX, \germanTeX, and
% \selectlanguage are ``fragile'' with LaTeX and should not be used
% within arguments of macro calls.
%
% In Plain TeX, `\protect' should be \let to `\relax' normally and to
% something like `\string' inside the arguments of `\write' or
% `\message' (see LaTeX.TEX for all the details).
%
% The command \umlautlow may need adaption to font parameters (see
% comments there for details).
%
% The commands \flqq, \frqq, \flq, \frq, and \datefrench  in their
% present forms do not work properly with all font sizes and styles,
% they still require a better solution. A LaTeX-only solution might be
% to use {\ly(}, {\ly(\kern-0.166em(}, {\ly)} etc., but this would not
% work with Plain TeX.
%
% The current version has been designed for TeX versions 1 and 2.
% When used with TeX version 3 or with MLTeX by M.Ferguson, the setting
% of the \language counter have to be inserted into the definition of
% the \selectlanguage command, with values that are appropriate for the
% hyphenation patterns loaded into the FMT file by IniTeX.
%
% Since " has a different catcode (\active) and a different meaning than
% in original TeX, special care has to be taken if " is to be used in
% its original meaning for hexadecimal constants (explicitely, or
% implicitely by math-delimiters or other macros when expanded).
%
%
% Known "Bugs":
%
%  -- If a hexadecimal number begins with a letter, TeX reports
%     ``Missing number, treated as zero''.
%  >> Use "0A0-"0FF instead of "A0-"FF or make sure that the catcode of
%     the doublequote is `other' when reading a hexadecimal constant.
%
%  -- Spaces after active doublequotes are ignored.  E.g. the input of
%     ``M" unster'' produces the same as ``M"unster''.
%  -- The use of things like "} in the text causes an error.
%  -- If a doublequote is followed by a group, e.g. "{a"a}, it is
%     possible that TeX reports ``Missing \endcsname inserted''.
%  >> Use the ''-ligature or "{} or \verb+"+ to produce normal
%     doublequotes.
%
 
 
% \ifundefined{mdqon} or \mdqon=\relax
\expandafter\ifx\csname mdqon\endcsname\relax
% \then go ahead \else switch to \germanTeX and do nothing
\else \germanTeX \expandafter\endinput \fi
 
\message{Document Style Option `german' Version 2.3e of 31 Jul 1991}
 
% \ifundefined{protect}
\ifx\protect\undefined
% \then define it
\let\protect=\relax \fi
 
% save current category code of `@'
\chardef\atcode=\catcode`\@
\catcode`\@=11 % \makeatletter
 
% \allowhyphens simulates a word boundary,
% kerning information will be lost!
\def\allowhyphens{\penalty\@M \hskip\z@skip}
%                {\nobreak    \hskip 0pt plus 0pt\relax}
 
\def\umlauthigh{\def\"##1{{\accent127 ##1}}}
\def\umlautlow{\def\"{\protect\newumlaut}}
 
% The old definition of \newumlaut...
%
% \newcount\U@C\newbox\U@B\newdimen\U@D
% \def\newumlaut#1{\leavevmode\allowhyphens
%      \vbox{\baselineskip\z@skip \lineskip.25ex
% %          \baselineskip 0pt
%      \ialign{##\crcr\hidewidth
%      \setbox\U@B\hbox{#1}\U@D .01\p@\U@C\U@D
%      \U@D\ht\U@B\advance\U@D -1ex\divide\U@D \U@C
%      \U@C\U@D\U@D\the\fontdimen1\the\font
%      \multiply\U@D \U@C\divide\U@D 100\kern\U@D
%      \vbox to .20ex  % <--- depending on the METAFONT parameters
% %                           of the fonts, the height of this \vbox
% %                           may vary around the value of .20ex  --
% %                           just try out, which will look best!
%      {\hbox{\char127}\vss}\hidewidth\crcr#1\crcr}}\allowhyphens}
%
% ...and the new one:
%
% The new value of `ex' (or \fontdimen5 of the current font) is
% computed as
%    height(\umlautaccent) - (0.25ex + 0.20ex)
% [ ~= 1.10117ex for cm-fonts]
% The value of `0.20ex' depends on the METAFONT parameters of the
% fonts, ... (see above).
%
\ifx\U@D\undefined
  \csname newdimen\endcsname\U@D
\fi
\def\newumlaut#1{\leavevmode\allowhyphens{\U@D 1ex
      % compute new ex value
  {\setbox\z@\hbox{\char127}\dimen@\ht\z@ \advance\dimen@ -.45ex
      % don't change, if new-ex < old-ex
  \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
  \accent127 \fontdimen5\font\U@D #1}\allowhyphens}
 
\def\highumlaut#1{\leavevmode\allowhyphens
   {\accent127 #1}\allowhyphens}
 
 
%
%  Quotes
%  ------
%
\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}\dimen\z@\ht\z@
   \advance\dimen\z@ -\ht\tw@
   \setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@ }
%  (this lowers the german left quotes to the same level as the comma.)
 
\def\save@sf@q#1{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else
     \let\@SF\empty \fi \leavevmode #1\@SF}}
 
\def\@glqq{\save@sf@q{\set@low@box{''}\box\z@\kern-.04em\allowhyphens}}
\def\glqq{\protect\@glqq}
\def\@grqq{\save@sf@q{\kern-.07em``\kern.07em}}
\def\grqq{\protect\@grqq}
\def\@glq{\save@sf@q{\set@low@box{'}\box\z@\kern-.04em\allowhyphens}}
\def\glq{\protect\@glq}
\def\@grq{\save@sf@q{\kern-.07em`\kern.07em}}
\def\grq{\protect\@grq}
\def\@flqq{\ifmmode \ll \else
  \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle \ll $}}\fi}
\def\flqq{\protect\@flqq}
\def\@frqq{\ifmmode \gg \else
  \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle \gg $}}\fi}
\def\frqq{\protect\@frqq}
\def\@flq{\ifmmode <\else
  \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle <$}}\fi}
\def\flq{\protect\@flq}
\def\@frq{\ifmmode >\else
  \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle >$}}\fi}
\def\frq{\protect\@frq}
 
 
% enable hyphenations after \ss:
\lccode`\^^Y=`\^^Y
 
\let\original@three=\3 % Note that \3 may be defined or undefined.
 
% add doublequotes to the definitions of dospecials and sanitize:
\begingroup
  \def\do{\noexpand\do\noexpand}%
  \edef\next{\endgroup
    \def\noexpand\dospecials{\dospecials\do\"}}%
\next
% not ( \ifundefined{@sanitize} or \@sanitize=\relax ) = if LaTeX
\expandafter\ifx\csname @sanitize\endcsname\relax \else
  \begingroup
    \def\@makeother{\noexpand\@makeother\noexpand}%
    \edef\next{\endgroup
      \def\noexpand\@sanitize{\@sanitize\@makeother\"}}%
  \next
\fi
 
\def\mdqon{\catcode`\"\active}
\def\mdqoff{\catcode`\"12 }
 
\def\ck{\allowhyphens\discretionary{k-}{}{c}k\allowhyphens}
 
 
%
%  active doublequote mechanism
%  ----------------------------
%
\begingroup \mdqoff
\def\next{\endgroup
  \def\@UMLAUT{\"}
  \def\@MATHUMLAUT{\mathaccent"707F }
  \def\@SS{\mathchar"7019 }
  \def\dq{"}}
\next
 
 
% For all arguments of an active doublequote which should be treated in
% a special way, we define a macro with the argument text in the name.
%
% \dq@macro#1 constructs this name.
%
% (If the expansion of \dq@macro results in another call of \dq@macro
% the inner macro shouldn't contain unexpandable primitives like
% \relax.  Otherwise TeX warns about a "Missing \endcsname inserted."
% Example: Gr"{u"se})
%
\def\dq@macro#1{\csname @dq@\string #1@dq@\endcsname}
 
 
% The definition of the active doublequote macro:
%
% If used with DC/EC-fonts, correct kerning and ligature building is
% inhibited by \protect (with meaning \relax).
% (Quick&dirty solution: replace \protect by something like
% \ifx\protect\relax \else \expandafter\protect \fi)
%
\def\@active@dq#1{\expandafter\expandafter\expandafter
  \ifx\dq@macro{#1}\relax
    \expandafter\normal@dq
  \else
    \expandafter\protect\expandafter\active@dq
  \fi {#1}}
 
 
% The braces of {#1} in \@active@dq are necessary if someone wants to
% define a doublequote macro for things like "{}.  They ensure that
% \active@dq is called with the correct argument.
% For \normal@dq we have to delete the braces and insert a normal
% doublequote.
%
\def\normal@dq#1{\dq #1}
 
 
% For combinations "x which should be treated in a special way,
% \active@dq is called with `x' as argument.
% In the current implementation the actions for argument #1 are saved
% in macros with name \dq@macro{#1}.  These macros expand to two groups
% containing the action for text and for math mode.
% The support of other ``modes'' (e.g. DC/EC-Fonts) can be implemented
% in this macro.
%
\def\active@dq#1{%
  \csname dq@\ifmmode second\else first\fi
%     \dq@macro has to be expanded three times:
%     1. \dq@macro       --> \csname...
%     2. \csname...      --> control seqence
%     3. control seqence --> {text mode}{math mode}
    \expandafter\expandafter\expandafter\expandafter
    \expandafter\expandafter\expandafter
  \endcsname
  \dq@macro{#1}}
%
\def\dq@first#1#2{#1}
\def\dq@second#1#2{#2}
 
 
% The definition of a "-macro is done with...
%
\def\def@dqmacro#1#2#3{\expandafter\expandafter\expandafter
  \def\dq@macro{#1}{{#2}{#3}}}
 
\def\let@dqmacro#1#2{\begingroup
  \edef\next{\endgroup \let
    \expandafter\expandafter\expandafter\noexpand\dq@macro{#1}%
    \expandafter\expandafter\expandafter\noexpand\dq@macro{#2}}%
  \next}
 
 
% Definitions for all doublequote macros...
% (The empty groups after some macros are necessary for \write commands,
% otherwise spaces after these macros will be ignored.)
%
% umlauts:
%
\def@dqmacro{a}{\@UMLAUT a}{\@MATHUMLAUT a}
\def@dqmacro{o}{\@UMLAUT o}{\@MATHUMLAUT o}
\def@dqmacro{u}{\@UMLAUT u}{\@MATHUMLAUT u}
\def@dqmacro{A}{\@UMLAUT A}{\@MATHUMLAUT A}
\def@dqmacro{O}{\@UMLAUT O}{\@MATHUMLAUT O}
\def@dqmacro{U}{\@UMLAUT U}{\@MATHUMLAUT U}
%
% german es-zet:
%
\def@dqmacro{s}{\ss{}}{\@SS{}}
\def@dqmacro{S}{SS}{SS}
%
% german and french quotes:
%
\def@dqmacro{`}{\glqq{}}{\glqq{}}
\def@dqmacro{'}{\grqq{}}{\grqq{}}
\def@dqmacro{<}{\flqq{}}{\flqq{}}
\def@dqmacro{>}{\frqq{}}{\frqq{}}
%
% tremas:
%
\def@dqmacro{e}{\highumlaut e}{\@MATHUMLAUT a}
\def@dqmacro{E}{\highumlaut E}{\@MATHUMLAUT E}
\def@dqmacro{i}{\highumlaut\i{}}{\@MATHUMLAUT\imath}
\def@dqmacro{I}{\highumlaut I}{\@MATHUMLAUT I}
%
% misc.:
%
\def@dqmacro{-}{\allowhyphens\-\allowhyphens}%
                {\allowhyphens\-\allowhyphens}
\def@dqmacro{"}{\hskip\z@skip}{\hskip\z@skip}
\let@dqmacro{\active@dq}{"}
\def@dqmacro{|}{\discretionary{-}{}{\kern.03em}}{}
%
% discretionaries:
%
\def@dqmacro{c}{\allowhyphens\discretionary{k-}{}{c}\allowhyphens}{c}
\def@dqmacro{C}{\allowhyphens\discretionary{K-}{}{C}\allowhyphens}{C}
\def@dqmacro{f}{\allowhyphens\discretionary{ff-}{}{f}\allowhyphens}{f}
\def@dqmacro{F}{\allowhyphens\discretionary{FF-}{}{F}\allowhyphens}{F}
\def@dqmacro{l}{\allowhyphens\discretionary{ll-}{}{l}\allowhyphens}{l}
\def@dqmacro{L}{\allowhyphens\discretionary{LL-}{}{L}\allowhyphens}{L}
\def@dqmacro{m}{\allowhyphens\discretionary{mm-}{}{m}\allowhyphens}{m}
\def@dqmacro{M}{\allowhyphens\discretionary{MM-}{}{M}\allowhyphens}{M}
\def@dqmacro{n}{\allowhyphens\discretionary{nn-}{}{n}\allowhyphens}{n}
\def@dqmacro{N}{\allowhyphens\discretionary{NN-}{}{N}\allowhyphens}{N}
\def@dqmacro{p}{\allowhyphens\discretionary{pp-}{}{p}\allowhyphens}{p}
\def@dqmacro{P}{\allowhyphens\discretionary{PP-}{}{P}\allowhyphens}{P}
\def@dqmacro{t}{\allowhyphens\discretionary{tt-}{}{t}\allowhyphens}{t}
\def@dqmacro{T}{\allowhyphens\discretionary{TT-}{}{T}\allowhyphens}{T}
 
 
%
%  Dates and Captions
%  ------------------
%
\def\dateaustrian{\def\today{\number\day.~\ifcase\month\or
  J\"anner\or Februar\or M\"arz\or April\or Mai\or Juni\or
  Juli\or August\or September\or Oktober\or November\or Dezember\fi
  \space\number\year}}
\def\dategerman{\def\today{\number\day.~\ifcase\month\or
  Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
  Juli\or August\or September\or Oktober\or November\or Dezember\fi
  \space\number\year}}
\def\dateUSenglish{\def\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}}
\def\dateenglish{\def\today{\number\day \ifcase\day \or
  st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or %  1..10
  th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or % 11..20
  st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or % 21..30
  st\fi
  ~\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space \number\year}}
\def\datefrench{\def\today{\number\day \ifnum1=\day \/$^{\rm er}$\fi
  \space\ifcase\month\or
  janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
  juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\'ecembre\fi
  \space\number\year}}
 
 
% Here is, how you can modify the LaTeX document style files and option
% files, to benefit from the following \captionsxxx commands. Def's like
%  \def\tableofcontents{\section*{Contents\markboth{CONTENTS}{CONTENTS}}
%  \@starttoc{toc}}
% should be redefined by def's like
%  \def\contentsname{Contents} % <---
%  \def\tableofcontents{\section*{\contentsname
%  \markboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}
%  \@starttoc{toc}}
% (it's best to put all these new lines to the end of the origignal
% files), and of course, you should modify the change date in the file
% header and in the \typeout command.
% You need not do this yourself - rather, retrieve "International LaTeX"
% (e.g. from the DANTE server LISTSERV@DHDURZ1 on Bitnet) !
 
\def\captionsgerman{%
\def\prefacename{Vorwort}%
\def\refname{Literatur}%
\def\abstractname{Zusammenfassung}%
\def\bibname{Literaturverzeichnis}%
\def\chaptername{Kapitel}%
\def\appendixname{Anhang}%
\def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt
\def\listfigurename{Abbildungsverzeichnis}%
\def\listtablename{Tabellenverzeichnis}%
\def\indexname{Index}%
\def\figurename{Abbildung}%
\def\tablename{Tabelle}% % oder: Tafel
\def\partname{Teil}%
\def\enclname{Anlage(n)}% % oder: Beilage(n)
\def\ccname{Verteiler}%   % oder: Kopien an
\def\headtoname{An}%
\def\pagename{Seite}%
\def\seename{siehe}%
\def\alsoname{siehe auch}}
 
\def\captionsenglish{%
\def\prefacename{Preface}%
\def\refname{References}%
\def\abstractname{Abstract}%
\def\bibname{Bibliography}%
\def\chaptername{Chapter}%
\def\appendixname{Appendix}%
\def\contentsname{Contents}%
\def\listfigurename{List of Figures}%
\def\listtablename{List of Tables}%
\def\indexname{Index}%
\def\figurename{Figure}%
\def\tablename{Table}%
\def\partname{Part}%
\def\enclname{encl}%
\def\ccname{cc}%
\def\headtoname{To}%
\def\pagename{Page}%
\def\seename{see}%
\def\alsoname{see also}}
 
\def\captionsfrench{%
\def\prefacename{Pr\'eface}%
\def\refname{R\'ef\'erences}%
\def\abstractname{R\'esum\'e}%
\def\bibname{Bibliographie}%
\def\chaptername{Chapitre}%
\def\appendixname{Annexe}%
\def\contentsname{Table des mati\`eres}%
\def\listfigurename{Liste des figures}%
\def\listtablename{Liste des tableaux}%
\def\indexname{Index}%
\def\figurename{Figure}%
\def\tablename{Tableau}%
\def\partname{Partie}%
\def\enclname{P.~J.}%
\def\ccname{Copie \`a}%
\def\headtoname{A}%
\def\pagename{Page}%
\def\seename{voir}%
\def\alsoname{voir aussi}}%
 
 
%
%  Switching Languages
%  -------------------
%
\chardef\USenglish=0
\chardef\german=1
\chardef\austrian=2
\chardef\french=3
\chardef\english=4
 
 
\def\selectlanguage#1{%
     % Note: If used with TeX version 3 or with multi-lingual TeX
     % by M.Ferguson, commands like
  \language #1\relax
     % should be inserted into this definition in order to switch
     % on the correct hyphenation patterns.
  \expandafter\ifcase #1\relax
  \dateUSenglish \captionsenglish \or
  \dategerman    \captionsgerman  \or
  \dateaustrian  \captionsgerman  \or
  \datefrench    \captionsfrench  \or
  \dateenglish   \captionsenglish \fi}
 
 
%
%  TeX 3 compatibility
%  -------------------
%
% If \language has not yet been declared neither by Ferguson's
% ``Multilingual T^eX'' nor by TeX 3, allocate a counter:
%
% \ifundefined{language}
\expandafter\ifx\csname language\endcsname\relax
  \csname newcount\endcsname\language
\fi
 
 
% TeX 3 has another new primitive: \setlanguage. It can be used only in
% hmode and has ``real'' effects in inner mode only!
% If not defined, try to simulate TeX 3's \setlanguage.
%
% \ifundefined{setlanguage} (= TeX version < 3 )
\expandafter\ifx\csname setlanguage\endcsname\relax
  \def\setlanguage{\relax
    \ifhmode \else
      \errhelp{Use \selectlanguage to switch languages.}%
      \errmessage{\setlanguage allowed only in horizontal mode}%
    \fi
    \begingroup\afterassignment\endgroup\count@=}
\fi
 
 
\begingroup \mdqon
\def\next{\endgroup
  \def\originalTeX{\mdqoff \let"\dq \umlauthigh \let\3\original@three
                   \selectlanguage{\USenglish}}
  \def\germanTeX{\mdqon \let"\@active@dq \umlautlow \let\3\ss
                 \selectlanguage{\german}}}
\next
 
 
\catcode`\@=\atcode % return to previous catcode
 
% Now, switch on what is appropriate for german:
 
\germanTeX
 
% This is the end of GERMAN.STY/TEX.
\endinput