summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/gmdoc-enhance/README286
-rw-r--r--Master/texmf-dist/doc/latex/gmdoc-enhance/gmdoc-enhance.pdfbin0 -> 226119 bytes
-rw-r--r--Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.dtx715
-rw-r--r--Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.ins61
-rw-r--r--Master/texmf-dist/tex/latex/gmdoc-enhance/gmdoc-enhance.sty241
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/gmdoc-enhance.tlpsrc2
8 files changed, 1307 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/gmdoc-enhance/README b/Master/texmf-dist/doc/latex/gmdoc-enhance/README
new file mode 100644
index 00000000000..28e8f97e316
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gmdoc-enhance/README
@@ -0,0 +1,286 @@
+[en]
+
+LaTeX-package 'gmdoc-enhance' - some enhancements for gmdoc.
+
+Author: Paul Ebermann <Paul-Ebermann@gmx.de>
+License: LPPL 1.3b or later, maintained
+ (see http://www.latex-project.org/lppl/).
+
+All Documentation (other than this file) is in german.
+
+This package provides some enhancements for the gmdoc package:
+nicer formatting for multiple line inline comments,
+an ability to "comment out" some code, and a macro to input
+other files in "normal" LaTeX mode.
+
+The package is based on the package gmdoc (from
+Grzegorz `Natror' Murzynowski) and needs it and its
+required packages (gmutil, gmverb, gmiflink, hyperref,
+multicol, color, makeidx).
+
+The typesetting of the documentation needs additionally
+class scrartcl (from KOMA-script) and some LaTeX base
+packages.
+
+The package comes as .dtx + .ins.
+Run "latex gmdoc-enhance.ins" to create the style file (and maybe put
+it to texmf/tex/latex/paul/, if your docstrip is configured
+accordingly), run (after that and maybe updating your TeX hash)
+"latex gmdoc-enhance.dtx" to create the documentation.
+
+ Usage
+-------
+
+(1) Write your dtx-files for documenting with gmdoc, not doc.
+ (See the gmdoc-documentation for details.)
+
+(2) Put
+ \usepackage[...]{gmdoc-enhance}
+ in the preamble of the documentation driver.
+ (This package itself is calling gmdoc without
+ any options - if you need options, put
+ \usepackage[...]{gmdoc} before this line.)
+
+(3) Use options and/or user macros to change the look.
+
+(4) If you want visible "commented out" code, change the
+ code to use the marker.
+
+Options:
+- - - -
+
+ inline - mark more-than-one-line inline comments on the
+ following lines with %, and change the look of the
+ inline comments a bit.
+
+ visible - enable special treating of "comment out" (see below),
+ with blue highlight and "!" as marker.
+
+User macros:
+- - - - - -
+
+ \InlineCommentsWithPercent - same as option 'inline', but can be
+ switched everywhere.
+ \normalInlineComments - switch back to normal gmdoc behaviour for
+ inline comments.
+
+
+ \setVisibleCommentChar{<marker>} - set the visible comment
+ marker character to <marker>. This should be a
+ single character, preferably of category "other" (12).
+ Default is "!" (exclamation mark).
+ \setVisibleCommentColor[<model>]{<color>} - indicate which color
+ to use for commented out code. This is simply given to
+ the color package (more precisely, xcolor), so should
+ be in a format recognized by this package.
+ Default is nothing (don't change color).
+
+ \activateVisibleComments - enable using "commented out" code.
+
+
+ \normalInput{<file>} - inputs <file> (if existing), but with normal
+ LaTeX catcode conventions active.
+
+
+How to use the "comment out" feature:
+- - - - - - - - - - - - - - - - - - -
+
+This is useful if you (for debugging purposes, for example)
+want to deactivate some code, but also don't want it to be
+executed in the documentation part (which would give often some
+strange error messages.
+
+One way to solve this (without this package) would be using
+%^^A or %^^B on the beginning of these lines (to ignore these
+completely).
+With this package, you can show this code as commented out in
+the output.
+
+Some example code:
+
+---
+\ifx aa
+ %!\doSomething% do something -- commented out.
+ \doAnotherthing% do something other instead.
+\fi
+---
+
+So, after the first %, put your comment marker (default !), and
+then more TeX code. Until the next %, it is shown as commented out
+code, then begins an inline comment.
+
+
+Have fun!
+
+-------------
+[de]
+
+LaTeX-Paket 'gmdoc-enhance' - Verbesserungen für gmdoc.
+
+Autor: Paul Ebermann (Paul-Ebermann@gmx.de).
+Lizenz: LPPL 1.3b oder später, mit Maintenance-Status
+ "author-maintained". Siehe http://www.latex-project.org/lppl/.
+
+Geschrieben für eigenen Gebrauch
+(d.h. die Dokumentation von LaTeX-Paketen von Paul Ebermann), aber
+ vielleicht ist es auch für andere von Nutzen.
+
+Dieses Package basiert auf gmdoc von Grzegorz `Natror' Murzynowski
+zur Dokumentation von (La)TeX-Paketen und fügt ein paar weitere
+nützliche Funktionen hinzu, wie Markierung der inline-Kommentare
+als solche auch in Folgezeilen, sichtbare Kommentare (auskommentierter
+Code), und die Möglichkeit, andere LaTeX-Dateien im normalen Modus
+einzubinden (anstatt im gmdoc-Modus).
+
+Das Paket kommt als .dtx + .ins.
+Mit "latex gmdoc-enhance.ins" wird die .sty-Datei erstellt (und
+eventuell gleich nach texmf/tex/latex/paul/ installiert,
+wenn docstrip entsprechend eingerichtet ist), mit
+"latex gmdoc-enhance.dtx" kann (danach und eventuell nach einer
+Aktualisierung der TeX-Dateidatenbank) die Dokumentation neu
+erstellt werden.
+
+Zur Verwendung siehe pauldoc.pdf.
+
+----------
+[eo]
+
+LaTeX-pakaĵo 'gmdoc-enhance' - plibonigoj por gmdoc.
+(Se vi ne scias, kio estas gmdoc, legu sube.)
+
+Aŭtoro: Paŭlo Ebermann (Paul-Ebermann@gmx.de).
+Licenzo: LPPL 1.3, 'maintained'
+ (-> http://www.latex-project.org/lppl/).
+
+Kreitaj por propra uzo, sed eble iom de ĝi ankaŭ
+uzeblas por aliaj.
+
+La dokumentaro (escepte tiu ĉi dosiero) estas nur en la germana
+lingvo.
+
+La pakaĵo estas bazita sur la pakaĵo gmdoc (de Grzegorz
+`Natror' Murzynowski) kaj bezonas ĝin kaj ĝiajn bezonatajn
+pakaĵojn (laŭ ties dokumentaĵo: gmutil, gmverb, gmiflink,
+hyperref, multicol, color, makeidx).
+
+Por produkti la dokumentaĵon, vi ankaŭ bezonas la
+dokument-klason scrartcl (de KOMA-script) kaj kelkajn bazajn
+LaTeX-pakaĵoj.
+
+La pakaĵo venas en .dtx + .ins.
+Voku "latex gmdoc-enhance.ins" por krei la .sty-dosieron (kaj
+eble meti ĝin al texmf/tex/latex/paul/, se via docstrip estis
+konfigurita laŭe), voku "latex gmdoc-enhance.dtx" por rekrei
+la dokumentaron.
+
+
+ Uzado
+-------
+
+Enkonduko (Kio estas gmdoc)
+- - - - - - - - - - - - - -
+
+gmdoc estas alternativa sistemo (al doc) por dokumenti
+(La)TeX-pakaĵojn. Oni tiel ne plu bezonas marki ĉiujn
+kodo-pecojn, sed gmdoc mem trovas ĝin.
+Ankaŭ eblas uzi komentojn en la sama linio kiel kodo, kiu
+poste tamen povas daŭrigi en pluraj linioj.
+
+Se vi volas krei proprajn LaTeX-pakaĵojn, pripensu uzi ĝin
+anstataŭ la doc-pakaĵo, kiu estas liverita kun LaTeX mem.
+
+(La kodo de via pakaĵo ja aspektas iom alie, depende de la
+ elekto.)
+
+Por vidi ekzemplojn de gmdoc-komentita kodo, rigardu la
+fontokodon de tiu pakaĵo (gmdoc-enhance.dtx), la pakaĵo
+monatnomoj, aŭ la pakaĵojn de Grzegorz `Natror' Murzynowski
+(gm*.sty/gm*.cls).
+
+gmdoc-enhance (tiu ĉi pakaĵo) nun aldonas kelkajn funkciojn,
+kiujn mi konsideris mankantaj en gmdoc.
+
+
+Kiel uzi
+- - - - -
+
+(1) Kiel supre menciite, necesas formati/dokumenti vian pakaĵon
+ por uzo kun gmdoc. (Tio fakte estas pli facila ol por doc.)
+
+(2) Metu
+
+ \usepackage[...]{gmdoc-enhance}
+
+ en la kapliniojn de la dokumentaĵ-stirilo.
+
+(3) adaptu la opciojn kaj/aŭ uzu individuajn makroojn
+ (vidu sube).
+
+(4) Se vi volas forkomenti kodon, uzu la markilon.
+
+Opcioj:
+- - - -
+
+
+ inline - marku sekvajn liniojn se en-liniaj komentoj komence
+ per %, kaj krome iom ŝanĝu la aspekton de tiuj
+ komentoj.
+
+ visible - ŝaltu la specialan traktadon de for-komentita kodo,
+ kun blua koloro.
+
+Uzantaj makrooj:
+- - - - - - - -
+
+ \InlineCommentsWithPercent - ŝaltu la 'inline'-opcion, ekde
+ la loko, kie ĝi aperas.
+ \normalInlineComments - reŝaltu al la normala gmdoc-aspekto.
+
+ \setVisibleCommentChar{<markilo>} - indikas, kiu signo estu la
+ markilo por forkomentita kodo. Tiu estu signo el kategorio
+ "aliaj" (12).
+ Defaŭlto estas "!" (eksklamsigno).
+ \setVisibleCommentColor[<kolormodelo>]{<koloro>} - indikas, per kiu
+ koloro marki la forkomentitan kodon. <kolormodelo> povas
+ esti forlasita, tiam <koloro> estu nomita koloro konata
+ al la xcolor-pakaĵo. Alikaze <kolormodelo> indiku iun
+ kolormodelon konatan al xcolor, kaj <koloro> iun koloron
+ en tiu kolormodelo. (Ni nur pludonas la informojn al
+ xcolor, ne mem traktas ilin.)
+ Defaŭlto estas nenio, t.e. tute ne ŝanĝi la koloron.
+ \activateVisibleComments - ŝaltu la uzadon de forkomentita kodo
+ ekde tiu momento.
+
+
+ \normalInput{<dosiero>} - legas kaj interpretas la enhavon de <dosiero>
+ kun la normalaj \LaTeX-konvencioj aktivaj (ne la gmdoc-specifaj
+ specialaĵoj).
+
+Kiel forkomenti kodon
+- - - - - - - - - - -
+
+Tiu funkcio estas uzenda, se vi volas forigi iujn partojn
+(kutime tutajn liniojn) de la kodo portempe, sed ilia TeX-codo
+ne estu parto de la komento (kiu povas kaŭzi strangajn erarojn),
+sed aperu kiel "forkomentita" en la rezulto.
+
+(Ĉe normala doc-moduso tiu problemo ne okazas, ĉar tie ne
+ eblas havi tiujn en-liniajn komentojn.)
+
+Por fari tion, uzu '%!' por komenci vian forkomentitan kodon,
+kaj poste aperu '%' kun normala en-linia komento (eble malplena).
+
+Jen ekzemplo:
+---
+\ifx aa
+ %!\doSomething% faru ion -- forkomentita.
+ \doAnotherthing% faru ion alian anstataŭe.
+\fi
+---
+
+La ! ne aperas, la '%\doSomething%' ja.
+(Kaj anstataŭ ! endas uzi alian signon, se vi ŝanĝis ĝin
+ per \setVisibleCommentChar.)
+
+
+Bonan dokumentadon! \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/gmdoc-enhance/gmdoc-enhance.pdf b/Master/texmf-dist/doc/latex/gmdoc-enhance/gmdoc-enhance.pdf
new file mode 100644
index 00000000000..a12f0db808a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gmdoc-enhance/gmdoc-enhance.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.dtx b/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.dtx
new file mode 100644
index 00000000000..2f722ac355c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.dtx
@@ -0,0 +1,715 @@
+% \iffalse meta-comment
+%
+%<*package>
+%% (C) 2009 Paul Ebermann
+%%
+%% Package gmdoc-enhance - Verbesserungen für gmdoc.
+%%
+%% Die Datei gmdoc-enhance.dtx sowie die dazugehörige
+%% gmdoc-enhance.ins sowie die damit generierte
+%% gmdoc-enhance.sty stehen unter der
+%% "LaTeX Project Public License" (LPPL, zu finden
+%% unter http://www.latex-project.org/lppl/, sowie
+%% auch in den meisten TeX-Distributionen in
+%% texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
+%% später (nach Wahl des Verwenders).
+%%
+%% Der 'maintenance-status' ist (zur Zeit) 'author-maintained'.
+%%
+%% Das heißt u.a., die Dateien dürfen frei vertrieben werden,
+%% bei Änderungen (durch andere Personen als Paul Ebermann)
+%% ist aber der Name der Datei zu ändern.
+%</package>
+% \fi
+%
+% \iffalse
+% ---------------------------------------------
+%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01]%
+% ----------------------------________________-----------------
+%<package>\ProvidesPackage{gmdoc-enhance}[2009/02/20 v0.2 Verbesserungen fuer gmdoc.]%
+% ----------------------------________________-----------------
+% \fi
+%
+% \iffalse
+% \fi
+%
+% \CheckSum{0}
+%
+% \GetFileInfo{gmdoc-enhance.sty}
+%
+%
+% \title{Das \pk{gmdoc-enhance}-Paket -- Verbesserungen für \pk{gmdoc}. \
+% \thanks{ Diese Dokumentation gehört zu \
+% \pk{gmdoc-enhance}~\fileversion, de~\filedate.}}
+% \author{Paul Ebermann\thanks{\texttt{Paul-Ebermann@gmx.de}}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Dieses Package basiert auf \pk{gmdoc} von Grzegorz
+% \textquoteleft Natror\textquoteright
+% Murzynowski zur Dokumentation von \LaTeXpar-Paketen und fügt ein
+% paar weitere nützliche Funktionen hinzu, wie Markierung der
+% inline-Kommentare als solche auch in Folgezeilen, sichtbare
+% Kommentare (auskommentierter Code), und die Möglichkeit, andere
+% \LaTeX-Dateien im normalen Modus einzubinden (anstatt im
+% \pk{gmdoc}-Modus).
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Nutzer-Doku}
+%
+% ^^A etwas tricky ... wir wollen, dass beim
+% ^^A reinen LaTeX-Durchlauf der Beispiel-Abschnitt
+% ^^A übersprungen wird, also muss ein '\iffalse' da
+% ^^A stehen. Beim Doku-Lauf soll dieser Trick nicht
+% ^^A auftauchen, also können wir nicht den normalen
+% ^^A verbatim-Modus nehmen ... wir brauchen also ein
+% ^^A '\iffalse' drumrum. Jetzt wird aber auch das innere
+% ^^A '\iffalse' interpretiert, wodurch wir dahinter zwei
+% ^^A '\fi' brauchen. Am Ende des Beispiel-Abschnitts dann
+% ^^A entsprechend zwei '\iffalse'. (Hmm, und jetzt soll bitte
+% ^^A niemand versuchen, diesen '^^A'-Abschnitt hier mit '\iffalse'
+% ^^A auszukommentieren ...)
+% \iffalse
+%<*beispiel>
+\iffalse
+% \fi\fi
+%
+% Das Paket sollte -- wie üblich -- mit '\usepackage' geladen werden:
+% \begin{quote}
+% '\usepackage'\arg[optionen]'{gmdoc-enhance}'
+% \end{quote}
+% Es lädt selbst das \pk{gmdoc}-Paket, falls dieses nicht schon geladen
+% ist. Falls man Optionen an dieses übergeben will, sollte man es vorher
+% selbst laden. Ein vollständiges Beispiel gibt es in Abschnitt \ref{driver}.
+%
+% \subsection{Inline-Kommentare mit \%}
+% Diese Funktion erfordert (im Vergleich zum normalen \pk{gmdoc}) keine
+% Änderung der zu kommentierenden Datei
+% \normalInlineComments (nur das Aktivieren), sondern ändert nur das Aussehen.
+\beispiel\zeile% Bei \pk{gmdoc} kann jede Code-Zeile von
+% einem Inline-Kommentar gefolgt werden, der dann normal gesetzt
+% wird, mit hängendem Einzug. Zu diesem Inline-Kommentar gehören auch
+% direkt anschließende Kommentarzeilen. (Hier ein solches Beispiel.)
+%
+% Dieses Paket ändert das Aussehen eines solchen
+% \InlineCommentsWithPercent Absatzes:
+\beispiel\zeile% Jetzt wird der Inline-Kommentar mit etwas mehr Abstand
+% gesetzt, und das '%'-Zeichen grau (falls \pk{color} geladen wurde).
+% Wichtiger aber, in den Folge-Zeilen erscheint jeweils zu Beginn der
+% Zeile eine Kommentar-Markierung, so dass man ihn nicht mit einer
+% neuen Code-Zeile verwechseln kann.
+%
+%
+% Aktivieren kann man die Funktion mit \TextUsage{\InlineCommentsWithPercent},
+% welches ab der entsprechenden Stelle gilt (es wurde oben zwischen den beiden
+% Code-Zeilen im Beispiel verwendet.
+% Mit \TextUsage{\normalInlineComments} wird wieder auf den Normal-Modus
+% zurückgeschaltet.
+%
+% Global aktivieren kann man diesen Modus mit der Paket-Option
+% \TextUsage*{inline}.
+%
+% \subsection{Sichtbare Kommentare}
+%
+% Dieses Paket bietet die Möglichkeit, Teile des
+% Quelltextes auszukommentieren, und diese dann auch so zu setzen (anstatt
+% dass der auskommentierte Quelltext als Teil der Dokumentation aufgefasst
+% wird).
+% Dazu verwendet man im Quelltext:
+%\begin{verbatim}
+%%! \nicht\gebraucht% Und jetzt $e^{i\pi}=-1$.
+%\end{verbatim}
+% Dies ergibt etwas wie dies:
+%! \nicht\gebraucht% Und jetzt $e^{i\pi}=-1$.
+%
+% Dieser Modus hat zwei Parameter:
+% Mit \meta{marker} (ein einzelnes Zeichen, wahrscheinlich muss es
+% Kategorie \catother (other) haben) markiert man im Quelltext das
+% Auskommentieren, direkt nach dem '%'\footnote{oder ^^B
+% was auch immer gerade der durch \cs{CodeDelim} festgelegte ^^B
+% Markierer ist.}.
+% Der Defaultwert (und im obigen Beispiel verwendet) ist '!'.
+%
+% \meta{Farbe} ist ein Parameter (oder zwei) für
+% \TextUsage{\color}\footnote{ aus dem \pk{color}-Paket},
+% um eine farbliche Markierung des auskommentierten Codes zu aktivieren.
+% (Default ist keine farbliche Markierung.)
+%
+% Die Paket-Option \TextUsage*{visible} aktiviert den Modus und legt
+% \meta{Farbe} auf '{blue}' fest, was meine bevorzugte Einstellung ist.
+%
+% Falls diese Einstellungen nicht zusagen, kann man (statt oder zusätzlich zur
+% Option) die folgenden Makros verwenden:
+%
+% \TextUsage{\activateVisibleComments} aktiviert den Modus, ohne etwas an
+% \meta{marker} oder \meta{Farbe} zu ändern.
+%
+% \TextUsage{\setVisibleCommentChar}\arg{marker} legt \meta{marker} fest.
+%
+% \TextUsage{\setVisibleCommentColor}\meta{Farbe} legt \meta{Farbe} fest.
+% \meta{Farbe} ist entweder von der Form \arg[model]\arg{farbe} (für eine
+% Farbe in einem der von \pk{color} bereitgestellten Farbmodelle) oder
+% \arg{farbname} für einen der vordefinieren Farbnamen. Beides wird einfach
+% an der geeigneten Stelle an 'color' weitergegeben.
+%
+% Falls eine Farbe festgelegt wird, sollten auskommentierte Code-Stellen
+% unbedingt mit einem '%' (und eventuell einem inline-Kommentar danach) beendet
+% werden, weil die Farbmarkierung sich sonst fälschlicherweise in die
+% nächste Zeile fortsetzt, sogar inklusive der Zeilennummer:
+%
+%! \auskommentiert
+\nicht\auskommentiert
+%
+% Das ist offenbar nicht so gedacht, aber ich habe keinen (einfachen) Weg
+% gefunden, das abzuschalten.
+%
+% \subsection{Input im normalen Modus}
+%
+% Wenn man innerhalb eines \pk{gmdoc}-Dokumentes eine andere
+% Datei lädt, welche die normalen \LaTeX-Konventionen für '%' und Zeilenenden
+% verwendet, gibt es Chaos \dots
+%
+% \TextUsage{\normalInput}\arg{dateiname} stellt die üblichen
+% \LaTeX-Konventionen wieder her, lädt \meta{dateiname} (falls existent),
+% und stellt wieder auf den \pk{gmdoc}-Modus zurück.
+%
+% Dies ist etwa nützlich, falls man eine Beispiel-Datei einlesen möchte,
+% um deren Ausgabe zu zeigen.
+%
+% Die Datei wird innerhalb einer Gruppe geladen -- alle nicht-globalen
+% Zuweisungen darin gehen also verloren.
+%
+% ^^A ------------------------------
+%
+% \iffalse\iffalse
+\fi
+%</beispiel>
+% \fi
+%
+% \section{Der Doku-Treiber für dieses Paket}
+% \label{driver}
+%
+% Der Dokumentations-Treiber dient gleichzeitig als Beispiel für
+% die Anwendung (und die Ausgabe) dieses Paketes.
+%<*driver>
+% Die Dokumentenklasse, mit 'draft'-Option, um zu lange Zeilen
+% zu markieren. (Nicht als globale Option, weil sonst \pk{hyperref}
+% seine Arbeit verweigert.)
+\PassOptionsToClass{draft}{scrartcl}
+\documentclass[idxtotoc]{scrartcl}
+
+%
+% Die Standard-Pakete ...
+\usepackage[utf8x]{inputenc}
+\usepackage[ngerman]{babel}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+
+
+
+\let\orgshow\show% Irgendjemand oder etwas definiert '\show' um -- das ist
+% normalerweise ein \TeX-primitiv, und ich benutze es gelegentlich zum
+% Debuggen meiner Pakete. Daher machen wir uns eine Kopie davon.
+
+\usepackage[countalllines, withmarginpar, codespacesgrey]{gmdoc}% Wir laden
+% \pk{gmdoc} mit ein paar Optionen: es sollen alle Zeilen gezählt werden,
+% nicht nur Code-Linien (das heißt, man kann schnell die passende
+% Quelltext-Stelle finden), im Rand sollen verwendete Makros angezeigt
+% werden, und Leerzeichen im Code sollen grau markiert werden.
+\usepackage[visible, inline]{gmdoc-enhance}% unser eigenes Paket, mit allen
+% vorhandenen Optionen.
+\renewcommand*{\EOFMark}{}% Das Zeichen \meta{eof} am
+% Ende der Datei ist überflüssig, weg damit.
+
+
+%! \def\marginpartt{\normalfont\fontseries{lc}\ttfamily}% Abgeschrieben aus
+% \pk{gmdocc}, aber die Schrift ist bei mir offenbar nicht da. Schade.
+
+\RecordChanges% Wir wollen eine Liste der Änderungen generieren.
+\setcounter{IndexColumns}{2} % wir haben ein paar ziemlich lange Makronamen,
+% die in dreispaltigem Modus nicht passen.
+
+\begin{document}
+
+%! \catcode`\^=7% In einigen Sprachen wurde '^' von \pk{Babel} aktiviert,
+% was für die \pk{gmdoc}-Verwendung etwas störend ist, da wir es für '^^A'
+% und '^^B' benötigen. Also schalten wir es wieder auf die
+% Normalbedeutung (Superscript bzw. doppelt Escape) zurück. Für \pk{ngerman}
+% macht Babel das nicht, daher auskommentiert.
+
+ \MakeShortVerb*\'% Wir wollen \verb+'+ im Kommentar als
+ % verbatim-Markierungs-Zeichen verwenden, mit sichtbaren Leerzeichen.
+ \DocInput{\jobname.dtx}% Jetzt laden wir uns selbst im Doku-Modus.
+
+\end{document}
+%</driver>
+
+%
+% \StopEventually{\PrintChanges\PrintIndex}
+%
+% \section{Implementation}
+%
+%<*package>
+%
+% \subsection{Benötigte Pakete}
+%
+% Da dieses Paket \pk{gmdoc} erweitert, müssen wir natürlich sicherstellen,
+% das es geladen wurde. Zum übergeben von Optionen sollte man es aber vorher
+% selbst laden.
+\RequirePackage{gmdoc}[2008/10/04]%
+
+% \subsection[Schönere Inline-Kommentare]{Inline-Kommentare \
+% mit \%-Markierung in den Fortsetzungs-Zeilen}
+%
+%
+% Hier das Nutzer-Makro dieses Abschnittes.
+\newcommand*{\InlineCommentsWithPercent}{%
+ \let\gmde@org@ifilrr = \ifilrr% Wir merken uns dir Original-Einstellung
+% für Block- oder Flattersatz.
+ \ilrrtrue% Wir schalten auf Flatter- statt Blocksatz für die
+% Inline-Kommentare. Unsere aktiven Leerzeichen sind ja nicht variabel
+% in der Länge (wirklich?), und wir wollen auch keine Zeilenumbrüche
+% außerhalb von Leerzeichen (etwa durch Silbentrennung).
+ \let\gmd@percenthack\gmde@percenthack% Außerdem verwenden wir unsere
+% gepatchte Variante von '\gmd@percenthack'.
+}%
+%
+% Der Zurückschalter.
+\newcommand*{\normalInlineComments}{%
+ \let\ifilrr = \gmde@org@ifilrr% Wir setzen die Block/Flattersatz-Einstellung
+% zurück auf den Wert, der beim letzten '\InlineCommentsWithPercent' galt.
+ \let\gmd@percenthack \gmde@org@percenthack% Dies setzen wir auf aufs
+% Original zurück.
+}%
+%
+% Wir merken uns die Original-Version von '\gmd@percenthack', damit
+% wir wieder zurückschalten können.
+\let \gmde@org@percenthack = \gmd@percenthack%
+%
+% Das ist unsere Variante von '\gmd@percenthack'.
+\def\gmde@percenthack{%
+ \ifprevhmode%
+% Bis hier was es auch im Original schon so.
+ \aftergroup\gmde@specialSpaces% Diese Zeile ist neu -- wir schalten
+% um auf unsere neu definierten aktiven Leerzeichen.
+ \aftergroup\gmde@kommentarStart% Das Original war hier
+% '\code@delim\aftergroup~'.
+%
+% Der Rest ist wieder wie im Original.
+ \else%
+ \aftergroup\gmd@narrcheckifds@ne%
+ \fi%
+}%
+%
+%
+%
+
+% Zunächst ^^A \showthe\font
+% \the\hyphenchar\font
+% ^^A \expandafter\orgshow\csname gmde@hyphenreset\endcsname
+% besorgen wir uns ein aktives Leerzeichen. Dafür schalten
+% wir kurzfristig die Kategorie von ' ' um.
+\catcode`\ =\active%
+\def\gmde@activeSpace{ }%
+\catcode`\ =10%
+
+% '\gmde@specialSpaces' macht die Leerzeichen für den entsprechenden
+% Paragraphen aktiv und legt auch ihre Bedeutung fest.
+\def\gmde@specialSpaces{%
+ \catcode`\ =\active% Aktives Leerzeichen.
+ \@xa\let\gmde@activeSpace=\gmde@discrSpace% Und es soll die
+% (unten definierte) Leerzeichenfunktion aufrufen.
+ \exhyphenpenalty=0% Das setzt die Strafen für Umbrüche an diesen
+% Leerzeichen (und ähnlichen '\discretionary's mit leerem
+%"`Pre-break"'-Inhalt) auf 0.
+ \hyphenpenalty=1000% Dafür stellen wir die Strafen für normale
+% Silbentrennung hoch -- allerdings schalten wir auch den Bindestrich
+% ab, so dass das eigentlich irrelevant sein sollte. Es beeinflusst auch
+% andere '\discretionary's mit nichtleerem "`pre-break"'-Text, die
+% vielleicht irgendjemand verwendet.
+%
+ \let\@codetonarrskip\gmde@codetonarrskip% Wir sorgen dafür, dass mit
+% dem nächsten Paragraphen das alles wieder abgeschaltet wird --
+% '\gmde@codenarrskip' ruft (nach der normalen Aktion von '\@codetonarrskip')
+% '\gmde@normalSpaces' auf.
+%
+% Wir merken uns den alten '\hyphenchar', damit wir
+% ihn später zurücksetzen können.
+ \def\@tempa{gmde@hyphenchar-%
+ \@xa\string\the\font}% der Name für unsere zu definierende
+ % Kontrollsequenz. Er enthält den internen Namen der Schrift.
+ \@ifundefined{\@tempa}{%
+% Die Nummer des '\hyphenchar's merken wir uns jetzt in dieser
+% Kontrollsequenz.
+ \@xa\edef\csname \@tempa\endcsname{%
+ \the\hyphenchar\font }%
+ }{% Wenn wir es schon vorher definiert haben,
+% definieren wir es nicht noch einmal, denn dann ist jetzt vielleicht
+% schon der Code $-1$, wogegen der Original-Code (meist 45) noch dort
+% gespeichert ist.
+ }%
+ \edef\gmde@hyphenreset{%
+ \hyphenchar\font=%
+ \@xa\noexpand%
+ \csname \@tempa\endcsname%
+ }%
+% Und jetzt setzen wir für diesen Absatz den '\hyphenchar' der aktuellen
+% Schrift auf $-1$, um damit Trennungen an -, -- und --- sowie
+% Silbentrennungen auszuschließen.
+ \hyphenchar\font=-1 % Das ist
+% aber trotzdem noch ein Hack, denn
+% natürlich kann man \textsl{einfach -- zwischendurch -- in eine andere^^B
+% Schriftart -- das ist jetzt ein Beispiel mit Hyphenchar ^^B
+% \expandafter$\the\hyphenchar\font$ -- schalten}, die dann doch wieder einen
+% echten '\hyphenchar' hat. (Nachher wieder
+% \expandafter$\the\hyphenchar\font$.) Hmm,
+% bessere Vorschläge?
+}%
+
+% noch ein Vorgabewert für dieses Kommando ... es wird regelmäßig
+% neu definiert, aber eventuell wird es vor der ersten solchen Definition
+% noch geändert.
+\def\gmde@hyphenreset{}%
+
+% Das ist eine Sicherheitskopie von '\@codetonarrskip' aus \pk{gmdoc}.
+\let\gmde@org@codetonarrskip = \@codetonarrskip%
+%
+% Und jetzt unsere Variante, mit einem Aufruf der Rücksetzfunktion.
+\let\gmde@codetonarrskip = \@codetonarrskip
+\g@addto@macro\gmde@codetonarrskip{\gmde@normalSpaces}%
+%
+
+% Dieses Makro enthält eine Box, die am Start jeder Kommentarzeile
+% gesetzt wird.
+\def\gmde@kommentarStart{%
+% Hmm, wir könnten auch eine save-Box dafür reservieren,
+% anstatt es immer neu zu bauen ... aber so passt es sich wenigstens
+% an Änderungen des von '\code@delim' an.
+ \hbox{{%
+ \@ifpackageloaded{color}{\color{gray}}{}% Falls das \pk{color}-Paket
+% geladen ist, zeigen wir das '%'-Zeichen in grau statt dem normalen
+% schwarz. Damit sticht es nicht ganz so sehr ins Auge.
+ \ttfamily\code@delim\quad}}%
+}%
+
+
+%
+% Hier die Definition unseres merkwürdigen aktiven Leerzeichens.
+%
+% \dots Ein paar Zahlen: '\hyphenpenalty':
+% \expandafter$\the\hyphenpenalty$, '\exhyphenpenalty': \expandafter$\the\exhyphenpenalty$
+\def\gmde@discrSpace{%
+ \ifx\protect\@typeset@protect%
+ \ifinner%
+ \space% Wenn wir in einer inneren Box sind, soll das aktive
+% Leerzeichen wie ein normales Leerzeichen funktionieren, da es ja
+% hier sowieso keinen Zeilenumbruch gibt. Oder? Egal, unsere
+% Code-Kommentare sollten nie im inneren Modus auftauchen.
+ \else%
+ \ifhmode%
+ \unskip% Hmm, ich bin mir nicht ganz sicher, warum dieser
+% Befehl hier notwendig ist. Ohne gibt es jedenfalls gelegentlich
+% Zeilenumbrüche, die nicht an einen dieser '\discretionary's
+% fallen (und entsprechend kein '%' in der nächsten Zeile haben.)
+%
+ \discretionary{% Die "`Expansion"' dieses '\discretionary'-Objektes
+% falls es hier einen Zeilenumbruch gibt, ist am Ende der Zeile
+% leer.
+ }{\gmde@kommentarStart% Dafür taucht am Ende der vorherigen Zeile
+% die Box auf, die durch '\gmd@kommentarStart' gesetzt wird.
+ }{% Falls kein Umbruch an dieser Stelle erfolgte, ist es
+% ebenfalls leer.
+ }%
+ ~% Jetzt setzen wir noch ein nicht-umbrechbares Leerzeichen. Falls
+% es einen Umbruch gab, war der ja davor.
+ \else%
+ \space% Außerhalb des horizontalen Modus (d.h. im Mathe- und im
+% vertikalen Modus) hat unsere Spezialfunktion auch nichts
+% zu suchen.
+ \fi%
+ \fi%
+ \afterfi{%
+ \gmde@gobbleActiveSpaces}% Am Ende fressen wir alle weiteren
+% direkt folgenden derartigen aktiven Leerzeichen auf, damit es nicht
+% mehrere auf einmal gibt.
+%
+% Eigentlich sorgt das obige '\unskip' ja schon dafür, dass mehrere
+% aufeinanderfolgende aktive Leerzeichen (die ja prinzipiell ein '~'
+% als skip einfügen), keine Probleme bereiten, nur das letzte bleibt übrig.
+% Damit ist das '\gmd@gobbleActiveSpaces' eigentlich nicht mehr
+% nötig. Aber wir entlasten damit den Zeilenumbruch-Algorithmus
+% etwas, wenn nicht mehrere '\discretionary's hintereinander kommen.
+ \else%
+ \space% Falls wir nicht im Typeset-Modus sind, sondern etwa in eine Datei
+% oder auf den Bildschirm schreiben, soll unser ' ' auch wie ein normales
+% Leerzeichen wirken. Schließlich findet da kein Zeilenumbruch statt.
+ \fi%
+}%
+%
+% Hier die Definition unseres Space-Fressers.
+\def\gmde@gobbleActiveSpaces{%
+ \@xa\@ifnextchar\gmde@activeSpace% Wir überprüfen, ob das
+ % nächste Token ein aktives Leerzeichen ist.
+ {% Falls ja, \dots
+ \@xa\gmde@gobbleActiveSpaces\@gobble% entsorgen wir es
+ % mit '\@gobble' und rufen uns dann selbst rekursiv auf.
+ }{}% Im anderen Fall machen wir gar nichts, womit die Rekursion
+ % beendet ist.
+}%
+%
+% Dieses Makro setzt alles wieder aufs normale zurück.
+\def\gmde@normalSpaces{%
+ \gmde@hyphenreset% Wir rufen das Makro auf, welches den '\hyphenchar' auf
+% seinen Original-Wert zurücksetzt.
+ \exhyphenpenalty=50 \hyphenpenalty=50 % Die Strafen erhalten auch ihren normalen Wert.
+ \@xa\let\gmde@activeSpace = \space% Das aktive Leerzeichen wird ein normales,
+ \catcode`\ = 10% und Leerzeichen sind ab jetzt nicht mehr
+% aktiv.
+ \let\@codetonarrskip = \gmde@org@codetonarrskip% Wir setzen auch dieses
+% Makro auf seine Original-Bedeutung zurück.
+}%
+%
+
+%
+% \subsection{Auskommentierter Quelltext}
+%
+%
+% Aktiviert den Sichtbar-Kommentar-Modus.
+\newcommand*{\activateVisibleComments}{%
+ \let \gmd@narrcheckifds = \gmde@narrcheckifds%
+ \let \gmd@narrcheckifds@ne = \gmde@narrcheckifds@ne%
+ \let \gmd@eatlspace = \gmde@eatlspace%
+}
+%
+% Dieses Kommando legt das Zeichen zur sichtbaren Auskommentierung von
+% Quelltext fest.
+\newcommand*{\setVisibleCommentChar}[1]{%
+ \let \gmde@visibleCommentChar = #1%
+}%
+
+% Hier ein Default-Wert für das Kommentar-Markierungs-Zeichen.
+\setVisibleCommentChar{!}%
+
+%
+% Legt die Farbe, in der sichtbare Kommentare gesetzt
+% werden sollen, fest.
+%
+\newcommand*{\setVisibleCommentColor}{%
+% Wir unterscheiden, ob ein optionales Argument gegeben
+% wurde, und rufen entsprechend die passende Funktion auf.
+ \@ifnextchar[\gmde@setVCColor@Opt%
+ \gmde@setVCColor@%
+}%
+% Nur, falls \pk{color} geladen wurde, macht der Farbumschalter
+% etwas.
+\def\gmde@setVCColor@#1{%
+ \def\gmde@visibleCommentColor{\@ifpackageloaded{color}{\color{#1}}{}}%
+}%
+\def\gmde@setVCColor@Opt[#1]#2{%
+ \def\gmde@visibleCommentColor{\@ifpackageloaded{color}{\color[#1]{#2}}}%
+}%
+
+% Der Default-Wert ist leer, also ohne Farbwechsel.
+\let\gmde@visibleCommentColor\@empty
+
+% Wir machen eine Sicherheitskopie der Original-Version
+% von '\gmd@narrcheckifds'. Das ist ein Befehl, der nach
+% einem '%' überprüft, ob das nächste Zeichen ein '<' ist,
+% und dann eine Docstrip-Direktive setzt, andernfalls den
+% normalen Erzählungs-Modus startet. Es gibt zwei Varianten
+% davon, die mit '@ne' nimmt einen Parameter (der im
+% "`Nicht-'<'-Fall"' ausgeführt wird), die andere nicht.
+%
+% Die beiden Makros werden aufgerufen, nachdem ein '%' am Anfang
+% einer Zeile verarbeitet wurde - eines davon, wenn es vorher
+% eine Code-Zeile gab, das andere nach einer Kommentarzeile.
+\let\gmde@org@narrcheckifds = \gmd@narrcheckifds
+\let\gmde@org@narrcheckifds@ne = \gmd@narrcheckifds@ne
+
+% Eine neue Version von '\gmd@narrcheckifds'. Wir rufen einfach die Variante
+% mit Parameter auf, wobei wir '\ignorespaces' übergeben. (Das ist beim
+% Original ähnlich, allerdings dort einzeln analog implementiert.)
+\def\gmde@narrcheckifds{%
+ \gmde@narrcheckifds@ne{\ignorespaces}%
+}%
+% Die ein-Parameter-Version.
+\def\gmde@narrcheckifds@ne#1{%
+ \@ifnextchar\gmde@visibleCommentChar% Falls das nächste Zeichen
+% unser Kommentarzeichen ist,
+ \gmde@deactivatedCode% setzen wir den Rest als deaktivierten Code.
+ {\gmde@org@narrcheckifds@ne{#1}}% Ansonsten rufen wir den
+% Original-'<'-Test auf.
+}%
+
+
+% Das ist (zusammen mit dem nächsten Makro) der Kern von
+% '\gmd@codstripdirective', den wir hier brauchen.
+\def\gmde@deactivatedCode{%
+ \gmd@textEOL% Wir tun so, als wäre das eine neue Zeile.
+ \gmde@deactivatedcodePrefix% Das wird als erstes Token an '\gmd@textEOL'
+ % übergeben. Dadurch, dass es nur eines ist, wird es nicht als '%'
+ % erkannt, sondern (nachdem wieder in den Verbatim-Modus gewechselt wurde)
+ % ausgegeben.
+}
+%
+% Was machen wir mit deaktiviertem Code (am Zeilenanfang)?
+\def\gmde@deactivatedcodePrefix{%
+ \gmde@visibleCommentColor%
+ \code@delim% Zunächst geben wir ein '%'-Zeichen aus.
+ \@afternarrgfalse\@aftercodegtrue\@codeskipputgtrue% Diese boolean-Werte
+% setzen wir, damit \TeX nachher weiß, wo es ist.
+ \@firstoftwo% Und jetzt entsorgen wir das zweite
+% folgende Token -- das ist das '!'-Zeichen. Das erste ist wohl
+% irgendein Makro, welches wichtige Dinge anstellt - wenn wir das
+% auch entsorgen, hört die Code-Formatierung nicht am nächsten '%'
+% auf. Keine Ahnung, was das ist.
+}%
+
+%
+%
+% Hier eine leicht geänderte Version von '\gmd@eatlspace'.
+% ('%' und '!' bezeichnen im Kommentar nicht unbedingt das entsprechende
+% Zeichen, sondern das, was gerade als Code-Delimiter bzw.
+% Visible-Comment-Marker festgelegt wurde (mit '%' und '!'
+% als Default.)
+%
+\def\gmde@eatlspace#1{%
+ \ifx\gmd@texcodespace#1% Wenn das nächste Zeichen ein Leerzeichen, so \dots
+ \advance\gmd@ldspaceswd by \gmd@spacewd% erhöhen wir die Einrückung,
+% und \dots
+ \afteriffifi{\gmde@eatlspace}% \dots wiederholen das ganze.
+ \else%
+ \if\code@delim\@nx#1% Wenn das nächste Zeichen '%' ist \dots
+ \afterfifi{%
+ \@ifnextchar\gmde@visibleCommentChar{% \dots und das folgende Zeichen
+% ein '!', dann haben wir es mit einem sichtbaren Kommentar zu tun.
+ \let\gmd@charbychar=\gmde@charbychar% Wir merken uns also, dass
+ % dessen Präfix gezeigt werden muss, \dots
+ \gmd@typesettexcode% \dots und rufen die normale Code-Formatierungs-Funktion auf, wobei das '!' dabei weggeworfen wird.
+ }{%
+% Ist das folgende Zeichen kein '!', so geht jetzt der Kommentar
+% der letzten Zeile weiter (das kann entweder ein inline-Kommentar oder ein
+% normaler sein).
+ \gmd@ldspaceswd=\z@%
+ \gmd@continuenarration#1%
+ }%
+ }%
+ \else%
+ % Ist das nächste Zeichen weder ' ' noch '%', so fängt hier der
+ % Quelltext an.
+ \afterfifi{\gmd@typesettexcode#1}%
+ \fi%
+ \fi%
+}%
+
+% Noch eine Sicherheitskopie: '\gmd@charbychar' geht zeichenweise
+% durch den Code durch, mit Sonderbehandlung für '%', '\', das
+% Dateiende sowie ein Zeilenende.
+\let\gmde@org@charbychar\gmd@charbychar%
+
+% Unsere Variante davon, die gesetzt wird, wenn die Zeile
+% mit einem '%!' beginnt,
+\def\gmde@charbychar{%
+ \let\gmd@charbychar=\gmde@org@charbychar
+ \gmde@deactivatedcodePrefix
+ \gmd@charbychar%
+}%
+
+%
+% \subsubsection{Etwas Test-Code}
+%
+%<*test>
+
+bla
+%<text>bedingter Text % mit Kommentar.
+% mehr text % und Kommentar
+
+% Komentar
+%! das gleiche mit! % und Kommentar
+ %! das gleiche mit! % und Kommentar
+%! das gleiche mit! % und Kommentar
+%
+% Kommentar.
+%</test>
+
+
+% \subsection{Weitere Makros}
+
+
+ \AtBeginDocument{\QueerCharOne}% \pk{inputenc} mit \pk{utf8x} definiert
+% '^^A' um, so dass es Fehlermeldungen gibt. Also stellen wir die
+% \pk{gmdoc}-Variante wieder her.
+
+
+
+%
+% Dieses Makro liest eine Datei im normalen \LaTeX-Modus ein, ohne komische
+% EOL-Zeichen oder kaputte '%'.
+\newcommand*{\normalInput}[1]{%
+ % Wir packen alles in eine Gruppe, dann ist das Wiederherstellen der
+ % Einstellungen nicht so schwer.
+ \begin{StraightEOL}%
+ \gmde@normalSpaces%
+ \catcode`\%=14%
+ \InputIfFileExists{#1}{}{}%
+ \end{StraightEOL}%
+}%
+%
+
+%
+% \subsection{Verbatim-docstrip-Modus}
+%
+% Es wurde wohl vergessen, diese Variable zu initialisieren.
+\let\gmd@docstripshook\@empty%
+%
+%<*test>
+% Hier ein Test dafür:
+%<<verbatim-modus
+Irgenwas hier
+%! auskommentiert % wirklich!
+Noch mehr Muell % Hört das hier auf?
+%
+%verbatim-modus
+%
+% Hmm, das alleine reicht aber noch nicht, denke ich. Eigentlich sollte
+% jetzt alles (bis zum erneuten auftauchen des Textes, der zwischen '<<' und
+% dem Zeilenende stand) wörtlich ausgegeben werden, ohne Formatierungen.
+%
+% Naja, das baue ich vielleicht in einer späteren Version ein.
+%</test>
+
+% \subsection{Optionen des Paketes}
+%
+% Die Optionen rufen einfach die passenden Deklarationen auf.
+%
+\DeclareOption{visible}{%
+ \setVisibleCommentColor{blue}%
+ \activateVisibleComments%
+}%
+%
+\DeclareOption{inline}{%
+ \InlineCommentsWithPercent%
+}%
+% Jetzt veraarbeiten wir alle Optionen in der Reihenfolge, in
+% der sie angegeben wurden. (Nicht, dass die Reihenfolge einen
+% Unterschied machen sollte ...)
+%
+\ProcessOptions*\relax%
+%
+% Und damit sind wir fertig.
+\endinput
+%</package>
+%
+% \Finale
+%\endinput
+
+
+%%% Folgendes ist nur für meinen Editor.
+%%%
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.ins b/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.ins
new file mode 100644
index 00000000000..7a0c6fc506a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/gmdoc-enhance/gmdoc-enhance.ins
@@ -0,0 +1,61 @@
+%%
+%% (C) 2002-2008 Paul Ebermann - Installationsdatei zu gmdoc-enhance.dtx
+%%
+%% Der vollstndige Urheberrechtshinweis befindet sich
+%% am Begin von gmdoc-enhance.dtx.
+%%
+%% Ich gebe keine Garantie irgendeiner Art.
+%%
+
+\input docstrip.tex
+\usedir{tex/latex/paul}
+
+\Msg{**********************************************************}
+\Msg{* Ich werde Dateien in \showdirectory{tex/latex/paul} }
+\Msg{* installieren. Bitte stellen Sie sicher, }
+\Msg{* dass dieses Verzeichnis vorhanden ist. }
+\Msg{* }
+
+%% der folgende Text wird in jeder generierten
+%% Datei am Anfang eingefgt.
+\preamble
+
+ ,--------------------------------------------------.
+ | Das ist eine generierte Datei. |
+ | |
+ | (c) 2008 Paul Ebermann. |
+ '--------------------------------------------------'
+\endpreamble
+
+
+\generate{\file{gmdoc-enhance.sty}{\from{gmdoc-enhance.dtx}{package}}}
+%\generate{\file{gmdoc-enhance.cls}{\from{gmdoc-enhance.dtx}{class}}}
+
+\Msg{#######################}
+\Msg{# }
+\Msg{# Um die Installation zu beenden, }
+\Msg{# mssen Sie die folgenden Dateien }
+\Msg{# in Ihrem TeX-Suchbaum unterbringen: }
+\Msg{# }
+\Msg{# gmdoc-enhance.sty }
+%\Msg{# gmdoc-enhance.cls }
+\Msg{# }
+\Msg{# Um eine Dokumentation zu erzeugen, }
+\Msg{# benutzen Sie }
+\Msg{# }
+\Msg{# latex gmdoc-enhance.dtx }
+\Msg{# }
+\Msg{# Viel Spa }
+\Msg{# Paul Ebermann }
+\Msg{# }
+\Msg{#######################}
+
+\endbatchfile
+
+
+%%% Folgendes ist nur fr meinen Editor.
+%%%
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/tex/latex/gmdoc-enhance/gmdoc-enhance.sty b/Master/texmf-dist/tex/latex/gmdoc-enhance/gmdoc-enhance.sty
new file mode 100644
index 00000000000..594f58fceae
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gmdoc-enhance/gmdoc-enhance.sty
@@ -0,0 +1,241 @@
+%%
+%% This is file `gmdoc-enhance.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gmdoc-enhance.dtx (with options: `package')
+%%
+%% ,--------------------------------------------------.
+%% | Das ist eine generierte Datei. |
+%% | |
+%% | (c) 2008 Paul Ebermann. |
+%% '--------------------------------------------------'
+%% (C) 2009 Paul Ebermann
+%%
+%% Package gmdoc-enhance - Verbesserungen für gmdoc.
+%%
+%% Die Datei gmdoc-enhance.dtx sowie die dazugehörige
+%% gmdoc-enhance.ins sowie die damit generierte
+%% gmdoc-enhance.sty stehen unter der
+%% "LaTeX Project Public License" (LPPL, zu finden
+%% unter http://www.latex-project.org/lppl/, sowie
+%% auch in den meisten TeX-Distributionen in
+%% texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
+%% später (nach Wahl des Verwenders).
+%%
+%% Der 'maintenance-status' ist (zur Zeit) 'author-maintained'.
+%%
+%% Das heißt u.a., die Dateien dürfen frei vertrieben werden,
+%% bei Änderungen (durch andere Personen als Paul Ebermann)
+%% ist aber der Name der Datei zu ändern.
+\NeedsTeXFormat{LaTeX2e}[2003/12/01]%
+\ProvidesPackage{gmdoc-enhance}[2009/02/20 v0.2 Verbesserungen fuer gmdoc.]%
+
+\RequirePackage{gmdoc}[2008/10/04]%
+
+\newcommand*{\InlineCommentsWithPercent}{%
+ \let\gmde@org@ifilrr = \ifilrr% Wir merken uns dir Original-Einstellung
+ \ilrrtrue% Wir schalten auf Flatter- statt Blocksatz für die
+ \let\gmd@percenthack\gmde@percenthack% Außerdem verwenden wir unsere
+}%
+\newcommand*{\normalInlineComments}{%
+ \let\ifilrr = \gmde@org@ifilrr% Wir setzen die Block/Flattersatz-Einstellung
+ \let\gmd@percenthack \gmde@org@percenthack% Dies setzen wir auf aufs
+}%
+\let \gmde@org@percenthack = \gmd@percenthack%
+\def\gmde@percenthack{%
+ \ifprevhmode%
+ \aftergroup\gmde@specialSpaces% Diese Zeile ist neu -- wir schalten
+ \aftergroup\gmde@kommentarStart% Das Original war hier
+ \else%
+ \aftergroup\gmd@narrcheckifds@ne%
+ \fi%
+}%
+
+\catcode`\ =\active%
+\def\gmde@activeSpace{ }%
+\catcode`\ =10%
+
+\def\gmde@specialSpaces{%
+ \catcode`\ =\active% Aktives Leerzeichen.
+ \@xa\let\gmde@activeSpace=\gmde@discrSpace% Und es soll die
+ \exhyphenpenalty=0% Das setzt die Strafen für Umbrüche an diesen
+ \hyphenpenalty=1000% Dafür stellen wir die Strafen für normale
+ \let\@codetonarrskip\gmde@codetonarrskip% Wir sorgen dafür, dass mit
+ \def\@tempa{gmde@hyphenchar-%
+ \@xa\string\the\font}% der Name für unsere zu definierende
+ % Kontrollsequenz. Er enthält den internen Namen der Schrift.
+ \@ifundefined{\@tempa}{%
+ \@xa\edef\csname \@tempa\endcsname{%
+ \the\hyphenchar\font }%
+ }{% Wenn wir es schon vorher definiert haben,
+ }%
+ \edef\gmde@hyphenreset{%
+ \hyphenchar\font=%
+ \@xa\noexpand%
+ \csname \@tempa\endcsname%
+ }%
+ \hyphenchar\font=-1 % Das ist
+}%
+
+\def\gmde@hyphenreset{}%
+
+\let\gmde@org@codetonarrskip = \@codetonarrskip%
+\let\gmde@codetonarrskip = \@codetonarrskip
+\g@addto@macro\gmde@codetonarrskip{\gmde@normalSpaces}%
+
+\def\gmde@kommentarStart{%
+ \hbox{{%
+ \@ifpackageloaded{color}{\color{gray}}{}% Falls das \pk{color}-Paket
+ \ttfamily\code@delim\quad}}%
+}%
+
+\def\gmde@discrSpace{%
+ \ifx\protect\@typeset@protect%
+ \ifinner%
+ \space% Wenn wir in einer inneren Box sind, soll das aktive
+ \else%
+ \ifhmode%
+ \unskip% Hmm, ich bin mir nicht ganz sicher, warum dieser
+ \discretionary{% Die "`Expansion"' dieses '\discretionary'-Objektes
+ }{\gmde@kommentarStart% Dafür taucht am Ende der vorherigen Zeile
+ }{% Falls kein Umbruch an dieser Stelle erfolgte, ist es
+ }%
+ ~% Jetzt setzen wir noch ein nicht-umbrechbares Leerzeichen. Falls
+ \else%
+ \space% Außerhalb des horizontalen Modus (d.h. im Mathe- und im
+ \fi%
+ \fi%
+ \afterfi{%
+ \gmde@gobbleActiveSpaces}% Am Ende fressen wir alle weiteren
+ \else%
+ \space% Falls wir nicht im Typeset-Modus sind, sondern etwa in eine Datei
+ \fi%
+}%
+\def\gmde@gobbleActiveSpaces{%
+ \@xa\@ifnextchar\gmde@activeSpace% Wir überprüfen, ob das
+ % nächste Token ein aktives Leerzeichen ist.
+ {% Falls ja, \dots
+ \@xa\gmde@gobbleActiveSpaces\@gobble% entsorgen wir es
+ % mit '\@gobble' und rufen uns dann selbst rekursiv auf.
+ }{}% Im anderen Fall machen wir gar nichts, womit die Rekursion
+ % beendet ist.
+}%
+\def\gmde@normalSpaces{%
+ \gmde@hyphenreset% Wir rufen das Makro auf, welches den '\hyphenchar' auf
+ \exhyphenpenalty=50 \hyphenpenalty=50 % Die Strafen erhalten auch ihren normalen Wert.
+ \@xa\let\gmde@activeSpace = \space% Das aktive Leerzeichen wird ein normales,
+ \catcode`\ = 10% und Leerzeichen sind ab jetzt nicht mehr
+ \let\@codetonarrskip = \gmde@org@codetonarrskip% Wir setzen auch dieses
+}%
+
+\newcommand*{\activateVisibleComments}{%
+ \let \gmd@narrcheckifds = \gmde@narrcheckifds%
+ \let \gmd@narrcheckifds@ne = \gmde@narrcheckifds@ne%
+ \let \gmd@eatlspace = \gmde@eatlspace%
+}
+\newcommand*{\setVisibleCommentChar}[1]{%
+ \let \gmde@visibleCommentChar = #1%
+}%
+
+\setVisibleCommentChar{!}%
+
+\newcommand*{\setVisibleCommentColor}{%
+ \@ifnextchar[\gmde@setVCColor@Opt%
+ \gmde@setVCColor@%
+}%
+\def\gmde@setVCColor@#1{%
+ \def\gmde@visibleCommentColor{\@ifpackageloaded{color}{\color{#1}}{}}%
+}%
+\def\gmde@setVCColor@Opt[#1]#2{%
+ \def\gmde@visibleCommentColor{\@ifpackageloaded{color}{\color[#1]{#2}}}%
+}%
+
+\let\gmde@visibleCommentColor\@empty
+
+\let\gmde@org@narrcheckifds = \gmd@narrcheckifds
+\let\gmde@org@narrcheckifds@ne = \gmd@narrcheckifds@ne
+
+\def\gmde@narrcheckifds{%
+ \gmde@narrcheckifds@ne{\ignorespaces}%
+}%
+\def\gmde@narrcheckifds@ne#1{%
+ \@ifnextchar\gmde@visibleCommentChar% Falls das nächste Zeichen
+ \gmde@deactivatedCode% setzen wir den Rest als deaktivierten Code.
+ {\gmde@org@narrcheckifds@ne{#1}}% Ansonsten rufen wir den
+}%
+
+\def\gmde@deactivatedCode{%
+ \gmd@textEOL% Wir tun so, als wäre das eine neue Zeile.
+ \gmde@deactivatedcodePrefix% Das wird als erstes Token an '\gmd@textEOL'
+ % übergeben. Dadurch, dass es nur eines ist, wird es nicht als '%'
+ % erkannt, sondern (nachdem wieder in den Verbatim-Modus gewechselt wurde)
+ % ausgegeben.
+}
+\def\gmde@deactivatedcodePrefix{%
+ \gmde@visibleCommentColor%
+ \code@delim% Zunächst geben wir ein '%'-Zeichen aus.
+ \@afternarrgfalse\@aftercodegtrue\@codeskipputgtrue% Diese boolean-Werte
+ \@firstoftwo% Und jetzt entsorgen wir das zweite
+}%
+
+\def\gmde@eatlspace#1{%
+ \ifx\gmd@texcodespace#1% Wenn das nächste Zeichen ein Leerzeichen, so \dots
+ \advance\gmd@ldspaceswd by \gmd@spacewd% erhöhen wir die Einrückung,
+ \afteriffifi{\gmde@eatlspace}% \dots wiederholen das ganze.
+ \else%
+ \if\code@delim\@nx#1% Wenn das nächste Zeichen '%' ist \dots
+ \afterfifi{%
+ \@ifnextchar\gmde@visibleCommentChar{% \dots und das folgende Zeichen
+ \let\gmd@charbychar=\gmde@charbychar% Wir merken uns also, dass
+ % dessen Präfix gezeigt werden muss, \dots
+ \gmd@typesettexcode% \dots und rufen die normale Code-Formatierungs-Funktion auf, wobei das '!' dabei weggeworfen wird.
+ }{%
+ \gmd@ldspaceswd=\z@%
+ \gmd@continuenarration#1%
+ }%
+ }%
+ \else%
+ % Ist das nächste Zeichen weder ' ' noch '%', so fängt hier der
+ % Quelltext an.
+ \afterfifi{\gmd@typesettexcode#1}%
+ \fi%
+ \fi%
+}%
+
+\let\gmde@org@charbychar\gmd@charbychar%
+
+\def\gmde@charbychar{%
+ \let\gmd@charbychar=\gmde@org@charbychar
+ \gmde@deactivatedcodePrefix
+ \gmd@charbychar%
+}%
+
+
+
+ \AtBeginDocument{\QueerCharOne}% \pk{inputenc} mit \pk{utf8x} definiert
+
+\newcommand*{\normalInput}[1]{%
+ % Wir packen alles in eine Gruppe, dann ist das Wiederherstellen der
+ % Einstellungen nicht so schwer.
+ \begin{StraightEOL}%
+ \gmde@normalSpaces%
+ \catcode`\%=14%
+ \InputIfFileExists{#1}{}{}%
+ \end{StraightEOL}%
+}%
+
+\let\gmd@docstripshook\@empty%
+
+\DeclareOption{visible}{%
+ \setVisibleCommentColor{blue}%
+ \activateVisibleComments%
+}%
+\DeclareOption{inline}{%
+ \InlineCommentsWithPercent%
+}%
+\ProcessOptions*\relax%
+\endinput
+%%
+%% End of file `gmdoc-enhance.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index d8e3181d7b7..6c5a25eb2a6 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -105,7 +105,7 @@ my @WorkingTLP = qw(
genmisc genmpage gentle geometry germbib
gfsartemisia gfsbodoni gfscomplutum gfsdidot gfsneohellenic
gfsporson gfssolomos
- ginpenc gloss glossaries gmdoc gmeometric
+ ginpenc gloss glossaries gmdoc gmdoc-enhance gmeometric
gmiflink gmutils gmverb gmverse gnuplottex gost graphics
graphicx-psmin greek-inputenc greekdates greenpoint
gu GuIT guitar
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 07e286ffc94..035b6bdcdbb 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -217,6 +217,7 @@ depend ginpenc
depend gloss
depend glossaries
depend gmdoc
+depend gmdoc-enhance
depend gmeometric
depend gmiflink
depend gmutils
diff --git a/Master/tlpkg/tlpsrc/gmdoc-enhance.tlpsrc b/Master/tlpkg/tlpsrc/gmdoc-enhance.tlpsrc
new file mode 100644
index 00000000000..2c8aae19a52
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/gmdoc-enhance.tlpsrc
@@ -0,0 +1,2 @@
+name gmdoc-enhance
+category Package