summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/rcs/src/rcs-doc.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/rcs/src/rcs-doc.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/rcs/src/rcs-doc.sty')
-rw-r--r--macros/latex/contrib/rcs/src/rcs-doc.sty135
1 files changed, 135 insertions, 0 deletions
diff --git a/macros/latex/contrib/rcs/src/rcs-doc.sty b/macros/latex/contrib/rcs/src/rcs-doc.sty
new file mode 100644
index 0000000000..38d4908eec
--- /dev/null
+++ b/macros/latex/contrib/rcs/src/rcs-doc.sty
@@ -0,0 +1,135 @@
+% $Id: rcs-doc.sty,v 1.4 1995/08/02 12:09:06 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% tags for the documentation of rcs style option
+%
+
+
+\ProvidesPackage{rcs-doc}
+
+
+%
+% Configuration of RCS fields
+%
+
+% keywords in style are prefixed by `Style', in documentation by `Doc'.
+\let\RcsHandleStyleDate=\RcsHandleDate % transform StyleDate value
+\let\RcsHandleDocDate=\RcsHandleDate % transform DocDate field
+
+% the revision of rcs.sty is needed by the documentation
+\expandafter\RCS \rcs@loaded % creates \RCSStyleRevision
+
+% name of the author
+%
+% CAVEAT: Don't define another author name without changing the text
+% in the user manual where \rcsAuthor is explained!
+\rcsAuthor{schrod}{Joachim Schrod}
+
+
+%
+% new tags
+%
+
+\def\rcsField#1{\textsf{#1}} % name of a RCS field (ie, RCS keyword)
+\def\Log{\rcsField{Log}} % The `Log' keyword, needed often
+\def\Date{\rcsField{Date}} % The `Date' keyword, needed often
+
+
+%
+% \macroCall[p]{\\split \[Revision\(: \)1.1\( \]:\) \{\} \\end_value}
+%
+% \[...\] is param of caller, \(...\) is arg (delimiter) for \split
+% empty arg delimiter must be input as `\(\|\)'
+% may not be nested, as shown above
+% in \macroCall arg: `_' and ` ' are other characters
+% \\, \{, and \} produce characters `\', `{' and `}'
+% \| is invisible text
+% The optional arg is the character to mark the delimiter. By using
+% [p] one can mark args with `\(...\)'!
+
+\newtoks\@macroCall
+
+\def\macroCall{%
+ \@ifnextchar[% % ] (Emacs)
+ \macro@call
+ {\macro@call[d]}%
+ }
+\def\macro@call[#1]{%
+ \def\delimChar{#1}%
+ \begingroup
+ \catcode`\ =\CatOther
+ \catcode`\_=\CatOther
+ \afterassignment\showExample
+ \global\@macroCall
+ }
+
+\newcount\delimCount
+\def\showExample{%
+ \endgroup
+ \leavevmode
+ \vtop{%
+ \reset@font \ttfamily
+ \let\[\relax \let\]\relax
+ \let\(\relax \let\)\relax
+ \chardef\\=`\\ \chardef\{=`\{ \chardef\}=`\}
+ \def\|{\hskip 1sp}% % must be >0pt, but invisible
+ \baselineskip\z@skip
+ \lineskip 2pt
+ \delimCount\z@
+ \hbox{\expandafter\showParam \the\@macroCall \endValue}%
+ \hbox{\the\@macroCall}% % the example itself
+ \hbox{\expandafter\showDelimiter \the\@macroCall \(\)\endValue}%
+ \hrule height \z@
+ }%
+ }
+
+
+\def\showParam #1\[#2\]#3\endValue{%
+ \hphantom{#1}%
+ \setbox\z@ \hbox{#2}%
+ \vbox{\hsize \wd\z@
+ \centerline{\tt \#1}%
+ \vskip 3pt
+ \hrule
+ \@@line{\hss \vrule height 3pt \hskip\hsize \vrule \hss}%
+ }%
+ \setbox\z@ \hbox{#3}%
+ \vbox{\hsize \wd\z@
+ \centerline{$s$}%
+ \vskip 3pt
+ \@@line{\cleaders \hbox{$\mkern 1mu.\mkern 1mu$}\hfill}\nointerlineskip
+ \@@line{\hskip\hsize \vrule height 3pt \hss}%
+ }%
+ }
+
+\def\showDelimiter #1\(#2\)#3\endValue{%
+ \hphantom{#1}%
+ \advance\delimCount \@ne
+ \setbox\z@ \hbox{#2}%
+ \ifdim \wd\z@=\z@
+ \else
+ \vtop{\hsize\wd\z@
+ \@@line{\hss \vrule depth 3pt \hskip\hsize \vrule \hss}%
+ \hrule
+ \vskip 3pt
+ \centerline{$\delimChar_{\the\delimCount}$}%
+ }%
+ \showDelimiter #3\endValue
+ \fi
+ }
+
+
+
+\endinput
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-TeX
+TeX-master: t
+TeX-brace-indent-level: 4
+indent-tabs-mode: t
+TeX-auto-untabify: nil
+End: