diff options
author | Karl Berry <karl@freefriends.org> | 2010-03-23 22:55:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-03-23 22:55:47 +0000 |
commit | 1245444c38f58a5f2d3cc77bd773a1cf1920ef4d (patch) | |
tree | 2dad97e9d4e96f2e81790e209f23ec1e9fd22307 /Master/texmf-dist/source/latex/nicetext/niceverb.tex | |
parent | 22780f70b0a868b2b458fa5177c8100498b4d2b2 (diff) |
nicetext 0.3 (23mar10)
git-svn-id: svn://tug.org/texlive/trunk@17537 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/nicetext/niceverb.tex')
-rw-r--r-- | Master/texmf-dist/source/latex/nicetext/niceverb.tex | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/Master/texmf-dist/source/latex/nicetext/niceverb.tex b/Master/texmf-dist/source/latex/nicetext/niceverb.tex deleted file mode 100644 index 629d240c458..00000000000 --- a/Master/texmf-dist/source/latex/nicetext/niceverb.tex +++ /dev/null @@ -1,331 +0,0 @@ -\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*[<opt-arg>]{<mand-arg>}\] -This was achieved by typing \[\verb'&\foo*[<opt-arg>]{<mand-arg>}'\] -In ``auto mode'' of the package, even typing -\[\verb|\foo*[<opt-arg>]{<mand-arg>}|\] - %% 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 <meta-variable>). -You just type \lq\verb'<foo>'\rq\ to get \lq<foo>\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|<foo>|'\rq, by contrast, just -yields \lq\verb'<foo>'\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<remaining>}) 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{<text>} by \SimpleVerb|'<text>'|.\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{<arg>}|\rq\ to get -\lq`\foo{<arg>}'\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{<letters>} \emph{issuing} the -command `\<letters>' 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 |