summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/gmdoc-enhance
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-02-24 01:38:53 +0000
committerKarl Berry <karl@freefriends.org>2009-02-24 01:38:53 +0000
commitd5c82395b8e4546ed26c18fb456f4653b5753e49 (patch)
tree603062e042266abaed94a820ba53313ff3786462 /Master/texmf-dist/tex/latex/gmdoc-enhance
parent4b8a8e3619a77ff4d53e491418d36958a2461cb0 (diff)
new latex package gmdoc-enhance (23feb09)
git-svn-id: svn://tug.org/texlive/trunk@12221 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/gmdoc-enhance')
-rw-r--r--Master/texmf-dist/tex/latex/gmdoc-enhance/gmdoc-enhance.sty241
1 files changed, 241 insertions, 0 deletions
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'.