summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/5_5/fancyvrb.rc
diff options
context:
space:
mode:
Diffstat (limited to 'usergrps/uktug/baskervi/5_5/fancyvrb.rc')
-rw-r--r--usergrps/uktug/baskervi/5_5/fancyvrb.rc202
1 files changed, 202 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/5_5/fancyvrb.rc b/usergrps/uktug/baskervi/5_5/fancyvrb.rc
new file mode 100644
index 0000000000..d5877a9d3e
--- /dev/null
+++ b/usergrps/uktug/baskervi/5_5/fancyvrb.rc
@@ -0,0 +1,202 @@
+% Defie thirteen verbatim environments:
+% Verbatim - indented like quote environment, \small font.
+% nVerbatim - Like "verbatim", but numbered.
+% example - like original, side by side
+% example* - one above other
+% example** - one above other, with frames
+% Example - Rendered as PS, like original, side by side
+% Example* - Rendered as PS, one above other
+% Example** - Rendered as PS, one above other, with frames
+% Example*** - Rendered as PS, with *no* verbatim text
+% GridPSExample - PSTricks (gridded) picture, like original, side by side
+% PSExample - PSTricks picture, like original, side by side
+% The example environments have the following steps in common:
+% 1. Save example verbatim to numbered example file
+% 2. Input file verbatim or EPS file
+% 3. Input again
+% All of them save their text as files in the current directory
+
+% " can be used to add lines that affect the output of the example,
+% but do not appear in the verbatim listing.
+
+\DefineVerbatimEnvironment{Verbatim}{LVerbatim}{fontsize=\small}
+\DefineVerbatimEnvironment{nVerbatim}{LVerbatim}{fontsize=\small,numbers=left}
+
+\newcounter{epscounter}
+\c@epscounter0
+\newwrite\exepsfile
+\renewcommand\theepscounter{\arabic{chapter}-\arabic{section}-\arabic{epscounter}}
+\immediate\openout\exepsfile \jobname.expslist\relax
+
+\def\EPSinput#1{%
+\IfFileExists{\ex@@prefix#1.eps}%
+ {\includegraphics{\ex@@prefix#1.eps}}%
+ {\underline{\ex@@prefix#1}}%
+}
+\newcount\pst@ex@count
+\pst@ex@count0
+
+\def\SideBySideEx#1{%
+\global\advance\pst@ex@count by 1
+ \trivlist\item[]%
+ \leavevmode
+ \label{\thechapter.\the\pst@ex@count}%
+ \ifthenelse{\isodd{\pageref{\thechapter.\the\pst@ex@count}}}{%
+ \makebox[\textwidth][l]{\@@Display{#1}\hspace{5mm}
+ \BVerbatimInput{\ex@@prefix\theepscounter}}%
+ }{%
+ \makebox[\textwidth][r]{\@@Display{#1}\hspace{5mm}
+ \BVerbatimInput{\ex@@prefix\theepscounter}}%
+ }%
+ \endtrivlist
+}
+\def\@@Display#1{%
+ \begin{minipage}[b]{.5\textwidth}#1\end{minipage}%
+}
+
+\def\ex@@prefix{}
+\newcommand{\BeginExample}{%
+ \multiply\topsep by 2
+ \global\advance\c@epscounter\@ne
+ \edef\@tempa{
+ \write\@auxout{\string
+ \newlabel{ex-\theepscounter}{{\theepscounter}{\noexpand\the\c@page}}}}
+ \@tempa
+ \nobreak
+ \edef\@tempa{
+ \write\exepsfile{\string
+ \exampleonpage{ex-\theepscounter}{\noexpand\the\c@page}}}
+ \@tempa
+ \VerbatimEnvironment
+ \catcode`\<=12
+ \begin{VerbatimOut}{\ex@@prefix\theepscounter}}
+\newcommand{\EndExample}{%
+ \end{VerbatimOut}%
+}
+
+\def\EndRuleExample{\vskip 7pt \hrule height 1.5pt\relax}
+
+\newif\ifgrid
+\gridfalse
+
+\def\PSExample(#1,#2)(#3,#4){%
+ \def\PictureSize{(#1,#2)(#3,#4)}%
+ \def\VOMIT##1{}\BeginExample
+ }
+\def\endPSExample{%
+ \EndExample
+ \SideBySideEx{%
+ \ifgrid\vskip 8pt \else\relax\fi
+ \expandafter\pspicture\PictureSize
+ \ifgrid\usergrid\else\relax\fi
+ \input{\theepscounter}%
+ \endpspicture
+ \ifgrid\vskip 8pt \fi
+ }%
+}
+
+\newenvironment{GridPSExample}{\gridtrue\PSExample}{\endPSExample}
+
+% side by side
+\newenvironment{example}{\def\VOMIT##1{}\BeginExample} %
+ {\EndExample\SideBySideEx{\input{\theepscounter}}}
+
+% one above the other
+\newenvironment{example*}%
+ {\def\VOMIT##1{}\BeginExample}%
+ {%
+ \EndExample
+ \VerbatimInput[gobble=0,fontsize=\small]{\theepscounter}%
+ \begin{center}
+ \leavevmode\input{\theepscounter}\par
+ \end{center}
+}
+
+% with a frame, one above the other
+\newenvironment{example**}%
+{\def\VOMIT##1{}\BeginExample}%
+{%
+\EndExample
+\VerbatimInput[gobble=0,fontsize=\small,
+ frame=topline,framerule=1.5pt]{\theepscounter}%
+\begin{center}
+\input{\theepscounter}
+ \EndRuleExample
+\end{center}
+}
+
+% now the ones which write stuff for an EPS file
+
+% side by side
+\newenvironment{Example}{\def\ex@@prefix{a}\BeginExample} %
+ {\EndExample
+\def\FancyVerbStopString{STOPSTOPSTOP}%
+\def\FancyVerbStartString{GOGOGO}%
+\SideBySideEx{\EPSinput{\theepscounter}}}
+
+% first verbatimcode, then actual example
+\newenvironment{Example*}{\def\ex@@prefix{b}\BeginExample}%
+ {\EndExample
+\def\FancyVerbStopString{STOPSTOPSTOP}%
+\def\FancyVerbStartString{GOGOGO}%
+ \begin{center}\leavevmode
+ \VerbatimInput[gobble=0,fontsize=\small]{\ex@@prefix\theepscounter}%
+ \EPSinput{\theepscounter}%
+ \end{center}%
+}
+
+% one above the other, framed
+\newenvironment{Example**}%
+{\def\ex@@prefix{b}\BeginExample}%
+{%
+\EndExample
+\def\FancyVerbStopString{STOPSTOPSTOP}%
+\def\FancyVerbStartString{GOGOGO}%
+ \VerbatimInput[gobble=0,fontsize=\small,
+ frame=topline,framerule=1.5pt]{\ex@@prefix\theepscounter}%
+\EPSinput{\theepscounter}
+\EndRuleExample
+}
+
+% no verbatim text at all, just to run the thing separately
+\newenvironment{Example***}%
+{\def\ex@@prefix{b}\BeginExample}%
+{%
+\def\FancyVerbStopString{STOPSTOPSTOP}%
+\def\FancyVerbStartString{GOGOGO}%
+\EndExample
+\centerline{\EPSinput{\theepscounter}}
+}
+
+\def\CurrentPackages{}
+
+\def\FVE@VerbatimOut{\VOMIT{STOPSTOPSTOP}%
+\immediate\closeout\FV@OutFile\endgroup\@esphack}
+
+\def\VOMIT#1{%
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\immediate\write\FV@OutFile{#1}}
+ \reserved@a
+ \endgroup
+}
+
+\def\FVB@VerbatimOut#1{%
+ \@bsphack
+ \begingroup
+ \FV@UseKeyValues
+ \FV@DefineWhiteSpace
+ \def\FV@Space{\space}%
+ \FV@DefineTabOut
+ \def\FV@ProcessLine{\immediate\write\FV@OutFile}%
+ \immediate\openout\FV@OutFile #1\relax
+ \VOMIT{\string\documentclass{ppex\ex@@prefix}}%
+ \VOMIT{\string\usepackage{\CurrentPackages}}%
+ \VOMIT{GOGOGO}%
+ \let\FV@FontScanPrep\relax
+ \FV@Scan}
+
+\def\SixPt{\fontsize{6}{7\p@}\selectfont}
+\DefineVerbatimEnvironment{verbatimzzz}{LVerbatim}{fontsize=\SixPt}
+\def\verbfile#1{\VerbatimInput[fontsize=\small]{#1}}
+\endinput