summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx')
-rw-r--r--Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx721
1 files changed, 721 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx b/Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx
new file mode 100644
index 00000000000..3f3b64d115f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/mapcodes/mapcodes.dtx
@@ -0,0 +1,721 @@
+\def\fileversion{1.04}
+\def\filedate {07 Apr 95}
+\def\docdate {06 Dec 94}
+\def\docdatede{06 Dec 94}
+%
+% \iffalse metacomment
+% This file is part of the mapcodes package, version 1.04.
+% -----------------------------------------------------------
+% Copyright (C) 1994 Michael Piotrowski. All rights reserved.
+%
+% This file 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.
+% -----------------------------------------------------------
+%
+% IMPORTANT NOTICE:
+%
+% For error reports in case of UNCHANGED versions see readme file.
+%
+% You are not allowed to change this file.
+%
+% You are allowed to distribute this file under the condition that
+% it is distributed together with all files mentioned in manifest.txt.
+%
+% If you receive only some of these files from someone, complain!
+%
+% You are NOT ALLOWED to distribute this file alone. You are NOT
+% ALLOWED to take money for the distribution or use of either this
+% file or a changed version, except for a nominal charge for copying.
+%
+% \fi
+%
+% \changes{v1.0}{94/12/04}{First release}
+% \changes{v1.01}{94/12/06}{ISO 8859-2 added, all chars of all charsets are mapped now}
+% \changes{v1.02}{95/02/07}{Modifications for \TeX 3.1415 under HP-UX}
+% \changes{v1.03}{95/03/14}{Serious (pronounce: stupid) bug fixed}
+% \changes{v1.04}{95/04/07}{Support for quotation marks in \texttt{german.dtx} added}
+%
+% \MakeShortVerb{\|}
+%
+% \newcommand{\mapcodes}{\textsf{mapcodes}}
+% \newcommand{\package}[1]{\textsf{#1}}
+% \newcommand{\option}[1]{\texttt{#1}}
+%
+% \title{Using 8-bit Character Sets with \mapcodes{}
+% \thanks{This document describes version \fileversion{} of \filedate{}.}}
+% \author{Michael Piotrowski\\
+% \texttt{mlpiotro@linguistik.uni-erlangen.de}}
+% \date{Printed on \today}
+% \maketitle
+% \begin{abstract}
+% The \mapcodes{} package allows you to use 8-bit input files
+% in a variety of encodings, like ISO 8859-1 or the IBM codepage 850.
+% It can be used with both T1 and OT1 fonts and language-specific
+% extension packages.
+% \end{abstract}
+%
+% \section{Deutsche Kurzbeschreibung}
+%
+% \mapcodes{} erm\"oglicht die Verwendung von 8-bit-Eingabedateien
+% mit verschiedenen Zeichens\"atzen.
+%
+% In dieser Version sind das:
+% \begin{itemize}
+% \item ISO 8859-1 (Latin 1)
+% \item ISO 8859-2 (Latin 2)
+% \item IBM Kodeseite 850
+% \item IBM Kodeseite 852
+% \item HP Roman 8
+% \item Macintosh Roman
+% \item Atari TOS
+% \end{itemize}
+%
+% Um \mapcodes{} zu benutzen, schreiben Sie eine Zeile der folgenden
+% Form in die Pr\"aambel der Eingabedatei:
+% \begin{quote}
+% |\usepackage[|\textit{Zeichensatz}|]{mapcodes}|
+% \end{quote}
+%
+% F\"ur \textit{Zeichensatz} k\"onnen sie im Augenblick folgendes
+% einsetzen:\footnote{F\"ur iso8859-$x$ kann auch latin$x$ geschrieben
+% werden.}
+% \begin{center}
+% \begin{tabular}{llll}
+% |iso8859-1|&|iso8859-2|&|ibm850|&|ibm852|\\
+% |hproman8|&|macroman|&|atari|&\\
+% \end{tabular}
+% \end{center}
+%
+% \mapcodes{} erkennt selbst\"andig, ob Sie T1- oder OT1-Schriften
+% verwenden, wobei erstere zu empfehlen sind. Wenn Sie OT1-Schriften
+% und ein LaTeX-Paket wie \package{german} oder eine \package{babel}-Option
+% wie \option{german} oder \option{spanish} verwenden, kann
+% \mapcodes{} die entsprechenden Erweiterungen nutzen, die z. B.
+% Trennungen in W\"ortern mit Umlauten erlauben. Geben sie hierzu
+% die Sprache als zus\"atzliche Option an. Beispiel:
+% \begin{quote}
+% |\usepackage[hproman8,german]{mapcodes}|
+% \end{quote}
+% Sie k\"onnen die Sprache auch als globale Option zum
+% |\documentclass|-Befehl angeben. Im Augenblick werden folgende
+% Sprachoptionen unterst\"utzt:
+%
+% \begin{center}
+% \begin{tabular}{llll}
+% |german|&|spanish|&&\\
+% \end{tabular}
+% \end{center}
+%
+%
+% \section{Introduction}
+% When using \TeX{} with languages other than English you always have the
+% problem of how to enter language-specific characters like \"a, \'e or
+% \'\i. The \LaTeX{} commands |\"{a}|, |\'{e}| and |\`{\i{}}| are neither
+% intended nor adequate for writing texts in German, French or Italian,
+% as they are too difficult to type; besides of that, they inhibit
+% proper hyphenation of the words in which they are contained.
+%
+% Packages like \package{german} or \package{babel} offer some help
+% in producing non-English texts, providing commands like |"a| for \"a
+% which also allow correct hyphenation. However, this is still not
+% perfect; it would be much nicer if you could simply use the ``\"a'' key
+% on a German keyboard and directly see ``\"a'' on your screen.
+% The drawback here is that unfortunately nearly every computer system
+% is still using its own character sets and tables, which makes it
+% difficult to correctly process 8-bit coded texts from one system
+% on an other system.
+%
+% The \mapcodes{} package allows you to use (nearly) all of the
+% characters in the character set you are using while providing a high
+% level of portability.
+%
+% \section{Specifications}
+%
+% Currently supported character sets:
+% \begin{itemize}
+% \item ISO 8859-1 (Latin 1)
+% \item ISO 8859-2 (Latin 2)
+% \item IBM codepage 850
+% \item IBM codepage 852
+% \item HP Roman 8
+% \item Macintosh Roman
+% \item Atari TOS
+% \end{itemize}
+%
+% \mapcodes{} can easily be extended in a modular way to support
+% further encodings.
+%
+% Output can be produced for:
+% \begin{itemize}
+% \item OT1 fonts; |"cf| in Latin 1 encoding will be mapped to |\ss|
+% \item OT1 with extension packages; currently supported are the
+% \package{german} package and the \option{german} and
+% \option{spanish} options of \package{babel}. For the
+% \package{german} package the above code would
+% be mapped to |"s| and thus allowing hyphenation.
+% \item T1 fonts; |"cf| is mapped to the the corresponding character
+% code in the T1 set, namely |"ff|.
+% \end{itemize}
+%
+% \section{The User Interface}
+%
+% To use \package{mapcodes}, simply specifiy it in a |\usepackage| command,
+% with the name of the desired encoding as an option. Example:
+% \begin{quote}
+% |\usepackage[iso8859-1]{mapcodes}|
+% \end{quote}
+%
+% If you are using em\TeX\, make sure that you use a \LaTeX{}
+% format \textbf{without} a character translation table built-in
+% (this is done by specifying the option \option{/c} when building it).
+% Use the option \option{/8} instead to enable 8-bit character processing.
+%
+% \package{mapcodes} automatically detects whether you are using T1 or OT1
+% fonts. Note, however, that the usage of OT1 fonts can in some
+% cases yield esthetically dubious results due to limitations of these
+% fonts. Usage of T1 fonts is recommended. If you are using OT1 fonts with
+% one of the extension packages named above, you can request support for
+% them by specifying the language name in addition to the encoding.
+% Example:
+% \begin{quote}
+% |\usepackage[hproman8,german]{mapcodes}|
+% \end{quote}
+%
+% When you are using T1 fonts, the request will be ignored.
+%
+% Valid encoding options in this version are:\footnote{|iso8859-|$x$ can
+% be replaced by |latin|$x$}
+% \begin{center}
+% \begin{tabular}{llll}
+% |iso8859-1|&|iso8859-1|&|ibm850|&|ibm852|\\
+% |hproman8|&|macroman|&|atari|&\\
+% \end{tabular}
+% \end{center}
+%
+% Valid language options in this version are:
+% \begin{center}
+% \begin{tabular}{llll}
+% |german|&|spanish|&&\\
+% \end{tabular}
+% \end{center}
+%
+% \section{Bugs and features}
+% Suggestions and bug reports are welcome. Direct them to the
+% E-mail address indicated on the first page.
+%
+% \StopEventually{
+% \section{Acknowledgments}
+% The character tables in Kosta Kostis' \texttt{trans097} conversion
+% tools were very helpful.
+%
+% \begin{thebibliography}{9}
+% \bibitem{Lamport} Lamport, Leslie. \emph{\LaTeX: A Document
+% Preparation System.} 2nd ed. Reading, Mass.: Addison-Wesley 1994.
+% \bibitem{PSMan} Adobe Systems Incorporated. \emph{POSTSCRIPT language
+% reference manual.} Reading, Mass.: Addison-Wesley 1986.
+% \end{thebibliography}
+% }
+%
+% \section{The Code}
+%
+% The preliminaries:
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mapcodes}[1995/02/07 mapcodes 1.02]
+\typeout{Package `mapcodes' \fileversion\space<\filedate> (Michael Piotrowski)}
+\typeout{English documentation\space\space<\docdate>}
+\typeout{Deutsche Beschreibung\space\space<\docdatede>}
+% \end{macrocode}
+%
+% Some constants and varibles are defined:
+% \begin{macrocode}
+\newcommand\map@corkenc{T1}
+\newcommand\map@oldenc{OT1}
+\newlength{\map@width}
+\newlength{\map@height}
+% \end{macrocode}
+%
+% \begin{macro}{\map@overlay}
+% This little macro is used to produce the yen sign and the registered
+% trademark symbol. The second argument is centered over the first one.
+% For details consult \cite[p. 108ff]{Lamport}
+% \begin{macrocode}
+\newcommand{\map@overlay}[2]{%
+ \settowidth{\map@width}{#1}%
+ \makebox[0pt][l]{\makebox[\map@width]{#2}}%
+ {#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\map@accent}
+% The following macro is my own implementation of the \TeX{} |\accent|
+% command. The second argument is lifted up and placed over the first one.
+% \begin{macrocode}
+\newcommand{\map@accent}[2]{%
+ \settowidth{\map@width}{#1}%
+ \settoheight{\map@height}{#1}%
+ \addtolength{\map@height}{0.2\map@height}%
+ \raisebox{\map@height}[0pt][0pt]{%
+ \makebox[0pt][l]{%
+ \makebox[\map@width]{#2}}}%
+ {#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definitions are used for both T1 and OT1 fonts. The names
+% for the characters are the names defined in \cite{PSMan} with a
+% prefixed ``map@'' to be in any case different from possibly existing
+% \LaTeX{} commands.
+% \begin{macrocode}
+\newcommand\map@nil{\ensuremath{\bigotimes}}
+\newcommand\map@ordfeminine{{\raise1ex\hbox{\underbar{\scriptsize a}}}}
+\newcommand\map@ordmasculine{{\raise1ex\hbox{\underbar{\scriptsize o}}}}
+\newcommand\map@cent{\leavevmode\hbox{\rm\rlap/c}}
+\newcommand\map@copyright{\copyright{}}
+\newcommand\map@paragraph{\P{}}
+\newcommand\map@trademark{{\raise1ex\hbox{\scriptsize TM}}}
+\newcommand\map@registered{\map@overlay{\ensuremath{\bigcirc}}{\scriptsize R}}
+\newcommand\map@multiply{\ensuremath{\times}}
+\newcommand\map@divide{\ensuremath{\div}}
+\newcommand\map@onesuperior{\ensuremath{^1}}
+\newcommand\map@twosuperior{\ensuremath{^2}}
+\newcommand\map@threesuperior{\ensuremath{^3}}
+\newcommand\map@onequarter{\ensuremath{\frac{1}{4}}}
+\newcommand\map@onehalf{\ensuremath{\frac{1}{2}}}
+\newcommand\map@threequarters{\ensuremath{\frac{3}{4}}}
+\newcommand\map@space{~}
+\newcommand\map@hyphen{-}
+\newcommand\map@mu{\ensuremath{\mu}}
+\newcommand\map@yen{\map@overlay{Y}{--}}
+\newcommand\map@logicalnot{\ensuremath{\neg}}
+\newcommand\map@plusminus{\ensuremath{\pm}}
+\newcommand\map@periodcentered{\ensuremath{\cdot}}
+\newcommand\map@degree{\ensuremath{^\circ}}
+\newcommand\map@brokenbar{\ensuremath{\mid}}
+\newcommand\map@currency{\ensuremath{\circ}}
+\newcommand\map@dagger{\ensuremath{\dagger}}
+\newcommand\map@daggerdbl{\ensuremath{\ddagger}}
+\newcommand\map@bullet{\ensuremath{\bullet}}
+\newcommand\map@aleph{\ensuremath{\aleph}}
+\newcommand\map@alpha{\ensuremath{\alpha}}
+\newcommand\map@beta{\ensuremath{\beta}}
+\newcommand\map@gamma{\ensuremath{\gamma}}
+\newcommand\map@pi{\ensuremath{\pi}}
+\newcommand\map@productdot{\ensuremath{\cdot}}
+\newcommand\map@notequal{\ensuremath{\not=}}
+\newcommand\map@infinity{\ensuremath{\infty}}
+\newcommand\map@lessequal{\ensuremath{\leq}}
+\newcommand\map@greaterequal{\ensuremath{\geq}}
+\newcommand\map@partialdiff{\ensuremath{\partial}}
+\newcommand\map@summation{\ensuremath{\sum}}
+\newcommand\map@product{\ensuremath{\prod}}
+\newcommand\map@integral{\ensuremath{\int}}
+\newcommand\map@Omega{\ensuremath{\Omega}}
+\newcommand\map@radical{\ensuremath{\surd}}
+\newcommand\map@florin{\textrm{\textit{f}}}
+\newcommand\map@approxequal{\ensuremath{\approx}}
+\newcommand\map@Delta{\ensuremath{\Delta}}
+\newcommand\map@quoteleft{`}
+\newcommand\map@quoteright{'}
+\newcommand\map@lozenge{\ensuremath{\diamond}}
+\newcommand\map@fi{fi}
+\newcommand\map@fl{fl}
+\newcommand\map@cdots{\ensuremath{\cdots}} % not a Postscript name!
+\newcommand\map@fraction{/}
+\newcommand\map@{\ensuremath{\pi}}
+\newcommand\map@Gamma{\ensuremath{\Gamma}}
+\newcommand\map@logicaland{\ensuremath{\wedge}}
+\newcommand\map@Sigma{\ensuremath{\Sigma}}
+\newcommand\map@sigma{\ensuremath{\sigma}}
+\newcommand\map@tau{\ensuremath{\tau}}
+\newcommand\map@Phi{\ensuremath{\Phi}}
+\newcommand\map@Theta{\ensuremath{\Theta}}
+\newcommand\map@delta{\ensuremath{\delta}}
+\newcommand\map@phi{\ensuremath{\phi}}
+\newcommand\map@epsilon{\ensuremath{\varepsilon}}
+\newcommand\map@intersection{\ensuremath{\bigcap}}
+\newcommand\map@equivalence{\ensuremath{\equiv}}
+\newcommand\map@nsuperior{\ensuremath{^n}}
+\newcommand\map@filledbox{\ensuremath{\diamondsuit}}
+
+
+% \end{macrocode}
+%
+% If T1 fonts are used the following definitions are made:
+% \begin{macrocode}
+\ifx\encodingdefault\map@corkenc
+\newcommand\map@grave{\symbol{00}}
+\newcommand\map@acute{\symbol{01}}
+\newcommand\map@circumflex{\symbol{02}}
+\newcommand\map@tilde{\symbol{03}}
+\newcommand\map@dieresis{\symbol{04}}
+\newcommand\map@hungarumlaut{\symbol{05}}
+\newcommand\map@ring{\symbol{06}}
+\newcommand\map@caron{\symbol{07}}
+\newcommand\map@breve{\symbol{08}}
+\newcommand\map@macron{\symbol{09}}
+\newcommand\map@dotaccent{\symbol{10}}
+\newcommand\map@cedilla{\symbol{11}}
+\newcommand\map@ogonek{\symbol{12}}
+\newcommand\map@quotesinglbase{\symbol{13}}
+\newcommand\map@guilsinglleft{\symbol{14}}
+\newcommand\map@guilsinglright{\symbol{15}}
+\newcommand\map@quotedblleft{\symbol{16}}
+\newcommand\map@quotedblright{\symbol{17}}
+\newcommand\map@quotedblbase{\symbol{18}}
+\newcommand\map@guillemotleft{\symbol{19}}
+\newcommand\map@guillemotright{\symbol{20}}
+\newcommand\map@endash{\symbol{21}}
+\newcommand\map@emdash{\symbol{22}}
+\newcommand\map@perthousand{\%\symbol{23}}
+\newcommand\map@dotlessi{\symbol{24}}
+\newcommand\map@dotlessj{\symbol{25}}
+\newcommand\map@Abreve{\symbol{128}}
+\newcommand\map@Aogonek{\symbol{129}}
+\newcommand\map@Cacute{\symbol{130}}
+\newcommand\map@Ccaron{\symbol{131}}
+\newcommand\map@Dcaron{\symbol{132}}
+\newcommand\map@Ecaron{\symbol{133}}
+\newcommand\map@Eogonek{\symbol{134}}
+\newcommand\map@Gbreve{\symbol{135}}
+\newcommand\map@Lacute{\symbol{136}}
+\newcommand\map@Lquoteright{\symbol{137}}
+\newcommand\map@Lslash{\symbol{138}}
+\newcommand\map@Nacute{\symbol{139}}
+\newcommand\map@Ncaron{\symbol{140}}
+\newcommand\map@NJ{\symbol{141}}
+\newcommand\map@Ohungarumlaut{\symbol{142}}
+\newcommand\map@Racute{\symbol{143}}
+\newcommand\map@Rcaron{\symbol{144}}
+\newcommand\map@Sacute{\symbol{145}}
+\newcommand\map@Scaron{\symbol{146}}
+\newcommand\map@Scedilla{\symbol{147}}
+\newcommand\map@Tcaron{\symbol{148}}
+\newcommand\map@Tcedilla{\symbol{149}}
+\newcommand\map@Uhungarumlaut{\symbol{150}}
+\newcommand\map@Uring{\symbol{151}}
+\newcommand\map@Ydieresis{\symbol{152}}
+\newcommand\map@Zacute{\symbol{153}}
+\newcommand\map@Zcaron{\symbol{154}}
+\newcommand\map@Zdotaccent{\symbol{155}}
+\newcommand\map@IJ{\symbol{156}}
+\newcommand\map@Idotaccent{\symbol{157}}
+\newcommand\map@dslash{\symbol{158}}
+\newcommand\map@section{\symbol{159}}
+\newcommand\map@abreve{\symbol{160}}
+\newcommand\map@aogonek{\symbol{161}}
+\newcommand\map@cacute{\symbol{162}}
+\newcommand\map@ccaron{\symbol{163}}
+\newcommand\map@dquoteright{\symbol{164}}
+\newcommand\map@ecaron{\symbol{165}}
+\newcommand\map@eogonek{\symbol{166}}
+\newcommand\map@gbreve{\symbol{167}}
+\newcommand\map@lacute{\symbol{168}}
+\newcommand\map@lquoteright{\symbol{169}}
+\newcommand\map@lslash{\symbol{170}}
+\newcommand\map@nacute{\symbol{171}}
+\newcommand\map@ncaron{\symbol{172}}
+\newcommand\map@nj{\symbol{173}}
+\newcommand\map@ohungarumlaut{\symbol{174}}
+\newcommand\map@racute{\symbol{175}}
+\newcommand\map@rcaron{\symbol{176}}
+\newcommand\map@sacute{\symbol{177}}
+\newcommand\map@scaron{\symbol{178}}
+\newcommand\map@scedilla{\symbol{179}}
+\newcommand\map@tquoteright{\symbol{180}}
+\newcommand\map@tcedilla{\symbol{181}}
+\newcommand\map@uhungarumlaut{\symbol{182}}
+\newcommand\map@uring{\symbol{183}}
+\newcommand\map@ydieresis{\symbol{184}}
+\newcommand\map@zacute{\symbol{185}}
+\newcommand\map@zcaron{\symbol{186}}
+\newcommand\map@zdotaccent{\symbol{187}}
+\newcommand\map@ij{\symbol{188}}
+\newcommand\map@exclamdown{\symbol{189}}
+\newcommand\map@questiondown{\symbol{190}}
+\newcommand\map@sterling{\symbol{191}}
+\newcommand\map@Agrave{\symbol{192}}
+\newcommand\map@Aacute{\symbol{193}}
+\newcommand\map@Acircumflex{\symbol{194}}
+\newcommand\map@Atilde{\symbol{195}}
+\newcommand\map@Adieresis{\symbol{196}}
+\newcommand\map@Aring{\symbol{197}}
+\newcommand\map@AE{\symbol{198}}
+\newcommand\map@Ccedilla{\symbol{199}}
+\newcommand\map@Egrave{\symbol{200}}
+\newcommand\map@Eacute{\symbol{201}}
+\newcommand\map@Ecircumflex{\symbol{202}}
+\newcommand\map@Edieresis{\symbol{203}}
+\newcommand\map@Igrave{\symbol{204}}
+\newcommand\map@Iacute{\symbol{205}}
+\newcommand\map@Icircumflex{\symbol{206}}
+\newcommand\map@Idieresis{\symbol{207}}
+\newcommand\map@Eth{\symbol{208}}%%%%% Achtung! Eth und Dslash
+\newcommand\map@Dslash{\symbol{208}}%% sind Synonyme! (gleiche Nummern!)
+\newcommand\map@Ntilde{\symbol{209}}
+\newcommand\map@Ograve{\symbol{210}}
+\newcommand\map@Oacute{\symbol{211}}
+\newcommand\map@Ocircumflex{\symbol{212}}
+\newcommand\map@Otilde{\symbol{213}}
+\newcommand\map@Odieresis{\symbol{214}}
+\newcommand\map@OE{\symbol{215}}
+\newcommand\map@Oslash{\symbol{216}}
+\newcommand\map@Ugrave{\symbol{217}}
+\newcommand\map@Uacute{\symbol{218}}
+\newcommand\map@Ucircumflex{\symbol{219}}
+\newcommand\map@Udieresis{\symbol{220}}
+\newcommand\map@Yacute{\symbol{221}}
+\newcommand\map@Thorn{\symbol{222}}
+\newcommand\map@SS{\symbol{223}}
+\newcommand\map@agrave{\symbol{224}}
+\newcommand\map@aacute{\symbol{225}}
+\newcommand\map@acircumflex{\symbol{226}}
+\newcommand\map@atilde{\symbol{227}}
+\newcommand\map@adieresis{\symbol{228}}
+\newcommand\map@aring{\symbol{229}}
+\newcommand\map@ae{\symbol{230}}
+\newcommand\map@ccedilla{\symbol{231}}
+\newcommand\map@egrave{\symbol{232}}
+\newcommand\map@eacute{\symbol{233}}
+\newcommand\map@ecircumflex{\symbol{234}}
+\newcommand\map@edieresis{\symbol{235}}
+\newcommand\map@igrave{\symbol{236}}
+\newcommand\map@iacute{\symbol{237}}
+\newcommand\map@icircumflex{\symbol{238}}
+\newcommand\map@idieresis{\symbol{239}}
+\newcommand\map@eth{\symbol{240}}
+\newcommand\map@ntilde{\symbol{241}}
+\newcommand\map@ograve{\symbol{242}}
+\newcommand\map@oacute{\symbol{243}}
+\newcommand\map@ocircumflex{\symbol{244}}
+\newcommand\map@otilde{\symbol{245}}
+\newcommand\map@odieresis{\symbol{246}}
+\newcommand\map@oe{\symbol{247}}
+\newcommand\map@oslash{\symbol{248}}
+\newcommand\map@ugrave{\symbol{249}}
+\newcommand\map@uacute{\symbol{250}}
+\newcommand\map@ucircumflex{\symbol{251}}
+\newcommand\map@udieresis{\symbol{252}}
+\newcommand\map@yacute{\symbol{253}}
+\newcommand\map@thorn{\symbol{254}}
+\newcommand\map@germandbls{\symbol{255}}
+% \end{macrocode}
+%
+% With OT1 fonts, however, the following definitions are made:
+% \begin{macrocode}
+\else
+\newcommand\map@grave{\`{}}
+\newcommand\map@acute{\'{}}
+\newcommand\map@circumflex{\^{}}
+\newcommand\map@tilde{\~{}}
+\newcommand\map@dieresis{\"{}}
+\newcommand\map@hungarumlaut{\H{}}
+\newcommand\map@ring{}
+\newcommand\map@caron{\v{}}
+\newcommand\map@breve{\u{}}
+\newcommand\map@macron{\={}}
+\newcommand\map@dotaccent{\.{}}
+\newcommand\map@cedilla{\c{}}
+\newcommand\map@ogonek{\map@nil}
+\newcommand\map@endash{-}
+\newcommand\map@emdash{--}
+
+\newcommand\map@aacute{\'a}
+\newcommand\map@Aacute{\'A}
+\newcommand\map@abreve{\u{a}}
+\newcommand\map@Abreve{\u{A}}
+\newcommand\map@Acircumflex{\^A}
+\newcommand\map@acircumflex{\^a}
+\newcommand\map@adieresis{\"a}
+\newcommand\map@Adieresis{\"A}
+\newcommand\map@ae{\ae{}}
+\newcommand\map@AE{\AE{}}
+\newcommand\map@agrave{\`a}
+\newcommand\map@Agrave{\`A}
+\newcommand\map@aogonek{\c{a}}
+\newcommand\map@Aogonek{\c{A}}
+\newcommand\map@Aring{\AA{}}
+\newcommand\map@aring{\aa{}}
+\newcommand\map@atilde{\~a}
+\newcommand\map@Atilde{\~A}
+\newcommand\map@cacute{\'c}
+\newcommand\map@Cacute{\'C}
+\newcommand\map@ccaron{\v{c}}
+\newcommand\map@Ccaron{\v{C}}
+\newcommand\map@Ccedilla{\c C}
+\newcommand\map@ccedilla{\c c}
+\newcommand\map@Dcaron{\v{D}}
+\newcommand\map@dcaron{d\ensuremath{\!}'}
+\newcommand\map@dotlessi{\i{}}
+\newcommand\map@dotlessj{\j{}}
+\newcommand\map@dslash{\map@overlay{d}{\ensuremath{^-}}}
+\newcommand\map@Dslash{\map@Eth}
+\newcommand\map@Eacute{\'E}
+\newcommand\map@eacute{\'e}
+\newcommand\map@ecaron{\v{E}}
+\newcommand\map@Ecaron{\v{E}}
+\newcommand\map@Ecircumflex{\^E}
+\newcommand\map@ecircumflex{\^e}
+\newcommand\map@Edieresis{\"E}
+\newcommand\map@edieresis{\"e}
+\newcommand\map@egrave{\`e}
+\newcommand\map@Egrave{\`E}
+\newcommand\map@eogonek{\c{e}}
+\newcommand\map@Eogonek{\c{E}}
+\newcommand\map@Eth{\makebox[0pt][l]{--}D}
+\newcommand\map@eth{\ensuremath{\partial}}
+\newcommand\map@exclamdown{!`}
+\newcommand\map@gbreve{\u{g}}
+\newcommand\map@Gbreve{\u{G}}
+\newcommand\map@germandbls{\ss{}}
+\newcommand\map@guillemotleft{\ensuremath{\scriptstyle\ll}}
+\newcommand\map@guillemotright{\ensuremath{\scriptstyle\gg}}
+\newcommand\map@guilsinglleft{\ensuremath{\scriptstyle <}}
+\newcommand\map@guilsinglright{\ensuremath{\scriptstyle >}}
+\newcommand\map@Iacute{\'I}
+\newcommand\map@iacute{\'\i{}}
+\newcommand\map@Icircumflex{\^I}
+\newcommand\map@icircumflex{\^\i{}}
+\newcommand\map@Idieresis{\"I}
+\newcommand\map@idieresis{\"\i{}}
+\newcommand\map@Idotaccent{\.{I}}
+\newcommand\map@Igrave{\`I}
+\newcommand\map@igrave{\`\i{}}
+\newcommand\map@ij{ij}
+\newcommand\map@IJ{IJ}
+\newcommand\map@lacute{\'l}
+\newcommand\map@Lacute{\'L}
+\newcommand\map@lcaron{l\ensuremath{\!}'}% siehe Dudentaschenbuch Satz- und
+\newcommand\map@Lcaron{L\ensuremath{\!}'}% Korrekturvorschriften
+\newcommand\map@lslash{\map@overlay{l}{-}}
+\newcommand\map@Lslash{\makebox[0pt][l]{--}L}
+\newcommand\map@nacute{\'n}
+\newcommand\map@Nacute{\'N}
+\newcommand\map@ncaron{\v{n}}
+\newcommand\map@Ncaron{\v{n}}
+\newcommand\map@ntilde{\~n}
+\newcommand\map@Ntilde{\~N}
+\newcommand\map@Oacute{\'O}
+\newcommand\map@oacute{\'o}
+\newcommand\map@Ocircumflex{\^O}
+\newcommand\map@ocircumflex{\^o}
+\newcommand\map@odieresis{\"o}
+\newcommand\map@Odieresis{\"O}
+\newcommand\map@oe{\oe{}}
+\newcommand\map@OE{\OE{}}
+\newcommand\map@Ograve{\`O}
+\newcommand\map@ograve{\`o}
+\newcommand\map@ohungarumlaut{\H{o}}
+\newcommand\map@Ohungarumlaut{\H{O}}
+\newcommand\map@oslash{\o{}}
+\newcommand\map@Oslash{\O{}}
+\newcommand\map@otilde{\~o}
+\newcommand\map@Otilde{\~O}
+\newcommand\map@perthousand{\ensuremath{^{0}/_{00}}}
+\newcommand\map@questiondown{?`}
+\newcommand\map@quotedblbase{,,}
+\newcommand\map@quotedblleft{``}
+\newcommand\map@quotedblright{''}
+\newcommand\map@quotesinglbase{,}
+\newcommand\map@racute{\'r}
+\newcommand\map@Racute{\'R}
+\newcommand\map@rcaron{\v{r}}
+\newcommand\map@Rcaron{\v{R}}
+\newcommand\map@Sacute{\'S}
+\newcommand\map@sacute{\'s}
+\newcommand\map@scaron{\v{s}}
+\newcommand\map@Scaron{\v{S}}
+\newcommand\map@Scedilla{\c{s}}
+\newcommand\map@scedilla{\c{s}}
+\newcommand\map@section{\S{}}
+\newcommand\map@SS{SS}
+\newcommand\map@sterling{\pounds{}}
+\newcommand\map@tcaron{t\ensuremath{\!}'}
+\newcommand\map@Tcaron{\v{T}}
+\newcommand\map@Tcedilla{\c{T}}
+\newcommand\map@tcedilla{\c{t}}
+\newcommand\map@Thorn{\makebox[0pt][l]{l}\raisebox{0,3ex}{p}}
+\newcommand\map@thorn{\makebox[0pt][l]{l}p}
+\newcommand\map@uacute{\'u}
+\newcommand\map@Uacute{\'U}
+\newcommand\map@ucircumflex{\^u}
+\newcommand\map@Ucircumflex{\^U}
+\newcommand\map@Udieresis{\"U}
+\newcommand\map@udieresis{\"u}
+\newcommand\map@ugrave{\`u}
+\newcommand\map@Ugrave{\`U}
+\newcommand\map@Uhungarumlaut{\H{U}}
+\newcommand\map@uhungarumlaut{\H{u}}
+\newcommand\map@uring{\map@accent{u}{\ensuremath{\scriptscriptstyle\circ}}}
+\newcommand\map@Uring{\map@accent{U}{\ensuremath{\scriptscriptstyle\circ}}}
+\newcommand\map@Yacute{\'Y}
+\newcommand\map@yacute{\'y}
+\newcommand\map@Ydieresis{\"Y}
+\newcommand\map@ydieresis{\"y}
+\newcommand\map@zacute{\'z}
+\newcommand\map@Zacute{\'Z}
+\newcommand\map@zcaron{\v{z}}
+\newcommand\map@Zcaron{\v{Z}}
+\newcommand\map@zdotaccent{\.{z}}
+\newcommand\map@Zdotaccent{\.{Z}}
+\fi
+% \end{macrocode}
+%
+% That's it for the definitions. Now the options are evaluated:
+% \begin{macrocode}
+\DeclareOption{iso8859-1}{\input{iso88591.map}}
+\DeclareOption{iso8859-2}{\input{iso88592.map}}
+\DeclareOption{latin1}{\input{iso88591.map}}
+\DeclareOption{latin2}{\input{iso88592.map}}
+\DeclareOption{ibm850}{\input{ibm850.map}}
+\DeclareOption{ibm852}{\input{ibm852.map}}
+\DeclareOption{atari}{\input{atari.map}}
+\DeclareOption{hproman8}{\input{hproman8.map}}
+\DeclareOption{macroman}{\input{macroman.map}}
+% \end{macrocode}
+%
+% If the specified option is not listed above we look for a
+% file of this name. Note that we don't care if it doesn't
+% exist either (should be changed).
+% \begin{macrocode}
+\DeclareOption*{\InputIfFileExists{\CurrentOption.map}{}{}}
+% \end{macrocode}
+%
+% The language options are read last.
+% \begin{macrocode}
+\DeclareOption{german}{\input{german.map}}
+\DeclareOption{spanish}{\input{spanish.map}}
+% \end{macrocode}
+%
+% And finally the options are processed.
+% \begin{macrocode}
+\ProcessOptions
+%</package>
+% \end{macrocode}
+%
+% \section{The Documentation Driver}
+% This will generate the documentation root file.
+% \begin{macrocode}
+%<*driver>
+\documentclass{article}
+\usepackage{doc}
+\usepackage[ibm850]{mapcodes}
+\OnlyDescription
+\DisableCrossrefs
+\RecordChanges
+\setlength{\parindent}{0pt}
+\begin{document}
+ \DocInput{mapcodes.dtx} \PrintChanges
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% The end.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \Finale