From ee53eac199e12fb91859fd18a43dd506ff75e3a9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 20 Apr 2009 22:50:28 +0000 Subject: nicetext update (20apr09) git-svn-id: svn://tug.org/texlive/trunk@12766 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/nicetext/fifinddo.tex | 290 ++++++++++++++++++ .../texmf-dist/source/latex/nicetext/makedoc.cfg | 57 ++++ .../texmf-dist/source/latex/nicetext/makedoc.tex | 214 +++++++++++++ Master/texmf-dist/source/latex/nicetext/mdcorr.cfg | 15 + .../texmf-dist/source/latex/nicetext/mkfddoc.tex | 21 ++ .../texmf-dist/source/latex/nicetext/niceverb.tex | 331 +++++++++++++++++++++ .../texmf-dist/source/latex/nicetext/wikicheat.tex | 148 +++++++++ 7 files changed, 1076 insertions(+) create mode 100644 Master/texmf-dist/source/latex/nicetext/fifinddo.tex create mode 100644 Master/texmf-dist/source/latex/nicetext/makedoc.cfg create mode 100644 Master/texmf-dist/source/latex/nicetext/makedoc.tex create mode 100644 Master/texmf-dist/source/latex/nicetext/mdcorr.cfg create mode 100644 Master/texmf-dist/source/latex/nicetext/mkfddoc.tex create mode 100644 Master/texmf-dist/source/latex/nicetext/niceverb.tex create mode 100644 Master/texmf-dist/source/latex/nicetext/wikicheat.tex (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/nicetext/fifinddo.tex b/Master/texmf-dist/source/latex/nicetext/fifinddo.tex new file mode 100644 index 00000000000..d41904d3558 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/fifinddo.tex @@ -0,0 +1,290 @@ +\ProvidesFile{fifinddo.tex}[2009/04/15 documentation for `fifinddo'] +\title{\textsf{fifinddo}\\---\\Filtering \TeX(t) Files by \TeX} +\author{Uwe L\"uck\,---\,{\tt http://contact-ednotes.sty.de.vu}} +\listfiles +\RequirePackage{fifinddo} %% otherwise it may remain local +\input{mkfddoc} +\documentclass{article} +\usepackage{substr} %% for failure examples +\input{makedoc.cfg} +\begin{document} +\maketitle + +\begin{flushright}\small\it FIDO, FIND!\\or:\\FIND FIDO!\\oder:\\FIFI, + SUCH!\end{flushright} +\begin{abstract}\noindent\hspace{1sp}%% for niceverb-apostrophe +'fifinddo' starts implementing parsing of plain text or \TeX\ files +using \TeX, generalizing the philosophy behind 'docstrip', +based on how \TeX\ reads macro arguments. +Rather than typsetting the edited input stream immediately, +results are written to another file, +in the first instance as input for \TeX. +Rather than presenting a ``complete study'' of a computer-scientific +idea, it aims at practical applications. +The main one at present is '\mbox{makedoc}' which removes certain comment +marks from package files and inserts listing commands. +Parsing macros are not defined anew at every input chunk, +but once before a file is processed. +This also allows for \emph{expandable} sequences of replacements, +e.g., with `txt'$\to$\TeX\ functionality. +The method of testing for substrings is carefully discussed, +revealing an earlier mistake shared with 'substr.sty' +and \LaTeX's internal `\in@'. +\end{abstract} +\tableofcontents + +\section{Introduction: The Gnome of the Aim} +\subsection{Parsing by \TeX---are you mad?} +The package name 'fifinddo' is a &\listfiles-compatible abbreviation +of \lq file-find-do\rq\footnote{\lq file\rq\ possibly for ``searching + \TeX(t) files'' (I don't remember my thoughts!), + while there were requests for doing replacements on + \LaTeX\ \emph{environments} on 'texhax'. However, the package might + be enhanced in this direction $\dots$ so the name may be wrong + $\dots$ but now I like it so much .\,.\,. Or the reason was that + results are written to a \emph{separate file}, not typeset + immediately.---Let me also mention that \emph{\lq Fifi\rq} (as the + package name starts) is a kind of German equivalent to the + ``English'' \emph{\lq Fido\rq}, or may have been.} +(or think of \lq if found do\rq). +'fifinddo' implements (or aims at) general parsing +(extracting, replacing [converting], expanding, \dots) +using \TeX\ where 'texhax' posters strongly urge to use 'sed', +'awk', or 'Perl'. +'fifinddo''s opposed rationales are: +\begin{itemize} +\item It works instantly on any \TeX\ installation. + (\emph{Restrictions:} Some \TeX\ versions &\write certain hex + codes for certain characters, cf.\ \TeX book p.~45, + I have seen this with PC\TeX. However, some applications of + 'fifinddo' are nothing but technical steps where you will read + the result files rarely anyway. And I have not yet explored + extended encodings.) +\item You can apply and customize it like any \TeX\ macros, knowing + just \TeX\ (or even only the documentation of some user-friendly + extension of 'fifinddo'), without the need of learning any + additional script language. +\item The syntax of usual utilities (e.g., ``wildcards'') + is sometimes difficult with \emph{\TeX} files + with all their backslashes, square brackets, stars, + question marks \dots +\end{itemize} +% +At least the first item is just the philosophy of the 'docstrip' program, +standard for installing \TeX\ packages; +and while I am typing this, I find at least 14 other similar packages +in J\"urgen Fenn's \emph{Topic Index} of the \emph{\TeX\ Catalogue:} +% \begin{quote}\small +\[\texttt{%%%\small + http://mirror.ctan.org/help/Catalogue/bytopic.html\string#parsingfiles}\] +% \end{quote} +(Some of them may have been \emph{reactance} to 'texhax' and other +postings urging not to try something like this; some seem just to be +celebrations of the power of \TeX---yes, celebrate!) + +Actually, \TeX's mechanism of collecting macro arguments is hard-wired +parsing at quite a high level. \LaTeX\ hides this from +``simple-minded'' users by a convention \emph{not} to use that full +power of \TeX\ for \emph{end-user macros}. +\emph{Internally}, \LaTeX\ \emph{does} use it in reading +lists of options and file dates as well as to implement certain +`FOR'- and `WHILE'-like loop programming structures. +\LaTeX's `\in@'/`\ifin@' construction is an implementation of a +`` occurs in '' test. More packages seem to use +this idea for extracting file informations, like 'texshade'. + +However, such packages don't make much ado about parsing, +there seems to be no general setup mechanism as are presented by +'fifinddo'. Indeed, tayloring parsing macros to specific applications +may often be more efficient than a general approach. + +\subsection{Useful for \dots} +My main application of 'fifinddo' at present is typesetting +documentations of packages using 'makedoc' which removes certain +percent marks and inserts listing commands, so you edit a package file +with as little documentation markup as possible. +This may be extended to other kinds of documents as an alternative +to 'easylatex' or 'wiki' (the approach of which is dangerous and +incompatible with certain other things). + +I have used a similar own package 'txtproc' successfully, +where more features were implemented for practical purposes +than are here so far, yet I don't like its implementation, want to +improve it here. This package also \emph{created batch files}, e.g., +to remove temporary files. +This could be used for package handling: +typset the documentation at the desired place in the tree, +write the packages to another, write a batch file to remove +files that are not needed any more after installation +(cf.\ 'make'). %%% !? cf. Wiki `Make (software) 2009/04/11 + +I used 'txtproc' also for \emph{large-scale substitutions} +(it had been decided to change the orthography in a part of a book). +Other large-scale substitutions may be: +\begin{itemize} +\item inserting &\index commands; +\item inserting (soft) hyphenation commands near accents; +\item manual umlaut-conversion.\footnote{If you know the ``names'' + of the encodings, Heiko Oberdiek's 'stringenc' may be + preferable.} +\item typographical (or even orthographical) corrections (same mistake + many times on each of hundreds of pages). + You may turn `...' into `$\dots$' and `etc.' into `etc.\' + etc.\footnote{But what when a new sentence is starting indeed? + Well, `cf.' is an easier example.---`etc.' even showed + a problem in 'niceverb'. 'mdcorr.cfg' replaces `etc. ' + only, so you can keep the extra space by a code line break + (2009/04/11)} + This could replace packages like 'easylatex', 'txt2latex', + 'txt2tex' in a customizable way, using, e.g., the ``correct'' + hook from 'makedoc.sty' as exemplified in 'mdcorr.cfg' + (2009/04/12, see examples section of 'makedoc.pdf'). + Section~\ref{sec:replchain} provides setup for such macros. +\item as to 'easylatex' again, \emph{lists} could be detected and + transformed into \LaTeX\ list commands. This could re-implement + the lists functionality of 'wiki.sty' that is somewhat + dangerous. %% TODO 2009/04/15 +\item introduce your own \emph{shorthands} to be expanded not as \TeX\ macros, + but by text substitution; +\item in EPS files, copy the bounding box to the top two lines + for the 'graphics' bundle. +\end{itemize} +% +In certain cases, insertions deteriorate readability, hyphenation +corrections even make text search difficult. +It is therefore suggested to +\begin{enumerate} +\item keep editing the file without the insertions, +\item run the script (commands based on 'fifinddo') for insertions + in the preamble of the main file + (```\jobname.tex''', maybe &\input the script file) and +\item &\input the result file within the `document' environment. +\end{enumerate} + +In general, differences to ``manual'' replacing by the substitution +function of your \emph{text editor} is that +\begin{itemize} +\item you first keep the original version, +\item you can check the resulting file before you replace the original + file by it, +\item you can store the replacement script in order to check for + mistakes at a later stage of your work, +\item you can do \emph{all} the replacements in \emph{one run} + (by \emph{one} script to check for mistakes), +\item you can store replacement scripts for future applications, + so you needn't type the patterns and replacement strings anew. +\end{itemize} + + +\subsubsection{Missing} +% \subsection{To implement or not to implement \dots} %% TODO!? 2009/04/13 +% Actually, 'fifinddo' doesn't implement very much, and this possibly +% won't change, even if I am lucky. ``Practical applications'' tend to +% show (in my view) that there is a very complex space of possibilities +% what parsing macros could do. If I try to ``attack'' 'Perl' or so, +% cf.\ 'CPAN'\@. If I am lucky and become famous, 'fifinddo' will get many +% extensions in separate packages, cf.\ 'pstricks'. I also like it when +% you can choose among packages for similar purposes, and this may apply +% to extensions of 'fifinddo' as well. +% +% What \emph{really} is missing very badly at present is matching +% \emph{sequences} of strings. However, 'makedoc' contains a practical +% application of this for the case that both strings appear \emph{in the same +% line}. A better algorithm would have to read more lines from the input +% file etc. +% +% As it just comes to my frightened mind, there is even a problem with +% ``strings''/``patterns'' that are \emph{phrases} of words, containing +% spaces \dots +% +% Clearly much comfort concerning \emph{routine} jobs is missing now, +% 'txtproc' has more. Please sponsor (or otherwise support) the work for +% improving this. +% +It should be noted (perhaps here) that the present approach to parsing +is a quite \emph{simple} one and in this respect much different to the +string handling mechanisms of 'stringstrings', 'ted', 'xstrings' (as I +understand them, perhaps also 'coolstr') which are \emph{much more +powerful} than what is offered here---but perhaps slow and for +practical applications possibly replaceable by the present approach. +\emph{Expandable replacement} seems not to exist outside 'fifinddo' +(2009/04/13). + +Much is missing, I know.\footnote{There + is more in my badly implemented 'txtproc.sty'.} +I am just implementing what I actually need +and what could show that this approach is worth being pursued. +It may need being sponsored or otherwise supported. + +\subsection{For insiders} + +\emph{Warning:} You may (at least at the present state of the work) +have little success with this package, if you don't know about +\TeX's category codes and how \TeX\ macros are defined. +The package rather provides tools for package writers. +You may, however, be able to run other packages which just load +'fifinddo' as required background. + +That 'fifinddo' acts on ``\TeX(t)'' files or so means that +(at present) I think of applications on ``plain text'' files which +will usually be \TeX\ input files. ``At present'' they are read +without ``special characters,'' so essentially category codes of input +characters are either 11 (``letter'') or 12 (``other''). +This way some things are easier than with usual \TeX\ applications: +\begin{enumerate} +\item You can ``look into'' curly braces and ``behind'' comment characters. +\item There are exact or safe tests especially of \emph{empty macro arguments} + that are ``expandable,'' i.e., they are ``robust,'' + don't need assignments, can be executed in `\write'ing and in + `\edef' definitions. ``Usually,'' the safe way to test emptiness + is storing a macro argument as a macro, say `\tempo', in order + to test `\ifx\tempo\empty' where `\empty' has been defined + by `\def\empty{}' in the format. But this requires some + `\def\tempo{#}' which breaks in ``mere expanding'' + (\TeX\ \emph{evaluates} `\tempo' instead of defining it). + An \emph{expandable} test on emptiness is, e.g. `\ifx$#$', + where we hope that it becomes `\iftrue' just if macro argument + `#' is empty indeed. However, ``usually'' it may \emph{also} + become `\iftrue' when `#' starts with `$'---if the latter + has category code 3 (``math shift''). But 'fifinddo' does + not assign category code 3 to any character from the input file! + Therefore `\ifx$#$' is `\iftrue' \emph{exactly} if `#' is + empty. +\item You can avoid interference with packages that are needed for + typesetting. You can do the ``preprocessing'' in one run with + typesetting, but you should do the preprocessing before you + load packages needed for typesetting. One may even try to keep + the macros and settings for preprocessing local to a group. +\end{enumerate} +% +Once there may be an option to read input with some usual \TeX\ +category codes as well, it may be useful to (some of) +\begin{itemize} +\item avoid matching substrings of control words, +\item skip blank spaces as \TeX\ does it usually, +\item catch \emph{balanced} input pieces, +\item ignore comments, +\item ignore certain characters. +\end{itemize} + +The essential approach of 'fifinddo' to looking for single strings is +described in some detail in section~\ref{sec:theory}. + +The implementation of 'fifinddo' is as follows. +User commands are specially highlighted (boxed\slash coloured), +together with their syntax description. + +% \end{document} + +\section{Preliminaries} +\subsection{Head of file (Legalese)} + \sloppy %% 2009/04/06 +\input{fifinddo.doc} +\end{document} + +%% TODO cf. Kastrup 'makematch' and others 2009/04/09 + +%% 2009/04/10: title break, by -> with(!?); `boxed/coloured' +%% 2009/04/12: useful: own shorthands +%% 2009/04/13: substr.sty, \emph{expandable}, w/o `implement'!? +%% 2009/04/15: same with \in@ diff --git a/Master/texmf-dist/source/latex/nicetext/makedoc.cfg b/Master/texmf-dist/source/latex/nicetext/makedoc.cfg new file mode 100644 index 00000000000..6d4a9780294 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/makedoc.cfg @@ -0,0 +1,57 @@ +\ProvidesFile{makedoc.cfg}[2009/04/15 + local settings for `makedoc.sty' etc.] + +\RequirePackage{moreverb} +\newenvironment{packagecode} + {\PackageCode} + {\endPackageCode} +\gdef\PackageCode{% + \small +%% Get rid of 'niceverb' stuff: + % \MakeOther\`\MakeOther\'%% probably OK with moreverb + \MakeOther<\MakeOther\|% + %% <- TODO should be 'niceverb' command 2009/04/08 + \listing{1}} +\gdef\endPackageCode{% + \endlisting + \global\def\PackageCode{% + \small + % \MakeOther\`\MakeOther\'%% probably OK with moreverb + \MakeOther<\MakeOther\|% niceverb + \listingcont}% + \global\let\endPackageCode\endlistingcont} +\renewcommand*{\listinglabel}[1]{% + \llap{\scriptsize\rmfamily\the#1}\hskip\listingoffset\relax} + +\RequirePackage{niceverb}[2009/04/11] %% (' and ''; `etc.'\@ +\DeclareRobustCommand{\cs}[1]{\texttt{\char`\\#1}} + %% <- `&\@tempa' and `&\_tempa' fail 2009/04/14 +\RequirePackage{color} + +%% TODO rather in 'niceverb' 2009/04/06: +\CatCode\|\active +\newcommand*{\CmdBox}{% + \ifvmode \pagebreak[1]\fi %% TODO!? 2009/04/06 + \begingroup \let\do\MakeOther \dospecials \tt \TypesetCmdBox} +\def\TypesetCmdBox#1|{%% redefine for changing design +% \fboxrule=.6pt \fboxsep=-\fboxrule +% \fcolorbox[cmyk]{0,0,0,1}{.1,0,.2,.1}{% +% \kern2pt\strut\CmdSyntaxVerb#1\kern2pt}}} +% \kern2pt\strut#1\kern2pt}%% \dospecials version +% \fboxrule=.6pt \fboxsep=.2pt +% \fbox{% +% \fboxrule=0pt \fboxsep=-1pt + \fboxrule=0pt \fboxsep=0pt +% \kern.2pt + \colorbox[cmyk]{.1,0,.2,.05}{% + \kern1.6pt\strut#1\kern1.6pt}% +% \kern.2pt +% }% + \endgroup + \nopagebreak[3]} %% TODO!? 2009/04/06 +\let|\CmdBox + +\pagestyle{headings} + +\endinput + diff --git a/Master/texmf-dist/source/latex/nicetext/makedoc.tex b/Master/texmf-dist/source/latex/nicetext/makedoc.tex new file mode 100644 index 00000000000..6808f391b50 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/makedoc.tex @@ -0,0 +1,214 @@ +\ProvidesFile{makedoc.tex}[2009/04/15 documentation for `makedoc.sty'] +\title{\textsf{makedoc}---Preprocessing documentation by \TeX} + %% 2009/04/10: \\---\\\ breaks TOC +\author{Uwe L\"uck\,---\,{\tt http://contact-ednotes.sty.de.vu}} +\listfiles + \begingroup %% generate makedoc.doc and mdcorr.doc +\RequirePackage{makedoc} +\input{mdcorr.cfg} +\LaTeXresultFile{makedoc.doc} +\HeaderLines{22} +\MainDocParser{\ProcessInputWith{comment}} +\MakeDoc{makedoc.sty} +\CloseResultFile + +\LaTeXresultFile{mdcorr.doc} +\HeaderLines{0} +\MainDocParser{\ProcessInputWith{comment}} +\MakeDoc{mdcorr.cfg} +\CloseResultFile + \endgroup %% makedoc.doc and mdcorr.doc ready +\documentclass{article} +\input{makedoc.cfg} +\begin{document} +\maketitle +\begin{abstract}\noindent\hspace{1sp}%% for niceverb-apostrophe +'makedoc' provides commands for generating \LaTeX\ input from a +package file in order to typeset documentation of the latter +(somewhat similar and opposite to 'docstrip'). +Certain comment marks are removed, and listing commands are inserted. +This continues the policy of 'niceverb' to minimize documentation +markup in package files. 'makedoc' extends and exemplifies the parsing +package 'fifinddo'. After an edit (and test) of your package, +you get the new documentation in one run (or two or three runs---for +labels and TOC, as usual) of the documentation driver file.---This +is an \emph{alternative} to the standard 'doc' package and its +`\DocInput'. The present approach provides \emph{less} than 'doc' +does, rather deliberately. It may be helpful at least for the +development of small packages, or at least at early stages. +\end{abstract} +\tableofcontents +\section{Introduction} +The abstract will not be repeated in this section. Let me add instead +that I was in dire need of such a package, I got stuck with my packages +because I lost orientation in them, and I was unhappy with the forms +of documentations of my other packages, and documenting them with the +'doc' system was not attractive for me (neither considered helpful). +I also worked on \emph{Windows} until September 2008, and I find a system +like the present one still more attractive then using (learning!\@) +other filtering utilities (see below on 'awk'). And I may work on +\emph{Windows} once again and don't want to depend on installing some $\dots$ +there. + +\subsection{Prior work and what is new} +It is, of course, not a new idea to get around comment marks `%' to +typeset the documentation. 'doc''s `\DocInput' does this by making `%' +an ``ignored'' character. This way you cannot use `%' for commenting +comments (so 'doc' offers a ``new comment mark'' `^^A'). +You also cannot use `%' for commenting out code (that you are +pondering or use for debugging only). + +Moreover, 'doc' requires enclosing package code explicitly by +environment commands (behind comment marks). Stephan I. B\"ottcher +with his 'lineno.sty' and Grzegorz Murzynowski in 'gmdoc' aimed at +doing away with this requirement. 'lineno.sty' contains 'awk' scripts +to remove starting comment marks and to insert listing commands. +A file 'lineno.tex' is generated that typesets the documentation. +By the way, 'lineno.sty' is full of discussions, but it is not +'docstrip'ped---the maintainers never have received a complaint +that inputting 'lineno.sty' were too slow. + +'gmdoc' seems to get around comment marks and insert listing commands +\emph{while typesetting} by a refined version of `\DocInput', +through some careful detecting and analysing comment marks, +the approach resembles detection of lists in 'wiki.sty'.\footnote{See + 'gmdoc.pdf' on &\DocInput. You can learn a lot from this 220 pages + document! I also find 'pauldoc' and 'xdoc' inspiring.} +And this is a matter of principles---comparing the approaches of +\emph{preprocessing} ('lineno.sty') and \emph{``smart typesetting''} +('gmdoc', 'wiki'). Sometimes preprocessing seems to be simpler, +sometimes detecting while typesetting. (Another example is the +preprocessor 'easylatex' of which 'wiki.sty' is a much reduced +``while typesetting'' variant.) ``While typesetting'' may be easier +when single characters or sequences of two or three encode markup +information---but such detection can badly interfere with other +packages etc. ``Preprocessing'' may be easier when entire ``strings'' +of characters decide, which may be anywhere in a file line. + +'makedoc' chooses \emph{preprocessing}, as 'lineno.sty', but by +\emph{\TeX}. There is a general discussion of this choice in the +documentation of 'fifinddo'. Preprocessing here can be done in the +same \LaTeX\ run as typesetting, though you can avoid +incompatabilities with packages needed for typesetting +(by inputting them only \emph{after} preprocessing). + +'lineno.sty' exemplifies why preprocessing with \emph{\TeX} may be +preferable to preprocessing with other utilities: +When I took over maintenance of 'lineno.sty', +I needed hard work to get the 'awk' script running. +The \emph{Munich} 'awk' seemed \emph{not} to behave as the \emph{Kiel} +'awk' (I chose a Munich 'nawk' and reworked the script a little). +\TeX\ seems to have better fixed functionality than other utilities! + +%% TODO Paul Isambert's (CTAN recently) 2009/04/08 + +\subsection{Basics on using 'makedoc'} +At least in the long run, using 'makedoc' should not imply commitment +to a certain design or to certain \LaTeX\ packages for typesetting +listings and documentations. Therefore, 'makedoc.cfg' (currently) +contains \emph{local} or \emph{personal choices}, but also +\emph{experiments} with future features of 'niceverb'. +Especially, (at present) the `packagecode' +environment that 'makedoc' `\write's must be chosen. +Currently this is the `listing' environment from 'moreverb' +with some modifications or extra settings. +It may be vital to `\MakeOther' the active characters from 'niceverb' +in the setup of `packagecode'. See the \emph{example} in +section~\ref{sec:fifinddo}. + +Finally, each package file to be typeset will need its own +\emph{script} of 'makedoc' commands. It should fit into the preamble +of the main file for documenting the package (currently %% 2009/04/09 + just 5 commands seem to suffice, see the \emph{example} in + section~\ref{sec:fifinddo} and section~\ref{sec:script} + on typical ``bundling'' \emph{script commands}). +As an alternative, you may prefer to have ``content only'' (as much as +possible) in the main typesetting file and in its preamble only +`\input' a separate script file. + +Yes, the idea of documenting a package \emph{here} is to have a +separate ``driver'' file for typsetting the documentation. +It may contain an introduction and a guide for users. +The documentation of the package code that has been prepared by the +'makedoc' script will be `\input'. Alternatively, the ``driver file'' +could have title etc.\ only, or preamble and a minimal `document' +environment only. + +So there may be many files, which may look confusing, especially as +compared with the 'doc' procedure. However, +\begin{enumerate} +\item ``One file distribution'' still is possible thanks to the + `filecontents' environment. +\item The 'makedoc' script can create a batch file (fitting the + system, maybe using Will Robertson's 'ifplatform', or + 'texsys.cfg', or \dots) + that removes certain auxiliary files or moves them to a + certain directory. +\item I find it helpful to have rather little ``contentual'' text + in the package file. +\item The procedure now runs very smoothly, once the stumbling blocks + have been overcome.\footnote{\hspace{1sp}%% TODO help in 'niceverb'! + 'niceverb' v0.1 was too sloppy with + some things, and self-documentation of 'makedoc.sty' was + difficult---its parsing and that from 'verbatim' cannot + distinguish between markup code and typeset code.} +\end{enumerate} + +\subsection{Examples} +The documentations of 'fifinddo' and of 'makedoc' itself are typeset +using 'makedoc' (\hspace{1sp}'niceverb.pdf' as well, yet comments +remained scarce). 'fifinddo.pdf' documents 'fifinddo.sty', typeset +from 'fifinddo.tex', likewise 'makedoc.pdf'. +Section~\ref{sec:fifinddo} contains listings of 'makedoc.cfg' and the +'makedoc' script file 'mkfddoc.tex' especially made for 'fifinddo.pdf'. +'fifinddo.doc', 'makedoc.doc', and 'niceverb.doc' are the \TeX\ input +files that were made with 'makedoc.sty'---I have only looked at them +when something was wrong (often syntax mistakes in typing). + +The Wikipedia syntax feature `%% === subsubsection ===' is only used in +'fifinddo.sty' and 'niceverb.sty'. + +\section{Implementation} +\subsection{Preliminaries} +Head of file (Legalese): +\sloppy +\input{makedoc.doc} +The previous empty code line is the one \TeX\ insists to add at every +end of a file it writes. %% todo TeXbook where? 2009/04/08 + +\section{Examples: documentation of 'fifinddo'}\label{sec:fifinddo} + +\subsection{\hspace{1sp}'makedoc.cfg'} +'fifinddo.pdf' and 'makedoc.pdf' were typeset with the following +configuration file 'makedoc.cfg': +\begingroup \MakeOther\|\MakeOther\`\MakeOther\'\MakeOther\< + %% <- TODO should be 'niceverb' command 2009/04/08 + \listinginput[5]{1}{makedoc.cfg} +\endgroup + +\subsection{\hspace{1sp}'mkfddoc.tex'} +'fifinddo.pdf' was typeset with the following 'makedoc' script file +'mkfddoc.tex': +\begingroup \MakeOther\|\MakeOther\`\MakeOther\'\MakeOther\< +\listinginput[5]{1}{mkfddoc.tex} +\endgroup + +\subsection{\hspace{1sp}'mdcorr.cfg'} +'fifinddo.pdf' and 'makedoc.pdf' were typeset with the following +typographical corrections in 'mdcorr.cfg': +\strut\hrule +\begingroup \MakeOther\|\MakeOther\`\MakeOther\'\MakeOther\< +\listinginput[5]{1}{mdcorr.cfg} +\endgroup +\hrule\strut +This code also exemplifies the syntax 'niceverb' provides for writing +about \LaTeX\ macros. It is typeset here with 'makedoc.sty' again +and then looks thus: +\strut\hrule +\input{mdcorr.doc} +\strut\hrule + +\end{document} + +2009/04/12: more on examples +2009/04/15: exemplification of niceverb.sty by mdcorr.cfg diff --git a/Master/texmf-dist/source/latex/nicetext/mdcorr.cfg b/Master/texmf-dist/source/latex/nicetext/mdcorr.cfg new file mode 100644 index 00000000000..44e21e0ae80 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/mdcorr.cfg @@ -0,0 +1,15 @@ +\ProvidesFile{mdcorr.cfg}[2009/04/15 + local typographical corrections with makedoc.sty] +%% Also demonstrates 'niceverb.sty'. +\renewcommand*{\PatternCodes}{\MakeOther\\\MakeOther\ } +\renewcommand*{\MakeDocCorrectHook}[1]{\ProcessStringWith{#1}{dots}} +%% |\MakeExpandableAllReplacer{}{}{}{}|% +%% \footnote{Yes, +%% &\MakeExpandableAllReplacer{}{}{}{}.} +\MakeExpandableAllReplacer{dots}{...}{$\dots$}{cf} +\MakeExpandableAllReplacer{cf}{cf.}{cf.\ }{etc} +\MakeExpandableAllReplacer{etc}{etc. }{etc.\ }{LEAVE} +%% So you can keep inter-sentence space after `etc.' +%% by a code line break +\renewcommand*{\PatternCodes}{\fdPatternCodes} +%% ... restores 'fifinddo' default. diff --git a/Master/texmf-dist/source/latex/nicetext/mkfddoc.tex b/Master/texmf-dist/source/latex/nicetext/mkfddoc.tex new file mode 100644 index 00000000000..c4a4937a963 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/mkfddoc.tex @@ -0,0 +1,21 @@ +\ProvidesFile{mkfddoc.tex}[2009/04/15 + prepare typesetting fifinddo.sty] + + \begingroup %% generate fifinddo.doc +\RequirePackage{makedoc}[2009/04/13] +\input{mdcorr.cfg} + +% \NoEmptyCodeLines %% TODO +\ProcessLineMessage{} +\LaTeXresultFile{fifinddo.doc} +\HeaderLines{23} +\MainDocParser{% +% \IfInputLine{=33}{\tracingmacros=1 }{} +% \IfInputLine{=35}{\tracingmacros=0 }{} + \SectionLevelTwoParseInput} +% \tracingmacros=1 +\MakeDoc{fifinddo.sty} +\CloseResultFile + \endgroup %% fifinddo.doc ready +\endinput + diff --git a/Master/texmf-dist/source/latex/nicetext/niceverb.tex b/Master/texmf-dist/source/latex/nicetext/niceverb.tex new file mode 100644 index 00000000000..629d240c458 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/niceverb.tex @@ -0,0 +1,331 @@ +\ProvidesFile{niceverb.tex}[2009/04/15 documenting niceverb.sty] +\title{\textsf{niceverb.sty}\\---\\Minimizing + Markup\\for Documenting \LaTeX\ packages%%% \thanks{This +% manual describes package version +% version 0.2 as of April 09, 2009%%%\fileversion\ as of \filedate\ +% .}}%%%of the package.}% +} +\author{Uwe L\"uck\\{\tt http://contact-ednotes.sty.de.vu}} +\listfiles + \begingroup %% build niceverb.doc + \RequirePackage{makedoc} + \LaTeXresultFile{niceverb.doc} + \HeaderLines{19} + \MainDocParser{\SectionLevelTwoParseInput} + \MakeDoc{niceverb.sty} + \CloseResultFile + \endgroup +% \input{mknvdoc.tex} +\documentclass{article}%% TODO paper dimensions!? +\input{makedoc.cfg}\MakeOther\|%% TODO \verb| 2009/04/09 +%% removed 2009/04/09 for makedoc.sty: +% \usepackage{niceverb} +% \usepackage{moreverb} +% \usepackage{verbatim} +% \newenvironment{packagecode} +% {\PackageCode} +% {\endPackageCode} +% \gdef\PackageCode{\small \listing[5]{1}} +% \gdef\endPackageCode{% +% \endlisting +% \global\def\PackageCode{\small \listingcont}% +% \global\let\endPackageCode\endlistingcont} +% \renewcommand*{\listinglabel}[1]{% +% \llap{\footnotesize\rmfamily\the#1}\hskip\listingoffset\relax} + +\begin{document} +\maketitle + +\begin{abstract}\noindent\hspace{1sp}%% exemplifies a problem +'niceverb.sty' provides very decent syntax for describing \LaTeX\ +packages and the syntax of macros conforming to \LaTeX\ syntax +conventions. +\end{abstract} +\tableofcontents + + %% TODO table listing active characters +\section{Presenting 'niceverb'} +\subsection{Purpose} +% \begin{abstract}\noindent +% The 'nicetext' bundle provides ``minimal'' markup +The 'niceverb' package provides ``minimal'' markup for documenting \LaTeX\ +packages, reducing the number of keystrokes/visible characters needed +% .\,.\,. %%% ... %% TODO nicedots +(kind of poor man's WYSIWYG).\footnote{``What you see is what you +get.'' Novices are always warned that WYSIWYG is essentially +impossible with \LaTeX.} +% One feature---\verb'&\foo'%%% badly self-documenting, `&' fails +It conveniently handles command names in arguments of macros +such as &\footnote or even of sectioning commands. +% (`.aux'/`.toc' entries). +% +% This is done by making some characters active. +% 'niceverb.sty' thus resembles 'wiki.sty'; both are siblings. +% \end{abstract} +If you use 'makedoc.sty' additionally, commands for typesetting a +package's code are inserted automatically (just using \TeX). +%%% \footnote{Stephan I. B\"ottcher used +%%% 'awk' instead to typeset the documentation of his 'lineno.sty'.} +As opposed to tools that are rather common on UNIX/Linux, this +operation should work at any \TeX\ installation, irrespective of +platform. + +Both packages may at least be useful while working at a very new package +and may suffice with small, simple packages. After having edited your +package's code (typically in a `.sty' file), you just ``{`latex'}'' the +manual file (maybe some `.tex' file) and get instantly the corresponding +refreshed documentation. + +'niceverb' and 'makedoc' may also help to generate without much effort +documentations of nowadays commonly expected typographical quality for +packages that so far only had plain text documentations. + +\subsection{Acknowledgement/Basic Ideas} +Three ideas of Stephan I. B\"ottcher's in documenting his 'lineno.sty' +inspired the present work: +\begin{enumerate} +\item +The markup and its definitions are short and simple, +markup commands are placed at the right ``margin'' +of the ASCII file, +so you hardly see them in reading the source file, +you rather just read the text that will be printed. +\item +An 'awk' script removes the `%'s starting \emph{documentation} lines +and inserts the commands for typesetting the package's \emph{code} +(you don't see them in the source). +\item +An active character (\lq&|\rq) issues a `\string' \emph{and} switches +to typewriter typeface for typesetting a command verbatim---so this +works without changing category codes (which is the usual idea of +typesetting code), therefore it works even in macro arguments. +\end{enumerate} + +\subsection{The Commands and Features of 'niceverb'} + +Single quotes \verb|`|, \verb|'|, ``less than'' \verb|<| (accompanied +with \verb|>|), the hash mark \verb|#|, ampersand \verb|&|, and in an +extended ``auto mode'' even backslash \verb|\| become &\active +characters with ``special effects.'' \lq`|'\,.\,.\,.\,`|'\rq\ +should highlight descriptions of user commands and their syntax. + +The package mainly aims at typesetting commands and descriptions of their +syntax \emph{if the latter is ``standard \LaTeX-like''}, +using ``meta-variables.'' A string to be +typeset ``verbatim'' thus is assumed to start with a single command like +&\foo, maybe followed by stars (\lq`*'\rq) and pairs of +square brackets (`['.\,.\,.`]') or +curly braces (\verb'{'.\,.\,.\verb'}'), +where those pairs contain strings indicating the typical +kinds of contents for the respective arguments of that command. +A typical example is this: +\[&\foo*[]{}\] +This was achieved by typing \[\verb'&\foo*[]{}'\] +In ``auto mode'' of the package, even typing +\[\verb|\foo*[]{}|\] + %% angle brackets feature to be suppressed here! +would have sufficed---WYSIWYG! (I call such mixtures of +\emph{verbatim} and ``meta-variables'' \textit{\lq meta-code\rq}.) + +Now for the details: +\begin{description} + +\item[``Meta-variables:''] {\sloppy The package supports the ``angle +brackets'' style of ``meta-variables'' (as with ). +You just type \lq\verb''\rq\ to get \lq\rq.\par} + +This works due to a sloppy variant &\SimpleVerb of &\verb +which doesn't care about possible ligatures and definitions of active +characters. Instead, it assumes that the ``verbatim'' font doesn't +contain ligatures anyway. \lq\verb'\verb||'\rq, by contrast, just +yields \lq\verb''\rq. + +Almost the same feature is offered by 'ltxguide.cls' which formats the +basic guides from the \LaTeX\ Project Team. The present feature, +however, also works in plain text outside verbatim mode. +% On the other hand: without << feature + +\item[Single quotes (left/right) for ``short verb:''] +{\sloppy The package ``assumes'' that \emph{quoting} refers to +\emph{code}, therefore \lq\verb|`foo'|\rq\ is typeset as +\lq`foo'\rq. This somewhat resembles the &\MakeShortVerb feature of +'doc.sty'.\par} + +It will typically fail when you try to typeset commands (and their +syntax) in \emph{macro arguments}---e.g., +$$\verb|\footnote{`\bar' is a celebrated fake example!}|$$ +will try to \emph{execute} &\bar instead of typesetting it, giving +an ``undefined'' error so. +\verb|\verb| fails in the same situation, for the same reason. +\lq\verb|&|\rq\ (&\footnote{&&&\bar}) or +``auto mode'' (see below) may then work better. + +Double quotes and apostrophes should still work the usual way; +otherwise you could control the parsing mechanisms using curly braces +(outside and inside don't interact). +To get usual single quotes, you can use their standard substitutes +`\lq' and `\rq'. +You can ``abuse'' this ``single quotes'' feature just to get typewriter +typeface.\footnote{In macro arguments this requires that the right +single quote &' is &\active.} +For difficult cases, you can still use the standard `\verb' +command from \LaTeX. + +\item[Single right quotes for &\textsf:] +{\sloppy Package names are (by some unwritten convention!?) +typeset with `\textsf'; +it was natural to use a remaining case of using single quotes +for abbreviating &\textsf{} by \SimpleVerb|''|.\footnote{% +Font switching by sequences of single quotes is a feature of the +syntax for editing Wikipedia pages and of 'wiki.sty'.}\par} +%% TODO fails in parentheses due to preserving apostrophes + +This idea of switching fonts continues font switching of 'wiki.sty' +which uses the syntax for editing Wikipedia pages. + +\item[Ampersand \lq&&\rq\ typesets command syntax even in arguments:] +\hfil e.g., type \lq\verb|&\foo{}|\rq\ to get +\lq`\foo{}'\rq. This may be even more convenient for typing than +the single quotes method, although looking somewhat strange. +However, `&' may terminate \textit{verbatim} unexpectedly, being +designed for displaying ``\LaTeX-like command syntax'' in the first +instance.\footnote{Moreover, && currently has a limited 'xspace' +functionality only.}\footnote{You can even use && for referring to + active characters like && in footnotes etc.!} + +\begin{sloppypar} +This choice of `&' rests on the assumption that there won't be many +tables in the documenation. You can restore the usual meaning of `&' +by \verb|\MakeAlign\&| and turn the present special meaning on again by +$$\verb|\MakeActiveLet\&\CmdSyntaxVerb|.$$ +You could also +redefine (&\renewcommand) &\descriptionlabel using `\CmdSyntaxVerb' +(the ``normal command'' equivalent to `&') so \verb|\item[\foo]| works +as wanted. +\end{sloppypar} + +\item[``Auto mode'' typesets commands verbatim unless .\,.\,.] +{\sloppy +\hfil In~``auto mode'', the backslash \lq`\'\rq\ is an active character that +builds a command name from the ensuing letters and typesets the +command (and its syntax, allowing meta-variables) verbatim. +However, there are some exceptions, which are collected in a macro +&\niceverbNoVerbList. &\begin, &\end, and &\item belong to this list, +you can redefine (`\renewcommand') it. +There is also a command &\NormalCommand{} \emph{issuing} the +command `\' instead of typesetting it. +Since auto mode is somewhat dangerous, you have to start it explicitly +by &\AutoCmdSyntaxVerb. You can end it by &\EndAutoCmdSyntaxVerb.\par} + +Auto mode is motivated by the observation that there are package files +containing their documentation as pure (well-readable) ASCII +text---contain\-ing the names of the new commands without any kind of +quotation marks or verbatim commands. +Auto mode should typeset such documentation just from the same ASCII +text. + +\item[Hash mark &# comes verbatim.] +No macro definitions are expected in the `document' +environment.\footnote{This idea recently appeared on the 'latex-l' +mailing list. It may be wrong, not sure at the moment, think of +'latexa.ltx' .\,.\,.} +Rather, \lq`#'\rq\ is an active character for taking the next +character (assuming it is a digit) to form a reference to a +\emph{macro parameter}---\lq`#1'\rq\ becomes \lq#1\rq\ (WYSIWYG +indeed!). +\end{description} + +\subsection{Examples} +The local configuration file 'mdcorr.cfg' documents itself using +'niceverb' syntax. Its code and the documentation that is typeset from +it are at the end of the \lq examples\rq\ section of 'makedoc.pdf'. +(2009/04/15) + +Moreover, the documentation 'niceverb.pdf' of 'niceverb.sty' was +typeset from 'niceverb.tex' and 'niceverb.sty' using 'niceverb' +syntax, likewise 'fifinddo.pdf' and 'makedoc.pdf'. +The example of 'niceverb' shows the most frequent use of the `&' +feature. + +It seems to me that I could type so many pages on 'fifinddo' and +'makedoc' in little more than a week +% (2009/04/12, much of which was needed for debugging and reworking concepts) +only due to the ``minimal'' \emph{verbatim} and syntax-display syntax. + +\subsection{What is Wrong with the Present Version} +\begin{enumerate} +\item 'niceverb.sty' should be an extension of 'wiki.sty'; + yet their font selection mechanisms are currently not compatible. +\item Font switching or horizontal spacing may fail in certain situations + (parentheses, titles, footnotes; you can correct spacing by + \lq`\ '\rq). + %% TODO 2009/04/10 redefine \noindent, \footnote ... + %% or use correcting function with 'fifinddo' +% \item +% The feature of mixing high-quality-typeset comments into the +% package code listing is implemented in a very rudimentary way only. +% % just allowing for `\subsection's. +% The ``comment detector'' detects Wikipedia-style subsection titles +% instead of lines beginning with percent characters.\footnote{% +% Percent characters will definitely not be ``ignored'' as with &\DocInput, +% rather they will hide rests of \emph{documentation} lines as usually, +% while they will be typeset verbatim in \emph{package code} lines.} +% Switching between plain and verbatim typesetting in the package +% listings isn't settled yet, since there are different styles of using +% percent symbols. I have sometimes used double percent symbols +% (\lq\verb|%%|\rq) +% for commenting text and single ones just for ``reversible deletion of +% code,'' while usually single percent symbols indicate commenting text +% indeed. Double percent symbols may, by contrast, mean that the text remains +% visible in the `.sty' file only, suppressed in the typeset +% documentation ('lineno.sty'). +% For a while, it may be necessary to provide replacing macros for each +% package separately instead of providing a single macro package +% managing all of them. +% \item +% The code listing currently uses the `listing' and `listingcont' +% environments of 'moreverb.sty'; +% the code font and the line numbers may be too large. +\item The ``vertical'' character \lq&|\rq\ was planned to be active + and provide a version of the `decl' environment of + 'ltxguide.cls'. Currently 'makedoc.cfg' installs inline, + coloured\slash framed boxes instead (2009/04/09). They have + their merits! See 'fifinddo.pdf' and 'makedoc.pdf'. However, + they badly deal with long command names and many arguments + .\,.\,. (They could also issue an `\index' command!)---Doubled + verticals could make the difference, calling a `decl' table + indeed. +\item ``Auto mode'' has not been tested on a serious application yet. +\item 'niceverb''s font switching tricks sometimes turn against their + inventor (and other users?). There must be some switching + ``off'' (and ``on'' again).% + \footnote{\hspace{1sp}'fifinddo'\slash\hspace{1sp}'makedoc' + %% <- TODO oh, oh! 2009/04/11 + allow inserting such commands from a driver script, + invisible in the file that contains the ``contentual'' + documentation.} + Also, there might better help with weird errors, + some syntax checks might intercept earlier. + + Similarly, some choices reflect a + personal style and should be modifiable, especially by package + options.\footnote{Please sponsor the project or support it + otherwise!} +\end{enumerate} + +\pagebreak[3] %% 2009/04/15 +\section{Implementation of the Markup Syntax} +% \verbatiminput{niceverb.sty} +% \listinginput[5]{1}{niceverb.sty} +\input{niceverb.doc} + +%% removed 2009/04/09 for makedoc.sty: +% \section{Code Preparing Source for Typesetting} +% This is at present in a file `mknvdoc.tex'. +% \listinginput[5]{1}{mknvdoc} +\end{document} + +2009/04/09: adjusted to new doc-generation method +2009/04/12: examples, 'awk' lower-case +2009/04/15: example 'mdcorr.cfg', abstract, + \pagebreak to implementation diff --git a/Master/texmf-dist/source/latex/nicetext/wikicheat.tex b/Master/texmf-dist/source/latex/nicetext/wikicheat.tex new file mode 100644 index 00000000000..e56bff99120 --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/wikicheat.tex @@ -0,0 +1,148 @@ +\ProvidesFile{wikicheat}[2008/07/10 Cheatsheet for wiki.sty] +% \def\title{Cheatsheet for the \textsf{wiki} Package} +\def\title{\textbf{Cheatsheet} for the \textbf{\textsf{wiki}} Package} +\def\author{Uwe L\"uck} +\documentclass[12pt,a4paper]{article} +\nofiles +\pagestyle{empty} +\makeatletter +\@ifundefined{UndeclareTextCommand}{}{\usepackage{upquote}} %% 2008/07/02 +\makeatother +\usepackage{wiki} +% \let\WE\relax \let\WF\relax \let\WH\relax +\let\WE\wikiEnvironments +\let\WF\wikiFonts +\let\WH\wikiHeadings +\def\SP#1{\multicolumn{3}{\VR c\VR}{% +% \parbox{11cm}{% + \parbox{13cm}{% + \footnotesize\it\sloppy\SU#1\SD}}} +\def\SL{/\hskip.16667em} +% \setbox0\hbox{(}\showthe\ht0\showthe\dp0 %% height = 3x depth +\def\SU{\rule{0pt}{.99em}}%%%{1.1em}} +\def\HSU{\rule{0pt}{.75em}} +\def\SD{\rule[-.33em]{0pt}{0pt}}%%%45em]{0pt}{0pt}} +% \def\CS#1{{\tt\textbackslash #1}} %% 2008/07/02 +{\makeatletter \gdef\CS#1{{\tt\@backslashchar#1}}} +\let\VR| \catcode`\|\active \def|{\verb|} +\begin{document} +% \maketitle + +\enlargethispage{3\normalbaselineskip} +\vspace*{-\topmargin} %% !? +\vspace*{-\headheight}\vspace*{-\headsep}\vspace*{-\topsep}\vspace*{-\partopsep} +\begin{center} +\large \title\\[.4ex] \normalsize +Some \LaTeX-Markup through some Wiki-Markup\\[.8ex] + \author, \today +% \end{center} + +\vspace{\topsep} +\vspace*{\partopsep} +% \vspace{1.5ex} +% \vspace{1ex} +% \hrule +% \vspace{1ex} + +% \begin{center} +\leavevmode\kern-1em +\begin{tabular}{\VR l\VR l\VR l\VR} +\hline\hline +\SU\SD\bf Code for \textsf{wiki.sty}&\bf What you get& \bf like \LaTeX-code\\ +\hline\hline +|''italic''|&\WF ''italic''&|\textit{italic}|\SU\\ +|'''bold'''|&\WF '''bold'''&|\textbf{bold}|%%%\\ +\SD\\ +% |'''''bf+it'''''|&\WF '''''bf+it''''' +% &|\textbf{\textit{bf+it}}|\SD\\ +% |'''''B+I'''''|&\WF '''''B+I''''' &|\textbf{\textit{B+I}}|\SD\\ +\hline +\SP{``Italic'' and ``bold'' may be combined, nested, overlap. +% Automatic italic correction cannot be suppressed by \CS{nocorr}. +% Implementation uses \LaTeX\ internals; no groups are formed. +Quotation marks +% (even German) +usually are not +affected.---Turn +% {\tt '\string{\string}''} may help with +% apostrophes.---Turn +font feature on/off by \CS{wikiFonts}\SL\CS{nowikiFonts}; disable feature +entirely by package option {\tt noFonts}.}\\ +\hline\hline +|== Level 1 ==|&\Large\bf\HSU 1\quad Level 1&|\section{Level 1}|\SU\\ +|=== Level 2 ===|&\large\bf 1.1\quad Level 2&|\subsection{Level 2}|\SU\\ +|==== Level 3 ====|&\bf 1.1.1\quad Level 3&|\subsubsection{Level 3}|\\ +|===== Level 4 =====|&\bf Level 4 &|\paragraph{Level 4}|\SD\\ +|====== Level 5 ======|&\bf Level 5 &|\subparagraph{Level 5}|\SD\\ +\hline +\SP{Turn heading feature on/off by \CS{wikiHeadings}\SL\CS{nowikiHeadings}; +disable feature entirely by package option {\tt noHeadings}.}\\ +\hline\hline +&&|\begin{itemize}|\SU\\ +|* One|&\textbullet\hspace\labelsep One &|\item One|\\[2\parsep] +|* Two|&\textbullet\hspace\labelsep Two &|\item Two|\\ +&&|\end{itemize}|\SD\\ +\hline +&&|\begin{enumerate}|\SU\\ +|# One|&1.\hspace\labelsep One &|\item One|\\[2\parsep] +|# Two|&2.\hspace\labelsep Two &|\item Two|\\ +&&|\end{enumerate}|\SD\\ +\hline +&&|\begin{description}|\SU\\ +|;[club] explain|&\textbf{club}\hspace\labelsep explain + &|\item[club] explain|\\[2\parsep] +|;[widow] explain|&\textbf{widow}\hspace\labelsep explain + &|\item[widow] explain|\\ +&&|\end{description}|\SD\\ +\hline + & &|She wrote:|\SU\\ +|She wrote:|&\smash{\raisebox{\topsep}{She wrote:}}&|\begin{quote}|\\ +|:Indeed| &\hspace\leftmargini Indeed&|Indeed|\\ + & &|\end{quote}|\SD\\ +\hline + & &|Type|\SU\\ +|Type| &\smash{\raisebox{\topsep}{Type}}&|\begin{verbatim}|\\ +| \typeout{OK!}| &|\typeout{OK!}|&|\typeout{OK!}|\\ + & &|\end{verbatim}|\SD\\ +\hline +\SP{A \CS{begin} is executed when {\tt*} etc.\ is first character of a +code line; an indent starts {\tt verbatim}. +\CS{end} is executed at code line without indent and not beginning with +{\tt*} etc.---Turn this feature on by \CS{wikiEnvironments}; turn off by +\CS{nowikiEnvironments}, e.g., to get around incompatibilities +(lists feature is most dangerous). +Disable feature entirely by package option {\tt noEnvironments}. +Package option {\tt noVerbatim} instead may usually suffice, +if you don't want to have any {\tt verbatim}.}\\ +\hline +\end{tabular} +\kern-1em +\end{center} + +% \section{Test}\subsection{Sub-Test}\subsubsection{Subsub-Test} +% \paragraph{Para}\subparagraph{Sub-Para} + +\footnotesize +% \vspace{2ex} +\sloppy +\noindent \WE\WF %%% '''Please note:''' +''Note:'' +% * +Explicit '''turning on''' by %%% one of +% \[|\wikiEnvironments|,\quad |\wikiFonts|,\quad |\wikiHeadings|\] +|\wikiEnvironments| %%% , |\wikiFonts|, |\wikiHeadings|, +etc.\ +% or by |\wikimarkup| (which executes the former three) is ''required''; +is '''required'''; +e.g., after %%% |\maketitle| and +|\tableofcontents|. +|\wikimarkup| '''activates ''all''''' the features. +% * +|\nowikimarkup| %%% executes all of +% \[|\nowikiEnvironments|,\quad |\nowikiFonts|,\quad |\nowikiHeadings|.\] +% |\nowikiEnvironments|, |\nowikiFonts|, |\nowikiHeadings|. +% Use them to get around incompatible code. +'''''dis''ables all''' of them, e.g., to get around incompatibilities. + +\end{document} + -- cgit v1.2.3