From a83576956cae969d5f301b82d893b6f5a5949276 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 9 Nov 2015 22:44:22 +0000 Subject: nicetext (9nov15) git-svn-id: svn://tug.org/texlive/trunk@38808 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/nicetext/ANNOUNCE.txt | 28 +- Master/texmf-dist/doc/latex/nicetext/CHANGE.LOG | 32 +- Master/texmf-dist/doc/latex/nicetext/FILEs.txt | 3 +- Master/texmf-dist/doc/latex/nicetext/README | 4 +- Master/texmf-dist/doc/latex/nicetext/README.pdf | Bin 20059 -> 18514 bytes .../texmf-dist/doc/latex/nicetext/RELEASE064.txt | 20 + Master/texmf-dist/doc/latex/nicetext/SrcFILEs.txt | 11 +- Master/texmf-dist/doc/latex/nicetext/makedoc.pdf | Bin 731748 -> 672829 bytes Master/texmf-dist/doc/latex/nicetext/niceverb.pdf | Bin 682716 -> 640661 bytes .../texmf-dist/source/latex/nicetext/niceverb.tex | 47 +- Master/texmf-dist/source/latex/nicetext/updsfl.sh | 30 + Master/texmf-dist/tex/latex/nicetext/makedoc.cfg | 5 +- Master/texmf-dist/tex/latex/nicetext/nicetext.RLS | 1 + Master/texmf-dist/tex/latex/nicetext/niceverb.sty | 749 ++++++++++++++++----- 14 files changed, 738 insertions(+), 192 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/nicetext/RELEASE064.txt create mode 100755 Master/texmf-dist/source/latex/nicetext/updsfl.sh diff --git a/Master/texmf-dist/doc/latex/nicetext/ANNOUNCE.txt b/Master/texmf-dist/doc/latex/nicetext/ANNOUNCE.txt index 16fe886c8c8..336627edb13 100644 --- a/Master/texmf-dist/doc/latex/nicetext/ANNOUNCE.txt +++ b/Master/texmf-dist/doc/latex/nicetext/ANNOUNCE.txt @@ -1,20 +1,12 @@ nicetext: minimal markup for documentation, text filtering ... ================================================================= -Release 0.64 2012/11/27: - -- `makedoc.cfg' without bad `pdfstartview' as on - - http://www.archivum.info/comp.text.tex/2006-10/00576/Re-hyperref-pdfstartview.html - -- ... applied to all the PDF documentation files - -- `srcfiles.tex' exemplifies - - \DoWithBasesExts{}{}{} - - from new `filesdo.sty' - -- `niceverb.sty' v0.51 only "\providecommand"s \dqtd and \qtd - for better interaction with other packages providing - them too - +Release 0.66, 2015/11/09 mainly: `niceverb.sty' + - has `SelfProtect'ion and other improvements of robustness of + verbatim material (such as additionally:) + - deals with \active@math@prime when a page break occurs inside + a listing + - has \qtdnverb to deal with the downside of the `...' feature + - has several documentation fixes +... and ideas on documentation in `niceverb.tex' + +(Returning!) diff --git a/Master/texmf-dist/doc/latex/nicetext/CHANGE.LOG b/Master/texmf-dist/doc/latex/nicetext/CHANGE.LOG index 55517283793..c9506ee16b5 100644 --- a/Master/texmf-dist/doc/latex/nicetext/CHANGE.LOG +++ b/Master/texmf-dist/doc/latex/nicetext/CHANGE.LOG @@ -1,7 +1,22 @@ +______________________________________________________________________ + +nicetext RELEASE 0.66 2015/11/09 + + CHANGE.LOG 2015/11/09 updated + makedoc.cfg 2013/03/25 usage of `filedate.sty' + makedoc.pdf 2015/11/09 updated + niceverb.sty v0.61 2015/11/09 \NVerb[..., \SetNiceVerbSaveBox, + `SelfProtect'tion & other + robustness, \active@math@prime in + \output, \qtdnverb; doc fixes + niceverb.tex 2014/03/28 local extensions of `makedoc.sty' + niceverb.pdf 2015/11/09 updated + nicetext.RLS 2015/11/09 updated + SrcFILEs.txt 2015/11/09 updated ______________________________________________________________________ -nicetext RELEASE 0.65 2012/11/30 `makedoc.cfg' ... +nicetext RELEASE 0.65 2012/11/30 `makedoc.cfg' ... CHANGE.LOG 2012/11/30 updated makedoc.cfg 2012/11/30 \MDsamplecodeinput spacing corr., @@ -15,7 +30,7 @@ nicetext RELEASE 0.65 2012/11/30 `makedoc.cfg' ... ______________________________________________________________________ -nicetext RELEASE 0.64 2012/11/27 `makedoc.cfg' without wrong +nicetext RELEASE 0.64 2012/11/27 `makedoc.cfg' without wrong `pdfstartview', applying `filesdo.sty', weaker \[d]qtd @@ -25,16 +40,17 @@ nicetext RELEASE 0.64 2012/11/27 `makedoc.cfg' without wrong README 2012/11/27 updated second (C) README.pdf 2012/11/27 updated fifinddo.pdf 2012/11/27 typeset with new `makedoc.cfg' + makedoc.cfg 2012/11/26 pdfstartview fixed makedoc.pdf 2012/11/27 typeset with new `makedoc.cfg' - niceverb.sty 2012/11/27 \[d]qtd \provide'd only - niceverb.pdf 2012/11/27 updated + niceverb.sty v0.6 2012/11/27 \[d]qtd \provide'd only + niceverb.pdf 2012/11/27 typeset with new `makedoc.cfg' nicetext.RLS 2012/11/27 updated srcfiles.tex 2012/11/27 applies new `filesdo.sty' SrcFILEs.txt 2012/11/27 updated ______________________________________________________________________ -nicetext RELEASE 0.63 2012/11/17 `fifinddo.sty' adjusted to +nicetext RELEASE 0.63 2012/11/17 `fifinddo.sty' adjusted to previous `mdoccorr.cfg'; `README' updated, subtitle @@ -42,13 +58,13 @@ nicetext RELEASE 0.63 2012/11/17 `fifinddo.sty' adjusted to README 2012/11/17 updated (C), subtitle README.pdf 2012/11/17 updated SrcFILEs.txt 2012/11/17 updated - fifinddo.sty 2012/11/17 \gdef\do{\Prepend... + fifinddo.sty v0.61 2012/11/17 \gdef\do{\Prepend... fifinddo.pdf 2012/11/17 updated nicetext.RLS 2012/11/17 updated ______________________________________________________________________ -nicetext RELEASE 0.62 2012/11/13 `makedoc.cfg' enhanced +nicetext RELEASE 0.62 2012/11/13 `makedoc.cfg' enhanced (`filedate', code input), documented in `makedoc.pdf' @@ -68,7 +84,7 @@ nicetext RELEASE 0.62 2012/11/13 `makedoc.cfg' enhanced ______________________________________________________________________ -nicetext RELEASE 0.61 2012/11/09 makedoc/mdoccorr.cfg +nicetext RELEASE 0.61 2012/11/09 makedoc/mdoccorr.cfg extended, use recent `nicefilelist' diff --git a/Master/texmf-dist/doc/latex/nicetext/FILEs.txt b/Master/texmf-dist/doc/latex/nicetext/FILEs.txt index cf4a640b155..41c89c27c84 100644 --- a/Master/texmf-dist/doc/latex/nicetext/FILEs.txt +++ b/Master/texmf-dist/doc/latex/nicetext/FILEs.txt @@ -23,6 +23,7 @@ doc documentation |_RELEASE043.txt announcement for earlier release |__RELEASE05.txt announcement for earlier release |_RELEASE051.txt announcement for earlier release +|_RELEASE064.txt announcement for earlier release |___fifinddo.pdf for fifinddo.sty |____makedoc.pdf for makedoc.sty |__mdoccheat.pdf lists makedoc+fifinddo commands @@ -66,4 +67,4 @@ use macro packages |_______wiki.sty Wikimedia-like markup __________________________ -this file 2012/11/27, U.L. +this file 2015/11/09, U.L. diff --git a/Master/texmf-dist/doc/latex/nicetext/README b/Master/texmf-dist/doc/latex/nicetext/README index e3ed5ce6794..89972888110 100644 --- a/Master/texmf-dist/doc/latex/nicetext/README +++ b/Master/texmf-dist/doc/latex/nicetext/README @@ -3,7 +3,7 @@ Minimal Markup for Documenting, Text Filtering, ... - (c) 2009-2012 Uwe Lueck http://contact-ednotes.sty.de.vu + (c) 2009-2015 Uwe Lueck http://contact-ednotes.sty.de.vu == General Idea == @@ -137,4 +137,4 @@ A TDS version `nictext.tds.zip' is available at ________________________________ - [This file 2012/11/27 Uwe Lueck] + [This file 2015/11/09 Uwe Lueck] diff --git a/Master/texmf-dist/doc/latex/nicetext/README.pdf b/Master/texmf-dist/doc/latex/nicetext/README.pdf index 4a893b3b45e..2acabdede62 100644 Binary files a/Master/texmf-dist/doc/latex/nicetext/README.pdf and b/Master/texmf-dist/doc/latex/nicetext/README.pdf differ diff --git a/Master/texmf-dist/doc/latex/nicetext/RELEASE064.txt b/Master/texmf-dist/doc/latex/nicetext/RELEASE064.txt new file mode 100644 index 00000000000..16fe886c8c8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/RELEASE064.txt @@ -0,0 +1,20 @@ +nicetext: minimal markup for documentation, text filtering ... +================================================================= +Release 0.64 2012/11/27: + +- `makedoc.cfg' without bad `pdfstartview' as on + + http://www.archivum.info/comp.text.tex/2006-10/00576/Re-hyperref-pdfstartview.html + +- ... applied to all the PDF documentation files + +- `srcfiles.tex' exemplifies + + \DoWithBasesExts{}{}{} + + from new `filesdo.sty' + +- `niceverb.sty' v0.51 only "\providecommand"s \dqtd and \qtd + for better interaction with other packages providing + them too + diff --git a/Master/texmf-dist/doc/latex/nicetext/SrcFILEs.txt b/Master/texmf-dist/doc/latex/nicetext/SrcFILEs.txt index 98866c25543..3accd6afc2d 100644 --- a/Master/texmf-dist/doc/latex/nicetext/SrcFILEs.txt +++ b/Master/texmf-dist/doc/latex/nicetext/SrcFILEs.txt @@ -4,7 +4,7 @@ README.tex 2012/03/18 -- make README.pdf fifinddo.tex 2011/11/19 -- documenting fifinddo.sty makedoc.tex 2012/11/30 -- documenting makedoc.sty - niceverb.tex 2012/10/10 -- documenting niceverb.sty + niceverb.tex 2014/03/28 -- documenting niceverb.sty mdoccheat.tex 2011/01/26 -- cheat sheet for `makedoc.sty' wikicheat.tex 2011/01/26 -- cheatsheet for wiki.sty srcfiles.tex 2012/11/27 -- file infos -> SrcFILEs.txt @@ -25,15 +25,14 @@ wikicheat.tex 2011/01/26 -- cheatsheet for wiki.sty USE.... -- -- -- -- fifinddo.sty 2012/11/17 v0.61 filtering TeX(t) files by TeX (UL) makedoc.sty 2012/08/28 v0.52 TeX input from *.sty (UL) - makedoc.cfg 2012/11/30 -- documentation settings + makedoc.cfg 2013/03/25 -- documentation settings mdoccorr.cfg 2012/11/13 -- `makedoc' local typographical corrections - niceverb.sty 2012/11/27 v0.51 minimize doc markup (UL) + niceverb.sty 2015/11/09 v0.61 minimize doc markup (UL) wiki.sty 2008/07/02 v0.2 LaTeX through Wiki markup BUNDLE.... -- -- -- -- - nicetext.RLS 2012/11/30 r0.65 makedoc.cfg: \MDsamplecodeinput corr., - \ctanpkgdref + nicetext.RLS 2015/11/09 r0.66 `niceverb.sty' robustness features *********** - List made at 2012/11/30, 15:36 + List made at 2015/11/09, 05:00 from script file srcfiles.tex diff --git a/Master/texmf-dist/doc/latex/nicetext/makedoc.pdf b/Master/texmf-dist/doc/latex/nicetext/makedoc.pdf index 0b19908df6a..f916aa1dbee 100644 Binary files a/Master/texmf-dist/doc/latex/nicetext/makedoc.pdf and b/Master/texmf-dist/doc/latex/nicetext/makedoc.pdf differ diff --git a/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf b/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf index b7771e387bf..8d1eebd1e81 100644 Binary files a/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf and b/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf differ diff --git a/Master/texmf-dist/source/latex/nicetext/niceverb.tex b/Master/texmf-dist/source/latex/nicetext/niceverb.tex index 6203d5f302b..76b503cd8bb 100644 --- a/Master/texmf-dist/source/latex/nicetext/niceverb.tex +++ b/Master/texmf-dist/source/latex/nicetext/niceverb.tex @@ -1,4 +1,4 @@ -\ProvidesFile{niceverb.tex}[2012/10/10 documenting niceverb.sty] +\ProvidesFile{niceverb.tex}[2014/03/28 documenting niceverb.sty] \title{\textsf{niceverb.sty}\\---\\Minimizing Markup\\for Documenting \LaTeX\ packages\thanks{This document describes version @@ -8,8 +8,9 @@ % \listfiles 2010/03/19 { \RequirePackage{makedoc} \ProcessLineMessage{} %% 2010/03/11 \MakeJobDoc{19}{\SectionLevelThreeParseInput} } -\documentclass{article}%% TODO paper dimensions!? +\documentclass[fleqn]{article}%% TODO paper dimensions!? \input{makedoc.cfg} %% shared formatting settings +\newcommand*{\secref}[1]{Sec.~\ref{sec:#1}} %% 2014/03/27 %% 2011/08/22: \MDkeywords{literate programming, syntactic sugar, .txt to .tex enhancement, macro programming} @@ -22,6 +23,7 @@ \begin{document} \maketitle \begin{MDabstract} +% \tracingmacros=1 \tracingonline=1 'niceverb.sty' provides very decent syntax (through active characters) for describing \LaTeX\ packages and the syntax of macros conforming to \LaTeX\ syntax conventions. @@ -95,7 +97,7 @@ works without changing category codes (which is the usual idea of typesetting code), therefore it works even in macro arguments. \item %% 2011/01/26 \lq\HardNVerb++\rq\ produces \lq\rq. -(\qtd{&\lessthan} stores the original \qtd{&<}.) +(\qtd{&\lt} stores the original \qtd{&<}.) %% was \lessthan 2014/03/28 \end{enumerate} \subsection{The Commands and Features of 'niceverb'} @@ -122,6 +124,7 @@ A typical example is this: This was achieved by typing \[\HardVerbBox+&\foo*[]{}+\] In ``auto mode" of the package, even typing +% \tracingmacros=1 \tracingonline=1 \[\HardVerbBox+\foo*[]{}+\] would have sufficed---\acro{WYSIWYG}! I call such mixtures of \emph{verbatim} and ``meta-variables" \textit{\qtd{meta-code}}. @@ -305,10 +308,27 @@ indeed! (So the general syntax is |#|.) syntax \emph{alltogether} by |\noNiceVerb| and revive it by |\useNiceVerb| (without ``auto mode").{\sloppy\par} - \textbf{Right Quotes:} Disabling\slash reviving replacement + \strong{Right Quotes:} Disabling\slash reviving replacement of `\textsf' by single right quotes requires \[|\nvRightQuoteNormal| \mbox{\quad or\quad } |\nvRightQuoteSansSerif|\] - respectively. + %% 2014/03/27: + respectively.---The feature fails in certain occasions + because a single right quote must not always be interpreted + as `\textsf', and deciding this by macros became quite + laborious for me and is most likely still not perfect. + There is a command |\nvAllRightQuotesSansSerif| + to be used with care that interpretes \emph{all} single + right quotes as `\textsf', which, e.g., means that you + must use `\rq' for apostrophes. + + \strong{``Moving" arguments:} %% 2014/03/27 + |\NiceVerbMove{}| with v0.6 is for ``moving" arguments so that + 'niceverb' syntax operates \emph{locally} at the destination + (table of contents or page headings). + It is automatically used by 'niceverb''s variant of \LaTeX's + sectioning commands; while with `\markboth', `\markright', + `\addcontentsline' etc.\ you must it include yourself + (currently, \TODO?). \end{description} \subsection{Examples} @@ -424,7 +444,12 @@ These are the first applications of 'niceverb''s ``auto mode" to features, I need to find out $\dots$ \end{enumerate} -\section{Implementation of the Markup Syntax} +\newpage %% 2014/03/28 +\section{The Package File} %% 2014/03/19 +% \section{The ``Package" File} %% test for page heading 2014/03/24 +% \section{`nicetext.sty'} %% tests for pageheadings 2014/03/27 +\subsection{Preliminaries} %% 2014/03/19 +\subsubsection{File Header} %% 2014/03/19 \input{niceverb.doc} \end{document} @@ -468,3 +493,13 @@ HISTORY 2011/10/07 `syntacic' 2011/11/05 modified pdftitle 2012/10/10 \AddQuotes, \DontAddQuotes + +FOR V0.6: +2014/03/19 subsec. Preliminaries, subsubsec. Header, `Implementation + of the Markup Syntax' -> `The Package File' +2014/03/24 experiment with former +2014/03/25 debugging in abstract +2014/03/26 trying class option `fleqn' / debugging again +2014/03/27 \secref; |\NiceVerbMove|, |\nvAllRightQuotesSansSerif|; + tests +2014/03/28 debugging; \lessthan -> \lt; \newpage diff --git a/Master/texmf-dist/source/latex/nicetext/updsfl.sh b/Master/texmf-dist/source/latex/nicetext/updsfl.sh new file mode 100755 index 00000000000..4e6735173eb --- /dev/null +++ b/Master/texmf-dist/source/latex/nicetext/updsfl.sh @@ -0,0 +1,30 @@ +## long names for srcfiles.tex, dummy files: +ln -s substr/DOCSRC/SUBSTR.TEX substr.tex +ln -s wiki/WIKICHEA.TEX wikicheat.tex +ln -s DOCSRC/MDOCCHEA.TEX mdoccheat.tex +ln -s Arseneau/SRC/ARSENEAU.TEX arseneau.tex +ln -s RUN/SOURCE/ATARI.CFG atari.cfg +ln -s RUN/SOURCE/ATARI.FDF atari.fdf +blogsrc='../../blog/convert/SRC' +ln -s $blogsrc/U8ATABLG.FDF u8atablg.fdf +ln -s RUN/SOURCE/COPYFILE.CFG copyfile.cfg +ln -s RUN/SOURCE/COPYFILE.TEX copyfile.tex +#ln -s RUN/SOURCE/fddialog.sty fddialog.sty +ln -s RUN/SOURCE/FDDIAL0G.STY fddial0g.sty +#ln -s RUN/SOURCE/FDTXTTEX.CFG fdtxttex.cfg +ln -s $blogsrc/FDTXTTEX.CFG fdtxttex.cfg +#ln -s RUN/SOURCE/FDTXTTEX.TEX fdtxttex.tex +ln -s $blogsrc/FDTXTTEX.TEX fdtxttex.tex +ln -s RUN/SOURCE/FDTXTTEX.TPL fdtxttex.tpl +ln -s RUN/SOURCE/MAKEDOC.TPL makedoc.tpl +ln -s substr/DOCSRC/SUBSTR.TEX substr.tex +ln -s wiki/wiki.sty wiki.sty +echo \\ProvidesFile{DOCSRC....}[] > DOCSRC.... +echo \\ProvidesFile{RUN....}[] > RUN.... +echo \\ProvidesFile{RUNUSE....}[] > RUNUSE.... +echo \\ProvidesFile{USE....}[] > USE.... +echo \\ProvidesFile{BUNDLE....}[] > BUNDLE.... +latex srcfiles.tex +rm *.... *.fdf *.tpl +rm atari.* copyfile.* fd*.* +rm *cheat.tex arseneau.tex substr.tex wiki.sty diff --git a/Master/texmf-dist/tex/latex/nicetext/makedoc.cfg b/Master/texmf-dist/tex/latex/nicetext/makedoc.cfg index 4af672f6b88..666c87706ec 100644 --- a/Master/texmf-dist/tex/latex/nicetext/makedoc.cfg +++ b/Master/texmf-dist/tex/latex/nicetext/makedoc.cfg @@ -1,4 +1,4 @@ -\ProvidesFile{makedoc.cfg}[{2012/11/30 documentation settings}] +\ProvidesFile{makedoc.cfg}[{2013/03/25 documentation settings}] %% \author{Uwe L\"uck\thanks{% \url{http://contact-ednotes.sty.de.vu}}} @@ -69,8 +69,10 @@ %% |\MDfinaldatechecks[]| with \ctanpkgref{filedate}: \newcommand*{\MDfinaldatechecks}[1][fdatechk]{% \AtEndDocument{% +% \clearpage %% 2013/03/25 no avail -- with `filedate'! \def\@pkgextension{sty}% \def\NeedsTeXFormat##1[##2]{}% + \noNiceVerb %% 2013/03/22 \input{#1}% }} \@onlypreamble\MDfinaldatechecks @@ -84,6 +86,7 @@ \RequirePackage{color} %% 2011/08/06 \RequirePackage{lmodern} %% 2012/10/29 \RequirePackage{filedate} %% 2012/11/12 +\RequirePackage{filesdo} %% 2013/03/22 %% \pagebreak[3] %% Logical markup:\qquad |\strong{}|, |\meta{}|, %% |\acro{}|, |\pkg{}|, diff --git a/Master/texmf-dist/tex/latex/nicetext/nicetext.RLS b/Master/texmf-dist/tex/latex/nicetext/nicetext.RLS index 6398487036d..650994cffab 100644 --- a/Master/texmf-dist/tex/latex/nicetext/nicetext.RLS +++ b/Master/texmf-dist/tex/latex/nicetext/nicetext.RLS @@ -1,4 +1,5 @@ \ProvidesFile{nicetext.RLS} %% >RELEASE INFO< + [2015/11/09 r0.66 `niceverb.sty' robustness features] [2012/11/30 r0.65 makedoc.cfg: \string\MDsamplecodeinput\space corr., \string\ctanpkgdref] [2012/11/27 r0.64 makedoc.cfg w/o bad pdfstartview, diff --git a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty index 7b76ccc69a0..19366dddc62 100644 --- a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty +++ b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty @@ -1,8 +1,8 @@ \NeedsTeXFormat{LaTeX2e}[1994/12/01] -\ProvidesPackage{niceverb}[2012/11/27 v0.51 +\ProvidesPackage{niceverb}[2015/11/09 v0.61 minimize doc markup (UL)] -%% Copyright (C) 2009-2012 Uwe Lueck, +%% Copyright (C) 2009-2012, 2014 2015 Uwe Lueck, %% http://www.contact-ednotes.sty.de.vu %% -- author-maintained in the sense of LPPL below -- %% @@ -17,7 +17,13 @@ %% %% http://www.contact-ednotes.sty.de.vu %% -%% === Switching Category Codes === +%% ==== &\newlet ==== +%% |\newlet| counters the risk of mistyping +%% with `\@ifdefinable', and even saves some code lines: +\providecommand*{\newlet}[2]{\@ifdefinable#1{\let#1#2}} +\@onlypreamble\newlet +%% +%% ==== Switching Category Codes ==== %% Underscore as a ``private letter," using 'stacklet' with v0.5: \RequirePackage{stacklet} \PushCatMakeLetter\_ %% 2012/08/27 %% v0.3 introduced `\AssignCatCodeTo' and `\MakeNormal'. @@ -71,11 +77,10 @@ %% % We take a copy |\MakeActiveLetHere| as well: %% likewise is in 'actcodes'. 'niceverb' takes a copy %% |\MakeActiveLetHere| of it for dealing with 'hyperref' -%% (see Section~\ref{sec:hyperref}). +%% (see \secref{hyperref}). %% 'hyperref'-compatibility of mere `\MakeActive' %% is not provided any longer: -\@ifdefinable\MakeActiveLetHere{% - \let\MakeActiveLetHere\MakeActiveLet} +\newlet\MakeActiveLetHere\MakeActiveLet %% %% |\MakeAlign\&| can be used to restore the meaning of `&' after we %% %% have made it `\active'. %% % \providecommand*{\MakeAlign} {\AssignCatCodeTo4} @@ -93,10 +98,14 @@ %% respectively; ``end of line", ``ignored", ``letter", ``other", and %% ``invalid" are missing---cf. {\it \TeX book} Chap.\,7.) \def\do#1{\expandafter - \chardef \csname normal_catcode_\string#1\expandafter \endcsname +% \chardef \csname normal_catcode_\string#1\expandafter \endcsname +%% <- v0.6 2014/03/22: First I thought ``too few `\expandafter's"; +%% actually the original `\expandafter' has no effect -> + \chardef \csname normal_catcode_\string#1\endcsname \CatCode#1\relax} \dospecials %% Tests: +%% %\withcsname\show normal_catcode_\string\\\endcsname %% 2014/03/22 %% ``normal category code" of `\' is %% \expandafter\the\csname normal_catcode_\string\\\endcsname, %% ``normal category code" of `$' is @@ -120,38 +129,169 @@ %% TODO save char tokens %% 2012/08/27 %% We take a copy |\MakeNormalHere| of `\MakeNormal' as %% with `\MakeActive'. -\@ifdefinable\MakeNormalHere{\let\MakeNormalHere\MakeNormal} +\newlet\MakeNormalHere\MakeNormal %% -%% === Robustness by &\IfTypesetting === -%% It seems we need some own ways to achieve various -%% compatibilities---using |\IfTypesetting{}{}|. +%% ==== Robustness by &\IfTypesetting\ or So ==== +%% \label{sec:iftype} +%% It seems we need some own ways +%% of robustifying (as opposed to \LaTeX's `\protect' and %% 2014/03/20 +%% `\DeclareRobustCommand'---sometimes, +%% especially for certain active characters) +%% to achieve various +%% compatibilities---using +%% %\begin{center} +%% \[|\IfTypesetting{}{}|\]%%%. +%% %\end{center} %% It also saves some `\expandafter's. \providecommand*{\IfTypesetting}{% % \relax -%% This `\relax' suppressed ligatures of single right quotes! +%% <- This `\relax' suppressed ligatures of single right quotes! +%% %%^ arrow 2014/03/20 %% %% removed 2010/03/23 \ifx \protect\@typeset@protect \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi} +%% %\begin{center} +%% \[|\nvSelfProtect{}{}|\] +%% %\end{center} +%% is another idea. +%% In ``typesetting mode," is run. +%% Otherwise a single unexpanded token remains. +%% TODO bad at `\shipout'. +%% No `\protect' appears, and as opposed to \LaTeX's +%% protection mechanism, running does not +%% require a second macro name. +%% The idea is that +%% %`\nvSelfProtect{}{}' +%% `\nvSelfProtect{#1}{#2}' +%% is the \emph{definition} (substitution text---on +%% token level) of .\footnote{This +%% may go into a separate package under a different name later.} +\newcommand*{\nvSelfProtect}[2]{% + \ifx \protect\@typeset@protect + \nv_expand_else{#2}% %% braces 2014/03/26 +% \else \protect#1\fi} + \else \noexpand#1\fi} %% works 2014/03/28 +\def\nv_expand_else#1\else#2\fi{\fi#1} +%% %% 2014/03/27 +%% Sometimes ``control sequences" get definitions with +%% `\svSelfProtect' below whose first argument then is +%% an active character---the ``control sequence" then +%% is the ``permanent alias" of the active character. +%% This is a somewhat ``indirect self"-protection. +%% At other places, the ``self"-protection is more +%% direct. Then |\NewSelfProtectedCommand{}{}| avoids +%% mistakes from mistyping and saves some code. +%% It works like `\newcommand*', provides the +%% `\svSelfProtect', and your definition needs to contain +%% the second argument of `\svSelfProtect' only. +%% \emph{Arguments} are not supported currently +%% (TODO---well, 3 applications 2014/03/27):{\sloppy\par} +\newcommand*{\NewSelfProtectedCommand}[2]{% + \newcommand*#1{\nvSelfProtect#1{#2}}} +\@onlypreamble\NewSelfProtectedCommand +%% TODO 3 applications for the permanent alias case, +%% saving catcode changes ... %% 2014/03/28 +%% +%% \strong{Testing:} +\newcommand*{\nvShowProtectedEdef}[1]{% + \protected@edef\@tempa{#1}\show\@tempa} %% -%% === &\NVerb === -%% `\begin_min_verb' is a beginning shared by some macros here. +%% ==== Shared Shorthand Macros ==== +%% |\begin_min_verb| is a beginning shared by some macros here. %% It begins like \LaTeX's `\verb', apart from the final `\tt'. +%% %% 2014/03/18: +%% `\bgroup' is needed for `\hbox' and must be balanced by +%% an `\egroup' counterpart later. \newcommand*{\begin_min_verb}{% \relax \ifmmode \hbox \else \leavevmode\null \fi \bgroup \tt} -%% |\NVerb| +%% For typographical additions (``decorations") to the verbatim material, +%% we collect it in a box register addressed by |\niceverb_savebox|: +\newsavebox\niceverb_savebox +%% |\SetNiceVerbSaveBox| starts reading the (``meta-")verbatim +%% material: +\newcommand*{\SetNiceVerbSaveBox}{% + \setbox\niceverb_savebox\hbox\bgroup} +%% |\NVerb|, |\HardNVerb|, or |\NiceMaybeMetaVerb| +%% with an optional argument about as `[\_egroup]' should follow, cf. +%% \secref{nverb}.---There have been two applications +%% only up to now (2014/03/19), but this may change soon.\footnote{% +%% Thought of &\qtdnverb, but this doesn't need this kind +%% of treatment.} %% 2014/03/20 +%% +%% |\TheNiceVerbSaveBox| allows referring to the verbatim material +%% collected, in order to place it a \emph{single time}---and no +%% surrounding braces are needed: +\newcommand*{\TheNiceVerbSaveBox}{\box\niceverb_savebox} +%% TODO: +%% \begin{center} +%% |\NewNiceVerbDecoration{\}{\}{}{}| +%% \end{center} +%% might save from typing `\' twice and from typing +%% the two `\egroup's. +%% +%% %\section{&\+*[]{} `{verbatim}' ``o''} %% 2014/03/28 +%% TODO left quote verb moving: braces get lost. %% 2014/03/28 +%% %\nvShowProtectedEdef{``''&\+} +%% === Implementation of the ``Nice" Syntax === +%% ==== &\NVerb ==== +%% \label{sec:nverb} +%% Discovered mistakes in this section 2014/03/19, %% 2014/03/20 +%% with respect to robustness. \ +%% (i)~`\NVerb' not really was meant to be a user command, +%% to appear in documentation code (rather to be internal). \ +%% (ii)~The attempt to make it robust was incomplete. \ +%% (iii)~The code for ``not typesetting" was strange. \ +%% (iv)~It is difficult to imagine that somebody attempts +%% to use ``verbatim" code, e.g., in a section title +%% (while with our `&'/`\string' it's ok). +%% \emph{At least handy replacement for &\textsf.} \ %% 2014/03/28 +%% Well, let's see. May be I once find a useful application. +%% So I repair the code---`\protect' before &\_...`_false'. +%% |\NVerb|: \newcommand*{\NVerb}{% - \_no_nice_meta_verb_false \nice_maybe_meta_verb} + \protect\_no_nice_meta_verb_false \NiceMaybeMetaVerb} %% |\HardNVerb| does not recognize meta-variables: \newcommand*{\HardNVerb}{% - \_no_nice_meta_verb_true \nice_maybe_meta_verb} + \protect\_no_nice_meta_verb_true \NiceMaybeMetaVerb} \newif\if_no_nice_meta_verb_ -\newcommand*{\nice_maybe_meta_verb}[1]{% +%% %\tracingmacros=1 \tracingonline=1 +%% %\pagebreak +%% %\tracingmacros=0 +%% v0.6 equips both |\NVerb[]| and %% 2014/03/18 +%% |\HardNVerb[]| with an optional argument for a single +%% parameter-less macro for what to do after reading +%% verbatim text---for boxing or quoting etc.\footnote{The +%% goal resembles that of &\collectverb in Martin Scharrer's +%% \ctanpkgref{newverbs}. A difference in implementation is +%% that the character delimiting the verbatim text +%% is used as a parameter delimiter for a new/temporary macro. +%% So the verbatim characters are fixed. Our approach will be +%% collecting the verbatim material in a box, if we need +%% something more complex than %&\niceverb_normal_egroup. +%% \cs{niceverb_mormal_egroup}. +%% This allows changing category codes with &\MetaVar again, +%% although there hasn't been a need for this so far. +%% It might be useful for allowing shorthand macros in +%% &\MetaVar's argument.} +%% |\niceverb_egroup| then is useless and removed. +%% Macros that were assigned to it before v0.6 move into +%% the new optional arguments.---Actually, the next macro +%% |\NiceMaybeMetaVerb| shared by `\NVerb' and `\HardNVerb' +%% gets the optional argument: TODO!? +%% %\tracingmacros=1 \tracingonline=1 +% \newcommand*{\nice_maybe_meta_verb}[1]{% +%% %\tracingmacros=0 +%% %TODO +%% %\pagebreak %% makes difference with ` +\newcommand*{\NiceMaybeMetaVerb}[2][\niceverb_normal_egroup]{% +%% `\newcommand' with v0.6 must suffice for robustness, +%% so removing 2014/03/20: +% \IfTypesetting{% %% Mainly avoid `\verb''s noligs list which overrides definitions %% of some active characters, while 'cmtt' doesn't have any %% ligatures anyway. - \IfTypesetting{% \begin_min_verb \let\do\MakeOther \dospecials %% Turn off 'niceverb' specials: @@ -160,37 +300,71 @@ %%% \else \MakeActiveLet\<\MetaVar %% 2010/12/31 \else \MakeActiveLetHere\<\MetaVar %% 2011/06/20 \fi - \MakeActiveLetHere #1\niceverb_egroup +% \MakeActiveLetHere #2\niceverb_egroup + \MakeActiveLetHere #2#1% %% 2014/03/18 +%% After the previous line has worked, we use `\def' +%% instead of `\let', so there is no longer a need +%% to choose a command name for the verbatim delimiter +%% -- well, \strong{no}, don't define the same +%% macro several times. Also, the same ``end" macro +%% might be used for different purposes, e.g., +%% when a macro in an eventual expansion of the ``end" macro +%% is modified. +% \MakeActiveDef #2{#1}% %% 2014/03/18 \verb@eol@error %% TODO change message 2009/04/09 - }{\string\NVerb \string#1}} -%% 2009/04/11: about `etc.' [preceding a box!? 2010/03/14] +% }{\string\NVerb \string#1}} +%% <- both `\string' very strange +%% (second one finds ---maybe it's active---but +%% then its next occurrence delimiting the verbatim code +%% will harm too!), +%% also redirecting to `\NVerb'. +%% (May have been ok for entries to auxiliary files.) +%% New difficulties come from the optional argument, +%% which needs protection as well.---Ok, the optional +%% argument is not protected, and active characters +%% must ``protect themselves," so use of +%% `\IfTypesetting' changes, cf. \secref{iftype}. +} +%% %2009/04/11: about `etc.' [preceding a box!? 2010/03/14] +%% [2014/03/19 removing/hiding +%% remarks from 2009f. that I don't understand anymore~...] \newcommand*{\niceverb_normal_egroup}{% \egroup -%% 2011/09/09 adding `\niceverb_maybe_rq' for `\AddQuotes': - \niceverb_maybe_rq + \niceverb_maybe_rq %% 2011/09/09 for \AddQuotes \ifmmode\else\@\fi} -\@ifdefinable\niceverb_egroup - {\let\niceverb_egroup\niceverb_normal_egroup} +% \@ifdefinable\niceverb_egroup %% rm 2014/03/18 +% {\let\niceverb_egroup\niceverb_normal_egroup} %% -%% === Single Quotes Typeset Meta-Code === +%% ==== Single Quotes Typeset Meta-Code ==== %% |\LQverb| will be a ``permanent alias" %% for the active left single quote. %% %% The verbatim feature must not act when another single left -%% quote is ahead---we assume a double quote is intended then +%% quote is ahead---we assume a double quote is intended then, +%% and we typeset it %% (thus the left quote feature does not allow to typeset %% something verbatim that starts with a single left quote). -%% Rather, double quotes should be typeset then. -%% In page headers, a `\protect' may be in the way. +%% %Rather, double quotes should be typeset then. rm. 2014/03/25 +%% In page headers, a `\protect' +%% could %%% may %% 2014/03/28 +%% be in the way %%%.\footnote{% +%% % See \code{\string\show\cs{let_token}} below---tried %% 2014/03/24 +%% % with section title in `niceverb.tex'.} +%% before v0.6. %% (A hook for `\relax'ing certain things in -%% `\markboth' and `\markright' would have been an alternative.) +%% `\markboth' and `\markright' would have been an alternative. +%% TODO) %% 2014/03/24 \MakeActive\` \newcommand*{\LQverb}{% - \IfTypesetting{\lq_double_test}{\protect`}} +% \IfTypesetting{\lq_double_test}{\protect`}} +%% New approach v0.6: + \nvSelfProtect`\lq_double_test} +% \IfTypesetting{\lq_double_test}{\noexpand`}} \MakeOther\` \newcommand*{\lq_double_test}{% %% This test settles the next catcode, so better switch to ``other" %% in advance (won't harm if left quote isn't next): +%% TODO switch what? %% 2014/03/27 \begingroup \let\do\MakeOther \dospecials \MakeOther\|%% 2010/03/09! @@ -199,24 +373,28 @@ \ifx\let_token\LQverb \endgroup ``\expandafter \@gobble -%% Corresponding right quotes will become ``other" due to +%% ... alternative ... +% \expandafter `% +%% does not recognize next left quote---why? TODO---Corresponding +%% right quotes will become ``other" due to %% having no space at the left. %% TODO to be changed with 'wiki.sty'. \else - \ifx\let_token\protect - \expandafter\expandafter\expandafter \lq_double_decide_ii - \else +% \ifx\let_token\protect %% rm. 2014/03/28 +% % \show\let_token %% indeed before v0.6, 2014/03/24 +% \expandafter\expandafter\expandafter \lq_double_decide_ii +% \else \endgroup - \niceverb_maybe_qs %% 2011/09/09 + \niceverb_maybe_qs %% 2011/09/09 \expandafter\expandafter\expandafter \NVerb \expandafter\expandafter\expandafter \'% - \fi +% \fi \fi} %% `\lq_double_decide_ii' continues test behind `\protect'. \newcommand*{\lq_double_decide_ii}[1]{% \futurelet\let_token \lq_double_decide} %% -%% === Ampersand (or &\cstx) Typesets Meta-Code === +%% ==== Ampersand (or &\cstx) Typesets Meta-Code ==== %% |\CmdSyntaxVerb| will be a permanent alias for the active `&'. \MakeActive\& \newcommand*{\CmdSyntaxVerb}{% @@ -229,20 +407,31 @@ %% earlier---an important bug fix! \private_letters %% v0.5 \cmd_syntax_verb - }{\protect&\string}} +% }{\protect&\string}} +% }{\noexpand&\string}} +%% ... with `\string', in an `\edef', the following +%% command cannot be properly typeset, so + }{\noexpand&\noexpand}} %% 2014/03/26 +%% TODO actually test non-typesetting, maybe introduce +%% macros that perform tests anywhere ... +%% %e.g., `\typeout'~... %%% \typeout{``}\show& %% 2014/03/27 \MakeNormal\& \newcommand*{\cmd_syntax_verb}[1]{% \string#1\futurelet\let_token \after_cs} %% However, `&' (or `\CmdSyntaxVerb') -%% may fail with private letters -%% (there should be a hook for them), %% TODO 2010/02/28 -%% especially in \emph{macro arguments} %% 2010/03/05 -%% and with 'hyperref' in titles of %% 2010/03/11 +%% may fail with private letters, +%% % (there should be a hook for them), %% todo 2010/02/28, +%% %% rm 2014/03/17 after v0.5 +%% especially in \emph{macro arguments}\footnote{%% 2010/03/05 +%% TODO: 'vfoot2e.sty' -- see notes.} +%% and with 'hyperref' in titles of %% 2010/03/11 %% \emph{sections bearing \cs{label}s}, %% so we provide something like |\cs{}| from %% '\ctanpkgref{tugboat}.sty'. %% 'doc.sty'.%% corr. 2011/05/27 \DeclareRobustCommand*{\cs}[1]{% - \begin_min_verb \backslash_verb #1\egroup} +% \begin_min_verb \backslash_verb #1\egroup} +%% ... fails with `_' in footnote today (2014/03/19) so: + \begin_min_verb \withcsname\string#1\endcsname\egroup} %% v0.6 \newcommand*{\backslash_verb}{\char`\\} %% %% 2011/06/27: undid 2011/05/27 %% Moreover, typing `&\par' in ``short" \emph{macro arguments} @@ -253,9 +442,12 @@ %% by \cs{if}`'\cs{fi}. %% Finally, there will be PDF bookmarks support for `\cs' %% rather than for a real `&' or `\CmdSyntaxVerb' analogue like -%% |\cstx{}*[]{}| as follows. +%% |\cstx{}*[]{}| as follows. %% corr. 2014/03/27 \DeclareRobustCommand*{\cstx}[1]{% %% corr. 2010/03/17 - \begin_min_verb \backslash_verb #1\futurelet\let_token \after_cs} +% \begin_min_verb \backslash_verb #1% +%% v0.6 like above: + \begin_min_verb \withcsname\string#1\endcsname + \futurelet\let_token \after_cs} \newcommand*{\after_cs}{% \ifcat\noexpand\let_token a\egroup \space \else \expandafter \decide_verb \fi} @@ -284,7 +476,8 @@ %% we offer |\endcell| as a replacement for the original `&': \let\endcell& %% -%% === Escape Character Typesets Meta-Code === +%% ==== Escape Character Typesets Meta-Code ==== +%% \label{sec:esc} %% |\BuildCsSyntax| will be a permanent alias for the active escape %% character. \DeclareRobustCommand*{\BuildCsSyntax}{% @@ -315,9 +508,12 @@ %% %% 2010/03/27 \CatCode\_\before_build_cs_sub \MakeOther\@% - \expandafter \in@ \expandafter - {\csname \string_built \expandafter \endcsname - \expandafter}\expandafter{\niceverbNoVerbList}% +% \expandafter \in@ \expandafter +% {\csname \string_built \expandafter \endcsname +% \expandafter}\expandafter{\niceverbNoVerbList}% + %% <- useless braces 2014/07/17 -> + \expandafter \in@ \csname \string_built \expandafter + \endcsname \expandafter {\niceverbNoVerbList}% \ifin@ \csname \string_built \expandafter\expandafter\expandafter \endcsname @@ -376,58 +572,91 @@ \endgroup } %% -%% === Meta-Variables === +%% ==== Meta-Variables ==== %% |\MetaVar>| will be a permanent alias for the active \qtd{&<}. -\def\MetaVar#1>{% - \mbox{\normalfont\itshape $\langle$#1\/$\rangle$}} - %% TODO offer without angles as well +%% v0.6 simplifies `\pdfstringdefDisableCommands'. %% was \PDF... +% \def\MetaVar#1>{% +\MakeActive\< +\newcommand*{\MetaVar}{\nvSelfProtect>\nvMetaVar} +\MakeOther\< +\def\nvMetaVar#1>{% + \mbox{\normalfont\itshape $\langle$#1\/$\rangle$}} %% As opposed to 'ltxguide.cls', this works outside verbatim as well. +%% TODO: offer without angles as well %% moved down 2014/03/25 %% -%% === Hash Mark is Code === +%% ==== Hash Mark is Code ==== %% |\HashVerb| will be a permanent alias for the active hash mark. \newcommand*{\HashVerb}[1]{{\tt\##1}} %% -%% === Single Right Quotes for &\textsf === +%% ==== Single Right Quotes for &\textsf ==== +%% \label{sec:rqsf} %% |\RQsansserif| will be a permanent alias for the active single %% right quote. %% -%% The basic problem with the ``single right quote feature" +%% One essential %% 2014/03/25 +%% problem with the single right quote feature +%% %problem with the ``single right quote feature" %% is that a single right quote may be meant to be an apostrophe. %% This is certainly the case at the right of a letter. %% On the other hand, we assume that it is \emph{not} an apostrophe %% (i)~in vertical mode (opening a new paragraph), %% (ii)~after a horizontal skip. %% -%% For page headers, in expanding without typesetting, -%% the expansion of `\RQsansserif' must contain another active -%% single right quote.{\sloppy\par} +%% %% 2014/03/25: +%% Another problem is that with and \LaTeX\ +%% (as with Plain \TeX---\meta{The \TeX book}\ p.~357), +%% the right single quote is needed for primes in math mode, +%% and \LaTeX\ enforces this in `\@outputpage' preparing +%% `\write's (why? TODO) as well as page headers. \MakeActive\' + \newcommand*{\niceverb_rq_choice}[1]{% %% 2014/03/27 +%% We make a deal with `\active@math@prime': in math mode, +%% the prime functionality acts; outside, the ``right quote +%% sansserif mode" acts. +%% Test: $a'$ now works with 'niceverb'.---For +%% page headers, in expanding without typesetting, +%% the expansion of `\RQsansserif' must contain another active +%% single right quote. + \nvSelfProtect'{\ifmmode + \expandafter\active@math@prime + \else + \expandafter#1% + \fi}} +%% The following `\do_rq_sansserif' is what |\DoRQsansserif| +%% below was before v0.6. This, too, must be changed for +%% `\active@math@char', and earlier use of `\DoRQsansserif' +%% in `\niceverb_rq_sf_test' must be replaced. + \@ifdefinable\do_rq_sansserif + {\def\do_rq_sansserif#1'{\textsf{#1}}} \newcommand*{\RQsansserif}{% - \IfTypesetting{\niceverb_rq_sf_test}{\protect'}} +% \IfTypesetting{\niceverb_rq_sf_test}{\protect'}} + \niceverb_rq_choice\niceverb_rq_sf_test} \MakeOther\' %% Another macro just to avoid more sequences of `\expandafter': \newcommand*{\niceverb_rq_sf_test}{% \ifhmode \ifdim\lastskip>\z@ - \expandafter\expandafter\expandafter \DoRQsansserif +% \expandafter\expandafter\expandafter \DoRQsansserif + \expandafter\expandafter\expandafter \do_rq_sansserif \else \ifnum\niceverb_spacefactor \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter - \DoRQsansserif + \do_rq_sansserif %%% \DoRQsansserif \else '\fi \fi \else \ifvmode - \expandafter\expandafter\expandafter \DoRQsansserif +% \expandafter\expandafter\expandafter \DoRQsansserif + \expandafter\expandafter\expandafter \do_rq_sansserif \else '\fi \fi} +% \nvShowProtectedEdef{'niceverb'} +\MakeOther\' %% |\DoRQsansserif| %% 2010/03/10 %% is \emph{another} (possible) alias for the -%% active single right quote, see below. -\MakeActive\' - \@ifdefinable\DoRQsansserif - {\def\DoRQsansserif#1'{\textsf{#1}}} -\MakeOther\' +%% active single right quote, below. +\newcommand*{\DoRQsansserif}{% + \niceverb_rq_choice\do_rq_sansserif} %% 2014/03/27 %% The following cases are typical and cannot be decided by the %% previous criteria: %% (i)~parenthesis, (ii)~footnotes and after ``horizontal" @@ -439,10 +668,15 @@ %% \LaTeX's internal `\@sect' and of \TeX's primitives %% `\noindent' and `\ignorespaces' as well as by %% a signal `\spacefactor' value of 1001. -%% In page headers, \LaTeX\ equips the single right quote with the -%% meaning of `\active@math@prime' which must be overridden. -\newcommand*{\nvAllowRQSS}{% +%% %In page headers, \LaTeX\ equips the single right quote with the +%% %meaning of `\active@math@prime' which must be overridden. +%% %TODO more serious! v0.6 +%% +%% |\nvAllowRQSS| becomes more powerful with v0.6, +%% for \secref{listmv}: +\NewSelfProtectedCommand{\nvAllowRQSS}{% \MakeActiveLetHere\'\RQsansserif + \niceverb_rqsf %% 2014/03/27 \niceverb_ignore} %% 2010/03/16 %% These and the entire right quote functionality are %% activated by %% removed todo 2010/03/10 @@ -453,17 +687,21 @@ %% later: \AtBeginDocument{% \edef\before_niceverb_parenthesis{\the\sfcode`\(}% - \let \before_niceverb_ignore \ignorespaces %% 2010/03/16 - \let \before_niceverb_sect \@sect - \let \before_niceverb_noindent \noindent} %% 2010/03/08 + \newlet \before_niceverb_ignore \ignorespaces %% 2010/03/16 + \newlet \before_niceverb_sect \@sect %% \newlet 2014/03/25 + \newlet \before_niceverb_noindent \noindent} %% 2010/03/08 %% We assume that `\@sect' has the same %% % We assume that `\@footnotetext' and `\@sect' have the same %% parameters there as in \LaTeX\ %% (even if redefined by another package, like 'hyperref'). \def\niceverb_sect#1#2#3#4#5#6[#7]#8{% \before_niceverb_sect{#1}{#2}{#3}{#4}{#5}{#6}% - [{\protect\nvAllowRQSS #7}]% - {\protect\nvAllowRQSS #8}} +% [{\protect\nvAllowRQSS #7}]% +% {\protect\nvAllowRQSS #8}} +%% With v0.6, a more general |\NiceVerbMove{}| +%% is introduced, defined in \secref{listmv}: + [\NiceVerbMove{#7}]% + {\NiceVerbMove{#8}}} %% 2010/03/20: \newcommand*{\niceverb_spacefactor}{\spacefactor=1001\relax} \newcommand*{\niceverb_noindent}{% @@ -471,22 +709,47 @@ \newcommand*{\niceverb_ignore}{% \ifhmode \niceverb_spacefactor \fi \before_niceverb_ignore} %% -%% Here are the main switches: -\newcommand*{\nvRightQuoteSansSerif}{% - \MakeActiveLet\'\RQsansserif +%% Here are the main switches. With v0.6, |\nvRightQuoteSansSerif| +%% is divided into two parts, for \secref{listmv}: +\newcommand*{\niceverb_rqsf}{% %% 2014/03/27 +% \MakeActiveLet\'\RQsansserif \sfcode`\(=1001 %% enable in parentheses 2009/04/10 %% I also added \HardNVerb+\sfcode`/=1001+ in the preamble %% of 'makedoc.tex'. %% 2010/03/15 -% \let\@footnotetext\niceverb_footnotetext - \let\ignorespaces\niceverb_ignore %% 2010/03/16 +% \let\@footnotetext\niceverb_footnotetext + \let\ignorespaces\niceverb_ignore %% 2010/03/16 +% \let\@sect\niceverb_sect + \let\noindent\niceverb_noindent} %% 2010/03/08 +\newcommand*{\nvRightQuoteSansSerif}{% + \niceverb_rqsf + \MakeActiveLet\'\RQsansserif \let\@sect\niceverb_sect - \let\noindent\niceverb_noindent} %% 2010/03/08 -\newcommand*{\nvRightQuoteNormal}{% - \MakeNormal\'% %% 2010/03/21 + \def\niceverb_rqsf_kind{\nvAllowRQSS}} +%% <- It really must be `\def' in order to transmit the +%% choice to the table of contents. +%% +%% With v0.6, in dealing with moving things in +%% \secref{listmv}, section titles are handled +%% in a more complex way. We divide the former +%% |\nvRightQuoteNormal| into two parts: +\newcommand*{\niceverb_rq_normal}{% +% \MakeNormal\'% %% 2010/03/21 \sfcode`\(=\before_niceverb_parenthesis\relax - \let\ignorespaces\before_niceverb_ignore %% 2010/03/16 - \let\@sect\before_niceverb_sect - \let\noindent\before_niceverb_noindent} %% 2010/03/08 + \let\ignorespaces\before_niceverb_ignore %% 2010/03/16 + \let\noindent\before_niceverb_noindent} %% 2010/03/08 +\MakeActive\` +\newcommand*{\nvRightQuoteNormal}{% + \MakeNormal\'% %% 2010/03/21 + \niceverb_rq_normal + \let\nv_rqsf_kind\@empty + \ifnum\CatCode\`=\active %% `=' missing 2015/11/09 + \ifx`\LQverb \else + \let\@sect\before_niceverb_sect + \fi + \else + \let\@sect\before_niceverb_sect + \fi} +\MakeOther\` %% |\nvAllRightQuotesSansSerif| %% 2010/03/10 %% (after `\begin{document}'!) %% forces the `\textsf' feature @@ -494,24 +757,31 @@ %% sure---DANGER! CARE!---to %% use \qtd{&\rq} only for obtaining an apostrophe and the %% double quote character \qtd{&"} for closing double quotes, -%% or our `\dqtd{}' for the entire quoting. +%% or our `\dqtd{}' for the entire quoting.{\sloppy\par} \newcommand*{\nvAllRightQuotesSansSerif}{% - \nvRightQuoteNormal - \MakeActiveLet\'\DoRQsansserif} -%% I started v0.31 (signal `\sfcode'=1000, lowercase letters -%% get `\sfcode'=1001) because -%% \NVerb+\href{http://ctan.org/pkg/}{}+ failed. -%% However, what I actually needed was |\ctanpkgref{}|: -% \DeclareRobustCommand*{\ctanpkgref}[1]{% -% \href{http://ctan.org/pkg/#1}{\textsf{#1}}} -%% ... moves to 'texlinks.sty' 2011/01/24. -%% -%% === Command-Highlighting Boxes === + \niceverb_rq_normal %%% \nvRightQuoteNormal %% 2014/03/27 +%% That's one use of |\DoRQsansserif| with v0.6: + \MakeActiveLet\'\DoRQsansserif + \def\niceverb_rqsf_kind{\nvAllRQSS}} %% 2014/03/27 +%% <- must be `\def' for transmissions. +\NewSelfProtectedCommand{\nvAllRQSS}{% + \niceverb_rq_normal +%% That's the other use of |\DoRQsansserif| with v0.6: + \MakeActiveLetHere\'\DoRQsansserif} +%% [Hiding remarks from 2010f.\ (`\ctanpkgref') 2014/03/23] +%% %I started v0.31 (signal `\sfcode'=1000, lowercase letters +%% %get `\sfcode'=1001) because +%% %\NVerb+\href{http://ctan.org/pkg/}{}+ failed. +%% %However, what I actually needed was |\ctanpkgref{}|: +%% % \DeclareRobustCommand*{\ctanpkgref}[1]{% +%% % \href{http://ctan.org/pkg/#1}{\textsf{#1}}} +%% %... moves to 'texlinks.sty' 2011/01/24. +%% +%% ==== Boxes Highlighting Commands and Syntax ==== %% With v0.3, we include one kind of command syntax boxes %% whose is (in 'niceverb' syntax) %% delimited as \GenCmdBox+||+. -%% %% 2010/03/14: -\newsavebox\niceverb_savebox +%% %% 2010/03/14: %% \newsavebox!? moves up 2014/03/19 %% |\GenCmdBox}| works like %% `\NVerb' except putting the latter's result %% into a framed (or coloured or ...) box.{\sloppy\par} @@ -521,24 +791,29 @@ %% (for the documentation of the present package). \newcommand*{\HardVerbBox}{\_no_nice_meta_verb_true \gen_cmd_box} \newcommand*{\gen_cmd_box}{% -% \ifvmode\let\niceverb_boxtype\VerticalCmdBox %% 2011/11/05 -% \else\let\niceverb_boxtype\InlineCmdBox \fi - \let\niceverb_egroup\nice_collect_verb_egroup - \setbox\niceverb_savebox \hbox\bgroup - \if_no_nice_meta_verb_ - \expandafter \HardNVerb - \else \expandafter \NVerb \fi} +% \let\niceverb_egroup\nice_collect_verb_egroup %% rm 2014/03/18 +% \setbox\niceverb_savebox \hbox\bgroup +%% <- 2014/03/19 -> + \SetNiceVerbSaveBox +% \if_no_nice_meta_verb_ +% \expandafter \HardNVerb +% \else \expandafter \NVerb \fi +%% <- 2014/03/19 -> [TODO use generalization] + \NiceMaybeMetaVerb[\nice_collect_verb_egroup]% +} \newcommand*{\nice_collect_verb_egroup}{% \egroup \egroup \ifvmode \expandafter \VerticalCmdBox \else \ifmmode \hbox \fi \expandafter \InlineCmdBox \fi -% \ifmmode\hbox\fi \niceverb_boxtype %% 2011/11/05 - {\box\niceverb_savebox}% -%% Modifying invocation of `\niceverb_normal_egroup' 2011/11/05 -%% according to remark of 2010/03/15 for saving nesting level: +% {\box\niceverb_savebox}% +%% <- 2014/03/19 -> + \TheNiceVerbSaveBox +%% %Modifying invocation of `\niceverb_normal_egroup' 2011/11/05 +%% %according to remark of 2010/03/15 for saving nesting level: +%% (Removing a remark that I don't understand 2014/03/19.) \ifmmode\else\@\fi - \let\niceverb_egroup\niceverb_normal_egroup +% \let\niceverb_egroup\niceverb_normal_egroup %% rm 2014/03/19 } %% |\nvCmdBox| will be the permanent alias for \qtd{&|}. \newcommand*{\nvCmdBox}{\GenCmdBox\|} @@ -552,11 +827,20 @@ %% The user can choose later by some `\renewcommand'. %% We do the perhaps most essential thing here %% (again cf. `\begin_min_verb'):{\sloppy\par} -\newcommand*{\VerticalCmdBox}{\leavevmode\InlineCmdBox} +\newcommand*{\VerticalCmdBox}{% +%% v0.6 encourages a page break here +%% according to the above idea, in order to avoid +%% a page break after explaining subsequent code +%% (TODO: that's a major functionality change): + \if@nobreak\else \pagebreak[2]\fi + \leavevmode\InlineCmdBox} %% (2011/11/05 removing `\null'.) %% The command declaration boxes in the documentation of %% Nicola Talbot's \ctanpkgref{datatool} -%% would be an especially nice realization of `\VerticalCmdBox'. +%% would be an especially nice realization of +%% `\VerticalCmdBox'.\footnote{I find the documentation +%% of Martin Scharrer's \ctanpkgref{newverbs} package +%% similarly impressive.} %% %% |\InlineCmdBox{}|, according to our idea, should not %% change baseline skip, even with some `\fboxsep' and `\fboxrule'. @@ -577,7 +861,7 @@ \egroup } %% The default choice for |\SetOffInlineCmdBox| is `\fbox': -\@ifdefinable\SetOffInlineCmdBox{\let\SetOffInlineCmdBox\fbox} +\newlet\SetOffInlineCmdBox\fbox %% You can `\renewcommand' it to change `\fboxsep', `\fboxrule' %% etc. or to use a `\colorbox' with the 'color' package, e.g., %% I used the following setting so far: @@ -612,16 +896,26 @@ %% `\GenCmdBox'. It should replace `\item[]' in the %% `description' environment. %% 2010/03/15 \newcommand*{\cmdboxitem}{% - \bgroup - \let\niceverb_egroup\cmd_item_egroup - \global %% TODO!? 2010/03/15 - \setbox\niceverb_savebox \hbox\bgroup - \NVerb} +% \bgroup +% \let\niceverb_egroup\cmd_item_egroup +% \global %% TODO!? 2010/03/15 +% \setbox\niceverb_savebox \hbox\bgroup +%% <- 2014/03/19 -> + \SetNiceVerbSaveBox +% \NVerb} +%% <- 2014/03/19 -> + \NVerb[\cmd_item_egroup]} \newcommand*{\cmd_item_egroup}{% - \egroup \egroup \egroup - \item[\InlineCmdBox{\box\niceverb_savebox}]} + \egroup \egroup %%% \egroup %% 1 less 2014/03/19 + \item[\InlineCmdBox\TheNiceVerbSaveBox]} +%% %% 2014/03/19: +%% Does it work? +%% \begin{description} +%% \cmdboxitem+\foo{}+ could be defined for a test. +%% \cmdboxitem+\bar{}+ could be defined for a test as well. +%% \end{description} %% -%% === When 'niceverb' Gets Nasty === +%% === When 'niceverb' Gets Nasty === %% These things are new with v0.3. %% ==== Meta-Variables ==== %% This is even newer than v0.3. %% 2011/05/09 @@ -631,7 +925,7 @@ \providecommand*{\gt}{>} \providecommand*{\lt}{<} %% -%% ==== Quotes ==== +%% ==== Quotes ==== %% %% WRONG 2010/03/05: %% % The left quote feature for meta-code requires that the right quote %% % feature---for replacing `\textsf'---is activated---no, rather: @@ -646,8 +940,10 @@ %% verbatim mode entirely---then use `&', %% e.g., \qtd{&\qtd{&&&&}} typesets \qtd{\qtd{&&}}, i.e., %% the ampersand in single (non-verbatim) quotes. -% TODO \qtdverb!? alternative meaning for \LQverb!? 2010/03/06 +% todo \qtdverb!? alternative meaning for \LQverb!? 2010/03/06 % rather rare, & takes less space 2010/03/09 +%% ... see approaches below~... +%% %% |\AddQuotes| automatically surrounds code with single quotes. %% I have so often felt that it was a design mistake %% to drop them (2011/09/09): @@ -658,17 +954,27 @@ \ifmmode\else `\let\niceverb_maybe_rq\niceverb_rq \fi} -\@ifdefinable\niceverb_maybe_rq{\let\niceverb_maybe_rq\relax} +\newlet\niceverb_maybe_rq\relax \newcommand*{\niceverb_rq}{'\let\niceverb_maybe_rq\relax} %% You can undo this by |\DontAddQuotes|: \newcommand*{\DontAddQuotes}{\let\niceverb_maybe_qs\relax} %% The default will be the behaviour that we had before: \DontAddQuotes +%% With v0.6, |\qtdnverb| encloses the +%% ``meta-verbatim" material with single quotes: +\newcommand*{\qtdnverb}{% +%% Don't ... after `\AddQuotes':---TODO + \ifx\niceverb_maybe_qs\niceverb_add_qs + \expandafter\NVerb + \else + \lq +% \expandafter\NVerb\expandafter[\expandafter\egroup\expandafter] + \fi} %% |\dqtd{}| can be used for enclosing in \emph{double} quotes %% with the dangerous `\nvAllRightQuotesSansSerif' (see above). \providecommand*{\dqtd}[1]{``#1"} %% 2012/11/27 %% -%% ==== 'hyperref' ==== +%% ==== 'hyperref' ==== %% \label{sec:hyperref} %% This is for\slash about compatibility with the 'hyperref' package. %% (One preliminary thing: in doubt, don't load 'niceverb' earlier @@ -686,10 +992,20 @@ \134\expandafter\@gobble\string}% %% ASCII octal encoding \pdfstringdefDisableCommands{% \let\nvAllowRQSS\empty %% not \relax 2010/03/12 + \let\NiceVerbGeneral\empty %% 2014/03/27 + \let\nvAllRQSS\empty %% 2014/03/27 + \MakeActiveLetHere\<<% %% 2014/03/28 %% 2010/03/12 \MakeActiveLetHere\`\lq \MakeActiveLetHere\'\rq \MakeActiveLetHere\&\PDFcstring \def\cs{\134}% %% 2010/03/17, 2011/06/27 +%% The typesetting version of `\BuildCsSyntax' (\secref{esc}): 2014/07/16 +%% %% showfile.tex 2014/07/12 + \withcsname\def BuildCsSyntax \endcsname{\cs}% +%% ... disables `\niceverbNoVerbList'; better switch off +%% auto mode with section headings TODO %% 2014/07/17 +%% (modify `\@startsection') + \let\decide_more_cs\bookmark_more_cs }% %% Moreover, in order to avoid spurious %% 2010/03/14 %% \texttt{Label(s) may have changed} with 'hyperref', @@ -716,46 +1032,137 @@ \niceverb_aux_cat\MakeNormalHere#1}% }{}% } -%% TODO doesn't 'babel' have the same problem? 2010/03/12 -%% ==== 'hyper-xr' ==== %% 2010/03/21 +%% % todo doesn't 'babel' have the same problem? 2010/03/12 +%% ==== 'hyper-xr' ==== %% 2010/03/21 %% With the 'hyper-xr' package creating links into external documents, %% preceding `\externaldocument{}' with %% `\MakeActiveLet\&\CmdSyntaxVerb' may be needed. %% I do not want to redefine something here right now as %% typo 2010/11/09 %% I have too little experience with this situation. %% +%% ==== Listings and Moving ==== %% 2014/03/26f. +%% \label{sec:listmv} +%% Working on v0.6, in testing I discovered a problem with +%% the \emph{listing environments}. The present documentation +%% uses code listings with 'makedoc', which build on the +%% 'moreverb' package and eventually call \LaTeX's +%% `\@noligs' macro.\footnote{\ctanpkgref{moreverb} +%% is used, and its listing environments use \cs{@verbatim} +%% from the \ctanpkgref{verbatim} package, then +%% \cs{verbatim@font} calls \cs{@noligs}~...} +%% The problem also appears with the `{verbatim}' environment +%% from the \LaTeX\ kernel ('latex.ltx') as well as from the +%% \ctanpkgref{verbatim} package---with anything that calls +%% \LaTeX's `\@noligs'. The latter assigns special meangings +%% to the active characters listed in the `\verbatim@nolig@list', +%% three of them need a different meaning with 'niceverb'. +%% When a page break happens after such an environment has been +%% entered (this may well be when the environment falls to the +%% beginning of the next page), these settings are used in +%% \LaTeX's `\@outputpage' for running the `\write's of the page +%% as well as for page headers. And this happens quite often +%% in a package documentation! +%% +%% The problem was reported by Walter Schmidt with respect to +%% math primes as `latex/3104' in 1999. I cannot reproduce %% rm. to 2015/11/09 +%% it, and I see two reasons in recent `latex.ltx' code +%% why it cannot happen anymore. However, one remedy in `latex.ltx' +%% is activating `\active@math@prime' in `\@resetactivechars' +%% of `\@outputpage'. +%% But this is bad for 'niceverb''s single right quote. +%% We override the `\active@math@prime' functionality and +%% verbatim `\@noligs' by appending +%% some protection of the characters collected +%% in `\verbatim@nolig@list' +%% % local restorement |\useNiceVerbHere| of our syntax. +%% to `\@resetactivechars'. +%% This solves the problem for `\write's at `\shipout'. +%% |\do_protect_noligs| is used for this purpose; +%% actually it is applied in |\useNiceVerb| +%% (\secref{allonoff}):{\sloppy\par} +\newcommand*{\do_protect_noligs}[1]{% %% 2014/03/28 + \MakeActiveLetHere#1\relax} %% `Here' missing 2015/11/09 +%% |\nvResetPages| can be used to restore \LaTeX's +%% `\@resetactivechars'. I don't add it to `\noNiceVerb' +%% because it could corrupt `\write's, so should be used with care. +%% % Actually I think that our new version of `\@resetactivechars' +%% % is better than \LaTeX's, I think I can recommend to use it +%% % always and even to modify `latex.ltx' accordingly. +%% % TODO!? math headings? without 'niceverb' restore right +%% % single quote for math prime after `\shipout'. +\AtBeginDocument{% + \newlet\latex_reset_actives\@resetactivechars} +\newcommand*{\nvResetPages}{% + \let\@resetactivechars\latex_reset_actives} +%% |\NiceVerbMove{}| with v0.6 is for ``moving" arguments so that +%% 'niceverb' syntax operates \emph{locally} at the destination, +%% I think of table of contents and page headers. +%% It is automatically used by 'niceverb''s variant of \LaTeX's +%% sectioning commands (\secref{rqsf}); while with `\markboth', `\markright', +%% `\addcontentsline' etc. you must it include yourself (currently, TODO?). +%% This is meant as a remedy against \LaTeX's and \ctanpkgref{verbatim}'s +%% `\@noligs' with respect to page headers. However, +%% another purpose is that you could switch off the 'niceverb' +%% syntax at the beginning of your document (by `\noNiceVerb'), +%% though certain entries to the table of contents can use +%% 'niceverb' syntax without affecting other entries +%% (where some active characters may have different meanings, +%% perhaps from a different package). +\newcommand*{\NiceVerbMove}[1]{% +%% What goes to `.aux' files must not have underscores: + {\NiceVerbGeneral\niceverb_rqsf_kind#1}} +\NewSelfProtectedCommand{\NiceVerbGeneral}{% +%% %... TODO only 2 applications of `\NewSelfProtectedCommand'!? +%% % +%% % Here is |\useNiceVerbHere|: +% \newcommand*{\useNiceVerbHere}{% %% 2014/03/28 + \let\MakeActiveLet\MakeActiveLetHere \useNiceVerbI} +% \newcommand*{\NiceVerbGeneral}{% +% \nvSelfProtect\NiceVerbGeneral\useNiceVerbHere} +%% %% ==== Turning off and on altogether ==== +%% \label{sec:allonoff} %% These commands are new with v0.3. %% %% |\noNiceVerb| \emph{disables} all 'niceverb' features. -\newcommand*{\noNiceVerb} {\MakeNormal\`% - \MakeNormal\&% - \MakeNormal\<% - \MakeNormal\#% - \nvRightQuoteNormal - \MakeNormal\|} +\newcommand*{\noNiceVerb} {\MakeNormal\`% + \MakeNormal\&% + \MakeNormal\<% + \MakeNormal\#% + \nvRightQuoteNormal + \MakeNormal\|% + \let\@sect\niceverb_before_sect} %% 2014/03/27 %% |\useNiceVerb| \emph{activates} all the 'niceverb' features -%% (apart from ``auto mode"). -\newcommand*{\useNiceVerb}{\MakeActiveLet\`\LQverb +%% (apart from ``auto mode"). With v0.6, it is divided +%% into two parts for `\NiceVerbMove' in \secref{listmv}: +\newcommand*{\useNiceVerbI}{\MakeActiveLet\`\LQverb %% TODO to be changed with 'wiki.sty' v0.2 - \MakeActiveLet\&\CmdSyntaxVerb - \MakeActiveLet\<\MetaVar - \MakeActiveLet\#\HashVerb - \nvRightQuoteSansSerif - \MakeActiveLet\|\nvCmdBox} + \MakeActiveLet\&\CmdSyntaxVerb + \MakeActiveLet\<\MetaVar + \MakeActiveLet\#\HashVerb + \nvRightQuoteSansSerif + \MakeActiveLet\|\nvCmdBox} +\newcommand*{\useNiceVerb} {\useNiceVerbI %% 2014/03/27 + \let\@sect\niceverb_sect + \g@addto@macro\@resetactivechars{% +% \useNiceVerbHere %% 2014/03/28 + \let\do\do_protect_noligs \verbatim@nolig@list %% 2014/03/28 +}} +%% %% -%% === Activating the 'niceverb' Syntax === +%% === Minor Final Things === +%% ==== Activating the 'niceverb' Syntax ==== %% 'niceverb' features are activated at `\begin{document}' %% so (some) other packages can be loaded \emph{after} 'niceverb'. %% For v0.3, we do this after possible settings for %% compatibility with 'hyperref'. \AtBeginDocument{\useNiceVerb} %% -%% === Leave Package Mode === +%% ==== Leave Package Mode ==== \PopLetterCat\_ %% 2012/08/27 \endinput %% -%% === VERSION HISTORY === +%%==== VERSION HISTORY ==== v0.1 2009/02/21 very first, sent to CTAN v0.2 2009/04/04 ...NoVerbList: \subsubsection, \AddToMacro, @@ -768,7 +1175,7 @@ v0.2 2009/04/04 ...NoVerbList: \subsubsection, \AddToMacro, 2009/04/11 \@ after \SimpleVerb 2009/04/14 noted TODO below 2009/04/15 change v0.1 to 2009/02/21 -v0.30 2010/02/27 short, more explained, \AssignCatCodeTo, +v0.30 2010/02/27 short, more explained, \AssignCatCodeTo, use \MakeActive for re-activating, \MakeNormal 2010/02/28 fixed @ and _ with & by moving \begin_min_verb; replaced \lq by `; Capitals in Titles @@ -847,10 +1254,52 @@ v0.45 2011/11/05 mod. \niceverb_collect_egroup/\VerticalCmdBox, tried \output problem without avail 2011/12/05 clarified "r0.44" with nicetext RELEASE r0.5 + v0.5 2012/08/27 using 'catcodes', \providecommand\CatCode, rm. \AssignCatCodeTo, \private_letters 2012/08/28 fixed \private_letters; rewording for filling lines 2012/09/27 corrections about \MakeActive... with nicetext RELEASE r0.6 -v0.51 2012/11/27 \[d]qtd only \provide'd + +v0.6 2012/11/27 \[d]qtd only \provide'd +v0.61 2014/03/18 doc.: rm. TODO on private letters hook, + folding history tighter, + RM CODE COMMENTED OUT IN 2011; + \VerticalCmdBox gets \pagebreak[2] + 2014/03/19 doc.: strange replaced, restructured, + Command-Highlighting Boxes -> Boxes + Highlighting ...; + opt. arg. for \NVerb etc. replaces + \niceverb_egroup, \cs/\cstx enhanced, + reimpl.s with \SetNiceVerbSaveBox, + \nice_maybe_meta_verb -> \NiceMaybeMetaVerb + 2014/03/20 reworking robustness -- doc., ...; doc. on + `Shared ...', \qtdnverb + 2014/03/21 "debugging": \noexpand vs. \protect + 2014/03/22 ... continued; mod. \MakeNormal + 2014/03/23 ..., hiding ... + 2014/03/24 TODO on left quotes, doc. test there, + rm. babel-TODO + 2014/03/25 doc. about left quotes shorter, rm. earlier page + breaks, doc. problems with right quotes; \newlet; + dealing with \active@math@prime + 2014/03/26 corr. test for right single quote, more about + \active@math@prime, corr. \CmdSyntaxVerb + 2014/03/27 different treatment of \active@math@prime ... + main work for sec:listmv and independent + switching for rqsf, \NewSelfProtectedCommand + (3 applications); doc. corr., TODO; + \typeout test + 2014/03/28 test section; [TODO?]; \nvShowProtectedEdef, + \MetaVar: protection and hyperref version; + remark \NVerb; [\NiceVerbHere]; \protect test + with RQ removed; \do_protect_noligs fixed + and used + 2014/07/16 \BuildCsSyntax with hyperref + 2014/07/17 remarks on \BuildCsSyntax and removing useless + braces there (hours of trying better) + 2015/02/23 doc.: \PDFstring -> \pdfstring + 2015/04/07 doc.: page headings -> page headers + 2015/11/09 bugfixes \nvRightQuoteNormal and + \do_protect_noligs; doc. typo fix -- cgit v1.2.3