%
% TeX-Definitionen f�r die Verwendung von Code Pages
%
% (C) 1994 FuturaSoft (Martin Kr�mer, D-49179 Ostercappeln)
%
% This package contains the following files:
% cp.sty, cp437.sty, cp850.sty, cp8859.sty, cp8859w.sty and cpps.sty.
%
% If you like this LaTeX-Styles, please send me a fee about $25 or more for
% registration, so that I can make them better and create more TeX-macros.
% If you send $50 or more you will receive additional macros for a fine
% `\slashfrac' and for using PostScript fonts and colors (needed by `cpps'!).
% Please state the version of the software that you currently have.
%
% Send check or money order to: Martin Kr"amer
%                               Adolf-Kolping-Str. 4
%                               D-49179 Ostercappeln
%                               (Germany)
%
% E-mail address: kraemer@mathematik.Uni-Osnabrueck.DE
%
% P.S.: If you have some nice pictures from Marina Sirtis
%       (Counselor Deanna Troi in STTNG), please mail me.
%
% Changes between Version 1.1 and 1.0:
% - `german.sty' will be no longer loaded automatically,
%   if used it must be loaded before any `cpnnn' style option!
% - restore previous catcode of `@' after `\input' from `\selectcodepage'
%
\typeout{Document Style Option `cp' Version 1.1 <1 Mar 1994>.}
%
%
\@ifundefined{l@german}{\mathchardef\l@german=256 }{}

\@ifundefined{slashfrac}{\def\slashfrac#1#2{\frac{#1}{#2}}}{}



%
% Einstellen einer Codepage
% \selectcodepage[OPT1,OPT2,...]{CODEPAGE}
%
\def\selectcodepage{\@ifnextchar[{\@selectcpoparg}{\@selectcodepage}}
\def\@selectcpoparg[#1]#2{\@selectcodepage{#2}\@for\@cparg:=#1\do
    {\@ifundefined{cp\@cparg}{\input cp\@cparg\relax}{\@nameuse{cp\@cparg}}}}
\def\@selectcodepage#1{\let\cporiginal\relax \let\cpgerman\relax
  \@ifundefined{cp#1}%
    {\smakeatletter\input cp#1.sty\relax\restoreatcode}{\@nameuse{cp#1}}%
  \ifnum\language=\l@german \cpgerman\fi}
% save current catcode of `@' and make it to work as a letter
\def\smakeatletter{\chardef\atcode=\catcode`\@\makeatletter}
% restore previous catcode of `@'
\def\restoreatcode{\catcode`\@=\atcode}
% Automatische Aktivierung einer landesspezifischen Codepage-Option
% bei Verwendung von `\selectlanguage'
\let\@cpextrasgerman=\extrasgerman
\def\extrasgerman{\@cpextrasgerman\cpgerman}
\let\@cpnoextrasgerman=\noextrasgerman
\def\noextrasgerman{\@cpnoextrasgerman\cporiginal}



%
% Befehle zum Aendern der Kategoriecodes
%
\def\makeignore{\@makecharlist{9}}
\def\makespace{\@makecharlist{10}}
\def\makeletter{\@makecharlist{11}}
\def\makeother{\@makecharlist{12}}
\def\makeactive{\@makecharlist{13}}
\def\makeinvalid{\@makecharlist{15}}
%\def\makenotdef{\def\make{\notdef}\@makecharlist{16}} % first attempt
\def\@makecharlist#1#2{\def\@catcode{#1}\@for\@tempa:=#2\do
    {\expandafter\@makecharrange\@tempa-\@nil}}
\def\@makecharrange#1-{%
  \@ifnextchar\@nil{\@makecharsubrange#1-#1-}{\@makecharsubrange#1-}}
\def\@makecharsubrange#1-#2-\@nil{\@tempcnta=#1\relax \advance\@tempcnta by-1
  \@whilenum\@tempcnta<#2\do
    {\advance\@tempcnta by1
      \ifnum\@catcode<16 \catcode\@tempcnta=\@catcode\relax
      \else\catcode\@tempcnta=\active \xxxx\fi}}
%
\def\activatecontrolchars{\makeactive{0-8,10-11,14-31,127}}
\def\activateuppercharset{\makeactive{128-255}}
\def\activatefullcharset{\activatecontrolchars\activateuppercharset}

%
% Befehle zum Definieren einer neuen Codepage
%
\long\def\newcodepage#1#2{\expandafter\@ifdefinable\csname cp#1\endcsname
  {\expandafter\gdef\csname cp#1\endcsname{#2}}}
\long\def\renewcodepage#1#2{%
  \@ifundefined{cp#1}{\@latexerr{Code page #1 undefined}\@ehc}{}%
  \expandafter\gdef\csname cp#1\endcsname{#2}}

%
% Befehle zum Definieren der einzelnen Zeichen und Zeichen-Makros
% \mapchar{CHAR}{DEFINITION}
% \mapname{\NAME}{DEFINITION}
%
\def\mapchar#1#2{\@pmdef#1{}{}{#2\@empty}\@mapchar{#1}}
\def\mapname#1#2{\@ifcsname#1{\@pmdef#1\wmspace{}{#2\ignoreempty}}%
  {\@pmdef#1{}{}{#2\@empty}}\@mapchar{#1}}
\def\@mapchar#1{\def\@tempa{#1}%
  \ifcat\noexpand#1\relax \@tempcnta=256
  \else\@tempcnta=`#1\relax\@otherchar\fi}
% Zeichen bzw. Code fuer `\lowercase'-Version
\def\lcchar#1{\ifnum\@tempcnta=256 \@lctext{#1}\else\@lcchar{#1}\fi}
\def\lctext#1{\ifnum\@tempcnta<256 \@lcchar{}\fi\@lctext{#1}}
\def\@lcchar#1{\uccode\@tempcnta=\@tempcnta
  \lccode\@tempcnta=\ifx\@empty#1\@empty 0\else`#1\fi\relax
  \sfcode\@tempcnta=999\relax}
\def\@lctext#1{\let\@tempb=\pmodechoice
  \def\pmodechoice##1##2{\expandafter\def\@tempa{\lcpmodechoice{#1}{##1}{##2}}}%
  \@tempa
  \let\pmodechoice=\@tempb}
% Zeichen bzw. Code fuer `\uppercase'-Version
\def\ucchar#1{\ifnum\@tempcnta=256 \@uctext{#1}\else\@ucchar{#1}\fi}
\def\uctext#1{\ifnum\@tempcnta<256 \@ucchar{}\fi\@uctext{#1}}
\def\@ucchar#1{\uccode\@tempcnta=\ifx\@empty#1\@empty 0\else`#1\fi\relax
  \lccode\@tempcnta=\@tempcnta \sfcode\@tempcnta=1000\relax}
\def\@uctext#1{\let\@tempb=\pmodechoice
  \def\pmodechoice##1##2{\expandafter\def\@tempa{\ucpmodechoice{#1}{##1}{##2}}}%
  \@tempa
  \let\pmodechoice=\@tempb}
%
\def\@otherchar{\uccode\@tempcnta=0 \lccode\@tempcnta=0
  \sfcode\@tempcnta=1000\relax}

%
% Zukuenftige Erweiterungen
% (`\mathcode', `\delcode', `\chardef', `\mathchardef')
%
%\def\mapmathchar#1#2{\mathcode\@tempcnta="8000
%  \edef\@tempa{\the\catcode`#1}\catcode`#1=\active
%  \def#1{#2}\catcode`#1=\@tempa\relax}
%\def\mcode#1{\mathcode\@tempcnta=#1\relax}
%\def\dcode#1{\delcode\@tempcnta=#1\relax}
%\def\@nomathchar{\mathcode\@tempcnta=\@tempcnta\relax
%  \advance\mathcode\@tempcnta by"7100 \delcode\@tempcnta=-1\relax}



%
% Kanten des Boxregisters 0 zeichnen
% \@blankboxtrue: ohne Inhalt
% \makeblankbox{OUTSIDELINEWIDTH}{INSIDELINEWIDTH}
%
\def\makeblankbox#1#2{\hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}%
  \kern-#1% overlap the rules at the corners
  \hbox to\wd0{\hidevrule{#1}{#2}%
    \raise\ht0\vbox to#1{}% set the vrule height
    \lower\dp0\vtop{\kern#1}% set the vrule depth
    \if@blankbox\hfil\else\copy0\fi\hidevrule{#2}{#1}}%
  \kern-#1\hidehrule{#2}{#1}}}}
\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2\kern-#2}
\def\hidevrule#1#2{\kern-#1%
  {\@tempdima=#1\advance\@tempdima by#2\vrule width\@tempdima}\kern-#2}
%
\newif\if@blankbox

%
% Miscellaneous `choice'-commands ...
%
% ... for math modes
\def\mmodechoice#1#2{\@empty\ifmmode #1\else#2\fi}
\def\mfamchoice#1#2#3{\@empty\ifmmode \ifnum\fam=-1 #1\else#2\fi\else#3\fi}
% ... for protect modes
\def\pmodechoice#1#2{\@empty
  \ifx\protect\relax \def\@tempa{#2}\expandafter\@tempa\else\xprotect{#1}\fi}
\def\xpmodechoice#1#2{\@empty
  \ifx\protect\relax
    \def\@tempa{\csname pm@\string#2\endcsname}\expandafter\@tempa
  \else\xprotect{#1}\fi}
\def\xprotect#1{%
  \ifx\protect\@tocprotect \string\string\string#1\else\protect#1\fi}
\def\@tocprotect#1{\string\string\string#1\string\space\space}
% `\pmdef' works like `\def', but lets the defined macro protect to itself
\def\pmdef#1#2#{\@ifcsname#1{\@pmdef#1\wmspace}{\@pmdef#1{}}{#2}}
\def\@pmdef#1#2#3#4{\def\@tempa#3{}%
  \ifx\@tempa\@empty \def#1{\pmodechoice{#1#2}{#4}}%
  \else\expandafter\def\csname pm@\string#1\endcsname#3{#4}%
    \def#1{\xpmodechoice{#1#2}{#1}}\fi}
% `\@ifcsname#1{YES}{NO}' checks if `#1' is a cs-name beginning with a letter
\def\@ifcsname#1#2#3{\ifcat\noexpand#1\relax
    \edef\@tempa{\expandafter\expandafter\expandafter\@car
      \expandafter\@gobble\string#1\@nil}%
    \ifnum\catcode\expandafter`\@tempa=11 \def\@tempa{#2}\else\def\@tempa{#3}\fi
  \else\def\@tempa{#3}\fi\@tempa}
% ignore following `{}'
\def\ignoreempty{\@ifnextchar\bgroup{\@gobbleempty}{}}
\def\@gobbleempty#1{\def\@tempa{#1}\ifx\@tempa\@empty \else{#1}\fi}
% '\space' if in write mode, else nothing
\def\wmspace{\ifx\protect\string \space
  \else\ifx\protect\@tocprotect \string\space\space\fi\fi}
% ... for case modes
\newif\iflcase
\newif\ifucase
% make sure that `\iflcase' and `\ifucase' are never true at the same time
\let\@lcasetrue=\lcasetrue \def\lcasetrue{\ucasefalse\@lcasetrue}
\let\@ucasetrue=\ucasetrue \def\ucasetrue{\lcasefalse\@ucasetrue}
\def\lcpmodechoice#1#2#3{\@empty
  \iflcase \pmodechoice{#1}{\def\@tempa{#1}\expandafter\@tempa}%
  \else\pmodechoice{#2}{\def\@tempa{#3}\expandafter\@tempa}\fi}
\def\ucpmodechoice#1#2#3{\@empty
  \ifucase \pmodechoice{#1}{\def\@tempa{#1}\expandafter\@tempa}%
  \else\pmodechoice{#2}{\def\@tempa{#3}\expandafter\@tempa}\fi}
\let\texlowercase=\lowercase
\let\texuppercase=\uppercase
\pmdef\lowercase#1{\iflcase \texlowercase{#1}%
  \else\ifucase \lcasetrue\texlowercase{#1}\ucasetrue
  \else\@lcasetrue\texlowercase{#1}\lcasefalse\fi\fi}
\pmdef\uppercase#1{\ifucase \texuppercase{#1}%
  \else\iflcase \ucasetrue\texuppercase{#1}\lcasetrue
  \else\@ucasetrue\texuppercase{#1}\ucasefalse\fi\fi}

%
% Sichern des aktuellen Mathe-Stils (`\fam' und `\...style')
%
\def\xmathpalette#1{\@empty
  \ifmmode \edef\lastfam{\the\fam}\mathpalette\@defmathstyle{#1}%
  \else\let\lastfam=\textfam {\@defmathstyle\textstyle{#1}}\fi}
\def\@defmathstyle#1{\let\lastmathstyle=#1}
\def\xm@th{\m@th\fam\lastfam \lastmathstyle}
%
\def\savetextfam{\edef\textfam{\the\fam}}
\let\lastmathstyle=\textstyle

%
% Miscellaneous `symbol'-commands ...
%
% ... for true math symbols
\def\mathsymbol#1{\@empty\ifmmode #1\else\xmathpalette{$\xm@th#1$}\fi}
% `\xnolimits' should be `\nolimits' after math operators (for future use)
\def\xnolimits{}
% ... for text math symbols
\def\textsymbol#1{\@empty\ifmmode {#1}\else\xmathpalette{$\xm@th#1$}\fi}
% ... for invers symbols (true definition in `cpps')
\def\invsymbol#1{\leavevmode
  {\setbox0=\hbox{\strut#1}\@blankboxfalse\makeblankbox{0pt}{0.4pt}}}
% ... for undefined symbols
\def\badchar#1{%
  \@warning{Character `\protect#1' on page \thepage\space undefined}}
% ... for graphic symbols
\def\graphsymbol#1{\leavevmode\setbox0=\hbox{N}%
  \graphlineoutside=0.5\graphlinedist \graphlineinside=-\graphlineoutside
  \advance\graphlineoutside by0.5\graphlinewidth
  \advance\graphlineinside by0.5\graphlinewidth
  \setbox1=\hbox{$\vcenter{}$}%
  \raise\ht1\hbox to\wd0{\def\vline{\gvline}\lower\ht1\copy\strutbox#1}}
% ... for fill characters (rough definition)
\def\makegraygraphbox#1#2{\graphsymbol{\vrule width#1\kern#2%
    \xleaders\hbox{\lower\ht1\hbox{\strut}\vrule width#1\kern#2}\hfill
    \vrule width#1}}

%
% Commands for use in `graphic symbols'
%
% Einfache vertikale Linie (`\vline' is equal to `\gvline' in `\graphsymbol')
\def\gvline{\@ifnextchar[ {\@gvlineoparg}{\gvlinec}}
\def\@gvlineoparg[#1]{\@nameuse{gvline#1}}
\def\gvlinec{\vrule width\graphlinewidth\@gnext}
\def\gvlinep#1{{\let\@gnext=\relax \gvlinet{#1}}\hskip-\graphlinewidth
  \gvlineb{#1}}
\def\gvlinet#1{\vrule depth#1 width\graphlinewidth\@gnext}
\def\gvlineb#1{\vrule height#1 width\graphlinewidth\@gnext}
% Doppelte vertikale Linie
\def\Vline{\def\@gnext{\@Vlinesecarg}\gvline}
\def\@Vlinesecarg{\hskip-\graphlinewidth\hskip\graphlinedist
  \let\@gnext=\relax \gvline}
%
\let\@gnext=\relax

% Einfache horizontale Linie
\def\hlinefill{\leaders\hrule height0.5\graphlinewidth depth0.5\graphlinewidth
  \hfill}
% Doppelte horizontale Linie
% #1: Zusatz links oben (> 0) bzw. unten (< 0)
% #2: Zusatz rechts oben (> 0) bzw. unten (< 0)
\def\Hlinefill#1#2{\@tempdima=#1\relax\@tempdimb=#2\relax
  \ifdim\@tempdima>0pt \hskip-\@tempdima
    \@tempdimc=\@tempdima \else\@tempdimc=0pt \fi
  \ifdim\@tempdimb>0pt \advance\@tempdimc by\@tempdimb\fi
  \leaders\hrule height\graphlineoutside depth\graphlineinside
    \hskip\@tempdimc plus1fill
  \ifdim\@tempdimb>0pt \hskip-\@tempdimb\fi
  \hskip0pt plus-1fill
  \ifdim\@tempdima<0pt \hskip\@tempdima
    \@tempdimc=-\@tempdima \else\@tempdimc=0pt \fi
  \ifdim\@tempdimb<0pt \advance\@tempdimc by-\@tempdimb\fi
  \leaders\hrule height\graphlineinside depth\graphlineoutside
    \hskip\@tempdimc plus1fill
  \ifdim\@tempdimb<0pt \hskip\@tempdimb\fi}
%
\newdimen\graphlinewidth \graphlinewidth=1.2pt % bei 12pt-Schrift
\newdimen\graphlinedist \graphlinedist=3pt % bei 12pt-Schrift
\newdimen\graphlineoutside
\newdimen\graphlineinside
\newdimen\@tempdimc



%
% redefinition of LaTeX's font names
%
\pmdef\rm{\prm\savetextfam}
\pmdef\it{\pit\savetextfam}
\pmdef\bf{\pbf\savetextfam}
\pmdef\sl{\psl\savetextfam}
\pmdef\sf{\psf\savetextfam}
\pmdef\sc{\psc\savetextfam}
\pmdef\tt{\ptt\savetextfam}



%
% TeX's `\(o)oalign' with no interlineskip
%
\def\xoalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip0pt
  \ialign{##\crcr#1\crcr}}} % put characters over each other
\def\xooalign{\lineskiplimit-\maxdimen \xoalign}

%
% Diacritical characters for text and math mode
%
% '\relax' und '{}' verhindern Kerning!
\let\tgrave=\` \pmdef\`#1{\@empty\ifmmode \grave{#1}\else\tgrave{#1}\fi}
\let\tacute=\' \pmdef\'#1{\@empty\ifmmode \acute{#1}\else\tacute{#1}\fi}
\let\that=\^ \pmdef\^#1{\@empty\ifmmode \hat{#1}\else\that{#1}\fi}
\let\tddot=\" \pmdef\"#1{\@empty\ifmmode \ddot{#1}\else\tddot{#1}\fi}
\let\ttilde=\~ \pmdef\~#1{\@empty\ifmmode \tilde{#1}\else\ttilde{#1}\fi}
\let\tbar=\= \pmdef\=#1{\@empty\ifmmode \bar{#1}\else\tbar{#1}\fi}
\let\tdot=\. \pmdef\.#1{\@empty\ifmmode \dot{#1}\else\tdot{#1}\fi}
\let\tbreve=\u \pmdef\u#1{\@empty\ifmmode \breve{#1}\else\tbreve{#1}\fi}
\let\tcheck=\v \pmdef\v#1{\@empty\ifmmode \check{#1}\else\tcheck{#1}\fi}
\let\tcedilla=\c
\pmdef\c#1{\@empty
  \ifmmode \xmathpalette{\ooalign{$\xm@th#1$\crcr
        \hidewidth$\xm@th\mathchar"7018$\hidewidth}}%
  \else\tcedilla{#1}\fi}
\let\tbarunder=\b
\pmdef\b#1{\@empty
  \ifmmode \xmathpalette{\oalign{$\xm@th#1$\crcr
        \hidewidth\vbox to.2ex{\hbox{$\xm@th\mathchar"7016$}\vss}\hidewidth}}%
  \else\tbarunder{#1}\fi}
\pmdef\ring#1{\@empty\ifmmode \mathaccent"7017 #1\else\accent"17 #1\fi}
%
\let\aatext=\aa
\mapname\aa{\mmodechoice{\mathaccent"7023a}{\aatext}}\uctext{\AA}
\let\AAtext=\AA
\mapname\AA{\mmodechoice{\xmathpalette{\setbox0\hbox{$\xm@th h$}%
      \dimen@\ht0\advance\dimen@-1ex%
      \rlap{\raise.67\dimen@\hbox{$\xm@th\mathchar"7017$}}A}}{\AAtext}}
  \lctext{\aa}
\let\ltext=\l
\mapname\l{\mmodechoice{\mathchar"7032l}{\ltext}}\uctext{\L}
\let\Ltext=\L
\mapname\L{\mmodechoice{\xmathpalette{\setbox0\hbox{$\xm@th L$}%
      \hbox to\wd0{\hss$\xm@th\mathchar"7032L$}}}{\Ltext}}\lctext{\l}
\lccode"1A="1A % enable hyphenations
\let\aetext=\ae
\mapname\ae{\mmodechoice{\mathchar"701A }{\aetext}}\uctext{\AE}
\let\AEtext=\AE
\mapname\AE{\mmodechoice{\mathchar"701D }{\AEtext}}\lctext{\ae}
\let\itext=\i
\lccode"10="10 % enable hyphenations
\mapname\i{\mfamchoice\imath{\mathchar"7010 }\itext}\uctext{\I}
\mapname\I{I}\lctext{\i}
\let\jtext=\j
\lccode"11="11 % enable hyphenations
\mapname\j{\mfamchoice\jmath{\mathchar"7011 }\jtext}\uctext{\J}
\mapname\J{J}\lctext{\j}
\lccode"1C="1C % enable hyphenations
\let\otext=\o
\mapname\o{\mmodechoice{\mathchar"701C }{\otext}}\uctext{\O}
\let\Otext=\O
\mapname\O{\mmodechoice{\mathchar"701F }{\Otext}}\lctext{\o}
\lccode"1B="1B % enable hyphenations
\let\oetext=\oe
\mapname\oe{\mmodechoice{\mathchar"701B }{\oetext}}\uctext{\OE}
\let\OEtext=\OE
\mapname\OE{\mmodechoice{\mathchar"701E }{\OEtext}}\lctext{\oe}
\let\sstext=\ss
\mapname\ss{\mmodechoice{\mathchar"7019 }{\sstext}}\uctext{\SS}
\mapname\SS{SS}\lctext{\ss}



%
% Some definitions for PC code pages
%
%\let\bigstar=\relax
\@ifundefined{bigstar}{% No AmSTeX-fonts available
  \def\bigstar{\star}
  \def\blacktriangleright{\rhd}
  \def\blacktriangleleft{\lhd}
  \def\blacktriangle{\bigtriangleup}
  \def\blacktriangledown{\bigtriangledown}
  \def\vartriangle{\Diamond}
  \def\yen{{\xooalign{\hfil Y\hfil\crcr
      \hfil\raise0.2ex\hbox{$\m@th=$}\hfil}}}
  \def\ulcorner{\mathsymbol{\vcenter{\hbox{%
          \kern0.06em\vrule depth1ex\leaders\hrule\hskip1ex\kern0.06em}}}}
  \def\urcorner{\mathsymbol{\vcenter{\hbox{%
          \kern0.06em\leaders\hrule\hskip1ex\vrule depth1ex\kern0.06em}}}}
  \def\varnothing{\emptyset}
  \def\bigcdot{{\setbox0=\hbox{$\m@th\cdot$}%
      \mathsymbol{\vcenter{\hbox to\wd0{%
            \hfill\vrule height0.4\wd0 width0.4\wd0\hfill}}}}}
  \def\circledR{{\xooalign{\hfil$\m@th\bigcirc$\hfil\crcr
      \hfil$\m@th\rm\scriptstyle R$\hfil}}}
  \def\eth{\leavevmode\hbox{$\m@th\partial$}%
    \llap{$\m@th\mathaccent32{\vphantom{\partial}}$\kern0.1em}}
  }{% AmSTeX-fonts available (macros should be already defined)
  \def\bigcdot{\xmathpalette{\raise0.4ex\hbox{$\xm@th\centerdot$}}}
  \let\m@eth=\eth
  \def\eth{\mathsymbol{\m@eth}}
  }

%
% PC codes 0..31
%
\def\smiley{{\setbox0=\hbox{$\vcenter{}$}\xooalign{$\m@th\bigcirc$\crcr
    \hfil\raise0.5\ht0\hbox{$\m@th\cdot\cdot$}\hfil\crcr
    \hfil\lower0.25\ht0\hbox{$\m@th\scriptscriptstyle\smile$}\hfil}}}
% true definition of `\blacksmiley' in `cpps'
\def\blacksmiley{\leavevmode{\setbox0=\hbox{\vphantom{$|$}\smiley}%
    \@blankboxfalse\makeblankbox{0pt}{0.4pt}}}
\def\invbullet{\invsymbol{\mathsymbol{\bullet}}}
\def\invcirc{\invsymbol{\mathsymbol{\circ}}}
\def\male{\leavevmode{\unitlength=1ex \begin{picture}(1,1)
    \put(0.5,0.5){\circle{1}}
    \put(0.6,1.1){\makebox(0,0){$\m@th\scriptscriptstyle\nearrow$}}
    \end{picture}}}
\def\female{\leavevmode{\unitlength=1ex \begin{picture}(1,1)
    \put(0.5,0.5){\circle{1}}
    \put(0.5,0){\line(0,-1){0.8}}
    \put(0.1,-0.4){\line(1,0){0.8}}
    \end{picture}}}
\def\musicalnote{\leavevmode{\unitlength=1ex \begin{picture}(0.65,1.35)
    \put(0.15,0.15){\circle*{0.3}}
    \put(0.3,0.15){\line(0,1){1.2}}
    \put(0.3,1.35){\line(1,0){0.35}}
    \put(0.3,1.15){\line(1,0){0.35}}
    \put(0.65,1.35){\line(0,-1){0.2}}
    \end{picture}}}
\def\Musicalnote{\leavevmode{\unitlength=1ex \begin{picture}(1,1.35)
    \put(0.15,0){\circle*{0.3}}
    \put(0.3,0){\line(0,1){1.35}}
    \put(0.85,0.15){\circle*{0.3}}
    \put(1,0.15){\line(0,1){1.2}}
    \put(0.3,1.35){\line(1,0){0.7}}
    \put(0.3,1.15){\line(1,0){0.7}}
    \end{picture}}}
\def\sun{\mathsymbol{\bigstar}} % true definition not available
\def\Exclam{!!{}}
\def\Bar{\leavevmode
  \hbox to0.5em{\kern0.06em\leaders\hrule height0.5ex\hfill}}
\def\hookmark{{\setbox0=\hbox{$\m@th\neg$}% Symbol fuer rechten Winkel
    \mathsymbol{\vcenter{\hbox to\wd0{%
          \kern0.06em\vrule height0.6ex\leaders\hrule\hfill\kern0.06em}}}}}

%
% PC codes 32..126
%
\def\qq{{\sc\char"0D\kern-0.1em\char"0D}}
%\def\rq{{}'{}}
\def\sq{{\sc\char"0D}}
\def\lt{<}
\def\gt{>}
\def\bs{\textsymbol{\backslash}}
\def\asciicircum{\textsymbol{^\wedge}}
%\def\lq{{}`{}}
\def\brokenvert{\leavevmode{\setbox0=\hbox{$\m@th|$}\hbox to\wd0{\hfil
  \@tempdima=\ht0 \advance\@tempdima by\dp0 \advance\@tempdima by-0.25ex
  \divide\@tempdima by2 \@tempdimb=\@tempdima
  \advance\@tempdima by-\ht0 \advance\@tempdimb by-\dp0
  \vrule height\ht0 depth\@tempdima\hskip-0.4pt
  \vrule height\@tempdimb depth\dp0\hfil}}}
\def\tbrokenvert{\mfamchoice\vert\brokenvert\brokenvert}
\def\asciivert{\@empty\if@asciivert \tbrokenvert\else\mathsymbol{\vert}\fi}
\newif\if@asciivert
\def\asciitilde{\textsymbol{^\sim}}

%
% PC code 127
%
\def\hatmark{\mathsymbol{\vartriangle}} % true definition not available

%
% PC codes 128..255
%
\def\cent{\leavevmode\hbox{\setbox0=\hbox{c}%
  c\llap{\raise0.1ex\hbox to\wd0{\scriptsize\hss\kern0.1em/\hss}}}}
\def\Pt{\leavevmode\hbox{\rm P\kern-0.15em$\m@th\rm\scriptstyle t$}}
\def\florin{\leavevmode\hbox{$f$}}
% true definition of `\currency' in `cpps'
\def\currency{{\xooalign{\hfil$\m@th\times$\hfil\crcr
    \hfil\kern0.05em$\m@th\circ$\hfil}}}

\def\ordfeminine{\textsymbol{^{\b a}}}
\def\ordmasculine{\textsymbol{^{\b o}}}

\def\questiondown{?`}
\def\exclamdown{!`}

\def\ulangle{\leavevmode{\setbox0=\hbox{$\m@th\ulcorner$}\lower0.25\ht0\box0}}
\def\urangle{\leavevmode{\setbox0=\hbox{$\m@th\urcorner$}\lower0.25\ht0\box0}}

% true definition of the following three in `cpps'
\def\graygraphbox{\makegraygraphbox{0.25pt}{1pt}}	% lum = 0.25
\def\Graygraphbox{\makegraygraphbox{0.5pt}{1pt}}	% lum = 0.5
\def\GRAYGRAPHBOX{\makegraygraphbox{0.5pt}{0.75pt}}	% lum = 0.75

%\def\inttop{\graphsymbol{\setbox0=\hbox{$\m@th\scriptstyle\mathchar"0330$}%
%  \@tempdima=\dp0 \advance\@tempdima by-\dp\strutbox \advance\@tempdima by-\ht1
%  \hss\kern0.8pt\raise\@tempdima\box0\hss}}
%\def\intbot{\graphsymbol{\setbox0=\hbox{$\m@th\scriptstyle\mathchar"0341$}%
%  \@tempdima=\ht0 \advance\@tempdima by-\ht\strutbox \advance\@tempdima by\ht1
%  \hss\lower\@tempdima\box0\kern0.8pt\hss}}
\def\inttop{\graphsymbol{\setbox0=\hbox{$\m@th\scriptstyle\mathchar"0338$}%
  \setbox2=\hbox{$\m@th\scriptstyle\mathchar"033E$}%
  \hss\lower\ht1\vbox to\ht\strutbox{\offinterlineskip
    \kern0.25ex\box0\kern-\dp2\cleaders\copy2\vfill\kern-\dp2\copy2
    \kern-\dp\strutbox}\hss}}
\def\intbot{\graphsymbol{\setbox0=\hbox{$\m@th\scriptstyle\mathchar"033B$}%
  \setbox2=\hbox{$\m@th\scriptstyle\mathchar"033E$}%
  \hss\lower\ht1\vbox to\ht\strutbox{\offinterlineskip
    \leaders\copy2\vfill\kern-\dp2\box0\kern0.25ex\kern-\dp\strutbox}\hss}}
\def\degree{\textsymbol{^\circ}}
\def\smallcdot{\mathsymbol{\cdot}}
\def\sqbullet{\leavevmode\kern.1em\hbox{$\m@th
  \vcenter{\hrule height1ex width.3em}$}\kern.1em}
\let\nbspace=~

\def\emdash{{}---{}}
\def\endash{{}--{}}
\def\hyphen{{}-{}}
\def\Underscore{\oalign{\_\crcr\_}}

\def\Eth{\leavevmode\hbox{\setbox0=\hbox{D}\@tempdima=\ht0
  \setbox0=\hbox{I}\@tempdimb=\wd0
  \setbox0=\hbox{-}\advance\@tempdima by-\ht0 \divide\@tempdima by2
  \advance\@tempdimb by-\wd0
  \rlap{\raisebox{\@tempdima}{\kern\@tempdimb-}}D}}
\def\thorn{\leavevmode\rlap{l}p}
\def\Thorn{\leavevmode{\rm\rlap{I}\kern0.1em\hbox{$\m@th\rm\scriptstyle P$}}}

\def\perthousand{\textsymbol{\slashfrac0{00}}}
\def\lqq{{}``}
\def\rqq{''}
\def\trademark{\textsymbol{^{TM}}}



%
% TeX-Definitionen fuer die Code Page TeX-ASCII
%
\makeactive{"027,"02A,"03C,"03E,"060,"07C}

\newcodepage{texascii}{

  \@asciiverttrue

%
% Zuruecksetzen der Original-Definitionen
%
\def\cporiginal{\makeother{"027,"02A,"03C,"03E,"060,"07C}\@asciiverttrue}

%
% Modifizierte Definitionen fuer ASCII (mit `TeX-Quotes')
%
\def\cpascii{\makeactive{"02A,"03C,"03E,"07C}%
  %\mapchar{"}{\qq}%
  \mapchar{*}{\mathsymbol{\ast}}%
  \mapchar{<}{\mathsymbol{\lt}}%
  \mapchar{>}{\mathsymbol{\gt}}%
  %\mapname\_{}% TeX-construct
  \mapname\{{\mathsymbol{\lbrace}}%
  \mapchar{|}{\asciivert}%
  \mapname\}{\mathsymbol{\rbrace}}}

%
% Modifizierte Definitionen fuer ASCII (mit `Original-ASCII-Quotes')
%
\def\cpfullascii{\cpascii
  \makeactive{"027,"060}%
  \mapchar{'}{\sq}%
  \mapchar{`}{\`{}}}

%
% Modifizierte Definition fuer einen durchgehenden senkrechten Strich
%
\def\cpvert{\@asciivertfalse}

}%\end{newcodepage}

\makeother{"027,"02A,"03C,"03E,"060,"07C}