diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/translation-moreverb-de/filecontens-de.ins.txt | 41 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.pdf | bin | 0 -> 106208 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.tex | 659 |
3 files changed, 700 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/translation-moreverb-de/filecontens-de.ins.txt b/Master/texmf-dist/doc/latex/translation-moreverb-de/filecontens-de.ins.txt new file mode 100644 index 00000000000..999d8acddc4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/translation-moreverb-de/filecontens-de.ins.txt @@ -0,0 +1,41 @@ +\def\batchfile{moreverb.ins} +\input docstrip.tex +%\errorcontextlines999 +\preamble +\endpreamble +\def\batchfile{moreverb.dst} % ignored in distribution +\input docstrip.tex % ignored in distribution + +\keepsilent + +\preamble + +Copyright Robin Fairbairns, 1997 2002 + +This file is distributed under the terms of the latex project public +licence (LPPL: see CTAN macros/latex/base/lppl.txt), version 1.2 or +(at your convenience) any later version. + +\endpreamble + +\askforoverwritefalse +\generate{% + \file{moreverb.sty}{\from{moreverb.dtx}{moreverb}}% +} + +\keepsilent + + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the file} +\Msg{* moreverb.sty into a directory searched by TeX} +\Msg{*} +\Msg{* Usual TDS location:} +\Msg{* \space\space tex/latex/misc} +\Msg{*} +\Msg{***********************************************************} +} + +\endinput diff --git a/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.pdf b/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.pdf Binary files differnew file mode 100644 index 00000000000..fbc38f82a20 --- /dev/null +++ b/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.pdf diff --git a/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.tex b/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.tex new file mode 100644 index 00000000000..2161a069030 --- /dev/null +++ b/Master/texmf-dist/doc/latex/translation-moreverb-de/moreverb-de.dtx.tex @@ -0,0 +1,659 @@ +% +% \iffalse +% +% Copyright (C) 1997 2002 2008 2011 by +% Robin Fairbairns <rf10@cam.ac.uk> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c 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.3c or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The current maintainer of this work is Robin Fairbairns. +% +% This work consists of the source files moreverb.dtx, +% moreverb.ins +% and the derived files moreverb.sty, +% moreverb.pdf +% +% RCS information: +% +% $Id: moreverb.dtx,v 1.12 2011/04/18 19:03:28 rf10 Exp rf10 $ +% +% \section{Initially: identify the package} +% +% We use the same body for the \cs{ProvidesFile} as for the +% \cs{ProvidesPackage} command. +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +%<*dtx> +\ProvidesFile{moreverb.dtx} +%</dtx> +%<moreverb>\ProvidesPackage{moreverb} + [2008/06/03 v2.3a +%<moreverb> `more' verbatim facilities% +%<*dtx> + moreverb source file% +%</dtx> + ] +% \end{macrocode} +% Code to compile the thing using LaTeX2e +% +%<*driver> +\documentclass{ltxdoc} +% +\setcounter{errorcontextlines}{999} +% +\GetFileInfo{moreverb.dtx} +% +% The definition of \star in ltxdoc.cls is useless (bug report +% LaTeX/2117). \env is something I would like to have -- I'm +% not sure this definition is entirely kosher (in any case, why aren't +% all these things in doc.sty?) +% +\renewcommand\star{\texttt{*}} +\DeclareRobustCommand\env[1]{\cs{begin\char`\{#1\char`\}}} +% +\begin{document} + \title{Das \textsf{moreverb} Paket\thanks{Diese Datei + hat die Versionnummer \fileversion, letzte + \"Uberarbeitung \filedate}} + \author{Robin Fairbairns (\small\texttt{rf10@cam.ac.uk})\\ + nach\\ + Angus Duggan, Rainer Sch\"opf and Victor + Eijkhout\footnote{\"Ubersetzt von \textbf{Matthias Biniok} (FSU + Jena), + September 2011.}} + \date{\the\year-\ifnum\month<10 0\fi\the\month + -\ifnum\day <10 0\fi\the\day} + \maketitle + \tableofcontents + \DocInput{moreverb-DE.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{402} +% +% \section{Dieses Paket} +% +% Dieses Paket nutzt die Ausstattung des \textsf{verbatim} +% Pakets der \LaTeXe{}-\emph{tools}-Distribution, um eine Anzahl +% von Dingen zur Verf\"ugung zu stellen, die in der Entwicklung des Pakets +% als unn\"otig abgelehnt wurden. (Dennoch geh\"ort der Tabulator-Erweiterungs-Code +% dieses Pakets zu einem der FAQs von |comp.text.tex|) +% +% Das Paket stellt Dinge dreier breiter Gebiete zur Verf\"ugung: +% \begin{itemize} +% \item Tabulator-Erweiterung und \"Ahnliches, +% \item Zeilennummerierung, +% \item Sonstiges: wortw\"ortlich in eine Datei schreiben (z.\,B. f\"ur +% sp\"ateres Wiedereinsetzen), und das 'Verpacken'. +% \end{itemize} +% +% \subsection{Tabulator-Erweiterung} +% +% Das Paket erm\"oglicht Ihnen, die voraussichtliche Breite der Tabulation +% festzulegen und erlaubt das Einbinden von Dateien, die Tabulatoren enthalten. +% +% \DescribeEnv{verbatimtab} +% +% \env{verbatimtab}\oarg{Tab-Breite} +% gibt dessen K\"orper\footnote{Mit K\"orper ist immer der Rumpf des Befehls gemeint.} wortw\"ortlich wieder, +% wobei die Tabulatoren die Gr\"o\ss e der gegeben Breite haben (der Standardwert ist 8). +% +% \DescribeMacro{\verbatimtabinput} +% +% \cs{verbatimtabinput}\oarg{Tab-Breite}\marg{Datei-Name} +% ist die Datei-Einbindungsversion der \texttt{verbatimtab}-Umgebung. +% +% \DescribeMacro{\verbatimtabsize} +% +% Die Gr\"o\ss e des Tabulators wird in \cs{verbatimtabsize} gespeichert und dauert +% zwischen den Benutzungen der Umgebungen an. (Das hei\ss t, dass ein optionales Argument an +% einem Element auch alle nachfolgenden Elemente betrifft.) +% +% \noindent Um den Wert durch etwas anderes als durch Benutzung eines +% optionalen Arguments zu ersetzen, schreibt man: +% +% \cs{renewcommand}\cs{verbatimtabsize}|{|\meta{Wert}\cs{relax}|}| +% +% Es gibt keine Versprechungen hinsichtlich der gebotenen Leistung, wenn Sie das +% \cs{relax} weglassen! +% +% \subsection{Zeilennummerierung} +% +% Zeilennummerierung ist oft bei der Abbildung von Code-Beispielen n\"utzlich +% (dies ist n\"otig f\"ur diejenigen von uns, die solche Code-Schnipsel nicht +% versch\"onigen wollen). +% +% \DescribeEnv{listing} +% +% \env{listing}\oarg{Intervall}\marg{Startzeile} nummeriert die Zeilen +% des K\"orpers. Das Argument \meta{Startzeile} gibt die Startzeile an. +% Das optionale Argument \meta{Intervall} legt die Anzahl der Zeilen +% zwischen den nummerierten Zeilen fest: Das hei\ss t, jede Zeile mit der +% Nummer \(=0\pmod{\mbox{\meta{Intervall}}}\) wird nummeriert. +% (Au\ss erdem wird Zeilennummer 1 immer nummeriert.) Der +% Standardwert von \meta{Intervall} ist 1 (d.\,h., es wird jede Zeile +% nummeriert). +% +% \DescribeEnv{listingcont} +% +% \env{listingcont} f\"ahrt dort fort, wo der letzte Eintrag aufgeh\"ort hat. +% +% Der Stil, in dem das Label gesetzt ist, kann f\"ur eine der beiden Umgebungen ver\"andert werden, +% durch Neudefinierung von \cs{listinglabel}. Beide Umgebungen +% erweitern auch Tabulatoren. +% +% '\star'-Versionen von beiden Listing-Umgebungen werden angeboten; +% diese machen die gew\"ohnlichen |verbatim*| Dinge mit ausgegebenen Leerzeichen wie +% '\verb*| |', aber erweitern keine Tabulatoren. +% +% \DescribeMacro{listinginput} +% +% \cs{listinginput}\oarg{Intervall}\marg{Startzeile}\marg{Dateiname} +% ist eine Listing-Version zum Schreiben in eine Datei. Es gibt keine '\star'-Form. +% +% \subsection{Sonstiges} +% +% \DescribeEnv{verbatimwrite} +% +% \env{verbatimwrite}\marg{Dateiname} schreibt allen Text seines K\"orpers in eine Datei, +% dessen Name als Argument \"ubergeben wird. +% +% \DescribeEnv{boxedverbatim} +% +% \env{boxedverbatim} legt den Inhalt einer verbatim-Umgebung in +% einer Rahmenbox ab. Wenn man versucht, dies auf eine 'naive' Weise zu tun, wird man sehen, +% dass die verbatim-Zeilen alle so breit werden, wie die Breite der Seite, +% sodass die Box h\"aufig sehr schlecht zum Text passt, den sie +% umgibt. +% +% \DescribeEnv{verbatimcmd} +% +% Die |verbatimcmd| Umgebung wurde von der \LaTeX2.09 und +% fr\"uheren \LaTeXe{} Versionen dieses Paketes angeboten. Jedoch werden dessen F\"ahigkeiten nun von +% |alltt| zur Verf\"ugung gestellt, das im \textsf{alltt}-Paket definiert ist, +% welches jetzt Teil der \LaTeX{} Grunddistribution ist, daher wurde +% |verbatimcmd| zur\"uckgezogen. +% +% \StopEventually{} +% +% \section{Der Code des Pakets} +% +% \begin{macrocode} +%<*moreverb> +% \end{macrocode} +% +% \subsection{Initial-Code} +% +% L\"adt das \textsf{verbatim}-Paket, falls es noch nicht geladen ist. +% +% \begin{macrocode} +\@ifundefined{verbatim@processline}{\RequirePackage{verbatim}}{} +% \end{macrocode} +% +% \subsection{In eine Datei schreiben} +% +% \begin{environment}{verbatimwrite} +% \env{verbatimwrite}\marg{Dateiname} schreibt den gesamten Text im K\"orper in eine Datei, +% der Name der Datei wird als Argument \"ubergeben. (Dieser Code wurde +% von Rainer Sch\"opf geschrieben.) +% +% Beachten Sie, dass der Code bei erstmaliger Benutzung seinen eigenen Output-Stream erzeugt. +% (Dies ist eine Sparma\ss nahme; wenn der Benutzer +% \env{verbatimwrite} nie benutzt, wird auch kein \cs{write}-Stream erzeugt. Ein gegenw\"artiger problematischer +% Benutzungsfall taucht in tex.sx auf \dots) +% +% \begin{macrocode} +\def\verbatimwrite#1{% + \@ifundefined{verbatim@out}{\newwrite\verbatim@out}{}% + \@bsphack + \immediate\openout \verbatim@out #1 + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +% \end{macrocode} +% \begin{macrocode} +\def\endverbatimwrite{% + \immediate\closeout\verbatim@out + \@esphack} +% \end{macrocode} +% \end{environment} +% +% \subsection{Tabulator-Erweiterung} +% +% Wir definieren ein paar zus\"atzliche Makros und Z\"ahler f\"ur erweiternde Tabulatoren. +% Sie werden von den |listing|- und |verbatimtab|-Umgebungen verwendet. +% +% \begin{macrocode} +\newcount\tab@position \newcount\tab@size +% \end{macrocode} +% +% \cs{verbatimtabsize} ist gew\"ohnlich ein Z\"ahler, doch das scheint mir +% \"ubertrieben (\LaTeX{} benutzt einfach zu viele Z\"ahler\dots). +% +% \begin{macrocode} +\def\verbatimtabsize{8\relax} +% \end{macrocode} +% +% \begin{macro}{\@xobeytab} +% +% \cs{@xobeytab} f\"ugt genug Leerzeichen ein, um uns zum n\"achsten +% symbolischen Tabulatoren-Ende zu bringen. +% \begin{macrocode} +\def\@xobeytab{% + \loop + \toks@\expandafter{\the\toks@\@xobeysp}% + \advance\tab@position-1 + \ifnum\tab@position>0 \repeat +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@vobeytabs} +% \cs{@vobeytabs} initialisiert die Benutzung von \cs{@xobeytab}. +% Muss innerhalb einer Gruppe ausgef\"uhrt werden, da es nicht in die weite Welt entweichen darf. +% +% \begin{macrocode} +\begingroup + \catcode`\^^I=\active + \gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}% +\endgroup +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\verbatim@tabexpand} +% \cs{verbatim@tabexpand}\meta{body of line}\cs{@nil} verarbeitet jeden Buchstaben einer Zeile +% durch Endrekursion, z\"ahlt die Buchstaben und +% jongliert ein bisschen, wenn ein Tab auftritt. (Was gew\"ohnlich +% 'line imaging' genannt wird\dots) +% +% \begin{macrocode} +\def\verbatim@tabexpand#1{% + \ifx#1\@nil +% \showthe\toks@ + \the\toks@ + \expandafter\par + \else + \ifx#1\@xobeytab + \@xobeytab + \else +% \end{macrocode} +% +% Wir k\"onnen \cs{@xobeysp} gefahrlos in das Token-Register tun, da es +% genau das macht, was wir brauchen. +% \begin{macrocode} + \toks@\expandafter{\the\toks@#1}% + \advance\tab@position\m@ne + \fi + \ifnum\tab@position=0 \tab@position\tab@size \fi + \expandafter\verbatim@tabexpand + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{listing} +% \env{listing}\oarg{Intervall}\marg{Startzeile} +% +% Definiert eine verbatim-Umgebung mit nummerierten Zeilen; das optionale Argument +% \meta{Intervall} legt die Anzahl der Zeilen zwischen den nummerierten +% Zeilen fest, und das Argument \meta{Startzeile} gibt die Startzeile an. +% +% \begin{environment}{listingcont} +% \env{listingcont} +% +% F\"ahrt dort fort, wo die Auflistung aufh\"ort. Der Stil, in dem das Label gesetzt ist, kann durch +% Neudefinierung von \cs{listinglabel} ver\"andert werden. +% +% '\star'-Versionen beider Umgebungen werden angeboten. +% +% \begin{macro}{\listing@line} +% \cs{listing@line} enth\"alt die aktuelle Zeilennummer; der Standardwert +% ist 1, also kann man |listingcont| fr\"ohlich in einem Dokument benutzen, +% wenn nur ein Stream von w\"ortlichem Text geschrieben wird. +% +% \begin{macrocode} +\newcount\listing@line \listing@line=1 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listing@step} +% \cs{listing@step} ist ein anderer Fall, bei dem ein Z\"ahler gewohnt verwendet wird, ohne von sehr +% offensichtlichem Nutzen zu sein, +% aber ein wertvolles Z\"ahlerregister aufbraucht. +% Auch hier ist der Wert modal; das hintere \cs{relax} ist notwendig. +% +% \begin{macrocode} +\def\listing@step{1\relax} +% \end{macrocode} +% \end{macro} +% +% Das Hinzuf\"ugen einer \cs{hbox} vor der Zeile verursacht einen +% Zeilenumbruch, also mache ich schnell +% dieses Geschw\"atz,\footnote{Das +% Personalpronomen war in den Kommentaren der Originalversion +% dieses Pakets vorhanden; ich wei\ss\ nicht, auf wen es sich bezieht +% ~--- RF} um die Linien sch\"on ausgerichtet zu bekommen. +% Ich habe wahrscheinlich einige offensichtliche Gr\"unde vergessen, weshalb \cs{hbox}es nicht funktionieren. +% \footnote{Der Grund +% ist, dass \cs{hbox} im vertikalen Modus einen kompletten Paragraphen aus eigener Kraft herstellt; +% dieses Problem k\"onnte im Laufe der Zeit behandelt werden, +% aber momentan\dots}. +% +% \begin{macrocode} +\def\listinglabel#1{\llap{\small\rmfamily\the#1}\hskip\listingoffset\relax} +\def\thelisting@line{% + \setbox0\hbox{\listinglabel\listing@line}% + \@tempcnta=\listing@line + \divide\@tempcnta\listing@step \multiply\@tempcnta\listing@step + \ifnum\listing@line=\@ne + \unhbox0 + \else + \ifnum\@tempcnta=\listing@line + \unhbox0 + \else + \hskip\wd0 + \fi + \fi} +% \end{macrocode} +% +% \begin{macro}{\listingoffset} +% \cs{listingoffset} ist die Trennung zwischen der Zeilennummer und der aktuellen Zeile; der Standardwert +% ist \verb|1.5em|. +% \begin{macrocode} +\providecommand\listingoffset{1.5em} +% \end{macrocode} +% \end{macro} +% +% Benutzen Sie einfach \cs{listing}, um die Parameter einzulesen und um +% dann \cs{listingcont} zu benutzen. +% +% \begin{macrocode} +\newcommand\listing[2][1]{% + \global\listing@line=#2\relax + \gdef\listing@step{#1\relax} + \listingcont} +% \end{macrocode} +% +% \cs{listingcont} ist das funktionale Ende der zwei Umgebungen. +% +% \begin{macrocode} +\def\listingcont{% + \tab@size=\verbatimtabsize + \def\verbatim@processline{\tab@position\tab@size + \thelisting@line \global\advance\listing@line1 + \toks@{}% + \expandafter\verbatim@tabexpand\the\verbatim@line\@nil}% + \@verbatim\frenchspacing\@vobeyspaces\@vobeytabs\verbatim@start} +% \end{macrocode} +% +% Nichts Besonderes am Ende der zwei Umgebungen. +% +% \begin{macrocode} +\let\endlisting=\endtrivlist +\let\endlistingcont=\endtrivlist +% \end{macrocode} +% +% Jetzt dasselbe Geschw\"atz f\"ur die '\verb+*+' Versionen. +% +% \begin{macrocode} +\expandafter\newcommand\csname listing*\endcsname[2][1]{% + \global\listing@line=#2\relax + \gdef\listing@step{#1\relax} + \csname listingcont*\endcsname} +\@namedef{listingcont*}{% + \def\verbatim@processline{% + \thelisting@line \global\advance\listing@line1 + \the\verbatim@line\par}% + \@verbatim\verbatim@start} +% \end{macrocode} +% +% Nur ein bisschen \"Arger in den Namensdefinitionen am Ende der +% Umgebungen. +% +% \begin{macrocode} +\expandafter\let\csname endlisting*\endcsname\endtrivlist +\expandafter\let\csname endlistingcont*\endcsname\endtrivlist +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \begin{macro}{listinginput} +% \cs{listinginput}\oarg{Intervall}\marg{Startzeile}\marg{Dateiname} +% ist eine Version von listing zum Schreiben in eine Datei. +% +% \begin{macrocode} +\def\listinginput{% + \@ifnextchar[%] + {\@listinginput}% + {\@listinginput[1]}} +\begingroup + \catcode`\~=\active \lccode`\~=`\^^M \lccode`\N=`\N + \lowercase{\endgroup + \def\@listinginput[#1]#2#3{\begingroup + \global\listing@line=#2 + \gdef\listing@step{#1\relax} + \tab@size=\verbatimtabsize + \def\verbatim@processline{\tab@position\tab@size + \thelisting@line \global\advance\listing@line1 + \toks@{}% + \expandafter\verbatim@tabexpand\the\verbatim@line\@nil}% + \@verbatim\frenchspacing\@vobeyspaces\@vobeytabs + \def\verbatim@addtoline##1~{% + \verbatim@line\expandafter{\the\verbatim@line##1}}% + \openin\verbatim@in@stream=#3 + \ifeof\verbatim@in@stream + \PackageWarning{moreverb}{No file #3.}% + \else + \do@verbatimtabinput + \closein\verbatim@in@stream + \fi + \endtrivlist\endgroup + \@doendpe + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{verbatimcmd} +% \texttt{verbatimcmd} war eine verbatim-Umgebung mit Ausnahme der +% Escape- und Gruppierungselemente \verb+\+, \verb+{+, \verb+}+. +% Das ist (err) genau die Spezifikation der \texttt{alltt} +% Umgebung, und es ist im \textsf{alltt} Paket, welches jetzt Teil der +% Grunddistribution ist. +% \begin{macrocode} +\def\verbatimcmd{% + \PackageError{moreverb}{The verbatimcmd environment is obsolete}% + {Use alltt (from the LaTeX required package + alltt) in place of verbatimcmd}% +} +\let\endverbatimcmd\relax +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{boxedverbatim} +% \texttt{boxedverbatim} legt den Inhalt einer verbatim-Umgebung in +% einer Rahmenbox ab. +% +% (Geschrieben von Victor Eijkhout.) +% +% \noindent Fehlerbehebung: +% \begin{itemize} +% \item David Carlisle 1995-12-28, Besch\"aftigung mit Platzthemen (iirc) +% \item Moretn H\o gholm 2008-06-01, Positionierung von Rahmen in Listen +% \end{itemize} +% +% Zuerst redefiniert man 'processline', um nur eine Zeile, so breit wie +% die nat\"urliche Breite der Zeile, herzustellen. +% +% \begin{macrocode} +\def\boxedverbatim{% + \def\verbatim@processline{% + {\setbox0=\hbox{\the\verbatim@line}% + \hsize=\wd0 \the\verbatim@line\par}}% +% \end{macrocode} +% +% Nun speichert man den verbatim-Code in einer Box. +% +% \begin{macrocode} + \@minipagetrue % DPC + \@tempswatrue % DPC + \@totalleftmargin\z@ % MH + \setbox0=\vbox\bgroup \verbatim +} +% \end{macrocode} +% +% Am Ende der Umgebung, m\"ussen wir (umm) die Resultate einfach in +% einen Rahmen stecken. +% +% \begin{macrocode} +\def\endboxedverbatim{% + \endverbatim + \unskip\setbox0=\lastbox % DPC +% \end{macrocode} +% +% Jetzt ist alles in der Box, also k\"onnen wir sie schlie\ss en\dots +% \begin{macrocode} + \egroup +% \end{macrocode} +% +% Um den Code zum Zentrieren zu \"andern, ben\"otigt die n\"achste Zeile +% eine Stelle zum Schnippeln. +% \begin{macrocode} + \fbox{\box0}% +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{verbatimtab} +% \env{verbatimtab}\oarg{tab width} +% ist eine verbatim-Umgebung, welche Tabulatoren erweitert; das optionale +% Argument legt den Abstand zwischen den Tab-Stops fest. +% +% Das Ausf\"uhren von \cs{obeylines}, bevor man sich das optionale Argument ansieht, verhindert eine leere +% erste Zeile der Umgebung, die ein \cs{par} +% Zeichen wird (dieser Fehler wurde von Werner Lemberg berichtet). +% \begin{macrocode} +\newenvironment{verbatimtab}{\obeylines\@verbatimtab}{\endtrivlist} +% \end{macrocode} +% +% Dies verarbeitet das optionale Argument von |verbatimtab|, sodass wir uns +% nun von den gef\"urchteten \cs{par} Zeichen gesch\"utzt haben: +% \begin{macrocode} +\newcommand\@verbatimtab[1][\verbatimtabsize]{% + \do@verbatimtab{#1}{% + \@verbatim\frenchspacing\@vobeyspaces\@vobeytabs\verbatim@start}% +} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\do@verbatimtab} +% +% Stellt eine Umgebung f\"ur Tabulatoren bereit; \verb+#1+ ist der Wert der Tabulator-Gr\"o\ss e +% (in der Regel, urspr\"unglich ein optionales Argument), \verb+#2+ sind die 'Start-Kommandos', die +% ausgef\"uhrt werden sollen, +% sobald eine passende Definition von +% \cs{verbatim@processline} eingef\"uhrt wurde: +% \begin{macrocode} +\def\do@verbatimtab#1#2{% + \tab@size=#1 + \def\verbatim@processline{\tab@position\tab@size + \toks@{}% + \expandafter\verbatim@tabexpand\the\verbatim@line\@nil}% + #2% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\verbatimtabinput} +% \cs{verbatimtabinput}\oarg{Tab-Breite}\marg{Dateiname} +% ist die Version der \texttt{verbatimtab}-Umgebung zum Schreiben in eine Datei. +% +% Wir benutzen den Input-Stream der vom \textsf{verbatim}-Paket erworben wurde; wir ben\"otigen es schließlich +% zum Laden. +% (Man muss zugeben, dass der Name des Streams nicht wirklich +% Teil der definierten Schnittstelle des Pakets ist, +% aber auf der anderen Seite gibt es keine besondere Wahrscheinlichkeit, +% dass es sich jemals \"andern wird.) +% +% Wir benutzen (urspr\"unglich) keine ausgefallenen Eigenschaften von \cs{newcommand}, da die Definition +% innerhalb einer Gruppe war, +% und damit global. Also \dots\ +% 'traditioneller' Code, um einen Befehl mit einem optionalen Argument +% anzubieten (was wahrscheinlich nicht mehr n\"otig ist): +% +% \begin{macrocode} +\def\verbatimtabinput{% + \@ifnextchar[%] + {\@verbatimtabinput}% + {\@verbatimtabinput[\verbatimtabsize]}} +\begingroup +\catcode`\~=\active \lccode`\~=`\^^M \lccode`\N=`\N +\lowercase{\endgroup + \def\@verbatimtabinput[#1]#2{\begingroup + \do@verbatimtab{#1}{% + \@verbatim\frenchspacing\@vobeyspaces\@vobeytabs}% + \def\verbatim@addtoline##1~{% + \verbatim@line\expandafter{\the\verbatim@line##1}}% + \openin\verbatim@in@stream=#2 + \ifeof\verbatim@in@stream + \PackageWarning{moreverb}{No file #2.} + \else + \@addtofilelist{#2}% + \do@verbatimtabinput + \closein\verbatim@in@stream + \fi + \endtrivlist\endgroup\@doendpe}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\do@verbatimtabinput} +% Ausgeschriebene Schleife (Endrekursion) zum Lesen der Datei: +% \begin{macrocode} +\def\do@verbatimtabinput{% + \read\verbatim@in@stream to \verbtab@line + \ifeof\verbatim@in@stream + \else + \expandafter\verbatim@addtoline\verbtab@line + \verbatim@processline + \verbatim@startline + \expandafter\do@verbatimtabinput + \fi +} +%</moreverb> +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput +% +%% \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 \~} |