% anleitung.tex - Die deutsche Anleitung zum Umlaute-Paket % (c) 1994-95 Harald Axel Sommerfeldt (Harald_Sommerfeldt@w.maus.de) % % This is the german manual, you will get an english one by running % umlaute.dtx through LaTeX. % % F"ur die Neugierigen unter uns: % Frage : Warum habe ich f"ur diesen Text das \textsf{Inputenc}-Paket % nicht verwendet, um Umlaute direkt eintippen zu k”nnen? % Antwort: Weil es auch nach ftp.dante.de soll. Und dort sollten (nach % M"oglichkeit) alle Dateien im \LaTeX -Baum 7-Bit-ASCII-Dateien % sein (daher ist auch \verb|cs_patch.zip| uuencodet). % Au"serdem enth"alt dieser Text auch eine Installationsanleitung, % die man ja ansonsten nicht lesen k"onnte, ohne das Paket bereits % installiert zu haben. % \documentclass[a4paper]{article} \IfFileExists{wasysym.sty}{\usepackage{wasysym}}{} %--------------------------------------------------------------------- % aus ltxdoc.cls geklaut: \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} \providecommand\marg[1]{% {\ttfamily\char`\{}{\em#1\/}{\ttfamily\char`\}}} \providecommand\oarg[1]{% {\ttfamily[}{\em#1\/}{\ttfamily]}} \providecommand\parg[1]{% {\ttfamily(}{\em#1\/}{\ttfamily)}} %--------------------------------------------------------------------- % aus isolatin.def (von diesem Paket) geklaut: \makeatletter \def\as@msa#1{{\fontencoding{U}\fontfamily{msa}\selectfont\char#1}} \ProvideTextCommandDefault{\textblacksquare}{\as@msa{4}} \ProvideTextCommandDefault{\textyen}{\as@msa{85}} \ProvideTextCommandDefault{\textulcorner}{\as@msa{112}} \ProvideTextCommandDefault{\texturcorner}{\as@msa{113}} \ProvideTextCommandDefault{\textregistered}{\as@msa{114}} \ProvideTextCommandDefault{\textllcorner}{\as@msa{120}} \ProvideTextCommandDefault{\textlrcorner}{\as@msa{121}} \def\as@wasy#1{{\fontencoding{U}\fontfamily{wasy}\selectfont\char#1}} \ProvideTextCommandDefault{\textcurrency}{\as@wasy{27}} \ProvideTextCommandDefault{\textcent}{\as@wasy{103}} \ProvideTextCommandDefault{\textpermil}{\as@wasy{104}} \ProvideTextCommandDefault{\textbrokenbar}{\as@wasy{124}} \makeatother %--------------------------------------------------------------------- \usepackage{german} \usepackage{shortvrb}\MakeShortVerb{\|} \begin{document} \providecommand*{\AmS}{{\protect\usefont{OMS}{cmsy}{m}{n}% A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} \providecommand*{\LaTeXcomp}{The \LaTeX{} Companion} \newcommand*{\purerm}[1]{{\upshape\mdseries\rmfamily #1}} \newcommand*{\puresf}[1]{{\upshape\mdseries\sffamily #1}} \newenvironment{Options}[1]% {\begin{list}{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}% \settowidth{\labelwidth}{\texttt{#1\ }}% \setlength{\leftmargin}{\labelwidth}% \addtolength{\leftmargin}{\labelsep}}}% {\end{list}} \def\packageversion{a} \def\packagedate{5.2.1995} \title{Das \LaTeXe\ \puresf{Umlaute}-Paket\thanks{Dieses Paket besitzt die Versionsnummer 2.0\packageversion , zuletzt ge"andert am \packagedate .} \footnote{Der Name ist auf historische Gr"unde zur"uckzuf"uhren: Die ersten Versionen dieses Paketes unterst"utzten lediglich die Direkteingabe deutscher Sonderzeichen.}} \author{Harald Axel Sommerfeldt\\Harald\_Sommerfeldt@w.maus.de} \date{16.\ Februar 1995} \maketitle \begin{abstract} Es war einmal ein \LaTeXe -Paket namens \textsf{Umlaute} \cite{umlaute1}, welches die Portabilit"at von \LaTeXe\ Dokumenten mit enthaltenen Sonderzeichen (d.h.\ mit ASCII-Kodes $\ge 128$) gew"ahrleistete. Hierbei wurden die Zeichenkodierungen \texttt{Atari}, \texttt{ISO 8859/1 (Latin1)}, \texttt{Apple Macintosh}, \texttt{PC codepage 850} und \texttt{Roman8} unterst"utzt. Heutzutage wird einem hierf"ur das \LaTeXe -Paket \textsf{Inputenc}~\cite{inputenc} angeboten, welches neuerdings (genauer: seit dem 1.12.1994) dem \LaTeXe\ beiliegt. Leider werden jedoch nur Kodetabellen f"ur ASCII und den ISO 8859/1 mitgeliefert. "`Diesem Mi"sstand mu"s Einhalt geboten werden!"' dachte ich mir und zimmerte die Version 2 dieses Paketes zusammen, dem die schmerzlich vermissten Kodetabellen beiliegen. \end{abstract} \section{Einleitende Worte} Jeder deutsche \LaTeX -Anwender kennt das Problem mit den Umlauten, an die in Amerika mal wieder keiner gedacht hat, als \TeX\ entstand. Es gab zwar schon die verschiedensten L"osungen, um diese direkt in sein Dokument eintippen zu k"onnen, aber fast alle hatten einen sehr gro"sen Nachteil: Inkompatibilit"at! Man konnte seine Dokumente einfach nicht so weitergeben; die Umlaute sorgten auf fremden Rechnern meist nur f"ur ablehnende Fehlermeldungen. F"ur einige Kodierungen existierten jedoch auch \LaTeX -Styles (wie z.B.\ |isolatin.sty| f"ur die ISO 8859/1-Kodierung), mit denen man die Sonderzeichen ungehemmt verwenden konnte. Besitzer anderer Rechner konnten solche Dokumente trotz "`falscher"' Umlaute auch bei sich problemlos "ubersetzen, vorausgesetzt auch hier war der passende Style vorhanden. Selbst wenn f"ur den eigenen Rechner kein passender Style vorhanden war --- man konnte sich ihn einfach selber stricken (so ist z.B.\ im Kopka~\cite{Kopka} in Abschnitt D.3.6 einer abgedruckt), man durfte aber unter keinen Umst"anden vergessen, diesen mit weiterzugeben. Aus diesem Mi"sstand heraus entstand die Idee, endlich mal alle m"oglichen Zeichensatzkodierungen unter einen Hut zu bringen und f"ur alle verf"ugbar zu machen; dies war die Entstehung des \textsf{Umlaute}-Paketes f"ur \LaTeXe . Die Auswahl der gew"unschten Kodierung konnte hierbei einfach "uber die Option, die man seit \LaTeXe\ ja jedem Paket mit auf die Reise geben kann, erfolgen. Nun, mittlerweile gibt es sogar ein Paket vom \LaTeX 3-Team selber, welches seit der $<$1994/12/01$>$-Version jedem \LaTeXe\ beiliegt; dieses h"ort auf den Namen \textsf{Inputenc}. Die Kodetabellen sind hier nicht wie beim alten \textsf{Umlaute}-Paket direkt in den Style mit eingearbeitet, sondern sind extern und werden bei Bedarf geladen. Leider werden z.Z.\ nur ASCII und ISO 08/15 unterst"utzt. Da ich noch nie ein Freund langen Wartens war, habe ich also kurzerhand die Kodetabellen vom \textsf{Umlaute}-Paket in das Format des \textsf{Inputenc}-Paketes umgestrickt und vervollst"andigt. Schnell noch ein neues |umlaute.sty| zusammengestrickt, welches einfach nur noch |inputenc.sty| mit den passenden Optionen aufruft, und voil\'{a} -- das \textsf{Umlaute}-Paket Version 2 ward geboren! \section{Und wie benutze ich nun dieses Paket?} Die Installation geht wie bei allen \LaTeXe -Paketen vonstatten:\\ Man "ubersetze die Datei |umlaute.ins| mit \LaTeX, etwa mit \begin{quote}|latex umlaute.ins| \quad .\end{quote} Die dadurch erzeugten |.sty| und |.def|-Dateien kopiere man anschlie"send in ein Verzeichnis, wo \LaTeX\ sie auch sp"ater wiederfindet, z.B.\ nach \begin{quote}|/usr/local/lib/texmf/tex/contrib|\end{quote} oder nach \begin{quote}|\tex\inputs\contrib| \quad ;\end{quote} die Pfade sind je nach verwendeter \TeX -Implementation recht unterschiedlich. Im Zweifelsfalle kopiere man die Dateien einfach dorthin, wo auch die Datei |inputenc.sty| zu finden ist. In der Pr"aambel (das ist der Teil vor |\begin{document}|) eigener Dokumente kann man nun folgende Zeile verwenden: \begin{quote} |\usepackage|\oarg{encoding name}|{inputenc}| \quad , \end{quote} wobei f"ur \textit{encoding name} entweder |atari|, |pc850|, |isolatin|, |mac| oder |roman8| einzusetzen ist. Und schon kann man in dem Dokument selber die Umlaute (und sonstige Sonderzeichen) munter direkt verwenden. In dem \textsf{Inputenc}-Paket existiert auch noch der Befehl \begin{quote} |\inputencoding|\marg{encoding name} \quad , \end{quote} mit dem auch mitten im Text die Kodierung bei Bedarf umgeschaltet werden kann. (Dies kann allerdings ggf.\ zu Problemen f"uhren, dazu komme ich sp"ater noch in Abschnitt \ref{problems}.) \section{\mbox{Einige Anmerkungen zu meinen Kodetabellen}} \begin{itemize} \item Die Verwendung einiger Zeichen setzt installierte \AmS\ Zeichens"atze~\cite{ams} voraus, das sind: \begin{quote} \IfFileExists{Umsa.fd}% {\textblacksquare\quad\textyen\quad\textulcorner\quad\texturcorner% \quad\textregistered\quad\textllcorner\quad und\quad\textlrcorner} {\cs{blacksquare}, \cs{yen}, \cs{ulcorner}, \cs{urcorner}, \cs{circledR}, \cs{llcorner} und \cs{lrcorner}~\footnote{Da auf Ihrem Rechner die \AmS\ Zeichens"atze leider nicht installiert sind, stehen hier nur die entsprechenden Befehlsnamen anstelle der Zeichen selber!}} \end{quote} \item Die Verwendung einiger Zeichen setzt installierte \textsf{Wasy2} Zeichens"atze~\cite{wasy,wasysym} voraus, dies sind: \begin{quote} \IfFileExists{Uwasy.fd}% {\textcurrency\quad\textcent\quad\textpermil\quad und\quad\textbrokenbar} {\cs{currency}, \cs{cent}, \cs{permil} und \cs{brokenvert}~\footnote{Da auf Ihrem Rechner die \textsf{Wasy2} Zeichens"atze leider nicht installiert sind, stehen hier nur die entsprechenden Befehlsnamen anstelle der Zeichen selber!}} \end{quote} \item Einige mathematischen Sonderzeichen vom Atari setzen ein geladenes \textsf{wasysym} Paket~\cite{wasysym} voraus, dies sind: \begin{quote} \ifx\symwasy\undefined{\cs{invneg} und \cs{varoint}~\footnote{Da auf Ihrem Rechner das \textsf{wasysym}-Paket leider nicht installiert ist, stehen hier nur die entsprechenden Befehlsnamen anstelle der Zeichen selber!}} \else{$\invneg$\quad und\quad$\varoint$} \fi \end{quote} \item Leider sind noch nicht alle Zeichen in dieses Paket eingearbeitet, die fehlenden wurden einfach zu |\NotImplemented| definiert. Falls jemand ein Zeichen vermisst und einen Implementationsvorschlag einzubringen hat, so m"oge er mir bitte bitte eine Mail zukommen lassen! Ein paar Zahlen: Betroffen sind 36 Zeichen in der Datei |atari.def|, 25 in |pc850.def|, 0 in |isolatin.def|, 11 in |mac.def| und 1 in |roman8.def|. \item Zu allem "Uberflu"s sind einige der fehlenden Zeichen gnadenlos auf "`falsche"' Zeichen abgebildet worden. Was soll das? Nun ja, leider haben nicht immer alle Buchstaben in ihrer Kodierung einen passenden Partner; dieser wird aber unbedingt f"ur korrekt funktionierende |\uppercase| und |\lowercase| Befehle ben"otigt, mit denen Zeichenketten in Gro"s- bzw.\ Kleinschrift ungewandelt werden. Hier nun eine Liste der Vermissten (und wohin sie gezw"angt wurden): \DeleteShortVerb{\|} \begin{tabular}{|l||l|l|}\hline \MakeShortVerb{\|} Kodierung & vermisste Zeichen & verlegt nach\\ \hline atari\rule{0ex}{2.5ex} & \^A \^E \"E \`E \"I \^I \`I \^O \`O \^U \`U \"Y \SS\ \'A \'D \'O \'U & |"C0| \ldots\ |"D0| \\ pc850 & \"Y \SS\ (\SS\ $=$ |\uppercase{|\ss|}|) & |"B0| und |"B1| \\ isolatin & \SS\ \"Y & |"80| und |"81| \\ mac & \SS\ & |"F0| \\ roman8 & \SS\ & |"FF| \\ \hline\end{tabular} In sp"ateren Versionen werde ich dieses Verhalten eventuell konfigurierbar machen. \end{itemize} \section{\mbox{Warum noch eine ISO 8859/1 Definitionsdatei?}} Die ISO 8859/1 Definitionsdatei (|isolatin.def|), die diesem Paket beiliegt, besitzt einige Vorteile gegen"uber derjenigen, die Teil des \textsf{Inputenc}-Paketes ist (|latin1.def|): \begin{itemize} \item Es sind mehr Zeichen definiert (mit Hilfe der \AmS - und \textsf{Wasy2}-Zeichen\-s"atze). \item Die Datei kann auch \emph{nach} dem \textsf{German}-Paket (bzw.\ \textsf{% germanb} aus dem \textsf{Babel}-Paket) eingelesen werden, ohne das man dies mit |\mdqoff| und |\mdqon| klammern m"usste. \item Alle Zeichen werden in den Seitenk"opfen korrekt in Gro"sbuchstaben umgewandelt (falls der Seitenstil |headings| ausgew"ahlt ist), wie z.B.\ `\ss' $\mapsto$ `\SS'. \item Die Befehle |\uppercase| und |\lowercase| machen auch vor den neu zur Verf"ugung stehenden Zeichen nicht halt. \end{itemize} Nat"urlich gilt das oben gesagte auch f"ur alle anderen Definitionsdateien, die diesem Paket beiliegen! \section{Probleme mit fremden Definitionsdateien} \label{problems} Werden die beiliegenden Definitionsdateien zusammen mit anderen verwendet, so kann es unter Umst"anden zu Fehlermeldungen kommen. So z.B.\ bei dem folgenden Beispiel: \begin{quote} |\documentclass{article}|\\ |\usepackage[|\textit{woanders her}|]{inputenc}[1994/12/10]|\\ \ldots \\ |\begin{document}|\\ \ldots \\ |\tableofcontents| \ldots \\ |\inputencoding{|\textit{vom Umlaute-Paket}|}|\\ \ldots \\ |\section{|\texttt{Hein Bl"od fiel in den Flu\ss}|}|\\ |\end{document}| \end{quote} Nach dem zweiten Durchlauf durch \LaTeX\ kommt es zu folgender Fehlermeldung: \begin{verbatim} (error.toc ! Undefined control sequence. ...in Bl\"od fiel in den Flu\as@active {ss} l.1 ...n Bl\"od fiel in den Flu\as@active {ss}}{1} ? \end{verbatim} Warum dies? Nun ja, einige Zeichen werden in meinen Definitionsdateien indirekt, d.h.\ "uber Macros wie |\as@active|, |\textblacksquare|, |\mathbullet| u.s.w.\ definiert. In diesem Falle wurde das Macro |\as@active| in die |.toc|-Datei geschrieben, weil halt \ss\ --- einer der betroffenen Zeichen -- in einer "Uberschrift verwendet wurde. Beim n"achsten Durchlauf lie"st \LaTeX\ diese |.toc|-Datei ein und gibt eine Fehlermeldung aus, da |\as@active| zu diesem Zeitpunkt noch nicht bekannt ist (es wird erst bei |\inputencoding{|\textit{vom Umlaute-Paket}|}| dem \LaTeX\ bekannt gemacht)! Was nun? Nun, eine einfache L"osung w"are die Zeile \begin{quote} |\usepackage[|\textit{woandersher}|]{inputenc}[1994/12/10]| \quad. \end{quote} durch \begin{quote} |\usepackage[|\textit{irgendwas von Umlaute}|]{inputenc}[1994/12/10]|\\ |\inputencoding{|\textit{woandersher}|}| \end{quote} zu ersetzen. Als \textit{irgendwas von Umlaute} kann hierbei |atari|, |pc850|, |isolatin|, |mac| oder |roman8| eingesetzt werden, welche ist egal (denn in jeder meiner Dateien wird jedes meiner Macros definiert, um solche Probleme bei Verwendung meiner Definitionsdateien zu vermeiden). Einige Fragen sind jedoch noch offen geblieben: Warum sind einige Zeichen "uber das Macro |\as@active| definiert? Weil sie ansonsten nicht in den Seitenk"opfen (bei |pagestyle{headings}|) korrekt in Gro"sbuchstaben gewandelt werden w"urden!\footnote{Dies hat Gr"unde, die tief in den \LaTeX -Quellen verborgen sind. Der Trick, wie dies erreicht wird, ist "ubrigens dem |german.sty|~\cite{german} entnommen.} Betroffen sind hierbei die Zeichen |\aa|, |\ae|, |\^{\i}|, |\'{\i}|, |\`{\i}|, |\"{\i}|, |\o|, |\ss|, |\oe|, |\dh| und |\th|. \section{Wichtiges f"ur em\TeX -Anwender} Im \LaTeXe -Format darf keine Zeichenumwandlungstabelle enthalten sein! (Solche werden mit den Schalter |/c| eingebaut.) Stattdessen mu"s beim Generieren des \LaTeXe -Formates die Option |/8| angegeben werden, z.B.\ so: \begin{quote} |tex386 /i /8 latex.ltx|\end{quote} Ansonsten wird das \textsf{Inputenc}-Paket nicht funktionieren und deswegen wird man auch keine fremden Dokumente "ubersetzen k"onnen, die dieses Paket verwenden. Man ist also nicht in der Lage, Texte mit "`fremden"' Sonderzeichen "ubersetzen zu k"onnen, da die Umwandlungstabelle dem \textsf{Inputenc}-Paket die Zeichen quasi vor der Nase wegschnappt und (falsch) umwandelt! \section{Wichtiges f"ur CS-\TeX\ und Multi\TeX -Anwender} CS-\TeX\ besitzt leider eine fest eingebaute Routine, die Atari-Sonderzeichen in die Cork-Kodierung umwandelt, so da"s das \textsf{Inputenc}-Paket hier nicht funktioniert. Was kann man dagegen machen? \begin{enumerate} \item Das \textsf{Inputenc}-Paket nicht benutzen!\\ Mit der eingebauten Umwandlungsroutine kann man recht viele Zeichen (wie die Umlaute und das "s) auch direkt benutzen, man mu"s nur die Cork-kodierten Zeichens"atze (|T1| Kodierung, DC-Zeichens"atze) verwenden. Dies kann mit |\usepackage[T1]{fontenc}| in der Pr"aambel des Dokumentes erreicht werden und ist sowieso aufgrund der Vorteile der DC-Zeichens"atze gegen"uber der CM-Zeichens"atze anzuraten. Bevor man die Texte dann weitergibt, f"ugt man ein |\usepackage[atari]{umlaute}| f"ur die anderen ein. Nat"urlich ist dies nur eine Nothilfe, denn schlie"slich ist man nicht dazu in der Lage, Dokumente mit fremden Sonderzeichen korrekt zu "ubersetzen! \item CS-\TeX\ patchen!\\ Dies ist einfacher als es zun"achst den Anschein haben mag:\\ Man suche die Hex-Codes \begin{quote}|00 01 02 03| \ldots\ |7E 7F FC DC C2 C3| \ldots\ |BE 9E|\end{quote} in den Dateien |INITEX_L.TTP| und (|TT-|)|TEX_L.TTP| und ersetze sie durch \begin{quote}|00 01 02 03| \ldots\ |7E 7F 80 81 82 83| \ldots\ |FE FF| .\end{quote} Diesem Paket liegt auch (in Form des uucodierten ZIP-Archivs |cs_patch.uue|) ein Programm bei, welches diese Arbeit f"ur einen erledigt.\footnote{An dieser Stelle ein herzliches Dankesch"on an Markus Kohm f"ur das Programm!} Nat"urlich ist diese L"osung der ersteren vorzuziehen. \end{enumerate} \section{Andere \TeX\ Implementationen} Falls es Probleme bei der Benutzung der beiliegenden Definitionsdateien f"ur das \textsf{Inputenc}-Paket gibt (und vielleicht sogar schon eine L"osung gefunden wurde), so m"oge man mir bitte eine E-Mail an folgende Adresse zukommen lassen: \begin{quote}|Harald_Sommerfeldt@w.maus.de|\end{quote} bzw. \begin{quote}|Harald Sommerfeldt @ W|\qquad im MausNetz.\end{quote} F"ur Anmerkungen und Verbesserungsvorschl"age bin ich ebenfalls dankbar. \begin{thebibliography}{9} \bibitem{umlaute1} Axel Sommerfeldt: \emph{The umlaute package (v1.2)}, 1994/11/28 \bibitem{inputenc} Alan Jeffrey: \emph{An input encoding package for \LaTeXe\ (v0.09)}, 1994/12/10 \bibitem{Kopka} Helmut Kopka: \emph{\LaTeX -- Eine Einf\"uhrung}, 4. \"uberarbeitete und erweiterte Auf\/lage, Addison-Wesley, Bonn, 1992 \bibitem{ams} \emph{User's Guide to \AmS Fonts Version 2.2}, January 1995 \bibitem{wasy} Roland Waldi: \emph{The Symbol font wasy}, Version 2.0 - September 1992 \bibitem{wasysym} Axel Kielhorn: \emph{The wasy symbol fonts for use with \LaTeXe}, 94/05/28 \bibitem{german} Bernd Raichle: \emph{Style-Option ``german'' f\"ur plain-\TeX , \LaTeX\ 2.09, \LaTeXe\ und anderen auf diesen basierenden Formate}, 20. Januar 1995 \end{thebibliography} \end{document}