summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/nicetext/niceverb.sty')
-rw-r--r--Master/texmf-dist/tex/latex/nicetext/niceverb.sty785
1 files changed, 7 insertions, 778 deletions
diff --git a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
index 22e0ad3aa2a..a2f7b104f65 100644
--- a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
+++ b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty
@@ -1,1546 +1,775 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-
-\ProvidesPackage{niceverb}[2010/03/29 v0.4
-
+\ProvidesPackage{niceverb}[2010/04/05 v0.41
minimize doc markup (UL)]
-
-
%% Copyright (C) 2009, 2010 Uwe Lueck,
-
%% http://www.contact-ednotes.sty.de.vu
-
%% -- author-maintained in the sense of LPPL below --
-
%%
-
%% This file can be redistributed and/or modified under
-
%% the terms of the LaTeX Project Public License; either
-
%% version 1.3a of the License, or any later version.
-
%% The latest version of this license is in
-
%% http://www.latex-project.org/lppl.txt
-
%% We did our best to help you, but there is NO WARRANTY.
-
%%
-
%% Please report bugs, problems, and suggestions via
-
%%
-
%% http://www.contact-ednotes.sty.de.vu
-
%%
-
%% === Switching Category Codes ===
-
%% v0.3 introduces `\AssignCatCodeTo' and `\MakeNormal'.
-
%%
-
%% |\CatCode{\<character>}|
-
%% (or simply |\CatCode\<character>|)
-
%% saves one token per use and works when the category code
-
%% of \qtd{&`} (``single left quote") has changed.
-
\newcommand*{\CatCode}{\catcode`}
-
% \newcommand*{\CatCode}[1]{\catcode`#1 } %% no better 2010/02/27
-
%% With |\AssignCatCodeTo{<number>}{\<char>}|,
-
%% `\CatCode' may still be useful for displaying
-
%% (debugging or playing).
-
%% Note that `\<char>' is the {\it second} argument here.
-
\newcommand*{\AssignCatCodeTo}[2]{\catcode`#2=#1\relax}
-
%% |\MakeLetter\<char>| is used for \emph{private letters}, i.e.,
-
%% to allow <char> in ``internal", non-user control sequences
-
%% ({\it\TeX book} Chap.\,3).
-
%% |\MakeOther| is just a different implementation of
-
%% \LaTeX's \cs{@makeother}.
-
\newcommand*\MakeLetter{\AssignCatCodeTo{11}}
-
\def \MakeOther {\AssignCatCodeTo{12}}
-
%% ... overriding 'fifinddo' if ... %% TODO 2010/03/12
-
%%
-
%% |\MakeActive\<char>| just revives the meaning of <char>
-
%% it had most recently
-
%% (as an &\active character ...
-
%% maybe ``Undefined control sequence" unless ...)
-
%% This is fine for reviving 'niceverb' functionality
-
%% after having disabled it by `\MakeNormal'\linebreak[0]---provided
-
%% no other package used <char> actively in the meantime ...
-
\providecommand*{\MakeActive}{\AssignCatCodeTo\active} %% used v0.3
-
%% We take a copy |\MakeActiveHere| of `\MakeActive'
-
%% as the latter may become a dangerous thing for compatibility
-
%% with 'hyperref'.
-
\@ifdefinable\MakeActiveHere{%
-
\let\MakeActiveHere\MakeActive}
-
%% <- TODO aliascid + elsewhere 2010/03/12
-
%% |\MakeActiveLet\<char><macro name>| activates <char>
-
%% and then gives it the meaning of <macro name>.
-
\newcommand*{\MakeActiveLet}[2]{%% cf. \@sverb/\do@noligs (doc.sty)
-
\MakeActiveHere#1% %% 2010/03/12
-
\begingroup
-
\lccode`\~`#1\relax \lowercase{\endgroup \let~#2}}
-
%% We take a copy |\MakeActiveLetHere| as well.
-
\@ifdefinable\MakeActiveLetHere{%
-
\let\MakeActiveLetHere\MakeActiveLet}
-
%% %% |\MakeAlign\&| can be used to restore the meaning of `&' after we
-
%% %% have made it `\active'.
-
%% % \providecommand*{\MakeAlign} {\AssignCatCodeTo4}
-
%% We use the ``underscore" as a private letter
-
%% (the \LaTeX2 Project Team likes it as well).
-
%% Its usual meaning can be restored by |\MakeNormal\_|
-
%% For restoring the usual category codes of \TeX's special
-
%% characters later, we store them now.
-
%% (I.e., these characters are listed in the macro `\dospecials'
-
%% that expands to
-
%% $$\mbox{\tt\def\do{\string\do\unskip\string}\dospecials}$$
-
%% their category codes are
-
%% {\AssignCatCodeTo{6}{\#}%
-
%% \AssignCatCodeTo{3}{\$}%% fifinddo-interference!? TODO 2010/02/27
-
%% \AssignCatCodeTo{4}{\&}%% fifinddo-interference!? TODO 2010/02/27
-
%% \def\do#1{\def\do##1{,
-
%% \the\CatCode##1}\the\CatCode#1}\dospecials}
-
%% 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
-
\CatCode#1\relax}
-
\dospecials
-
%% Tests:
-
%% ``normal category code" of `\' is
-
%% \expandafter\the\csname normal_catcode_\string\\\endcsname,
-
%% ``normal category code" of `$' is
-
%% \expandafter\the\csname normal_catcode_\string\$\endcsname;
-
%% ``normal category code" of `&' is
-
%% \expandafter\the\csname normal_catcode_\string\&\endcsname.%%%
-
%% \footnote{\LaTeX's \cs{nfss@catcodes} is similar,
-
%% but it makes space-like characters ignored.
-
%% Also cf. 'ltfinal.dtx'.
-
%% TODO: &\RestoreNormalCatcodes.} %% 2010/03/06
-
%%
-
%% Here we switch to the ``underscore" as a ``letter" indeed
-
%% (for the rest of the package):
-
\MakeLetter\_
-
-
% \newcommand*{\make_iii_other}{\MakeOther\\\MakeOther\{\MakeOther\}}
-
%% <- replaced 2009/04/05
-
%% |\MakeNormal\<char>| saves you from remembering ...
-
\newcommand*{\MakeNormal}[1]{%
-
\@ifundefined{\norm_catc_str#1}%
-
{\MakeOther#1}%
-
{\AssignCatCodeTo{\csname\norm_catc_str#1\endcsname}#1}}
-
\newcommand*{\norm_catc_str}{normal_catcode_\string}
-
%% TODO add ^^I and ^^M
-
%% We take a copy |\MakeNormalHere| of `\MakeNormal' as
-
%% with `\MakeActive'.
-
\@ifdefinable\MakeNormalHere{\let\MakeNormalHere\MakeNormal}
-
%%
-
%% === Robustness by &\IfTypesetting ===
-
%% It seems we need some own ways to achieve various
-
%% compatibilities---using |\IfTypesetting{<if>}{<unless>}|.
-
%% It also saves some `\expandafter's.
-
\providecommand*{\IfTypesetting}{%
-
% \relax
-
%% This `\relax' suppressed ligatures of single right quotes!
-
%% %% removed 2010/03/23
-
\ifx \protect\@typeset@protect
-
\expandafter \@firstoftwo
-
\else \expandafter \@secondoftwo \fi}
-
%%
-
%% === &\NVerb ===
-
%% `\begin_min_verb' is a beginning shared by some macros here.
-
%% It begins like \LaTeX's `\verb', apart from the final `\tt'.
-
\newcommand*{\begin_min_verb}{%
-
\relax \ifmmode \hbox \else \leavevmode\null \fi
-
\bgroup \tt}
-
%% |\NVerb<char><code><char>|
-
\newcommand*{\NVerb}{%
-
\_no_nice_meta_verb_false \nice_maybe_meta_verb}
-
%% |\HardNVerb<char><code><char>| does not recognize meta-variables:
-
\newcommand*{\HardNVerb}{%
-
\_no_nice_meta_verb_true \nice_maybe_meta_verb}
-
\newif\if_no_nice_meta_verb_
-
\newcommand*{\nice_maybe_meta_verb}[1]{%
-
%% 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:
-
\MakeOther\|\MakeOther\`\MakeOther\'%
-
\if_no_nice_meta_verb_\MakeOther\<\fi
-
\MakeActiveLetHere #1\niceverb_egroup
-
\verb@eol@error %% TODO change message 2009/04/09
-
}{\string\NVerb \string#1}}
-
%% 2009/04/11: about `etc.' [preceding a box!? 2010/03/14]
-
\newcommand*{\niceverb_normal_egroup}{\egroup \ifmmode\else\@\fi}
-
\@ifdefinable\niceverb_egroup
-
{\let\niceverb_egroup\niceverb_normal_egroup}
-
%%
-
%% === 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
-
%% (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.
-
%% (A hook for `\relax'ing certain things in
-
%% `\markboth' and `\markright' would have been an alternative.)
-
\MakeActive\`
-
\newcommand*{\LQverb}{%
-
\IfTypesetting{\lq_double_test}{\protect`}}
-
\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):
-
\begingroup
-
\let\do\MakeOther \dospecials
-
\MakeOther\|%% 2010/03/09!
-
\futurelet\let_token \lq_double_decide}
-
\newcommand*{\lq_double_decide}{%
-
\ifx\let_token\LQverb
-
\endgroup
-
``\expandafter \@gobble
-
%% 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
-
\endgroup
-
\expandafter\expandafter\expandafter \NVerb
-
\expandafter\expandafter\expandafter \'%
-
\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 ===
-
%% |\CmdSyntaxVerb| will be a permanent alias for the active `&'.
-
\MakeActive\&
-
\newcommand*{\CmdSyntaxVerb}{%
-
\IfTypesetting{%
-
\begin_min_verb
-
%% v0.3 moves the previous line from &\cmd_syntax_verb
-
%% %% <- shows bug is fixed 2010/03/09
-
%% where it is too late to establish private letters
-
%% according to next line which was in `\begin_min_verb'
-
%% earlier---an important bug fix!
-
\MakeLetter\@\MakeLetter\_%
-
\cmd_syntax_verb
-
}{\protect&\string}}
-
\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
-
%% \emph{sections bearing \cs{label}s},
-
%% so we provide something like |\cs{<characters>}| from 'doc.sty'.
-
\DeclareRobustCommand*{\cs}[1]{%
-
\begin_min_verb \backslash_verb #1\egroup}
-
\newcommand*{\backslash_verb}{\char`\\}
-
%% Moreover, typing `&\par' in ``short" \emph{macro arguments}
-
%% fails, you better type `\cs{par}' then. Likewise,
-
%% `\cs{if<letters>}' and `\cs{fi}' is safer in case
-
%% you want to skip some part of the documentation
-
%% (e.g., a package option skips commented code)
-
%% by \cs{if}`<letters>'\cs{fi}.
-
%% Finally, there will be PDF bookmarks support for `\cs'
-
%% rather than for a real `&' or `\CmdSyntaxVerb' analogue like
-
%% |\cstx{<charcters>}*[<opt>]{<mand>}| as follows.
-
\DeclareRobustCommand*{\cstx}[1]{% %% corr. 2010/03/17
-
\begin_min_verb \backslash_verb #1\futurelet\let_token \after_cs}
-
\newcommand*{\after_cs}{%
-
\ifcat\noexpand\let_token a\egroup \space
-
\else \expandafter \decide_verb \fi}
-
\newcommand*{\test_more_verb}{\futurelet\let_token \decide_verb}
-
\newcommand*{\decide_verb}{%
-
\jumpteg_on_with\bgroup\braces_verb
-
\jumpteg_on_with[\brackets_verb
-
\jumpteg_on_with*\star_verb
-
\egroup}
-
%% CAUTION/TODO wrong before (... if cmd without arg
-
%% use \ then or choose usual verb...
-
%% or \MakeLetter\( etc. ... or \xspace
-
\newcommand*{\jumpteg_on_with}[2]{%
-
\ifx\let_token#1\do_jumpteg_with#2\fi}
-
%% TODO cf. 'xfor', 'xspace' (&\break@loop);
-
%% `\DoOrBranch#1...#1' or so. %% found 2010/03/05
-
\def\do_jumpteg_with#1#2\egroup{\fi#1}
-
\def\braces_verb#1{\string{#1\string}\test_more_verb}
-
\def\brackets_verb[#1]{[#1]\test_more_verb}
-
\def\star_verb*{*\test_more_verb}
-
%% not needed with \Auto... OTHERWISE useful in args!
-
%% %%2010/03/15:
-
%% As 'latex.ltx' has `\endgraf' as a permanent alias for the
-
%% primitive version of `\par' and `\endline' for `\cr',
-
%% we offer |\endcell| as a replacement for the original `&':
-
\let\endcell&
-
%%
-
%% === Escape Character Typesets Meta-Code ===
-
%% |\BuildCsSyntax| will be a permanent alias for the active escape
-
%% character.
-
\DeclareRobustCommand*{\BuildCsSyntax}{%
-
\futurelet\let_token \build_cs_syntax_sp}
-
\newcommand*{\build_cs_syntax_sp}{%
-
\ifx\let_token\@sptoken \else %% TODO ^^M!?
-
\expandafter \start_build_cs_syntax
-
\fi}
-
\newcommand*{\start_build_cs_syntax}[1]{%
-
\edef\string_built{\string#1}%
-
%% #1 may be active.---With Donald Arseneau's 'import.sty' (e.g.),
-
%% \qtd{&_} may be needed to be `\active' with the meaning of
-
%% `\textunderscore', therefore restoring its category code
-
%% needs some more care than with v0.32 and earlier:
-
\edef\before_build_cs_sub{\the\CatCode\_}%
-
\MakeLetter\_\MakeLetter\@%% CAUTION, cf. ...
-
\test_more_cs}
-
\newcommand*{\test_more_cs}{%
-
\futurelet\let_token \decide_more_cs}
-
\newcommand*{\decide_more_cs}{%
-
\ifcat\noexpand\let_token a\expandafter \add_to_cs
-
\else
-
% \MakeNormalHere\_
-
-%% Restoring \qtd{&_} more carefully with v0.33
-
+%% Restoring \qtd{&_} more carefully with v0.4
%% (`\begingroup' ... `\endgroup'!?):
-
%% %% 2010/03/27
-
\CatCode\_\before_build_cs_sub
-
\MakeOther\@%
-
\expandafter \in@ \expandafter
-
{\csname \string_built \expandafter \endcsname
-
\expandafter}\expandafter{\niceverbNoVerbList}%
-
\ifin@
-
\csname \string_built
-
\expandafter\expandafter\expandafter \endcsname
-
\else
-
\begin_min_verb \backslash_verb\string_built
-
\expandafter\expandafter\expandafter \test_more_verb
-
\fi
-
\fi}
-
%% TODO such \if nestings with ifthen!?
-
%% cf.:
-
% \let\let_token,\typeout{\meaning\let_token}
-
%% TEST TODO fuer xspace!? (\ifin@)
-
\newcommand*{\add_to_cs}[1]{%
-
\edef\string_built{\string_built#1}\test_more_cs}
-
%%
-
%% |\AutoCmdSyntaxVerb| starts, |\EndAutoCmdSyntaxVerb| \emph{ends}
-
%% ``auto mode."
-
\newcommand*{\AutoCmdSyntaxVerb}{%
-
\MakeActiveLetHere\\\BuildCsSyntax}
-
\newcommand*{\EndAutoCmdSyntaxVerb}{\CatCode\\\z@}
-
%% |\NormalCommand{<characters>}| executes `\<characters>'
-
%% in ``auto mode."
-
\newcommand*{\NormalCommand}{} \let\NormalCommand\@nameuse
-
%% %% 2010/03/11:
-
%% Once I may want to use this feature in {\it Wikipedia}-like
-
%% section titles as supported by 'makedoc', yet I cannot really
-
%% apply the present feature soon, so this must wait ...
-
%% (There is a special problem with `\newlabel' and 'hyperref' ...)
-
%%
-
%% Former tests:
-
% \futurelet\LetToken\relax \relax
-
% \show\LetToken \typeout{\ifcat\noexpand\LetToken aa\else x\fi}
-
%%
-
%% |\niceverbNoVerbList| is the list of macros that will be
-
%% \emph{executed} instead of being typeset.
-
\newcommand*{\niceverbNoVerbList}{%
-
\begin\end\item\verb\EndAutoCmdSyntaxVerb\NormalCommand
-
\section\subsection\subsubsection} %% TODO!?
-
%% |\AddToMacro{\niceverbNoVerbList}{<macros>}| can be used to
-
%% add <macros> to that list.
-
\providecommand*{\AddToMacro}[2]{% %% TODO move to ... 2010/03/05
-
\expandafter \def \expandafter #1\expandafter {#1#2}}
-
%% <- was very wrong 2010/03/18
-
%% Hey, or just |\AddToNoVerbList{<macros>}|: %% 2010/03/28
-
\newcommand*{\AddToNoVerbList}{\AddToMacro\niceverbNoVerbList}
-
%%
-
%% ``Auto mode" probably ain't mean a thing if it ain't invoked using
-
%% \[|\AutoCmdInput{<file>}|\] for typesetting <file> in ``auto mode:"
-
\newcommand*{\AutoCmdInput}[1]{%
-
-%% I am not yet sure whether `\input' etc. should be in the exception
-
-%% list permanently: %% TODO 2010/03/18
-
\begingroup
-
- \AddToMacro\niceverbNoVerbList{\ProvidesFile\endinput}%
-
- %% <- TODO? 2010/03/18
-
+ \AddToMacro\niceverbNoVerbList{\ProvidesFile}%
+ %% <- removed `\endinput', will be code! 2010/04/05
\AutoCmdSyntaxVerb
-
\input{#1}%
-
\EndAutoCmdSyntaxVerb
-
\endgroup
-
}
-
%%
-
%% === Meta-Variables ===
-
%% |\MetaVar<var-id>>| will be a permanent alias for the active \qtd{&<}.
-
\def\MetaVar#1>{%
-
\mbox{\normalfont\itshape $\langle$#1\/$\rangle$}}
-
%% TODO offer without angles as well
-
%% As opposed to 'ltxguide.cls', this works outside verbatim as well.
-
%%
-
%% === Hash Mark is Code ===
-
%% |\HashVerb<digit>| will be a permanent alias for the active hash mark.
-
\newcommand*{\HashVerb}[1]{{\tt\##1}}
-
%%
-
%% === Single Right Quotes for &\textsf ===
-
%% |\RQsansserif| will be a permanent alias for the active single
-
%% right quote.
-
%%
-
%% The basic 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}
-
\MakeActive\'
-
\newcommand*{\RQsansserif}{%
-
\IfTypesetting{\niceverb_rq_sf_test}{\protect'}}
-
\MakeOther\'
-
%% Another macro just to avoid more sequences of `\expandafter':
-
\newcommand*{\niceverb_rq_sf_test}{%
-
\ifhmode
-
\ifdim\lastskip>\z@
-
\expandafter\expandafter\expandafter \DoRQsansserif
-
\else
-
\ifnum\niceverb_spacefactor
-
\expandafter\expandafter\expandafter\expandafter
-
\expandafter\expandafter\expandafter
-
\DoRQsansserif
-
\else '\fi
-
\fi
-
\else \ifvmode
-
\expandafter\expandafter\expandafter \DoRQsansserif
-
\else '\fi
-
\fi}
-
%% |\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\'
-
%% The following cases are typical and cannot be decided by the
-
%% previous criteria:
-
%% (i)~parenthesis, (ii)~footnotes and after ``horizontal"
-
%% environments like `\[<math>\]', (iii)~section titles,
-
%% (iv)~`\noindent'.
-
%% We introduce some dangerous tricks---redefinitions of
-
%% % \LaTeX's internals `\@footnotetext' and `\@sect'
-
%% %% <- 2010/03/16 ->
-
%% \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}{%
-
\MakeActiveLetHere\'\RQsansserif
-
\niceverb_ignore} %% 2010/03/16
-
%% These and the entire right quote functionality are
-
%% activated by %% removed todo 2010/03/10
-
%% \[|\nvRightQuoteSansSerif|
-
%% \mbox{\quad and disabled by\quad}
-
%% |\nvRightQuoteNormal|\]---at
-
%% `\begin{document}'---where we collect previous settings---or
-
%% 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
-
%% 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}}
-
%% 2010/03/20:
-
\newcommand*{\niceverb_spacefactor}{\spacefactor=1001\relax}
-
\newcommand*{\niceverb_noindent}{%
-
\before_niceverb_noindent \niceverb_spacefactor}
-
\newcommand*{\niceverb_ignore}{%
-
\ifhmode \niceverb_spacefactor \fi \before_niceverb_ignore}
-
%%
-
%% Here are the main switches:
-
\newcommand*{\nvRightQuoteSansSerif}{%
-
\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\@sect\niceverb_sect
-
\let\noindent\niceverb_noindent} %% 2010/03/08
-
\newcommand*{\nvRightQuoteNormal}{%
-
\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
-
%% |\nvAllRightQuotesSansSerif| %% 2010/03/10
-
%% (after `\begin{document}'!)
-
%% forces the `\textsf' feature
-
%% \emph{without} testing for apostrophes. You then must be
-
%% 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{<text>}' for the entire quoting.
-
\newcommand*{\nvAllRightQuotesSansSerif}{%
-
\nvRightQuoteNormal
-
\MakeActiveLet\'\DoRQsansserif}
-
%% I started v0.31 (signal `\sfcode'=1000, lowercase letters
-
%% get `\sfcode'=1001) because
-
%% \NVerb+\href{http://ctan.org/pkg/<pkg>}{<pkg>}+ failed.
-
%% However, what I actually needed was |\ctanpkgref{<pack-name>}|:
-
\DeclareRobustCommand*{\ctanpkgref}[1]{%
-
\href{http://ctan.org/pkg/#1}{\textsf{#1}}}
-
%%
-
%% === Command-Highlighting Boxes ===
-
%% With v0.3, we include one kind of command syntax boxes
-
%% whose <content> is (in 'niceverb' syntax)
-
%% delimited as \GenCmdBox+|<content>|+.
-
%% %% 2010/03/14:
-
\newsavebox\niceverb_savebox
-
%% |\GenCmdBox<char><content><char>}| works like
-
%% `\NVerb<char><content><char>' except putting the latter's result
-
%% into a framed (or coloured or ...) box.{\sloppy\par}
-
\newcommand*{\GenCmdBox} {\_no_nice_meta_verb_false \gen_cmd_box}
-
%% |\HardVerbBox| is a variant of `\GenCmdBox' with the meta-variable
-
%% feature disabled
-
%% (for the documentation of the present package).
-
\newcommand*{\HardVerbBox}{\_no_nice_meta_verb_true \gen_cmd_box}
-
\newcommand*{\gen_cmd_box}{%
-
\bgroup
-
\let\niceverb_egroup\nice_collect_verb_egroup
-
\global %% TODO!? for \cmdboxitem 2010/03/15
-
%% <- TODO replace \niceverb_egroup by parameter,
-
%% save one nesting level 2010/03/15
-
\setbox\niceverb_savebox \hbox\bgroup
-
\if_no_nice_meta_verb_
-
\expandafter \HardNVerb
-
\else \expandafter \NVerb \fi}
-
\newcommand*{\nice_collect_verb_egroup}{%
-
\egroup \egroup
-
\ifvmode \expandafter \VerticalCmdBox
-
\else \ifmmode \hbox \fi
-
\expandafter \InlineCmdBox \fi
-
{\box\niceverb_savebox}%
-
\niceverb_normal_egroup}
-
%% |\nvCmdBox| will be the permanent alias for \qtd{&|}.
-
\newcommand*{\nvCmdBox}{\GenCmdBox\|}
-
%% |\VerticalCmdBox{<content>}|
-
%% may eventually start a `decl' environment
-
%% as in 'ltxguide.cls', looking ahead for another \qtd{&|}
-
%% in order to (perhaps) append another row.
-
%% Another possibility is first to do some
-
%% \[`\if@nobreak\else \pagebreak[2]\fi'\]
-
%% etc. and then invoke `\InlineCmdBox'.
-
%% 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\null\InlineCmdBox}
-
%% The command declaration boxes in the documentation of
-
%% Nicola Talbot's \ctanpkgref{datatool}
-
%% would be an especially nice realization of `\VerticalCmdBox'.
-
%%
-
%% |\InlineCmdBox{<content>}|, according to our idea, should not
-
%% change baseline skip, even with some `\fboxsep' and `\fboxrule'.
-
%% (However, it may be a good idea to increase the overall
-
%% normal baseline skip.)
-
%% We therefore replace actual height and depth of the content by
-
%% the height and depth of math parentheses.
-
\newcommand*{\InlineCmdBox}[1]{%
-
\bgroup
-
%% ... needed in math mode with `\begin_min_verb'.
-
\fboxsep 1pt
-
\kern\SetOffInlineCmdBoxOuter
-
\smash{\SetOffInlineCmdBox{\kern\SetOffInlineCmdBoxInner
-
\InlineCmdBoxArea{#1}%
-
\kern\SetOffInlineCmdBoxInner}}%
-
\mathstrut
-
\kern\SetOffInlineCmdBoxOuter
-
\egroup
-
}
-
%% The default choice for |\SetOffInlineCmdBox| is `\fbox':
-
\@ifdefinable\SetOffInlineCmdBox{\let\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:
-
%% %% 2010/03/10
-
%% \begin{verbatim}
-
%% \RequirePackage{color}
-
%% \renewcommand*{\SetOffInlineCmdBox}
-
%% {\colorbox[cmyk]{.1,0,.2,.05}}
-
%% \end{verbatim}
-
%% |\SetOffInlineCmdBoxInner| enables controlling the inner
-
%% horizontal space to the box margin independently of
-
%% `\fboxsep'.
-
%% %% We set it to 0\,pt. as default (it is a macro only,
-
%% %% for a while).
-
\newcommand*{\SetOffInlineCmdBoxInner}{-\fboxsep\thinspace}
-
%% This choice is inspired by `\cstok' for ``boxed" things
-
%% in Knuth's 'manmac.tex' which formats {\it The \TeX book}.
-
%% %% <- 2010/03/10
-
%%
-
%% |\SetOffInlineCmdBoxOuter| allows that the box hangs out into the
-
%% margin horizontally.
-
%% We set it to 0\,pt as default (it is a macro only, for a while).
-
\newcommand*{\SetOffInlineCmdBoxOuter}{\z@}
-
%% The height and depth of the frame should be the same for all
-
%% inline boxes, we think.
-
%% The present choice |\InnerCmdBoxArea| for the spacing
-
%% respects code characters rather than the height and depth
-
%% of the angle brackets that surround meta-variable names.
-
\newcommand*{\InlineCmdBoxArea}[1]{%
-
\smash{#1}\vphantom{gjpq\backslash_verb}}
-
%% \GenCmdBox+\cmdboxitem|<content>|+ is another variant of
-
%% `\GenCmdBox'. It should replace `\item[<content>]' 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}
-
\newcommand*{\cmd_item_egroup}{%
-
\egroup \egroup \egroup
-
\item[\InlineCmdBox{\box\niceverb_savebox}]}
-
%%
-
%% === When 'niceverb' Gets Nasty ===
-
%% These things are new with v0.3.
-
%% ==== 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:
-
%% % that the right quote \qtd{&'} is `\active'.
-
%% %
-
%% In order to get \emph{real} single quotes, you could use `\lq <text>\rq',
-
%% maybe appending a `\ ', but the code |\qtd{<text>}| may look better
-
%% and be easier to type.
-
\newcommand*{\qtd}[1]{`#1'}
-
%% However, here we get the problem that the left quote in
-
%% \NVerb\+\qtd{`<code>'}+ will be unable to switch into
-
%% 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
-
% rather rare, & takes less space 2010/03/09
-
%% |\dqtd{<text>}| can be used for enclosing in \emph{double} quotes
-
%% with the dangerous `\nvAllRightQuotesSansSerif' (see above).
-
\newcommand*{\dqtd}[1]{``#1"}
-
%%
-
%% ==== 'hyperref' ====
-
%% This is for\slash about compatibility with the 'hyperref' package.
-
%% (One preliminary thing: in doubt, don't load 'niceverb' earlier
-
%% than 'hyperref'.) %% TODO 2010/03/14
-
%%
-
%% We need some substitutions for PDF bookmarks with
-
%% 'hyperref'. We issue them at `\begin{document}' when we know
-
%% if 'hyperref' is at work.\footnote{An alternative approach would be
-
%% using
-
%% \ctanpkgref{afterpackage}
-
%% by Alex Rozhenko.}
-
\AtBeginDocument{%
-
\@ifpackageloaded{hyperref}{%
-
\newcommand*{\PDFcstring}{% %% moved here 2010/03/09
-
\134\expandafter\@gobble\string}% %% ASCII octal encoding
-
\pdfstringdefDisableCommands{%
-
\let\nvAllowRQSS\empty %% not \relax 2010/03/12
-
%% 2010/03/12
-
\MakeActiveLetHere\`\lq \MakeActiveLetHere\'\rq
-
\MakeActiveLetHere\&\PDFcstring
-
\def\cs{\134}% %% 2010/03/17
-
}%
-
%% Moreover, in order to avoid spurious %% 2010/03/14
-
%% \texttt{Label(s) may have changed} with 'hyperref',
-
%% a single right quote must be \emph{read} as active
-
%% by a `\newlabel' if and only if it has been active when
-
%% `\@currentlabelname' was formed.\footnote{This uses
-
%% \cs{@onelevelsanitize}, therefore &\protect doesn't
-
%% change the behaviour of ``active" characters.}
-
%% as `\active'. We use `\protected@write' as this cares for
-
%% `\nofiles'. `\@auxout' may be `\@partaux' for `\include'.
-
\newcommand*{\niceverb_aux_cat}[2]{% %% 2010/03/14
-
\protected@write\@auxout{}{\string#1\string#2}}%
-
\renewcommand*{\MakeActive}[1]{%
-
\MakeActiveHere#1%
-
\niceverb_aux_cat\MakeActiveHere#1}%
-
\renewcommand*{\MakeActiveLet}[2]{%
-
\MakeActiveLetHere#1#2%
-
\niceverb_aux_cat\MakeActiveHere#1}%
-
\renewcommand*{\MakeNormal}[1]{%
-
\MakeNormalHere#1%
-
\niceverb_aux_cat\MakeNormalHere#1}%
-
}{}%
-
}
-
%% 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{<file>}' with
-
%% `\MakeActiveLet\&\CmdSyntaxVerb' may be needed.
-
%% I do not want to redefine something here right now as I
-
%% I have too little experience with this situation.
-
%%
-
%% ==== Turning off and on altogether ====
-
%% These commands are new with v0.3.
-
%%
-
%% |\noNiceVerb| \emph{disables} all 'niceverb' features.
-
\newcommand*{\noNiceVerb} {\MakeNormal\`%
-
\MakeNormal\&%
-
\MakeNormal\<%
-
\MakeNormal\#%
-
\nvRightQuoteNormal
-
\MakeNormal\|}
-
%% |\useNiceVerb| \emph{activates} all the 'niceverb' features
-
%% (apart from ``auto mode").
-
\newcommand*{\useNiceVerb}{\MakeActiveLet\`\LQverb
-
%% TODO to be changed with 'wiki.sty' v0.2
-
\MakeActiveLet\&\CmdSyntaxVerb
-
\MakeActiveLet\<\MetaVar
-
\MakeActiveLet\#\HashVerb
-
\nvRightQuoteSansSerif
-
\MakeActiveLet\|\nvCmdBox}
-
%%
-
%% === 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 ===
-
\MakeNormalHere\_ %% 2010/03/12
-
\endinput
-
%%
-
%% === VERSION HISTORY ===
-
-
v0.1 2009/02/21 very first, sent to CTAN
-
v0.2 2009/04/04 ...NoVerbList: \subsubsection, \AddToMacro,
-
2009/04/05 \SimpleVerb makes more other than iii
-
2009/04/06 just uses \dospecials
-
2009/04/08 debugging code for rq/sf, +\relax
-
2009/04/09 +\verb@eol@error, prepared for new doc method,
-
removed spurious \makeat..., -\relax (ligature),
-
2009/04/10 ('-trick
-
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,
-
use \MakeActive for re-activating, \MakeNormal
-
2010/02/28 fixed @ and _ with & by moving \begin_min_verb;
-
replaced \lq by `; Capitals in Titles
-
2010/03/05 \SimpleVerb -> \NVerb;
-
use \MakeActive + \MakeNormal; \rq -> ';
-
renamed some sections; \lq_verb -> \LQverb,
-
\niceverb_meta -> \MetaVar,
-
\param_verb -> \HashVerb
-
2010/03/06 removed \MakeAlign; removed @ and _ todo below;
-
\NVerb makes ` and ' other;
-
\nvAllowRQSF allows ' in column titles,
-
2010/03/08 \LQverb and & work in column titles,
-
\RQverb works with \noindent;
-
bookmark substitutions
-
2010/03/09 extended notes on 'hyperref' (in)compatibility;
-
\MakeLetter\@ in \CmdSyntaxVerb only;
-
|...| implemented as \prepareCmdBox etc.!
-
2010/03/10 \colorbox example, \thinspace; ltxguide!;
-
removed todo; ..._exec -> \DoRQsansserif;
-
minor doc changes in ``Nasty"
-
2010/03/11 doc changes in ``Escape Character ..." and
-
``Ampersand"
-
2010/03/12 \niceverb_aux_cat, \MakeActiveHere etc.,
-
\IfTypesetting, \noNiceVerb, \useNiceVerb,
-
corr. bracing mistake in \MakeNormal!
-
2010/03/14 0.31 -> 0.3; \HardNVerb, \GenCmdBox,
-
\prepareCmdBox -> \nvCmdBox
-
2010/03/15 \endcell; \cmdboxitem; remark on \sfcode`/
-
2010/03/16 corr. -> \endline;
-
advice on \cs{par}, \cs{if...}, \cs{fi};
-
redefined \ignorespaces for RQ feature
-
2010/03/17 corr. `\fututelet', corr. \cs PDF substitution
-
2010/03/18 |\niceverbNoVerbList|, |\AddToMacro| etc.;
-
corr. \AddToMacro;
-
\lastskip-fix of \niceverb_ignore,
-
another fix of \niceverb_noindent
-
2010/03/19 another fix of \niceverb_ignore: \spacefactor
-
2010/03/20 ... again: \niceverb_spacefactor
-
-
NOT DISTRIBUTED, just stored saved as separate version
-
-
v0.31 2010/03/20 right quote feauture: letters get \sfcode=1001
-
`column title' -> `page headers', \ctanpkgref
-
-
NOT DISTRIBUTED, just stored as separate version
-
-
v0.32 2010/03/21 taking best things from v0.30 and v0.31
-
2010/03/23 removed \relax from \IfTypesetting
-
SENT TO CTAN
-
-
v0.4 2010/03/27 restoring `_' with "auto mode" safer
-
2010/03/28 \AddToNoVerbList
-
2010/03/29 note above, renamed v0.4
+SENT TO CTAN
+v0.41 2010/04/03 v0.33 -> v0.4
+ 2010/04/05 corrected \AutoCmdInput list