summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/nicetext
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-02-26 00:51:49 +0000
committerKarl Berry <karl@freefriends.org>2009-02-26 00:51:49 +0000
commitb3fd7332ea18e6172db25318716832397b625ddd (patch)
tree27ded3c17ec00519723a3a8b29e84680e60bedd4 /Master/texmf-dist/tex/latex/nicetext
parent951ab8ce2fe8420509db19af0937bdddb314b1de (diff)
new latex package nicetext (24feb09)
git-svn-id: svn://tug.org/texlive/trunk@12236 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/nicetext')
-rw-r--r--Master/texmf-dist/tex/latex/nicetext/niceverb.sty210
-rw-r--r--Master/texmf-dist/tex/latex/nicetext/wiki.sty376
2 files changed, 586 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
new file mode 100644
index 00000000000..c82ae3deaa0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
@@ -0,0 +1,210 @@
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{niceverb}[2009/02/21
+ minimize \string\verb\space code (UL)]
+
+%% Copyright (C) 2009 Uwe Lueck,
+%% http://www.contact-ednotes.sty.de.vu
+%% -- author-maintained in the sense of LPPL below --
+%%
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
+%% version 1.3a of the License, or any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%% Please report bugs, problems, and suggestions via
+%%
+%% http://www.contact-ednotes.sty.de.vu
+%%
+%% === Switching category codes ===
+\providecommand{\CatCode}{\catcode`}
+% \providecommand*{\MakeActive}[1]{\CatCode#1\active}
+\providecommand*{\MakeAlign} [1]{\CatCode#14\relax}
+\providecommand*{\MakeLetter}[1]{\CatCode#111\relax}
+\providecommand*{\MakeOther} [1]{\CatCode#112\relax}
+\providecommand*{\MakeSub} [1]{\CatCode#18\relax}
+
+\newcommand*{\MakeActiveLet}[2]{%% cf. \@sverb & \do@noligs
+ \CatCode#1\active
+ \begingroup
+ \lccode`\~`#1\relax \lowercase{\endgroup \let~#2}}
+
+\MakeLetter\_
+
+\newcommand*{\make_iii_other}{\MakeOther\\\MakeOther\{\MakeOther\}}
+
+%% === Parsimonious version of &\verb ===
+\newcommand*{\begin_min_verb}{%
+ \relax \ifmmode \hbox \else \leavevmode\null \fi
+ %% standard, for $$...$$
+ \bgroup \tt %%%\let\do\MakeOther \dospecials
+ \MakeLetter\_\MakeLetter\@}
+\newcommand*{\SimpleVerb}[1]{%
+ %% mainly avoid \verb's noligs list which overrides definitions
+ %% of some active characters, while cmtt doesn't have any
+ %% ligatures anyway.
+ \ifx\protect\@typeset@protect
+ \begin_min_verb \make_iii_other \MakeActiveLet#1\egroup
+ \else \string\SimpleVerb \string#1\fi}
+
+%% === Single quotes make code ===
+\newcommand*{\lq_verb}{%
+ \ifx\protect\@typeset@protect
+ \expandafter \lq_double_test
+ \else \lq \fi}
+% \ifcat\noexpand'\noexpand~%
+% \expandafter\expandafter\expandafter
+% \protect_corresp_quotes
+% \else
+% \RqVerb
+% \fi
+% \fi}
+\newcommand*{\lq_double_test}{%
+ %% test settles next catcode, better switch to ``other''
+ %% in advance:
+ \begingroup \let\do\MakeOther \dospecials
+ \futurelet\let_token \lq_double_decide}
+\newcommand*{\lq_double_decide}{%
+ \ifx\let_token\lq_verb
+ \endgroup
+ \lq\lq \expandafter \@gobble
+ %% corresponding right quotes will become ``other'' due to
+ %% having no space at the left. TODO to be changed with
+ %% wiki.sty
+ \else
+ \endgroup
+% \expandafter \rq_verb
+ \expandafter \SimpleVerb \expandafter \'%
+ \fi}
+% \newcommand*{\rq_verb}{\SimpleVerb\'}
+% \AtBeginDocument{\MakeActiveLet\`\RqVerb}
+\AtBeginDocument{\MakeActiveLet\`\lq_verb}
+ %% Strings referred to will be code
+ %% TODO to be changed with wiki.sty
+
+%% === Single mark for reference to commands ===
+\newcommand*{\CmdSyntaxVerb}{%
+ \ifx\protect\@typeset@protect
+ \expandafter \cmd_syntax_verb
+ \else %% thinking of .aux only
+ \string\CmdSyntaxVerb \expandafter \string
+ \fi}
+\newcommand*{\cmd_syntax_verb}[1]{%
+ \begin_min_verb \string#1\futurelet\let_token \after_cs}
+
+\AtBeginDocument{\MakeActiveLet\&\CmdSyntaxVerb}
+ %% not needed with \Auto... OTHERWISE useful in args!
+ %% TODO \MakeAmpCmdSyntax
+ %% TODO \let\endcell& (wie \endline, \endgraf) \MakeEndCell
+\newcommand*{\after_cs}{%
+ \ifcat\noexpand\let_token a\egroup \space
+ \else \expandafter \decide_verb \fi}
+\newcommand*{\test_more_verb}{\futurelet\let_token \decide_verb}
+\newcommand*{\decide_verb}{%
+% \show\let_token
+ \jumpteg_on_with\bgroup\braces_verb
+ \jumpteg_on_with[\brackets_verb
+ \jumpteg_on_with*\star_verb
+ \egroup}
+ %% CAUTION/TODO wrong before (... if cmd without arg
+ %% use \ then or choose usual verb...
+ %% or \MakeLetter\( etc. ... or \xspace
+\newcommand*{\jumpteg_on_with}[2]{%
+ \ifx\let_token#1\do_jumpteg_with#2\fi}
+ %% TODO cf. xfor, xspace (break@loop);
+ %% \DoOrBranch#1...#1 or so
+\def\do_jumpteg_with#1#2\egroup{\fi#1}
+\def\braces_verb#1{\string{#1\string}\test_more_verb}
+\def\brackets_verb[#1]{[#1]\test_more_verb}
+\def\star_verb*{*\test_more_verb}
+
+
+\makeatletter
+
+%% === Escape makes meta-code ===
+\DeclareRobustCommand*{\BuildCsSyntax}{%
+ \futurelet\let_token \build_cs_syntax_sp}
+\newcommand*{\build_cs_syntax_sp}{%
+ \ifx\let_token\@sptoken \else %% TODO ^^M!?
+ \expandafter \start_build_cs_syntax
+ \fi}
+\newcommand*{\start_build_cs_syntax}[1]{%
+ \edef\string_built{\string#1}%% #1 may be active
+ \MakeLetter\_\MakeLetter\@%% CAUTION, cf. ...
+ \test_more_cs}
+\newcommand*{\test_more_cs}{%
+ \futurelet\let_token \decide_more_cs}
+\newcommand*{\decide_more_cs}{%
+ \ifcat\noexpand\let_token a\expandafter \add_to_cs
+ \else
+ \MakeSub\_\MakeOther\@%
+ \expandafter \in@ \expandafter
+ {\csname \string_built \expandafter \endcsname
+ \expandafter}\expandafter{\niceverbNoVerbList}%
+ \ifin@
+ \csname \string_built
+ \expandafter\expandafter\expandafter \endcsname
+ \else
+ \begin_min_verb \@backslashchar\string_built
+ \expandafter\expandafter\expandafter \test_more_verb
+ \fi
+ \fi}
+ %% TODO such \if nestings with ifthen!?
+ %% cf.:
+% \let\let_token,\typeout{\meaning\let_token}
+ %% TEST TODO fuer xspace!? (\ifin@)
+\newcommand*{\add_to_cs}[1]{%
+ \edef\string_built{\string_built#1}\test_more_cs}
+\newcommand*{\AutoCmdSyntaxVerb}{\MakeActiveLet\\\BuildCsSyntax}
+ %% TODO or \niceverbswitch...
+
+\newcommand*{\EndAutoCmdSyntaxVerb}{\CatCode\\\z@}
+\newcommand*{\NormalCommand}{} \let\NormalCommand\@nameuse
+%% Were tests:
+% \futurelet\LetToken\relax \relax
+% \show\LetToken \typeout{\ifcat\noexpand\LetToken aa\else x\fi}
+
+\newcommand*{\niceverbNoVerbList}{%
+ \begin\end\item\verb\EndAutoCmdSyntaxVerb\NormalCommand
+ \section\subsection}%% TODO!?
+
+%% === Meta-variables ===
+\def\niceverb_meta#1>{%
+ \mbox{\normalfont\itshape $\langle$#1\/$\rangle$}}
+ %% TODO offer without angles as well
+\AtBeginDocument{\MakeActiveLet\<\niceverb_meta}
+ %% difference to ltxguide.cls: also outside verbatim
+
+%% === Hash mark must be code ===
+\newcommand*{\param_verb}[1]{{\tt\##1}}
+\AtBeginDocument{\MakeActiveLet\#\param_verb}
+
+%% === Single right quote for &\sf ===
+%% TODO fails in parentheses due to preserving apostrophes
+\newcommand*{\niceverb_rq_sf}{%
+ \ifx\protect\@typeset@protect
+ \expandafter \niceverb_rq_sf_test
+ \else \rq \fi}
+ %% introduced another macro just to avoid more sequences
+ %% of \expandafter ...
+\newcommand*{\niceverb_rq_sf_test}{%
+ \ifhmode \ifdim\lastskip>\z@
+ \expandafter\expandafter\expandafter \niceverb_rq_sf_exec
+ %% TODO but after `('!? make \( active, also for \after_cs!?
+ \else \rq \fi
+ \else \ifvmode
+ \expandafter\expandafter\expandafter \niceverb_rq_sf_exec
+ \else \rq \fi
+ \fi}
+{\CatCode\'\active \gdef\niceverb_rq_sf_exec#1'{\textsf{#1}}}
+%% TODO to be changed with wiki.sty:
+\AtBeginDocument{\MakeActiveLet\'\niceverb_rq_sf}
+
+%% TODO \niceverbswitch{<mode>}{<on/off>} (bzw. Doku ohne {})
+
+%% === Leave package mode ===
+\makeatother
+\MakeSub\_
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/nicetext/wiki.sty b/Master/texmf-dist/tex/latex/nicetext/wiki.sty
new file mode 100644
index 00000000000..6fe7b4e4b46
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nicetext/wiki.sty
@@ -0,0 +1,376 @@
+\ProvidesPackage{wiki}[2008/07/02 v0.2 LaTeX through Wiki markup]
+%% <- vorige Aenderungen gg. 2008/06/25 verworfen
+%%
+%% == Legal ==
+%% (C) 2008 Uwe Lueck http://contact-ednotes.sty.de.vu
+%% License: http://www.latex-project.org/lppl/
+%% -- AUTHOR-MAINTAINED, NO WARRANTY!
+%%
+%% == Features ==
+%%
+%% The `wiki' package enables LaTeX users to use some of the
+%% markup used in editing Wikipedia pages, cf.
+%%
+%% http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet
+%%
+%% or German:
+%%
+%% http://de.wikipedia.org/wiki/Hilfe:Bearbeitungshilfe
+%% http://de.wikipedia.org/wiki/Hilfe:Textgestaltung
+%%
+%% Advantages of such a kind of markup are:
+%%
+%% 1. easier and faster to type than LaTeX code;
+%%
+%% 2. intuitive, understandable at a glance;
+%%
+%% 3. in reading the source code of the document,
+%% the markup doesn't much distract from the ''text''
+%% to be printed.
+%%
+%% There is a binary `easylatex' available on CTAN which is more
+%% powerful than the `wiki' package; the idea here is that a ''macro
+%% package'' doing something similar is easier to use and to customize.
+%%
+%%
+%% === What the Package Supports ===
+%%
+%% 1. ''Italics'' are marked up by surrounding pairs of apostrophes,
+%% '''boldface''' needs one apostrophe more on each side.
+%% Boldface and italics may be nested or overlap.
+%% (This endangers quoting, but I have dealt with it.)
+%%
+%% 2. Surrounding ``equals'' symbols (`=') mark up section headings
+%% etc.: `== Section ==', `=== Subsection ===', down to
+%% `===== Subparagraph ====='.
+%%
+%% 3. If a line starts with `*', it becomes an item in an
+%% `itemize' environment. Likewise, `#' creates an `enumerate'
+%% environment, and `;' makes an item in a `discription'
+%% environment (differs from Wiki! -- since I don't understand
+%% what the Wiki version is good for). `:' makes a `quote' --
+%% while on Wikipedia instead is used for comments on talk
+%% pages. But it is also used for indented math displays,
+%% so it may be combined with $...$ here.
+%% An indented line is typeset ''verbatim''. Each of these
+%% environments is ended by a code line without leading blank
+%% spaces.
+%%
+%%
+%% === Limitations ===
+%%
+%% 1. The markup ``language'' provided here replaces a few most
+%% common LaTeX commands only in their most simple versions.
+%% (Yet I think that already this makes the code more readable;
+%% the more special cases are very rare.) E.g., it's not
+%% possible to suppress the italic correction as with
+%% `\textit{...\nocorr}'. However, in ``normal'' cases it
+%% should be possible to use the more powerful LaTeX markup
+%% mixed with ``Wiki'' markup.
+%%
+%% 2. The parsing algorithms employed here differ in outcome to
+%% those of Wikipedia in difficult cases.
+%%
+%% 3. Tables, nesting lists, links, Wiki templates and tags
+%% are not supported -- and I don't expect that I can afford
+%% improving this soon!
+%%
+%% 4. I still have encountered problems that I didn't understand ...
+%%
+%% == Package Options and User Commands ==
+%%
+%% \usepackage[<options>]{wiki}, of course. There are <options>
+%% `noEnvironments', `noFonts', `noHeadings' giving up
+%% functionality for lists etc., for italics and boldface,
+%% for section headings etc., respectively.
+%%
+%% There are commands \wikimarkup, \wikiEnvironments,
+%% \wikiFonts, \wikiHeadings to turn respective functionality on
+%% (unless disabled by package option). \nowikimarkup,
+%% \nowikiEnvironments, \nowikiFonts, \nowikiHeadings turn them
+%% off.
+%%
+%% '''Vital:''' The package does ''not'' execute \wikimarkup
+%% because this would have strange effects, e.g., packages
+%% loaded later may break. The user must put activating
+%% commands into the `document' environment, maybe just preceding
+%% the first heading.
+%%
+%% Dangers to be avoided by \nowiki... are:
+%% * \wikiHeadings (which also is executed by \wikimarkup)
+%% disables TeX assignments using `='.
+%% * \wikiEnvironments (executed by \wikimarkup) executes macros
+%% at every end of a code line (containing no comment marke),
+%% and it tries to typeset a following line verbatim if it is
+%% indented.
+%%
+%%
+%% == Implementation and Further Remarks ==
+
+%% === Commands for Category Codes ===
+% \RequirePackage{fdcodes}
+ %% <- TODO -- or do away ... ->
+\providecommand*\AssignCatCode[2]{\catcode`#1=#2\relax}
+\providecommand*\MakeActive[1]{\catcode`#1=\active}
+% \providecommand*\MakeLetter[1]{\catcode`#1=11\relax}
+ %% <- Declaring characters usable in command strings
+ %% Todo: print arrow indicators like ``->'' as real arrows
+\providecommand*\MakeOther [1]{\catcode`#1=12\relax}
+
+\AssignCatCode{\_}{11}
+% \MakeLetter\_ %% own macros somewhat LaTeX3-style
+%% Todo \newcommand <-> \def !?
+
+%% === Package Options ===
+\DeclareOption{noFonts} {\let\wikiFonts \empty
+ \let\nowikiFonts \relax}
+\DeclareOption{noHeadings} {\let\wikiHeadings \empty
+ \let\nowikiHeadings \relax}
+\DeclareOption{noEnvironments}{\let\wikiEnvironments \empty
+ \let\nowikiEnvironments\relax}
+\DeclareOption{noVerbatim}{%
+ \def\W_active_return{ \futurelet\@let@token\W_on_firsttoken}}
+ %% \[no]wikiVerbatim must wait, too complex 2008/07/01
+\ProcessOptions
+
+%% === Auxiliaries for both Fonts and Headings ===
+
+ \@tempswafalse
+ \ifx\wikiFonts \empty \else \@tempswatrue \fi
+ \ifx\wikiHeadings\empty \else \@tempswatrue \fi
+ \if@tempswa
+\def\W_start_samecnt{\futurelet\@let@token\W_process_samecnt}
+\def\W_init_samecnt#1#2#3{%
+ \let\W_samesymb =#1%% repeated symbol
+ \def\W_repllist {#2}% replacing strings
+ \def\W_incase_all{#3}% final replacement
+ \def\W_next##1{\W_start_samecnt}}
+\def\W_process_samecnt{%
+ \expandafter \W_splitlist \W_repllist \@nil
+ \W_next}
+\def\W_splitlist#1#2\@nil{%
+ \def\W_repllist{#2}%
+ \ifx\@let@token\W_samesymb
+ \ifx\W_repllist\empty \def\W_next##1{\W_incase_all}\fi
+ \else
+ \def\W_next{#1}%
+ \fi}
+ \fi
+
+%% === Italics and Boldface ===
+
+%% ==== Code ====
+ \ifx\wikiFonts\empty \else
+\def\W_toggle#1#2#3{\def#1{\W_toggle#1{#3}{#2}}#2}
+%% Cf. LaTeX's `\DeclareTextFontCommand':
+\def\W_bf_toggle{%
+ \W_toggle\W_bf_toggle{\bfseries\W_maybe@ic}{\mdseries\W_maybe@ic}}
+\def\W_maybe@ic{\futurelet\@let@token\W_maybe_maybe@ic}
+\def\W_maybe_maybe@ic{%
+ \ifx\@let@token\W_rq_robust \else \expandafter \maybe@ic \fi}
+\def\W_it_toggle{%
+ \W_toggle\W_it_toggle{\itshape\maybe@ic}{\upshape\maybe@ic}}
+%% <- Doesn't support \nocorr.
+
+\def\W_rq_robust{%% will become meaning of single right quote.
+ \ifx\protect\@typeset@protect
+ \ifmmode \rq \else
+ \W_init_samecnt{\W_rq_robust}%
+ {\rq\W_it_toggle}%
+ {\W_bf_toggle}%
+ \expandafter\expandafter\expandafter \W_start_samecnt
+ \fi
+ \else \rq \fi}
+%% Remark:
+%% LaTeX's \rq expands to ``other'' apostrophe:
+\CheckCommand*\rq{'} %% Must be before `\catcode`\'
+%% \wikiFonts -- restoring `...' and ``...'' -- + \nowikiFonts:
+%% requiring single left quote \active as well:
+\CheckCommand*{\lq}{`}
+\MakeActive\`\MakeActive\'
+\def\wikiFonts{%
+ \MakeActive\`\MakeActive\'%
+ \def`##1'{\lq ##1\rq}%
+ \let'\W_rq_robust}
+\def\nowikiFonts{\MakeOther`\MakeOther\'}
+\MakeOther\` \MakeOther\'
+ \fi
+
+%% ==== Remarks ====
+%% Wiki: a''b'''cd typesets `b' in italic with an apostrophe,
+%% a''b'''c'''d typsets all after `a' in italic with bold `b'.
+%% One might use make a difference depending on \lastskip.
+%% Wikimedia seems to read more ahead, maybe entire paragraphs.
+%% %% <- Todo: try here!? (Test!)
+%%
+%% Todo: Variants using \textit and \textbf (option, switching
+%% command)
+%%
+%% german.sty's "` and "' are not affected.
+%%
+%% Merit: ``...'' resembles ''...''; indeed Wikipedia Guidelines
+%% demand to think which of both is appropriate in a
+%% certain situation.
+
+%% A test about \ifx with active characters:
+%\catcode`\`=\active \let`\rq \let'\rq
+%\ifx`'\typeout{OHHH}\else \typeout{OCH}\fi %% OHHH
+%% <- how typeset code commented out!? (^!? diff. comment char.!?)
+%% indent %! TODO or no space after %!! TODO!!
+%% xEDIT: dann Alt C/D fuer Kommentar/Dok./auskomm. (!?) !!
+
+%% === Section Headings ===
+
+ \ifx\wikiHeadings\empty \else
+\providecommand*{\normalequals}{=}
+\MakeActive\=
+\def\wikiHeadings{\MakeActive\=\let=\W_eq_robust}
+\def\nowikiHeadings{\MakeOther\=}
+\def\W_eq_robust{%
+ \ifx\protect\@typeset@protect
+ %% in case without math mode in heading
+ \ifmmode \normalequals \else
+ \W_init_samecnt{\W_eq_robust}%
+ {\normalequals\W_sec\W_subsec\W_subsubsec
+ \W_para\W_subpara}%
+ {\W_bf_toggle}%
+ \expandafter\expandafter\expandafter \W_start_samecnt
+ \fi
+ \else \normalequals \fi}
+
+\def\W_sec #1=={\section{#1}}
+\def\W_subsec #1==={\subsection{#1}}
+\def\W_subsubsec #1===={\subsubsection{#1}}
+\def\W_para #1====={\paragraph{#1}}
+\def\W_subpara #1======{\subparagraph{#1}}
+
+\MakeOther\=
+ \fi
+
+%% Todo: think of reimplementation by the start-line
+%% mechanism which is going to be used for lists.
+
+%% === Environments ===
+%%
+ \ifx\wikiEnvironments\empty \else
+
+%% ==== Prepare Dealing with Indents ====
+
+\MakeActive{\^^M}%
+\def\wikiEnvironments{\MakeActive{\^^M}\let^^M\W_active_return}%
+\def\nowikiEnvironments{\AssignCatCode{\^^M}{5}}%
+\nowikiEnvironments%% TeX <return> restored
+
+\MakeActive{\ }%
+\@ifundefined{W_active_return}{%
+\expandafter\def\expandafter\W_active_return\expandafter{%
+\space\catcode`\ \active\let \W_indent%
+%% <- \W_indent will start verbatim
+\futurelet\@let@token\W_on_firsttoken}%
+}{}%% end of \@ifundefined which is true without noVerbatim
+%% Much doubling for saving time (!??):
+\expandafter\def\expandafter\W_list_activereturn\expandafter{%
+\space\catcode`\ \active\let \W_restore_space%
+%% <- \W_indent will start verbatim
+\futurelet\@let@token\W_maybe_newitem}%
+% \def\W_restore_space{\catcode`\ 10\relax}%
+ %% <- was vital for a math display in a list ->
+\def\W_restore_space{\catcode`\ 10\ignorespaces}%
+\W_restore_space%% TeX blank space restored
+
+%% ==== Start and End List-Like Environments ====
+
+%% \W_on_firsttoken may be edited (preamble or .cfg):
+\def\W_on_firsttoken{%
+ % \show\@let@token
+ \W_restore_space
+ \let\W_next\relax %% must be before \W_skip... works
+ \ifx\@let@token\W_active_return \expandafter \W_par \fi
+ %% <- found by guessing/with \show\@let@token
+ \let\W_item\item
+ \W_on_startenv{*}{itemize}%
+ \W_on_startenv{\W_hash}{enumerate}%
+ \W_on_startenv{;}{description}%
+ \let\W_item\relax %% must precede `quote'
+ \W_on_startenv{:}{quote}%% instead of quotation 2008/07/01
+ \W_next}
+\let\W_hash=#
+\def\W_par#1\W_next{\par}
+\def\W_skiprest_item#1\W_next#2{\W_item}
+
+\MakeActive{\^^M}%
+\def\W_on_startenv#1#2{%
+ \ifx#1\@let@token%
+ \begin{#2}%
+ \let\W_itemsymbol#1%
+ \let^^M\W_list_activereturn%
+ \expandafter \W_skiprest_item%
+ \fi}%
+\nowikiEnvironments%
+
+\def\W_maybe_newitem{%
+ \W_restore_space
+ \ifx\@let@token\W_itemsymbol
+ \expandafter \W_gobbling_item
+ \else
+ \ifx\@let@token\W_restore_space
+ \else
+ \ifx\@let@token\W_list_activereturn
+ \par
+ \else
+ \edef\W_next{\noexpand\end{\@currenvir}}%
+ \W_next
+ \fi
+ \fi
+ \fi}
+\def\W_gobbling_item#1{\item}
+
+%% ==== Verbatim Environment ====
+
+\def\W_indent{\begin{W_verbatim}}
+\def\W_verbatim{%
+ \let\obeylines\W_obeylines
+ \@verbatim \frenchspacing\@vobeyspaces}
+\let\endW_verbatim\endverbatim
+
+\MakeActive{\^^M}
+\def\W_obeylines{%
+ \catcode`\^^M\active%
+ \def^^M{\par\futurelet\@let@token\W_check_verbcont}}%
+\nowikiEnvironments%
+
+\def\W_check_verbcont{%
+ \ifx\@let@token\@xobeysp
+ \expandafter \@gobble %% gobble one space
+ \else
+ \def\W_next{\end{W_verbatim}}%
+ \expandafter \W_next
+ \fi}
+
+%% TODO: enable user to switch between environment ``encodings''
+%% or to disable some of them (edit \W_on_firsttoken)
+
+ \fi %% from \ifx\wikiEnvironments \else
+
+
+%% === Turning Wiki Markup On and Off ===
+
+\def\wikimarkup{\wikiFonts\wikiHeadings\wikiEnvironments}
+\def\nowikimarkup{%
+ \MakeOther\`\MakeOther\'\MakeOther\=\AssignCatCode{\^^M}{5}}
+
+% \wikimarkup %% strange effects here, to be put into document
+
+\AssignCatCode\_{8}
+\endinput
+
+%% todo: tables, links, templates, (pseudo-)html-tags ...
+%% TODO: credits: easylatex etc.
+%% TODO: useful for: ... intuitive markup, ``poor man's WYSIWYG'',
+%% ASCII-WYSIWYG.
+%% Todo: improve Wiki markup: ``tab'' indents instead of `:'
+%% as in testing for end of list: after finding one
+%% leading space, test for another.
+
+
+