diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/babel/germanb.dtx')
-rw-r--r-- | Master/texmf-dist/source/generic/babel/germanb.dtx | 543 |
1 files changed, 543 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/babel/germanb.dtx b/Master/texmf-dist/source/generic/babel/germanb.dtx new file mode 100644 index 00000000000..4e2491b2ecd --- /dev/null +++ b/Master/texmf-dist/source/generic/babel/germanb.dtx @@ -0,0 +1,543 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +% \CheckSum{343} +% +% \iffalse +% Tell the \LaTeX\ system who we are and write an entry on the +% transcript. +%<*dtx> +\ProvidesFile{germanb.dtx} +%</dtx> +%<code>\ProvidesLanguage{germanb} +%\fi +%\ProvidesFile{germanb.dtx} + [2004/02/19 v2.6k German support from the babel system] +%\iffalse +%% File `germanb.dtx' +%% Babel package for LaTeX version 2e +%% Copyright (C) 1989 - 2004 +%% by Johannes Braams, TeXniek +% +%% Germanb Language Definition File +%% Copyright (C) 1989 - 2004 +%% by Bernd Raichle raichle at azu.Informatik.Uni-Stuttgart.de +%% Johannes Braams, TeXniek +% This file is based on german.tex version 2.5d, +% by Bernd Raichle, Hubert Partl et.al. +% +%% Please report errors to: J.L. Braams +%% babel at braams.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} +%</filedriver> +%\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{germanb-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{germanb-2.6b}{1995/07/04}{Added \cs{proofname} for +% AMS-\LaTeX} +% \changes{germanb-2.6d}{1996/07/10}{Construct control sequence on the +% fly} +% \changes{germanb-2.6j}{2000/09/20}{Added \cs{glossaryname}} +% \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}% + \def\glossaryname{Glossar}% + } +% \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}} +% \changes{germanb-2.6f}{1997/10/01}{Use \cs{edef} to define +% \cs{today} to save memory} +% \changes{germanb-2.6f}{1998/03/28}{use \cs{def} instead of +% \cs{edef}} +% \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. +% \changes{germanb-2.6f}{1997/10/01}{Use \cs{edef} to define +% \cs{today} to save memory} +% \changes{germanb-2.6f}{1998/03/28}{use \cs{def} instead of +% \cs{edef}} +% \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{germanb-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{"}} +% \end{macrocode} +% Don't forget to turn the shorthands off again. +% \changes{germanb-2.6i}{1999/12/16}{Deactivate shorthands ouside of +% German} +% \begin{macrocode} +\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} +% \changes{germanb-2.6j}{2000/09/22}{Now use \cs{providehyphenmins} to +% provide a default value} +% \begin{macrocode} +\providehyphenmins{\CurrentOption}{\tw@\tw@} +% \end{macrocode} +% For German texts we need to make sure that |\frenchspacing| is +% turned on. +% \changes{germanb-2.6k}{2001/01/26}{Turn frenchspacing on, as in +% \texttt{german.sty}} +% \begin{macrocode} +\expandafter\addto\csname extras\CurrentOption\endcsname{% + \bbl@frenchspacing} +\expandafter\addto\csname noextras\CurrentOption\endcsname{% + \bbl@nonfrenchspacing} +% \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{germanb-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{germanb-2.6a}{1995/02/15}{Use \cs{ddot} instead of +% \cs{@MATHUMLAUT}} +% +% Now we can define the doublequote macros: the umlauts, +% \changes{germanb-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), +% \changes{germanb-2.6f}{1997/05/08}{use \cs{SS} instead of +% \texttt{SS}, removed braces after \cs{ss}} +% \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}{"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} +% We need to treat |"f| a bit differently in order to preserve the +% ff-ligature. +% \changes{germanb-2.6f}{1998/06/15}{Copied the coding for \texttt{"f} +% from german.dtx version 2.5d} +% \begin{macrocode} +\declare@shorthand{german}{"f}{\textormath{\bbl@discff}{f}} +\def\bbl@discff{\penalty\@M + \afterassignment\bbl@insertff \let\bbl@nextff= } +\def\bbl@insertff{% + \if f\bbl@nextff + \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi + {\relax\discretionary{ff-}{f}{ff}\allowhyphens}{f\bbl@nextff}} +\let\bbl@nextff=f +% \end{macrocode} +% and some additional commands: +% \begin{macrocode} +\declare@shorthand{german}{"-}{\nobreak\-\bbl@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}. +% \changes{germanb-2.6f}{1998/06/07}{Now use \cs{shorthandon} and +% \cs{shorthandoff}} +% \begin{macrocode} +\def\mdqon{\shorthandon{"}} +\def\mdqoff{\shorthandoff{"}} +\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 +%</code> +% \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 |