% \iffalse meta-comment % % Copyright 1989-1996 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % For further copyright information see any other copyright notices in % this file. % % This file is part of the Babel system release 3.6. % -------------------------------------------------- % This system is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % % For error reports concerning UNCHANGED versions of this file no % more than one year old, see bugs.txt. % % Please do not request updates from me directly. Primary % distribution is through the CTAN archives. % % % IMPORTANT COPYRIGHT NOTICE: % % You are NOT ALLOWED to distribute this file alone. % % You are allowed to distribute this file under the condition that it % is distributed together with all the files listed in manifest.txt. % % If you receive only some of these files from someone, complain! % % Permission is granted to copy this file to another file with a % clearly different name and to customize the declarations in that % copy to serve the needs of your installation, provided that you % comply with the conditions in the file legal.txt from the LaTeX2e % distribution. % % However, NO PERMISSION is granted to produce or to distribute a % modified version of this file under its original name. % % You are NOT ALLOWED to change this file. % % % \fi % \CheckSum{305} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the % transcript. %<*dtx> \ProvidesFile{germanb.dtx} % %\ProvidesFile{germanb.ldf} %\fi %\ProvidesFile{germanb.dtx} [1996/12/23 v2.6d German support from the babel system] %\iffalse % Babel package for LaTeX version 2e % Copyright (C) 1989 - 1996 % by Johannes Braams, TeXniek % % Germanb Language Definition File % Copyright (C) 1989 - 1996 % by Bernd Raichle % Johannes Braams, TeXniek % This file is based on german.tex version 2.5b, % by Bernd Raichle, Hubert Partl et.al. % % Please report errors to: J.L. Braams % JLBraams@cistron.nl % %<*filedriver> \documentclass{ltxdoc} \font\manual=logo10 % font used for the METAFONT logo, etc. \newcommand*\MF{{\manual META}\-{\manual FONT}} \newcommand*\TeXhax{\TeX hax} \newcommand*\babel{\textsf{babel}} \newcommand*\langvar{$\langle \it lang \rangle$} \newcommand*\note[1]{} \newcommand*\Lopt[1]{\textsf{#1}} \newcommand*\file[1]{\texttt{#1}} \begin{document} \DocInput{germanb.dtx} \end{document} % %\fi % \GetFileInfo{germanb.dtx} % % \changes{germanb-1.0a}{1990/05/14}{Incorporated Nico's comments} % \changes{germanb-1.0b}{1990/05/22}{fixed typo in definition for % austrian language found by Werenfried Spit % \texttt{nspit@fys.ruu.nl}} % \changes{germanb-1.0c}{1990/07/16}{Fixed some typos} % \changes{germanb-1.1}{1990/07/30}{When using PostScript fonts with % the Adobe fontencoding, the dieresis-accent is located elsewhere, % modified code} % \changes{germanb-1.1a}{1990/08/27}{Modified the documentation % somewhat} % \changes{germanb-2.0}{1991/04/23}{Modified for babel 3.0} % \changes{germanb-2.0a}{1991/05/25}{Removed some problems in change % log} % \changes{germanb-2.1}{1991/05/29}{Removed bug found by van der Meer} % \changes{germanb-2.2}{1991/06/11}{Removed global assignments, % brought uptodate with \file{german.tex} v2.3d} % \changes{germanb-2.2a}{1991/07/15}{Renamed \file{babel.sty} in % \file{babel.com}} % \changes{germanb-2.3}{1991/11/05}{Rewritten parts of the code to use % the new features of babel version 3.1} % \changes{germanb-2.3e}{1991/11/10}{Brought up-to-date with % \file{german.tex} v2.3e (plus some bug fixes) [br]} % \changes{germanb-2.5}{1994/02/08}{Update or \LaTeXe} % \changes{germanb-2.5c}{1994/06/26}{Removed the use of \cs{filedate} % and moved the identification after the loading of % \file{babel.def}} % \changes{germanb-2.6a}{1995/02/15}{Moved the identification to the % top of the file} % \changes{germanb-2.6a}{1995/02/15}{Rewrote the code that handles the % active double quote character} % \changes{german-2.6d}{1996/07/10}{Replaced \cs{undefined} with % \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency % with \LaTeX} % \changes{germanb-2.6d}{1996/10/10}{Moved the definition of % \cs{atcatcode} right to the beginning.} % % \section{The German language} % % The file \file{\filename}\footnote{The file described in this % section has version number \fileversion\ and was last revised on % \filedate.} defines all the language definition macros for the % German language as well as for the Austrian dialect of this % language\footnote{This file is a re-implementation of Hubert % Partl's \file{german.sty} version 2.5b, see~\cite{HP}.}. % % For this language the character |"| is made active. In % table~\ref{tab:german-quote} an overview is given of its % purpose. One of the reasons for this is that in the German % language some character combinations change when a word is broken % between the combination. Also the vertical placement of the % umlaut can be controlled this way. % \begin{table}[htb] % \begin{center} % \begin{tabular}{lp{8cm}} % |"a| & |\"a|, also implemented for the other % lowercase and uppercase vowels. \\ % |"s| & to produce the German \ss{} (like |\ss{}|). \\ % |"z| & to produce the German \ss{} (like |\ss{}|). \\ % |"ck|& for |ck| to be hyphenated as |k-k|. \\ % |"ff|& for |ff| to be hyphenated as |ff-f|, % this is also implemented for l, m, n, p, r and t\\ % |"S| & for |SS| to be |\uppercase{"s}|. \\ % |"Z| & for |SZ| to be |\uppercase{"z}|. \\ % \verb="|= & disable ligature at this position. \\ % |"-| & an explicit hyphen sign, allowing hyphenation % in the rest of the word. \\ % |""| & like |"-|, but producing no hyphen sign % (for compund words with hyphen, e.g.\ |x-""y|). \\ % |"~| & for a compound word mark without a breakpoint. \\ % |"=| & for a compound word mark with a breakpoint, allowing % hyphenation in the composing words. \\ % |"`| & for German left double quotes (looks like ,,). \\ % |"'| & for German right double quotes. \\ % |"<| & for French left double quotes (similar to $<<$). \\ % |">| & for French right double quotes (similar to $>>$). \\ % \end{tabular} % \caption{The extra definitions made % by \file{german.ldf}}\label{tab:german-quote} % \end{center} % \end{table} % The quotes in table~\ref{tab:german-quote} can also be typeset by % using the commands in table~\ref{tab:more-quote}. % \begin{table}[htb] % \begin{center} % \begin{tabular}{lp{8cm}} % |\glqq| & for German left double quotes (looks like ,,). \\ % |\grqq| & for German right double quotes (looks like ``). \\ % |\glq| & for German left single quotes (looks like ,). \\ % |\grq| & for German right single quotes (looks like `). \\ % |\flqq| & for French left double quotes (similar to $<<$). \\ % |\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| & the original quotes character (|"|). \\ % \end{tabular} % \caption{More commands which produce quotes, defined % by \file{german.ldf}}\label{tab:more-quote} % \end{center} % \end{table} % % \StopEventually{} % % When this file was read through the option \Lopt{germanb} we make % it behave as if \Lopt{german} was specified. % \begin{macrocode} \def\bbl@tempa{germanb} \ifx\CurrentOption\bbl@tempa \def\CurrentOption{german} \fi % \end{macrocode} % % The macro |\LdfInit| takes care of preventing that this file is % loaded more than once, checking the category code of the % \texttt{@} sign, etc. % \changes{germanb-2.6d}{1996/11/02}{Now use \cs{LdfInit} to perform % initial checks} % \begin{macrocode} %<*code> \LdfInit\CurrentOption{captions\CurrentOption} % \end{macrocode} % % When this file is read as an option, i.e., by the |\usepackage| % command, \texttt{german} will be an `unknown' language, so we % have to make it known. So we check for the existence of % |\l@german| to see whether we have to do something here. % % \changes{germanb-2.0}{1991/04/23}{Now use \cs{adddialect} if % language undefined} % \changes{germanb-2.2d}{1991/10/27}{Removed use of \cs{@ifundefined}} % \changes{germanb-2.3e}{1991/11/10}{Added warning, if no german % patterns loaded} % \changes{germanb-2.5c}{1994/06/26}{Now use \cs{@nopatterns} to % produce the warning} % \begin{macrocode} \ifx\l@german\@undefined \@nopatterns{German} \adddialect\l@german0 \fi % \end{macrocode} % % For the Austrian version of these definitions we just add another % language. % \changes{germanb-2.0}{1991/04/23}{Now use \cs{adddialect} for % austrian} % \begin{macrocode} \adddialect\l@austrian\l@german % \end{macrocode} % % The next step consists of defining commands to switch to (and % from) the German language. % % \begin{macro}{\captionsgerman} % \begin{macro}{\captionsaustrian} % Either the macro |\captionsgerman| or the macro % |\captionsaustrian| will define all strings used in the four % standard document classes provided with \LaTeX. % % \changes{germanb-2.2}{1991/06/06}{Removed \cs{global} definitions} % \changes{germanb-2.2}{1991/06/06}{\cs{pagename} should be % \cs{headpagename}} % \changes{germanb-2.3e}{1991/11/10}{Added \cs{prefacename}, % \cs{seename} and \cs{alsoname}} % \changes{germanb-2.4}{1993/07/15}{\cs{headpagename} should be % \cs{pagename}} % \changes{german-2.6b}{1995/07/04}{Added \cs{proofname} for % AMS-\LaTeX} % \changes{german-2.6d}{1996/07/10}{Construct control sequence on the % fly} % \begin{macrocode} \@namedef{captions\CurrentOption}{% \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\proofname{Beweis}% } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\dategerman} % The macro |\dategerman| redefines the command % |\today| to produce German dates. % \changes{germanb-2.3e}{1991/11/10}{Added \cs{month@german}} % \begin{macrocode} \def\month@german{\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} \def\dategerman{\def\today{\number\day.~\month@german \space\number\year}} % \end{macrocode} % \end{macro} % % \begin{macro}{\dateaustrian} % The macro |\dateaustrian| redefines the command % |\today| to produce Austrian version of the German dates. % \begin{macrocode} \def\dateaustrian{\def\today{\number\day.~\ifnum1=\month J\"anner\else \month@german\fi \space\number\year}} % \end{macrocode} % \end{macro} % % \begin{macro}{\extrasgerman} % \begin{macro}{\extrasaustrian} % \changes{germanb-2.0b}{1991/05/29}{added some comment chars to % prevent white space} % \changes{germanb-2.2}{1991/06/11}{Save all redefined macros} % \begin{macro}{\noextrasgerman} % \begin{macro}{\noextrasaustrian} % \changes{germanb-1.1}{1990/07/30}{Added \cs{dieresis}} % \changes{germanb-2.0b}{1991/05/29}{added some comment chars to % prevent white space} % \changes{germanb-2.2}{1991/06/11}{Try to restore everything to its % former state} % \changes{german-2.6d}{1996/07/10}{Construct control sequence % \cs{extrasgerman} or \cs{extrasaustrian} on the fly} % % Either the macro |\extrasgerman| or the macros |\extrasaustrian| % will perform all the extra definitions needed for the German % language. The macro |\noextrasgerman| is used to cancel the % actions of |\extrasgerman|. % % For German (as well as for Dutch) the \texttt{"} character is % made active. This is done once, later on its definition may vary. % \begin{macrocode} \initiate@active@char{"} \@namedef{extras\CurrentOption}{% \languageshorthands{german}} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} %\addto\noextrasgerman{\bbl@deactivate{"}} % \end{macrocode} % % \changes{germanb-2.6a}{1995/02/15}{All the code to handle the active % double quote has been moved to \file{babel.def}} % % In order for \TeX\ to be able to hyphenate German words which % contain `\ss' (in the \texttt{OT1} position |^^Y|) we have to % give the character a nonzero |\lccode| (see Appendix H, the \TeX % book). % \changes{germanb-2.6c}{1996/04/08}{Use decimal number instead of % hat-notation as the hat may be activated} % \begin{macrocode} \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@savevariable{\lccode25}% \lccode25=25} % \end{macrocode} % \changes{germanb-2.6a}{1995/02/15}{Removeed \cs{3} as it is no % longer in \file{german.ldf}} % % The umlaut accent macro |\"| is changed to lower the umlaut dots. % The redefinition is done with the help of |\umlautlow|. % \begin{macrocode} \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@save\"\umlautlow} \@namedef{noextras\CurrentOption}{\umlauthigh} % \end{macrocode} % The german hyphenation patterns can be used with |\lefthyphenmin| % and |\righthyphenmin| set to~2. % \changes{germanb-2.6a}{1995/05/13}{use \cs{germanhyphenmins} to store % the correct values} % \begin{macrocode} \def\germanhyphenmins{\tw@\tw@} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \changes{germanb-2.6a}{1995/02/15}{\cs{umlautlow} and % \cs{umlauthigh} moved to \file{glyphs.dtx}, as well as % \cs{newumlaut} (now \cs{lower@umlaut}} % % The code above is necessary because we need an extra active % character. This character is then used as indicated in % table~\ref{tab:german-quote}. % % To be able to define the function of |"|, we first define a % couple of `support' macros. % % \changes{germanb-2.3e}{1991/11/10}{Added \cs{save@sf@q} macro and % rewrote all quote macros to use it} % \changes{germanb-2.3h}{1991/02/16}{moved definition of % \cs{allowhyphens}, \cs{set@low@box} and \cs{save@sf@q} to % \file{babel.com}} % \changes{german-2.6a}{1995/02/15}{Moved all quotation characters to % \file{glyphs.dtx}} % % \begin{macro}{\dq} % We save the original double quote character in |\dq| to keep % it available, the math accent |\"| can now be typed as |"|. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup \def\@SS{\mathchar"7019 } \def\dq{"}} \x % \end{macrocode} % \end{macro} % \changes{germanb-2.6c}{1996/01/24}{Moved \cs{german@dq@disc} to % babel.def, calling it \cs{bbl@disc}} % % \changes{german-2.6a}{1995/02/15}{Use \cs{ddot} instead of % \cs{@MATHUMLAUT}} % % Now we can define the doublequote macros: the umlauts, % \changes{german-2.6c}{1996/05/30}{added the \cs{allowhyphens}} % \begin{macrocode} \declare@shorthand{german}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}} \declare@shorthand{german}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}} \declare@shorthand{german}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}} \declare@shorthand{german}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}} \declare@shorthand{german}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}} \declare@shorthand{german}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}} % \end{macrocode} % tremas, % \begin{macrocode} \declare@shorthand{german}{"e}{\textormath{\"{e}}{\ddot e}} \declare@shorthand{german}{"E}{\textormath{\"{E}}{\ddot E}} \declare@shorthand{german}{"i}{\textormath{\"{\i}}% {\ddot\imath}} \declare@shorthand{german}{"I}{\textormath{\"{I}}{\ddot I}} % \end{macrocode} % german es-zet (sharp s), % \begin{macrocode} \declare@shorthand{german}{"s}{\textormath{\ss{}}{\@SS{}}} \declare@shorthand{german}{"S}{SS} \declare@shorthand{german}{"z}{\textormath{\ss{}}{\@SS{}}} \declare@shorthand{german}{"Z}{SZ} % \end{macrocode} % german and french quotes, % \begin{macrocode} \declare@shorthand{german}{"`}{\glqq} \declare@shorthand{german}{"'}{\grqq} \declare@shorthand{german}{"<}{\flqq} \declare@shorthand{german}{">}{\frqq} % \end{macrocode} % discretionary commands % \begin{macrocode} \declare@shorthand{german}{"c}{\textormath{\bbl@disc ck}{c}} \declare@shorthand{german}{"C}{\textormath{\bbl@disc CK}{C}} \declare@shorthand{german}{"f}{\textormath{\bbl@disc f{ff}}{f}} \declare@shorthand{german}{"F}{\textormath{\bbl@disc F{FF}}{F}} \declare@shorthand{german}{"l}{\textormath{\bbl@disc l{ll}}{l}} \declare@shorthand{german}{"L}{\textormath{\bbl@disc L{LL}}{L}} \declare@shorthand{german}{"m}{\textormath{\bbl@disc m{mm}}{m}} \declare@shorthand{german}{"M}{\textormath{\bbl@disc M{MM}}{M}} \declare@shorthand{german}{"n}{\textormath{\bbl@disc n{nn}}{n}} \declare@shorthand{german}{"N}{\textormath{\bbl@disc N{NN}}{N}} \declare@shorthand{german}{"p}{\textormath{\bbl@disc p{pp}}{p}} \declare@shorthand{german}{"P}{\textormath{\bbl@disc P{PP}}{P}} \declare@shorthand{german}{"r}{\textormath{\bbl@disc r{rr}}{r}} \declare@shorthand{german}{"R}{\textormath{\bbl@disc R{RR}}{R}} \declare@shorthand{german}{"t}{\textormath{\bbl@disc t{tt}}{t}} \declare@shorthand{german}{"T}{\textormath{\bbl@disc T{TT}}{T}} % \end{macrocode} % and some additional commands: % \begin{macrocode} \declare@shorthand{german}{"-}{\penalty\@M\-\allowhyphens} \declare@shorthand{german}{"|}{% \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}% \allowhyphens}{}} \declare@shorthand{german}{""}{\hskip\z@skip} \declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}} \declare@shorthand{german}{"=}{\penalty\@M-\hskip\z@skip} % \end{macrocode} % % \begin{macro}{\mdqon} % \begin{macro}{\mdqoff} % \begin{macro}{\ck} % All that's left to do now is to define a couple of commands % for reasons of compatibility with \file{german.sty}. % \begin{macrocode} \def\mdqon{\bbl@activate{"}} \def\mdqoff{\bbl@deactivate{"}} \def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % The macro |\ldf@finish| takes care of looking for a % configuration file, setting the main language to be switched on % at |\begin{document}| and resetting the category code of % \texttt{@} to its original value. % \changes{germanb-2.6d}{1996/11/02}{Now use \cs{ldf@finish} to wrap % up} % \begin{macrocode} \ldf@finish\CurrentOption % % \end{macrocode} % % \Finale %% %% \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 \~} %% \endinput