diff options
author | Karl Berry <karl@freefriends.org> | 2018-11-01 22:10:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-11-01 22:10:32 +0000 |
commit | 7871fabe40409a7420143e8084f639f6173204f9 (patch) | |
tree | 54b89cf39168ac92acbab29a4fff70271df739e7 /Master/texmf-dist | |
parent | 15360daf880519448794c8bc606dad9d850bb7a8 (diff) |
fancyvrb (1nov18)
git-svn-id: svn://tug.org/texlive/trunk@49045 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
17 files changed, 1492 insertions, 7108 deletions
diff --git a/Master/texmf-dist/doc/latex/fancyvrb/Changes b/Master/texmf-dist/doc/latex/fancyvrb/Changes index 9658bfd588e..8e791480e68 100644 --- a/Master/texmf-dist/doc/latex/fancyvrb/Changes +++ b/Master/texmf-dist/doc/latex/fancyvrb/Changes @@ -1,4 +1,8 @@ --- fancyvrb.sty +3.0 2018/11/01 - remove the example part from francyvrb (hv) +2.9 2018/10/31 - made \UseVerb robust (hv) +2.81 2011/04/06 - added optional argument vspace for the + vertical space (default \topsep) (hv) 2.8 2010/05/14 - fixed several trailing spaces (hv) - changed license to LPPL 2.7a 2008/02/07 - NMM fixed lastline=firstline bug @@ -9,3 +13,7 @@ v2.5 1998/01/28 - First public release. v2.0 1994/03/30 - First version personally shown by Timothy \textsc{van Zandt} + + +--- fancyvrb-ex.sty +0.01 2018/11/01 - first CTAN version
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/fancyvrb/Makefile b/Master/texmf-dist/doc/latex/fancyvrb/Makefile deleted file mode 100644 index 8b32c059eb8..00000000000 --- a/Master/texmf-dist/doc/latex/fancyvrb/Makefile +++ /dev/null @@ -1,67 +0,0 @@ - -# `Makefile' for `pst-3dplot.pdf', hv, 2007/03/17 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -PACKAGE = fvrb-ex - -MAIN = $(PACKAGE) - -TDS = ~/PSTricks/PSTricks-TDS - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(MAIN).tex README Changes Makefile - -all : doc clean -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).dtx - $(LATEX) $< - makeindex -s gind.ist $(basename $<) - makeindex -s gglo.ist -o $(basename $<).gls $(basename $<).glo -# bibtex $(basename $<) - $(LATEX) $< - $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .cb .cb? .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .bbl ) - $(RM) $(addprefix $(MAIN), .dvi .ps .xcp) - $(RM) file.txt hello.f90 - -veryclean : clean - $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - -tds: - cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ - cp -u README $(TDS)/doc/generic/$(PACKAGE)/ - cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ - cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ - cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro ~/Links/dvips-local/ -# - cp -u Changes $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ - cp -u Makefile $(TDS)/source/$(PACKAGE)/ - - -# EOF diff --git a/Master/texmf-dist/doc/latex/fancyvrb/README b/Master/texmf-dist/doc/latex/fancyvrb/README index e074763c32a..e33f473666c 100644 --- a/Master/texmf-dist/doc/latex/fancyvrb/README +++ b/Master/texmf-dist/doc/latex/fancyvrb/README @@ -1,8 +1,8 @@ -------------------------------------------------- | `fancyvrb' | - | Version 2.6 | - | July 17, 1998 | + | Version 2.9 | + | Oct 31, 2018 | | | | Timothy Van Zandt (Princeton University - USA) | | <tvz@Princeton.EDU> | @@ -11,7 +11,7 @@ | Denis Girou (CNRS/IDRIS - France) | | <Denis.Girou@idris.fr> | | Sebastian Rahtz (Elsevier - GB) | - | <s.rahtz@elsevier.co.uk> | + | Herbert Voss, Berlin (hvoss@tug.org) | -------------------------------------------------- @@ -32,35 +32,14 @@ of the version 2.5) but the additional paragraph about it usage to the typesetting of the "LaTeX Graphics Companion" provide in depth informations on some usages of `fancyvrb' not described elsewhere. - The "contrib" subdirectory contain the `fvrb-ex' package (from Denis Girou), -built above `fancyvrb', which offer some "example" environments showing both -the code in verbatim mode and the result of it normally formatted. + Comments, suggestions and bug reports (with version number and the +keyword "fancyvrb" in the subject of the message) to <hvoss@tug.org> - Warning! - -------- + The `fancyvrb-ex' package provides some example environments to +show LaTeX code and output side by side or on top on each other. - * Support is provided by Denis Girou and Sebastian Rahtz and not by -Timothy Van Zandt. Do not bother him with questions relative to `fancyvrb'! - * The standard `color' package must be available, with a correct "color.cfg" -file defining the dvi converter that must be used. - - * If the `changebar' package is available on your platform, the changes -since the preceding version will be marked by special gray bars printed -in the margins. But the driver name must be hardcoded in the file. -So, if you have `changebar' and are not using the "dvips" driver, change this -name in the line - {\ChangeBartrue\usepackage[dvips,rightbars]{changebar}}{} -in fancyvrb.dtx (the other drivers supported by this package are "dvitoln03", -"dvitops" and "emtex"). - If you really need to desactivate this feature (it must not be the case, -as there will be no effect if you haven't `changebar', and, if you have it, -it must work on your platform...) just change the two relevant lines to: -\IfFileExists{changebar.sty}{}{} - -............................................................................. - - Comments, suggestions and bug reports (with version number and the -keyword "fancyvrb" in the subject of the message) to <Denis.Girou@idris.fr> -and <s.rahtz@elsevier.co.uk> +%% This package may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.3 or, at your option, any later version. diff --git a/Master/texmf-dist/doc/latex/fancyvrb/README.contrib b/Master/texmf-dist/doc/latex/fancyvrb/README.contrib deleted file mode 100644 index b3f2966f8c8..00000000000 --- a/Master/texmf-dist/doc/latex/fancyvrb/README.contrib +++ /dev/null @@ -1,57 +0,0 @@ - ------------------------------------- - | `fvrb-ex' | - | Version 1.7 | - | March 27, 1998 | - | | - | Denis Girou (CNRS/IDRIS - France) | - | <Denis.Girou@idris.fr> | - ------------------------------------- - - - This package, built above the `fancyvrb' one (from Timothy van Zandt), -offer several kinds of the so-called "example" environments to format some -code both in "verbatim" mode and in the "normal" way, below or on the side. -The advantage of such environments is that the code itself is included only -one time in the source code, which allow to be sure of the consistence of the -two versions shown. - - Some other kinds of such environments are specially devoted to graphics, -allowing to give the size of them. It is also possible in this case to draw -also a grid. - - Warning! - -------- - - * You must be aware that it has been reported that this package doesn't work -at all on some platforms, due to the way the 8 bits characters are managed by -some TeX systems. - You can make first the following test (courtesy Sebastian Rahtz): - -\documentclass{article} -\usepackage{moreverb} % CTAN/macros/latex/contrib/supported/moreverb -\begin{document} -\begin{verbatimwrite}{test.txt} - £hello -\end{verbatimwrite} -\end{document} - - If you got in the file "test.txt" not the exact input line but ^^a3 for -the first character, this package has no change to really work for you... - - Just try to position (courtesy Thomas Esser) LC_CTYPE=C if your system -accept it and retry the preceding test. - - * We suppose here that you already know the `fancyvrb' package. If not, look -at it own documentation! - - * The standard `color' package must be available, with a correct "color.cfg" -file defining the dvi converter that must be used. - - * Some environments, specially devoted to graphics, require PSTricks, -but `fvrb-ex' desactivate them if PSTricks is not available so it can be used -without it. - -............................................................................. - - Comments, suggestions and bug reports (with version number and the -keyword "fancyvrb" in the subject of the message) to <Denis.Girou@idris.fr> diff --git a/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.pdf b/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.pdf Binary files differnew file mode 100644 index 00000000000..5bccf8e4b18 --- /dev/null +++ b/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.pdf diff --git a/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.tex b/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.tex new file mode 100644 index 00000000000..457a4d26efd --- /dev/null +++ b/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb-doc.tex @@ -0,0 +1,1393 @@ +\documentclass{article} +%\usepackage[T1]{fontenc} +%\usepackage[charter]{mathdesign} +\usepackage{libertinus} +%\usepackage[scaled=0.84]{beramono} +\setmonofont[Scale=MatchLowercase,FakeStretch=0.9]{AnonymousPro} + +\newif\ifChangeBar \ChangeBarfalse +\usepackage{fancyvrb} +\usepackage[pstricks]{fancyvrb-ex} +\usepackage{xurl} +\usepackage[colorlinks,linktocpage]{hyperref} +\parskip=3pt plus 1pt minus 1pt +% + +\newcommand\FBoxPackage{`\textsf{fancybox}'} +\newcommand\FVrbPackage{`\textsf{fancyvrb}'} +\newcommand\cs[1]{\texttt{\textbackslash#1}} +% +% From ltugboat.cls +% +% Typeset the name of an environment +\providecommand\env[1]{\textsf{#1}} +\providecommand\clsname[1]{\textsf{#1}} +\providecommand\pkgname[1]{\textsf{#1}} +\providecommand\optname[1]{\textsf{#1}} +\providecommand\progname[1]{\textsf{#1}} +% +% A list of options for a package/class +\newenvironment{optlist}{\begin{description}% + \renewcommand\makelabel[1]{% + \descriptionlabel{\mdseries\optname{##1}}}% + \itemsep0.25\itemsep}% + {\end{description}} +% +% Utility macros +% +% Special dashes + +\makeatletter +\def\thinskip{\hskip 0.16667em\relax} +\def\endash{--} +\def\emdash{\endash-} +\def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces} +\def\dash{\d@sh\nobreak\endash} +\def\Dash{\d@sh\nobreak\emdash} +\makeatother +\newif\ifPostScriptFonts \PostScriptFontstrue +% +\setlength{\columnseprule}{0.6pt} +% +\newif\ifmulticols +%\IfFileExists{multicol.sty}{\multicolstrue}{} +\newif\ifpstricks +\pstrickstrue +% +\title{The `\textsf{fancyvrb}' package\\Fancy Verbatims in \LaTeX} +\author{Timothy Van Zandt\\Princeton University\\Princeton -- USA\\ + {\footnotesize \url{tvz@Princeton.EDU}}\\[5mm] + {Packaging and documentation by}\\ + {\footnotesize Denis Girou (CNRS/IDRIS -- France),}\\[-2mm] + {\footnotesize Sebastian Rahtz (Elsevier -- GB)}\\[-2mm] + {\footnotesize and}\\[-2mm] + {\footnotesize Herbert VoĆ\ (FU Berlin -- DE)} + } +\date{Version 3.0\\ \today} + +\fvset{frame=single,xrightmargin=0cm,numbers=left,numbersep=3pt,commentchar=Z} + +\begin{document} +\maketitle +% +\begin{abstract} + This package provides very sophisticated facilities for reading and + writing verbatim \TeX{} code. Users can perform common tasks like changing + font family and size, numbering lines, framing code examples, colouring + text and conditionally processing text. +\end{abstract} + +\vfill +Thanks to +Philippe Esperet, %\url{esperet@marie.polytechnique.fr}, +Michael Friendly, %\url{friendly@hotspur.psych.yorku.ca}, +Mario Hassler, %\url{HASSLER@ippnv2.ipp.kfa-juelich.de}, +Mikhail Kolodin, %\url{myke@morrigan.spb.su}, +Andreas Matthias, +Frank Mittelbach, +Rolf Niepraschk, %\url{Rolf.Niepraschk@gmx.de}, +Ulrich M. Schwarz, +Thomas Siegel,% \url{siegel@aix520.informatik.uni-leipzig.de}, +and +Vladimir Volovich. %\url{vvv@vvv.vsu.ru}. +\clearpage +\tableofcontents +\clearpage +%\part{\texttt{fancyvrb} package by Timothy Van Zandt} + + +\part{Package \texttt{fancyvrb}} + + +\section{Introduction} +% + \FVrbPackage{} is the development of the \emph{verbatim} macros of the +\FBoxPackage{} package, Section 11 of \cite{FancyBox}. It offers six kinds +of extended functionality, compared to the standard \LaTeX{} +\textsf{verbatim} environment: + +\begin{enumerate} + \item verbatim commands can be used in footnotes, + \item several verbatim commands are enhanced, + \item a variety of verbatim environments are provided, with many + parameters to change the way the contents are printed; it is also possible + to define new customized verbatim environments, + \item a way is provided to save and restore verbatim text and environments, + \item there are macros to write and read files in verbatim mode, with the + usual versatility, + \item you can build \emph{example} environments (showing both result and + verbatim text), with the same versatility as normal verbatim. +\end{enumerate} + + The package works by scanning a line at a time from an environment or a +file. This allows it to pre-process each line, rejecting it, removing +spaces, numbering it, etc, before going on to execute the body of the line +with the appropriate catcodes set. + +\section{Verbatim material in footnotes} + + After a \cs{VerbatimFootnotes} macro declaration (to use after the +preamble), it is possible to put verbatim commands and environments +(the \LaTeX{} or \FVrbPackage{} ones) in footnotes, unlike in standard +\LaTeX: + +\begin{Example} + \VerbatimFootnotes + We can put verbatim\footnote{\verb+_Yes!_+} text in footnotes. +\end{Example} + +\section{Improved verbatim commands} +% + The \cs{DefineShortVerb} macro allows us to define a special character as +an abbreviation to enclose verbatim text and the \cs{UndefineShortVerb} +macro suppresses the special meaning of the specified character (the same +functionalities are provided in the \LaTeX{} `\textsf{shortvrb}' package): + +\fvset{xrightmargin=4.8cm} + +\begin{SideBySideExample} + \DefineShortVerb{\|} + We can simply write \Verb+_verbatim_+ + material using a single |_delimiter_| + \UndefineShortVerb{\|} + \DefineShortVerb{\+} + And we can +_change_+ the character. +\end{SideBySideExample} + + To make matters more versatile, we can nominate \emph{escape} characters +in verbatim text (using the \cs{Verb} macro or with a `shortverb' character +defined), to perform formatting or similar tasks, using the +\texttt{commandchars} parameter as shown for environments in paragraph +\ref{sec:commandchars}. + +\section{Verbatim environments} + +Several verbatim environments are available, each with a lot of +parameters to customize them. In the following examples we use the +\texttt{Verbatim} environment, which is the equivalent of the standard +\texttt{verbatim}. The parameters can be set globally using the \cs{fvset} +macro or in an optional argument after the start of the +environment\footnote{For clarification in this paper, note that we +generally indent each verbatim line with two +spaces.}$^,$\footnote{This mechanism uses the +`\textbf{keyval}' package from the standard \LaTeX{} graphics +distribution, written by David \textsc{Carlisle}.}. + +\begin{SideBySideExample} + \begin{Verbatim} + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsection{Customization of verbatim environments} + + The appearance of verbatim environments can be changed in many and +varied ways; here we list the keys that can be set. + +\subsubsection{Comments} + +\begin{optlist} + \item[commentchar (character)]: character to define comments in the + verbatim code, so that lines starting with this character will not be + printed (\emph{Default: empty}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[commentchar=!] + A comment + Verbatim line. + ! A comment that you will not see + \end{Verbatim} +\end{SideBySideExample} + + Take care to a special effect if the comment character is not the first +non blank one: it is because this character is in fact managed as the \TeX{} +comment one, that is to say that it gobble the newline character too. So, in +this case, the current line will be joined with the next one and, more, the +last one will be lost if it contain a comment, as \FVrbPackage{} print a +line only after finding it end character, which will never occured in this +case... + +\begin{SideBySideExample} + \begin{Verbatim}[commentchar=\%] + First line. % First line + Second. + Third line. % Third line lost... + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Initial characters to suppress} + +\begin{optlist} + \item[gobble (integer)]: number of characters to suppress at the beginning + of each line (up to a maximum of 9), mainly useful when environments are + indented + (\emph{Default: empty} \Dash no character suppressed). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim} + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[gobble=2] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[gobble=8] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Customization of formatting} + +\begin{optlist} + \item[formatcom (command)]: command to execute before printing verbatim + text + (\emph{Default: empty}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[formatcom=\color{red}] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Changing individual line formatting} + + The macro \cs{FancyVerbFormatLine} defines the way each line is formatted. +Its default value is \verb+\def\FancyVerbFormatLine#1{#1}+, but we can +redefine it at our convenience (\texttt{FancyVerbLine} is the name of the +line counter): + +{\fvset{fontsize=\small} +\begin{SideBySideExample} + Z\fvset{fontsize=\normalsize} + \renewcommand{\FancyVerbFormatLine}[1]{% + \makebox[0cm][l]{$\Rightarrow$}#1} + \begin{Verbatim} + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{SideBySideExample} + \renewcommand{\FancyVerbFormatLine}[1]{% + \ifodd\value{FancyVerbLine}% + \MakeUppercase{#1}\else#1\fi} + \begin{Verbatim} + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} +} + +\subsubsection{Fonts} + +\begin{optlist} + \item[fontfamily (family name)]: font family to use. + \texttt{tt}, \texttt{courier} and \texttt{helvetica} are pre-defined + (\emph{Default:~tt}). +\end{optlist} + +\ifPostScriptFonts We can guess that PostScript fonts are available + +\begin{SideBySideExample} + \begin{Verbatim}[fontfamily=helvetica] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\else +\begin{quote} + \textbf{\large Warning!} PostScript fonts seems not available on your + platform (we are looking for the file \texttt{times.sty}, so we will + not show the examplaes using such PostScript fonts. +\end{quote} +\fi + +\begin{optlist} + \item[fontsize (font size)]: size of the font to use + (\emph{Default: auto} \Dash the same as the current font). If you use the + `\textsf{relsize}' package too, you can require a change of the size + proportional to the current one (for instance: + \verb+fontsize=\relsize{-2}+). +\end{optlist} + +\ifPostScriptFonts We can guess that PostScript fonts are available + +\begin{SideBySideExample} + \begin{Verbatim}[fontsize=\small] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[fontfamily=courier, + fontsize=\large] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\else +\begin{SideBySideExample} + \begin{Verbatim}[fontsize=\small] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} +\fi + +\begin{optlist} + \item[fontshape (font shape)]: font shape to use + (\emph{Default: auto} \Dash the same as the current font). +\end{optlist} + +\ifPostScriptFonts We can guess that PostScript fonts are available + +\begin{SideBySideExample} + \begin{Verbatim}[fontfamily=courier, + fontshape=it] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\else + +\begin{SideBySideExample} + \begin{Verbatim}[fontshape=it] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} +\fi + +\begin{optlist} + \item[fontseries (series name)]: \LaTeX{} font `series' to use + (\emph{Default: auto} \Dash the same as the current font). +\end{optlist} + +\ifPostScriptFonts We can guess that PostScript fonts are available + +\begin{SideBySideExample} + \begin{Verbatim}[fontfamily=courier, + fontseries=b] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\else +\begin{SideBySideExample} + \begin{Verbatim}[fontseries=b] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} +\fi + +\subsubsection{Types and characteristics of frames} + +\begin{optlist} + \item[frame + (none$\mid$leftline$\mid$topline$\mid$bottomline$\mid$lines$\mid$single)]: + type of frame around the verbatim environment + (\emph{Default: none} \Dash no frame). With \textsf{leftline} and + \textsf{single} modes, a space of a length given by the \LaTeX{} + \cs{fboxsep} macro is added between the left vertical line and the text. +\end{optlist} + + Problem at the top of a page... + +\begin{SideBySideExample} + \begin{Verbatim}[frame=leftline] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=topline] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=bottomline] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=lines] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=single] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[framerule (dimension)]: width of the rule of the frame + (\emph{Default: 0.4pt if framing specified}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + framerule=1mm] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[framesep (dimension)]: width of the gap between the frame and + the text (\emph{Default: \cs{fboxsep}}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + framesep=5mm] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[rulecolor (color command)]: color of the frame rule, expressed + in the standard \LaTeX{} way + (\emph{Default: black}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + rulecolor=\color{red}] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[fillcolor (color command)]: color used to fill the space + between the frame and the text (its thickness is given by + \texttt{framesep}) + (\emph{Default: none} \Dash no color). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + framerule=1mm,framesep=3mm, + rulecolor=\color{red}, + fillcolor=\color{yellow}] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Label for the environment} + +\begingroup +\newcommand\Vitem{\SaveVerb[aftersave={\item[\UseVerb{Vitem}]}]{Vitem}} +\DefineShortVerb{\|} + +\begin{optlist} + \Vitem|label ({[string]string})|: label(s) to print on top, bottom or + both frame lines of the environment to describe it content + (\emph{Default: empty} \Dash no label). + If the label(s) contains special characters, as a comma or an equal sign, + it must be put inside a group. If only one string is given, it will be + used for both top and bottom lines (if the two are printed), but if an + optional first label is given too, this one will be used for the top line + and the second one for the bottom line. Note also that, if another value + than \textsf{topline}, \textsf{bottomline}, \textsf{lines} or + \textsf{single} is used for the \textsf{frame} parameter, the label(s) + will not be printed. +\end{optlist} +\endgroup + + Problem at the top of a page... + +\begin{SideBySideExample} + \fvset{gobble=2} + \begin{Verbatim}[frame=single, + label=My text] + First verbatim line. + Second verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=topline, + framesep=4mm, + label=\fbox{\Large\emph{The code}}] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[labelposition (none$\mid$topline$\mid$bottomline$\mid$all)]: + position where to print the label if one is defined, which must be + coherent with the kind of frame chosen + (\emph{Default: none if the label is empty, topline if one label is + defined and all if two are defined}). + Of course, some incompatible options (like + \textsf{frame=topline,labelposition=bottomline}) will not print the + label. +\end{optlist} + + Problem at the top of a page... + +\begin{SideBySideExample} + \fvset{gobble=2} + \begin{Verbatim}[frame=single, + framesep=2mm, + label=Text,labelposition=all] + First verbatim line. + Second verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=lines, + label=Text,labelposition=topline] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=bottomline, + framesep=3mm, + label=\textit{Code included}, + labelposition=bottomline] + First verbatim line. + Second verbatim line. + \end{Verbatim} + + \begin{Verbatim}[frame=lines, + framesep=3mm, + label={[Beginning of code]End of code}] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Line numbering} + +\begin{optlist} + \item[numbers (none$\mid$left$\mid$right)]: numbering of the verbatim lines + (\emph{Default: none} \Dash no numbering). If requested, this numbering is + done \emph{outside} the verbatim environment. +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2,numbers=left] + First verbatim line. + Second verbatim line. + \end{Verbatim} + + \begin{Verbatim}[gobble=2, + numbers=right,numbersep=0pt] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[numbersep (dimension)]: gap between numbers and verbatim lines + (\emph{Default: 12pt}). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2, + numbers=left,numbersep=2pt] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[firstnumber (auto$\mid$last$\mid$integer)]: number of the first line + (\emph{Default: auto} \Dash numbering starts from 1). \textsf{last} means + that the numbering is continued from the previous verbatim environment. If + an integer is given, its value will be used to start the numbering. +\end{optlist} + +\begin{SideBySideExample} + \fvset{gobble=2, + numbers=left,numbersep=3pt} + \begin{Verbatim} + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[firstnumber=last] + Verbatim line. + \end{Verbatim} + + \begin{Verbatim}[firstnumber=100] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[stepnumber (integer)]: interval at which line numbers are printed + (\emph{Default:~1} \Dash all lines are numbered). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2,numbers=left, + numbersep=3pt,stepnumber=2] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + + The macro \cs{theFancyVerbLine} defines the typesetting style of the +numbering, and the counter used is \texttt{FancyVerbLine}: + +\begin{SideBySideExample} + \renewcommand{\theFancyVerbLine}{% + \textcolor{red}{\small + 8.\alph{FancyVerbLine}}} + \begin{Verbatim}[gobble=2, + numbers=left,numbersep=2pt] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\ifChangeBar\begin{changebar}\fi +\begin{optlist} + \item[numberblanklines (boolean)]: to number or not the empty lines + (really empty or containing blank characters only) + (\emph{Default: true} \Dash all lines are numbered). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2,numbers=left, + numbersep=3pt, + numberblanklines=false] + First verbatim line. + + + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} +\ifChangeBar\end{changebar}\fi +% +\subsubsection{Selection of lines to print} + +\begin{optlist} + \item[firstline (integer)]: first line to print + (\emph{Default: empty} \Dash all lines from the first are printed). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2,firstline=2, + numbers=left,numbersep=2pt] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[lastline (integer)]: last line to print + (\emph{Default: empty} \Dash all lines until the last one are printed). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[gobble=2,lastline=1, + numbers=left,numbersep=2pt] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +Instead of specifying a firstline at which to start printing a range +of lines, you can define a start string; the start of the range is +the first line that exactly equals the string. (The comparison is made +before any characters are gobbled off the front of the line.) Similarly for a stop +string. You can mix line-numbers and strings, e.g.\ start at +firstline, and end at a stop string. Specifying the strings is a +bit klunky. Initially you must define the strings with +\cs{newcommand*} as in: + +\begin{SideBySideExample}[gobble=2] + \newcommand*\FancyVerbStartString{FROM} + \newcommand*\FancyVerbStopString{TO} + \begin{Verbatim} + First verbatim line. + FROM + Second verbatim line. + TO + Third verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\noindent To redefine the strings, you must use \cs{renewcommand*}. + +\subsubsection{Spaces and tab characters} + +\begin{optlist} + \item[showspaces (boolean)]: print a special character representing each + space + (\emph{Default: false} \Dash spaces not shown). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[showspaces=true] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + + In practice, all verbatim environments have a~\texttt{*} variant, which +sets \texttt{showspaces=true}: + +\begin{SideBySideExample} + \begin{Verbatim*} + Verbatim line. + \end{Verbatim*} +\end{SideBySideExample} + + There are also some parameters to determine the way tab characters are +interpreted (using tabs is in fact a rather old-fashioned style of coding): + +\begin{optlist} + \item[showtabs (boolean)]: explicitly show tab characters + (\emph{Default: false} \Dash tab characters not shown). +\end{optlist} + +\begin{optlist} + \item[obeytabs (boolean)]: position characters according to the tabs + (\emph{Default: false} \Dash tab characters are added to the current + position). +\end{optlist} + +\begin{optlist} + \item[tabsize (integer)]: number of spaces given by a tab character + (\emph{Default:~8}). +\end{optlist} + +\subsubsection{Space between lines} + +\begin{optlist} + \item[baselinestretch (auto$\mid$dimension)]: value to give to the usual + `baselinestretch' \LaTeX{} parameter + (\emph{Default: auto} \Dash its current value just before the verbatim + command). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[baselinestretch=2] + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\subsubsection{Escape characters for inserting commands} + +\begin{optlist} + \item[commandchars (three characters)]: characters which define the + character which starts a macro and marks the beginning and end of a group; + thus lets us introduce \emph{escape} sequences in verbatim code. Of + course, it is better to choose special characters which are not used in + the verbatim text! (\emph{Default: empty}). + \label{sec:commandchars} +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[commandchars=\\\{\}] + \textit{This is a comment} + First verbatim line. + \fbox{Second} verbatim line. + \textcolor{red}{Third} verbatim line. + \end{Verbatim} + + \begin{Verbatim}[commandchars=+\[\]] + +textit[\textbf{Verbatim} line]. + \end{Verbatim} +\end{SideBySideExample} + +\ifChangeBar\begin{changebar}\fi + Using this way, it is also possible to put labels to be able, later, to +make reference to some lines of the verbatim environments: + +\begin{SideBySideExample} + \begin{Verbatim}[commandchars=\\\{\}, + numbers=left,numbersep=2pt] + First verbatim line. + Second line.\label{vrb:Important} + Third verbatim line. + \end{Verbatim} + + As I previously shown + line~\ref{vrb:Important}, it is... +\end{SideBySideExample} +\ifChangeBar\end{changebar}\fi + +\subsubsection{Margins} + +\begin{optlist} + \item[xleftmargin (dimension)]: indentation to add at the start of each + line + (\emph{Default:~0pt} \Dash no left margin). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + xleftmargin=5mm] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[xrightmargin (dimension)]: right margin to add after each line + (\emph{Default:~0pt} \Dash no right margin). +\end{optlist} + +\begin{SideBySideExample} + \begin{Verbatim}[frame=single, + xrightmargin=1cm] + Verbatim line. + \end{Verbatim} +\end{SideBySideExample} + +\begin{optlist} + \item[resetmargins (boolean)]: reset the left margin, which is useful if + we are inside other indented environments (\emph{Default: false} \Dash no + reset of the margin). +\end{optlist} + +{% +\DefineVerbatimEnvironment{Verbatim}{Verbatim}{gobble=0,numbers=none} +\begin{SideBySideExample} + \begin{itemize} + \item First item + \begin{Verbatim}[frame=single] + Verbatim line. + \end{Verbatim} + \item Second item + \begin{Verbatim}[frame=single, + resetmargins=true] + Verbatim line. + \end{Verbatim} + \end{itemize} +\end{SideBySideExample} +} + +\subsubsection{Overfull box messages} + +\begin{optlist} + \item[hfuzz (dimension)]: value to give to the \TeX{} \cs{hfuzz} dimension + for text to format. This can be used to avoid seeing some unimportant + \emph{Overfull box} messages (\emph{Default:~2pt}). +\end{optlist} + +\subsubsection{Page breaks} + +\begin{optlist} + \item[samepage (boolean)]: in very special circumstances, we may want to + make sure that a verbatim environment is not broken, even if it does not + fit on the current page. To avoid a page break, we can set the + \texttt{samepage} parameter to \emph{true} (\emph{Default: false}). +\end{optlist} + +\subsubsection{Catcode characters} + +\begin{optlist} + \item[codes (macro)]: to specify \emph{catcode} changes (\emph{Default: + empty}). +\end{optlist} + + For instance, this allows us to include formatted mathematics in verbatim +text: + +{\fvset{fontsize=\small} +\begin{SideBySideExample} + Z\fvset{fontsize=\normalsize} + \begin{Verbatim}[commandchars=\\\{\}, + codes={\catcode`$=3\catcode`^=7}] + x=1/sqrt(z**2) ! $\frac{1}{\sqrt{z^2}}$ + \end{Verbatim} +\end{SideBySideExample} +} %$ + + +\subsubsection{Active characters} + +\begin{optlist} + \item[defineactive (macro)]: to define the effect of \emph{active} + characters + (\emph{Default: empty}). +\end{optlist} + + This allows us to do some devious tricks: see the example in Section +\ref{sec:VerbatimInclude} on page~\pageref{sec:VerbatimInclude}. + +\subsection{Different kinds of verbatim environments} + +\subsubsection{Verbatim environment} + + This is the `normal' verbatim environment which we have been using up to +now. + +\subsubsection{BVerbatim environment} + + This environment puts the verbatim material in a \TeX{} box. Some +parameters do not work inside this environment (notably the framing ones), +but two new ones are available: + +\begin{optlist} + \item[boxwidth (auto$\mid$dimension)]: size of the box used + (\emph{Default: auto} \Dash the width of the longest line is used). +\end{optlist} + +\begin{optlist} + \item[baseline (b$\mid$c$\mid$t)]: position of the baseline (on the + \texttt{baseline}, the \texttt{center} or the \texttt{top} of the box) + (\emph{Default: b}). +\end{optlist} + +\begin{SideBySideExample} + \fvset{gobble=2} + \begin{BVerbatim} + First + Second + \end{BVerbatim} + \begin{BVerbatim}[baseline=c] + First + Second + \end{BVerbatim} +\end{SideBySideExample} + +\begin{SideBySideExample} + \begin{BVerbatim}[boxwidth=2cm] + First + Second + \end{BVerbatim} + \begin{BVerbatim}[boxwidth=2cm, + baseline=t] + First + Second + \end{BVerbatim} +\end{SideBySideExample} + +\subsubsection{LVerbatim environment} + + This environment puts verbatim material into \LaTeX{} `LR' mode (the +so-called \emph{left-to-right} mode, which in fact is the same thing that +\TeX{} itself calls \emph{restricted horizontal mode}). + +\subsubsection{Personalized environments} + +\ifChangeBar\begin{changebar}\fi +\VerbatimFootnotes + It is easy to define personal customized environments. You can redefine +the existing ones using the \cs{RecustomVerbatimEnvironment} macro or create +your own ones, using the \cs{DefineVerbatimEnvironment} macro\footnote{% +\ifChangeBar\begin{changebar}\fi +For verbatim commands, the \cs{CustomVerbatimCommand} and +\cs{RecustomVerbatimCommand} macros also exist; for instance: + +\noindent +\verb+\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{frame=lines}+ +\ifChangeBar\end{changebar}\fi}. +In each case, you specify the name of the new environment, the type of +environment on which it is based, and a set of initial option values. The +options can be overridden with an optional argument in the normal way: + +\begin{SideBySideExample} + \RecustomVerbatimEnvironment + {Verbatim}{Verbatim} + {gobble=2,frame=single} + \begin{Verbatim} + First verbatim line. + Second verbatim line. + \end{Verbatim} +\end{SideBySideExample} +\ifChangeBar\end{changebar}\fi + +\begin{SideBySideExample} + \DefineVerbatimEnvironment% + {MyVerbatim}{Verbatim} + {gobble=2,numbers=left,numbersep=2mm, + frame=lines,framerule=0.8mm} + \begin{MyVerbatim} + First verbatim line. + Second verbatim line. + \end{MyVerbatim} + + \begin{MyVerbatim}[numbers=none, + framerule=1pt] + First verbatim line. + Second verbatim line. + \end{MyVerbatim} +\end{SideBySideExample} + +\section{Saving and restoring verbatim text and environments} + + The \cs{SaveVerb} and \cs{UseVerb} macros allow us to save and restore +verbatim material. \cs{UseVerb} itself is robust: + +% \DefineShortVerb{\|} +% \SaveVerb{Verb}|_verbatim_| +\begin{SideBySideExample} + \DefineShortVerb{\|} + \SaveVerb{Verb}|_verbatim_| + I have saved \UseVerb{Verb} and reuse + it later as many times as I want + \subsection*{Using \UseVerb{Verb}} + \UseVerb{Verb}. +\end{SideBySideExample} + + This also provides a solution to putting verbatim text inside \LaTeX{} +commands which do not normally permit it: % (used package \texttt{marginnote}): + +{\fvset{frame=single,xrightmargin=0cm} +\begin{Example} + \DefineShortVerb{\|}\SaveVerb{Verb}|_OK^| \marginpar{\UseVerb{Verb}} +\end{Example} +} + + There is a useful ability to use verbatim text as the item text in a +description list (something not normally permitted in \LaTeX), using the +\texttt{aftersave} parameter: + +\begin{optlist} + \item[aftersave (macro)]: macro to dynamically save some verbatim material + (\emph{Default: empty}). +\end{optlist} + +\begin{SideBySideExample} + \newcommand{\Vitem}{% + \SaveVerb[aftersave={% + \item[\UseVerb{Vitem}]}]{Vitem}} + \DefineShortVerb{\|} + \begin{description} + \Vitem|\MyCommand|: my command + \end{description} +\end{SideBySideExample} + + In the same way, we can use and restore (in normal, boxed and LR mode, +using \cs{UseVerbatim}, \cs{BUseVerbatim} and \cs{LUseVerbatim} respectively) +entire verbatim environments: + +\begin{SideBySideExample} + Z\fvset{gobble=0,numbers=none} + \begin{SaveVerbatim}{VerbEnv} + Verbatim line. + \end{SaveVerbatim} + \UseVerbatim{VerbEnv} + and \UseVerbatim{VerbEnv} +\end{SideBySideExample} + +\begin{SideBySideExample} + Z\fvset{gobble=0,numbers=none} + \begin{SaveVerbatim}[gobble=5]{VerbEnv} + First + Second + \end{SaveVerbatim} + + \fbox{\BUseVerbatim{VerbEnv}} + and \BUseVerbatim{VerbEnv}. + + \LUseVerbatim{VerbEnv} and + \LUseVerbatim{VerbEnv} +\end{SideBySideExample} + +\section{Writing and reading verbatim files} +\label{sec:VerbatimInclude} + + The command \cs{VerbatimInput} (the variants \cs{BVerbatimInput} and +\cs{LVerbatimInput} also exist) allows inclusion of the contents of a file +with verbatim formatting. Of course, the various parameters which we have +described for customizing can still be used: + +%The file we will use for \VerbatimInput + +\typeout{*************************************} +\typeout{* Created files: hello.f90, file.txt} +\typeout{* See fancyhdr.dvi for an explanation} +\typeout{*************************************} + +\begin{VerbatimOut}{hello.f90} + ! A "hello" program + + program hello + print *,"Hello world" + end program hello +\end{VerbatimOut} + +\begin{SideBySideExample} + Z\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{gobble=4} + \fvset{fontsize=\small} + \VerbatimInput{hello.f90} + + \fvset{frame=single,numbers=left, + numbersep=3pt} + \VerbatimInput{hello.f90} + + \VerbatimInput[firstline=3, + rulecolor=\color{green}] + {hello.f90} + + \VerbatimInput[frame=lines, + fontshape=sl,fontsize=\footnotesize] + {hello.f90} +\end{SideBySideExample} + + We can make use of the `defineactive' parameter to set the comment lines + in the program text in a different style: + +\begin{SideBySideExample} + Z\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{gobble=4} + \def\ExclamationPoint{\char33} + \catcode`!=\active + \VerbatimInput% + [defineactive=% + \def!{\color{cyan}\itshape + \ExclamationPoint}] + {hello.f90} +\end{SideBySideExample} + + It is important to note that if the contents of the file does not fit on +the page, it will be automatically broken across pages as needed (unless the +\texttt{samepage} parameter has been set to \texttt{true}). + + There is also a \verb+VerbatimOut+ environment to write verbatim text to an +output file, in the same way: + +\begin{SideBySideExample} + \begin{VerbatimOut}{file.txt} + I write that. + And that too. + \end{VerbatimOut} + + \VerbatimInput[frame=single, + numbers=left,numbersep=6pt]{file.txt} +\end{SideBySideExample} + +\ifChangeBar\begin{changebar}\fi +\section{Automatic pretty printing} + + Obviously, automatic \emph{pretty printing} is outside the scope of this +package. Nevertheless, this is specially interesting for verbatim +inclusion of programming code files or fragments. In the \LaTeX{} world +(not speaking of the \emph{literate programming} way), there are software +for some special languages, as the `\textsf{C++2LaTeX}' package from Norbert +\textsc{Kiesel}, but mainly two generic ones, which use completely different +modes (an external preprocessor written in C and a \TeX{} based solution): +the `\textsf{LGrind}'~\cite{LGrind} system, currently maintened by Michael +\textsc{Piefel}, and the `\textsf{listings}'~\cite{Listings} package from +Carsten \textsc{Heinz}. + + Future versions of \FVrbPackage{} and `\textsf{listings}' packages are +planned to cooperate, which will offer great advantages to both users of the +two actual packages, and will allow \FVrbPackage{} users to have automatic +pretty printing of programming codes. + +\section{Known problems} + +\begin{itemize} + \item Vladimir \textsc{Volovich} \verb+<vvv@vvv.vsu.ru>+ reported that the + special character \verb+\th+, available with T1 encoding, can't be + included as verbatim with \FVrbPackage. It can be true for other special + characters too. +\end{itemize} + +\iffalse + +\section{Thanks} + + For interesting comments and suggestions, we would like to thank specially +(alphabetic order): Philippe \textsc{Esperet} +\url{esperet@marie.polytechnique.fr}, Michael \textsc{Friendly} +\url{friendly@hotspur.psych.yorku.ca}, Rolf \textsc{Niepraschk} +\url{niepraschk@gmx.de} and for bug reports Mario \textsc{Hassler} +\relax\unskip\break +\url{HASSLER@ippnv2.ipp.kfa-juelich.de}, Mikhail \textsc{Kolodin} +\relax\unskip\break +\url{myke@morrigan.spb.su}, Andreas Matthias, Ulrich M. Schwarz, and Vladimir \textsc{Volovich} +\verb+<vvv@vvv.vsu.ru>+. + + +\fi +\section{Conclusion} + + There are a few other possibilities that we have not described here. +Note specially that it is possible to define a customization file +(\texttt{fancyvrb.cfg}) loaded at the end of the package, to store +definitions of your customized commands and environments and to redefine +the attributes of existing ones. + + +\clearpage + + +\part{Package \texttt{fancyvrb-ex}} +This package defines some example environments which can write input code +and output side by side or on top of each other. They are all used for this documentation of \texttt{fancyvrb}. + +\section{\texttt{Example} environment} + +\begin{Verbatim}[gobble=2] + \begin{Example} + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Example} +\end{Verbatim} + +\begin{Example} + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{Example} + +\begin{Verbatim}[gobble=2] + \begin{Example}[frame=lines,framerule=1mm, + numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Example} +\end{Verbatim} + +\begin{Example}[frame=lines,framerule=1mm,numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{Example} + +\newpage + +\section{\texttt{CenterExample} environment} + +\begin{Verbatim}[gobble=2] + \begin{CenterExample}[frame=single, + numbers=right] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{CenterExample} +\end{Verbatim} + +\begin{CenterExample}[frame=single,numbers=right] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{CenterExample} + + +\section{\texttt{SideBySideExample} environment} + +\begin{Verbatim}[gobble=2] + \begin{SideBySideExample}[xrightmargin=5cm, + frame=lines, numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{SideBySideExample} +\end{Verbatim} + +\begin{SideBySideExample}[xrightmargin=5cm,frame=single,numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{SideBySideExample} + +\section{\texttt{PCenterExample} environment} + +\begin{Verbatim} + \fvset{frame=lines,framerule=0.5mm,numbers=left} + + \begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} + \end{PCenterExample} + + \showgrid + \begin{PCenterExample}(-1,-1)(1,1) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} + \end{PCenterExample} +\end{Verbatim} + +{\fvset{frame=lines,framerule=0.5mm,numbers=left} +\begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} +\end{PCenterExample} +\showgrid +\begin{PCenterExample}(-1,-1)(1,1) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} +\end{PCenterExample} +} + +\section{\texttt{PSideBySideExample} environment} + +\begin{Verbatim}[gobble=2] + \fvset{frame=single,xrightmargin=5cm} + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse*[linecolor=yellow](2,1) + \end{PSideBySideExample} + \showgrid + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) + \end{PSideBySideExample} +\end{Verbatim} + +{\fvset{frame=single,xrightmargin=5cm} +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse*[linecolor=yellow](2,1) +\end{PSideBySideExample} + +\showgrid +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) +\end{PSideBySideExample} +} + +\begin{Verbatim}[gobble=2] + \fvset{frame=single,xrightmargin=5cm} + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) + \end{PSideBySideExample} + \begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) + \psellipse[linestyle=dotted](2,1) + \end{PSideBySideExample} +\end{Verbatim} + +{\fvset{frame=single,xrightmargin=5cm} +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) + \psellipse[linestyle=dotted](2,1) +\end{PSideBySideExample} +} + + + + + + + +\begin{thebibliography}{1} + \bibitem{FancyBox} Timothy \textsc{van Zandt}, + \textit{Documentation for `fancybox': Box tips and tricks for \LaTeX}. + Available from \url{CTAN: macros/latex/contrib/supported/fancybox}, 1993. + + \bibitem{FancyVrb} Timothy \textsc{van Zandt}, + \textit{`fancyvrb': Fancy Verbatims in \LaTeX}. + Available from \url{CTAN: macros/latex/contrib/supported/fancyvrb}, 1998. + + \bibitem{LGrind} Various authors (current maintainer: Michael + \textsc{Piefel}), + \textit{The `LGrind' package}. + Available from \url{CTAN: support/lgrind}, 1998. + + \bibitem{Listings} Carsten \textsc{Heinz}, + \textit{The `Listings' package}. + Available from \url{CTAN: macros/latex/contrib/supported/listings}, 1996-1997. +\end{thebibliography} + + + + + + + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb.pdf b/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb.pdf Binary files differdeleted file mode 100644 index 4790d104af7..00000000000 --- a/Master/texmf-dist/doc/latex/fancyvrb/fancyvrb.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/fancyvrb/fvrb-ex.pdf b/Master/texmf-dist/doc/latex/fancyvrb/fvrb-ex.pdf Binary files differdeleted file mode 100644 index 5ba2d54c27d..00000000000 --- a/Master/texmf-dist/doc/latex/fancyvrb/fvrb-ex.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/fancyvrb/t-fvrbex.tex b/Master/texmf-dist/doc/latex/fancyvrb/t-fvrbex.tex deleted file mode 100644 index fcc3de7801a..00000000000 --- a/Master/texmf-dist/doc/latex/fancyvrb/t-fvrbex.tex +++ /dev/null @@ -1,220 +0,0 @@ -%% -%% This is file `t-fvrbex.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% fvrb-ex.dtx (with options: `t-fvrbex') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from t-fvrbex.tex. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file fvrb-ex.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -%% -%% Package `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') -%% -%% COPYING: -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> March 27, 1998 -%% -%% File `t-fvrbex' -%% -\documentclass{article} - -\usepackage[bawcolor,pstricks]{fvrb-ex} -\pstrickstrue -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage[charter]{mathdesign} -\usepackage{url} -\usepackage{xcolor} - -\begin{document} - -\title{Test file for the `\textsf{fvrb-ex}' package} -\author{Denis Girou\\CNRS/IDRIS\\Orsay -- France\\ - {\footnotesize email: Denis.Girou@idris.fr}} -\date{Version 1.2\\March 27, 1998} - -\maketitle - -\RecustomVerbatimEnvironment{Verbatim}{Verbatim} - {gobble=2,commentchar=^^a3,numbers=left,numbersep=3pt,frame=single} - -\section{\texttt{Example} environment} - -\begin{Verbatim} - \begin{Example} - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{Example} -\end{Verbatim} - -\begin{Example} - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{Example} - -\begin{Verbatim} - \begin{Example}[frame=lines,framerule=1mm,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{Example} -\end{Verbatim} - -\begin{Example}[frame=lines,framerule=1mm,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{Example} - -\section{\texttt{CenterExample} environment} - -\begin{Verbatim} - \begin{CenterExample}[frame=single,numbers=right] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{CenterExample} -\end{Verbatim} - -\begin{CenterExample}[frame=single,numbers=right] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{CenterExample} - -\begin{Verbatim} - \begin{CenterExample}[frame=lines,numbers=left] - ^^a7HLa^^b5First^^b6 verbatim line. - ^^a7HLb^^b5Second^^b6 verbatim line. - ^^a7HLCBWz^^b5Third^^b6 verbatim line. - \end{CenterExample} -\end{Verbatim} - -\begin{CenterExample}[frame=lines,numbers=left] - ^^a7HLa^^b5First^^b6 verbatim line. - ^^a7HLb^^b5Second^^b6 verbatim line. - ^^a7HLCBWz^^b5Third^^b6 verbatim line. -\end{CenterExample} - -\section{\texttt{SideBySideExample} environment} - -\begin{Verbatim} - \begin{SideBySideExample}[xrightmargin=5cm,frame=lines, - numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{SideBySideExample} -\end{Verbatim} - -\begin{SideBySideExample}[xrightmargin=5cm,frame=single,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{SideBySideExample} - -\ifpstricks % If PSTricks is available - -\section{\texttt{PCenterExample} environment} - -\begin{Verbatim} - \fvset{frame=lines,framerule=0.5mm,numbers=left} - - \begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} - \end{PCenterExample} - - \showgrid - \begin{PCenterExample}(-1,-1)(1,1) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} - \end{PCenterExample} -\end{Verbatim} - -{\fvset{frame=lines,framerule=0.5mm,numbers=left} -\begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} -\end{PCenterExample} -\showgrid -\begin{PCenterExample}(-1,-1)(1,1) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} -\end{PCenterExample} -} - -\section{\texttt{PSideBySideExample} environment} - -\begin{Verbatim} - \fvset{frame=single,xrightmargin=5cm} - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse*[linecolor=yellow](2,1) - \end{PSideBySideExample} - \showgrid - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=dashed](2,1) - \end{PSideBySideExample} -\end{Verbatim} - -{\fvset{frame=single,xrightmargin=5cm} -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse*[linecolor=yellow](2,1) -\end{PSideBySideExample} - -\showgrid -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=dashed](2,1) -\end{PSideBySideExample} -} - -\begin{Verbatim} - \fvset{frame=single,xrightmargin=5cm} - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) - \end{PSideBySideExample} - \begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) - \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) - \end{PSideBySideExample} -\end{Verbatim} - -{\fvset{frame=single,xrightmargin=5cm} -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) -\end{PSideBySideExample} -\begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) - \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) -\end{PSideBySideExample} - -\else % If PSTricks is not available -\begin{quote} - \section{\texttt{PCenterExample} and \texttt{PSideBySideExample} -environments} - - \textbf{\large Warning!} These two environments are not demonstrated here, -because PSTricks was not found on this platform. -\end{quote} -\fi - -\end{document} -\endinput -%% -%% End of file `t-fvrbex.tex'. diff --git a/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.dtx b/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.dtx deleted file mode 100644 index d6f70214c16..00000000000 --- a/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.dtx +++ /dev/null @@ -1,4580 +0,0 @@ -% \iffalse meta-comment, etc. -%% -%% Package `fancyvrb' -%% -%% COPYRIGHT 1992-2010, by Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu> -%% 2010, by Herbert Voss <hvoss@tug.org> -%% -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% -% \fi -% \changes{v2.8}{2010/05/15}{fixed bug with several trailing spaces (hv)} -% \changes{v2.7a}{2008/02/07}{NMM fixed lastline=firstline bug} -% \changes{v2.7}{2000/03/21}{DG/SR changed how fancyvrb.cfg included} -% \changes{v2.6}{1998/07/17}{. Three bug corrected, options numberblanklines, -% label, labelposition and leftline added and few -% precisions.} -% \changes{v2.5}{1998/01/28}{First public release.} -% \changes{v2.0 Beta}{1994/03/30}{First version personally shown by Timothy -% \textsc{van Zandt}.} -% -% \newif\ifPostScriptFonts -% \IfFileExists{times.sty}{\PostScriptFontstrue}{} -% -% \DoNotIndex{\\,\^} -% \DoNotIndex{\@@nil,\@M,\@MM,\@auxout,\@beginparpenalty,\@bsphack} -% \DoNotIndex{\@currentlabel,\@currenvir,\@currenvline,\@currsize} -% \DoNotIndex{\@defpar,\@doendpe,\@eha,\@empty,\@endparenv,\@endpefalse} -% \DoNotIndex{\@endpetrue,\@esphack,\@fooA,\@fooB,\@footnotetext,\@gobble} -% \DoNotIndex{\@height,\@ifnextchar,\@ifstar,\@ifundefined,\@ignorefalse} -% \DoNotIndex{\@inlabelfalse} -% \DoNotIndex{\@input,\@labels,\@listdepth,\@makefntext,\@makeother,} -% \DoNotIndex{\@minipagefalse,\@namedef,\@nameuse,\@ne,\@newlistfalse,} -% \DoNotIndex{\@nil,\@nobreakfalse,\@noparlistfalse,\@noparlisttrue} -% \DoNotIndex{\@parboxrestore,\@sanitize,\@spaces,\@tempa,\@tempb,\@tempboxa} -% \DoNotIndex{\@tempc,\@tempcnta,\@tempcntb,\@tempdima,\@tempdimb,\@tempdimc} -% \DoNotIndex{\@tempg,\@temph,\@temptokena,\@thefnmark,\@toodeep} -% \DoNotIndex{\@topsep,\@topsepadd,\@totalleftmargin,\@warning,\@width} -% \DoNotIndex{\active,\addpenalty,\addvspace,\advance} -% \DoNotIndex{\afterassignment,\aftergroup,\arabic} -% \DoNotIndex{\baselineskip,\baselinestretch,\begin,\begingroup,\bf,\bgroup} -% \DoNotIndex{\box,\c@FancyVerbLine,\catcode,\ChangeBartrue,\closein} -% \DoNotIndex{\closeout,\clubpenalty,\CodelineIndex,\columnwidth,\cr,\csname} -% \DoNotIndex{\date,\DeclareOption,\def,\define@booleankey,\define@key} -% \DoNotIndex{\divide,\do,\do@noligs,\DocInput,\documentclass,\dp,\dospecials} -% \DoNotIndex{\edef,\egroup,\else,\EnableCrossrefs,\end,\endcenter} -% \DoNotIndex{\endcsname,\endgroup,\endinput,\endlrbox,\endpspicture} -% \DoNotIndex{\enspace,\errhelp,\errmessage,\expandafter} -% \DoNotIndex{\fancyvrb@loaded,\fboxrule,\fboxsep,\fi,\filedate,\fileversion} -% \DoNotIndex{\floatingpenalty,\font,\fontdimen,\fontfamily,\fontseries} -% \DoNotIndex{\fontshape,\footins,\footnote,\footnotesep,\footnotesize} -% \DoNotIndex{\frenchspacing,\fvset} -% \DoNotIndex{\gdef,\GetFileInfo,\global,\hbadness,\hbox,\hfil,\hfuzz} -% \DoNotIndex{\hrule,\hsize,\hss,\ht,\iden,\if,\if@FV@ResetMargins,\if@filesw} -% \DoNotIndex{\if@inlabel,\if@nobreak,\if@noparlist,\if@noskipsec,\ifcase} -% \DoNotIndex{\ifChangeBar,\ifeof,\IfFileExists,\ifmmode,\iffalse,\ifnum} -% \DoNotIndex{\iftrue,\ifvmode,\ifvoid,\ifx,\ignorespaces,\immediate,\input} -% \DoNotIndex{\insert,\interfootnotelinepenalty,\interlinepenalty,\jobname} -% \DoNotIndex{\kern,\large,\lccode,\leaders,\leavevmode,\leftmargin,\let} -% \DoNotIndex{\lineskip,\linewidth,\long,\loop,\lowercase,\lrbox} -% \DoNotIndex{\m@ne,\m@th,\maketitle,\mathbf,\mathit,\mathnormal} -% \DoNotIndex{\mathsl,\mathtt,\mbox,\meaning,\message,\mid,\mskip} -% \DoNotIndex{\multiply,\NeedsTeXFormat,\newbox,\newcommand,\newcount} -% \DoNotIndex{\newcounter,\newenvironment,\newif,\newpsobject,\newread} -% \DoNotIndex{\newwrite,\next,\noexpand,\normalsize,\number} -% \DoNotIndex{\Oldmakeindex,\on@line,\OnlyDescription,\openin,\openout,\or} -% \DoNotIndex{\outer,\pUseMVerb,\par,\parindent,\parskip,\partopsep} -% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions,\protect} -% \DoNotIndex{\protected@edef,\ProvidesPackage,\raise,\rangle,\read} -% \DoNotIndex{\RecordChanges,\refstepcounter,\relax,\renewcommand} -% \DoNotIndex{\renewenvironment,\repeat,\RequirePackage,\rightmargin,\rm} -% \DoNotIndex{\rmfamily,\romannumeral,\rule} -% \DoNotIndex{\scriptscriptstyle,\scriptstyle,\section,\selectfont,\setbox} -% \DoNotIndex{\setcounter,\setkeys,\setlength,\small,\smallskip,\space} -% \DoNotIndex{\splitmaxdepth,\splittopskip,\stepcounter,\string,\strip,\strut} -% \DoNotIndex{\strutbox,\textbf,\textcolor,\textit,\textsc,\textsf,\textsl} -% \DoNotIndex{\texttt,\textwidth,\the,\theFancyVerbLine,\tiny,\title,\topsep} -% \DoNotIndex{\tt,\ttfamily,\ttyin,\tw@,\underline,\unhbox,\unitlength} -% \DoNotIndex{\unskip,\usepackage,\valign,\vbox,\vcenter} -% \DoNotIndex{\verbatim@nolig@list,\vfil,\voidb@x,\vrule,\vspace,\vskip} -% \DoNotIndex{\vtop,\wd,\widowpenalty,\write,\xdef,\z@,\z@skip} -% -% \setcounter{IndexColumns}{2} -% -% \newcommand{\FBoxPackage}{`\textsf{fancybox}'} -% \newcommand{\FVrbPackage}{`\textsf{fancyvrb}'} -% -% ^^A From ltugboat.cls -% -% ^^A Typeset the name of an environment -% \providecommand\env[1]{\textsf{#1}} -% \providecommand\clsname[1]{\textsf{#1}} -% \providecommand\pkgname[1]{\textsf{#1}} -% \providecommand\optname[1]{\textsf{#1}} -% \providecommand\progname[1]{\textsf{#1}} -% -% ^^A A list of options for a package/class -% \newenvironment{optlist}{\begin{description}% -% \renewcommand\makelabel[1]{% -% \descriptionlabel{\mdseries\optname{##1}}}% -% \itemsep0.25\itemsep}% -% {\end{description}} -% -% ^^A Utility macros -% -% ^^A Special dashes -% \def\thinskip{\hskip 0.16667em\relax} -% \def\endash{--} -% \def\emdash{\endash-} -% \def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces} -% \def\dash{\d@sh\nobreak\endash} -% \def\Dash{\d@sh\nobreak\emdash} -% -% ^^A Example macros - adapted from the `fvrb-ex' package -% ^^A --------------------------------------------------- -% -% ^^A Take care that we use here the "Z" character as comment character, -% ^^A to avoid to use an 8 bit one which can cause portability problems. -% ^^A But we can't use any more the "Z" into the example environments -% ^^A of this documentation. -% -% \makeatletter -% \newcommand{\BeginExample}[1][0]{% -% \parindent=0pt -% \multiply\topsep by 2 -% \VerbatimEnvironment -% \begin{VerbatimOut}[gobble=#1]{\jobname.tmp}} -% -% \newcommand{\BelowExample}[1]{% -% \VerbatimInput[gobble=4,commentchar=Z,numbersep=3pt,frame=single, -% numbers=left]{\jobname.tmp} -% \catcode`\Z=9\relax% -% #1\par} -% -% \newcommand{\SideBySide@Example}[1]{% -% \@tempdimb=\FV@XRightMargin -% \advance\@tempdimb -5mm -% \vspace{2mm} -% \begin{minipage}[c]{\@tempdimb} -% \fvset{xrightmargin=0pt} -% \catcode`\Z=9\relax% -% #1 -% \end{minipage}% -% \@tempdimb=\textwidth -% \advance\@tempdimb -\FV@XRightMargin -% \advance\@tempdimb 5mm -% \begin{minipage}[c]{\@tempdimb} -% \VerbatimInput[commentchar=Z,numbersep=3pt,frame=single, -% numbers=left,xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} -% \end{minipage} -% \vspace{2mm}} -% -% \def\Example{% -% \catcode`\^^M=\active -% \@ifnextchar[{\catcode`\^^M=5\Example@}{\catcode`\^^M=5\Example@@}} -% \def\Example@[#1]{\fvset{#1}\Example@@} -% \def\Example@@{\BeginExample} -% \def\endExample{% -% \end{VerbatimOut}% -% \BelowExample{\input{\jobname.tmp}}} -% -% \def\CenterExample{% -% \catcode`\^^M=\active -% \@ifnextchar[{\catcode`\^^M=5\CenterExample@} -% {\catcode`\^^M=5\CenterExample@@}} -% \def\CenterExample@[#1]{\fvset{#1}\CenterExample@@} -% \def\CenterExample@@{\BeginExample} -% \def\endCenterExample{% -% \end{VerbatimOut}% -% \center -% \BelowExample{\input{\jobname.tmp}} -% \endcenter} -% -% \def\SideBySideExample{% -% \catcode`\^^M=\active -% \@ifnextchar[{\catcode`\^^M=5\SideBySideExample@}% -% {\catcode`\^^M=5\SideBySideExample@@}} -% \def\SideBySideExample@[#1]{\fvset{#1}\SideBySideExample@@} -% \def\SideBySideExample@@{\BeginExample[4]} -% \def\endSideBySideExample{% -% \end{VerbatimOut}% -% \SideBySide@Example{\input{\jobname.tmp}}} -% \makeatother -% -% ^^A End of example macros from `fvrb-ex' -% -% ^^A For the possible index and changes log -% \setlength{\columnseprule}{0.6pt} -% -% ^^A Beginning of the documentation itself -% -% \title{The `\textsf{fancyvrb}' package\\Fancy Verbatims in \LaTeX} -% \author{Timothy Van Zandt\\Princeton University\\Princeton -- USA\\ -% {\footnotesize \url{tvz@Princeton.EDU}}\\[5mm] -% {Packaging and documentation by}\\ -% {\footnotesize Denis Girou (CNRS/IDRIS -- France),}\\[-2mm] -% {\footnotesize Sebastian Rahtz (Elsevier -- GB)}\\[-2mm] -% {\footnotesize and}\\[-2mm] -% {\footnotesize Herbert Vo\ss\ (FU Berlin -- DE)} -% } -% \date{Version 2.8\\ \today\\ -% {\small Documentation revised \today}} -% -% \maketitle -% -% \begin{abstract} -% This package provides very sophisticated facilities for reading and -% writing verbatim \TeX{} code. Users can perform common tasks like changing -% font family and size, numbering lines, framing code examples, colouring -% text and conditionally processing text. -% \end{abstract} -% -% \tableofcontents -% -% \section{Introduction} -% -% \FVrbPackage{} is the development of the \emph{verbatim} macros of the -% \FBoxPackage{} package, Section 11 of \cite{FancyBox}. It offers six kinds -% of extended functionality, compared to the standard \LaTeX{} -% \textsf{verbatim} environment: -% -% \begin{enumerate} -% \item verbatim commands can be used in footnotes, -% \item several verbatim commands are enhanced, -% \item a variety of verbatim environments are provided, with many -% parameters to change the way the contents are printed; it is also possible -% to define new customized verbatim environments, -% \item a way is provided to save and restore verbatim text and environments, -% \item there are macros to write and read files in verbatim mode, with the -% usual versatility, -% \item you can build \emph{example} environments (showing both result and -% verbatim text), with the same versatility as normal verbatim. -% \end{enumerate} -% -% The package works by scanning a line at a time from an environment or a -% file. This allows it to pre-process each line, rejecting it, removing -% spaces, numbering it, etc, before going on to execute the body of the line -% with the appropriate catcodes set. -% -% \section{Verbatim material in footnotes} -% -% \ifChangeBar\begin{changebar}\fi -% After a \cs{VerbatimFootnotes} macro declaration (to use after the -% preamble), it is possible to put verbatim commands and environments -% (the \LaTeX{} or \FVrbPackage{} ones) in footnotes, unlike in standard -% \LaTeX: -% \ifChangeBar\end{changebar}\fi -% -% \begin{Example} -% \VerbatimFootnotes -% We can put verbatim\footnote{\verb+_Yes!_+} text in footnotes. -% \end{Example} -% -% \section{Improved verbatim commands} -% -% The \cs{DefineShortVerb} macro allows us to define a special character as -% an abbreviation to enclose verbatim text and the \cs{UndefineShortVerb} -% macro suppresses the special meaning of the specified character (the same -% \ifChangeBar\begin{changebar}\fi -% functionalities are provided in the \LaTeX{} `\textsf{shortvrb}' package): -% \ifChangeBar\end{changebar}\fi -% -% \fvset{xrightmargin=4.8cm} -% -% \begin{SideBySideExample} -% \DefineShortVerb{\|} -% We can simply write \Verb+_verbatim_+ -% material using a single |_delimiter_| -% \UndefineShortVerb{\|} -% \DefineShortVerb{\+} -% And we can +_change_+ the character. -% \end{SideBySideExample} -% -% To make matters more versatile, we can nominate \emph{escape} characters -% in verbatim text (using the \cs{Verb} macro or with a `shortverb' character -% defined), to perform formatting or similar tasks, using the -% \texttt{commandchars} parameter as shown for environments in paragraph -% \ref{sec:commandchars}. -% -% \section{Verbatim environments} -% -% Several verbatim environments are available, each with a lot of -% parameters to customize them. In the following examples we use the -% \texttt{Verbatim} environment, which is the equivalent of the standard -% \texttt{verbatim}. The parameters can be set globally using the \cs{fvset} -% macro or in an optional argument after the start of the -% environment\footnote{For clarification in this paper, note that we -% generally indent each verbatim line with two -% spaces.}$^,$\footnote{This mechanism uses the -% `\textbf{keyval}' package from the standard \LaTeX{} graphics -% distribution, written by David \textsc{Carlisle}.}. -% -% \begin{SideBySideExample} -% \begin{Verbatim} -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \subsection{Customization of verbatim environments} -% -% \ifChangeBar\begin{changebar}\fi -% The appearance of verbatim environments can be changed in many and -% varied ways; here we list the keys that can be set. -% \ifChangeBar\end{changebar}\fi -% -% \subsubsection{Comments} -% -% \begin{optlist} -% \item[commentchar (character)]: character to define comments in the -% verbatim code, so that lines starting with this character will not be -% printed (\emph{Default: empty}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[commentchar=!] -% % A comment -% Verbatim line. -% ! A comment that you will not see -% \end{Verbatim} -% \end{SideBySideExample} -% -% \ifChangeBar\begin{changebar}\fi -% Take care to a special effect if the comment character is not the first -% non blank one: it is because this character is in fact managed as the \TeX{} -% comment one, that is to say that it gobble the newline character too. So, in -% this case, the current line will be joined with the next one and, more, the -% last one will be lost if it contain a comment, as \FVrbPackage{} print a -% line only after finding it end character, which will never occured in this -% case... -% -% \begin{SideBySideExample} -% \begin{Verbatim}[commentchar=\%] -% First line. % First line -% Second. -% Third line. % Third line lost... -% \end{Verbatim} -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \subsubsection{Initial characters to suppress} -% -% \begin{optlist} -% \item[gobble (integer)]: number of characters to suppress at the beginning -% of each line (up to a maximum of 9), mainly useful when environments are -% indented -% (\emph{Default: empty} \Dash no character suppressed). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim} -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[gobble=2] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[gobble=8] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \subsubsection{Customization of formatting} -% -% \begin{optlist} -% \item[formatcom (command)]: command to execute before printing verbatim -% text -% (\emph{Default: empty}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[formatcom=\color{red}] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \subsubsection{Changing individual line formatting} -% -% \ifChangeBar\begin{changebar}\fi -% The macro \cs{FancyVerbFormatLine} defines the way each line is formatted. -% Its default value is \verb+\def\FancyVerbFormatLine#1{#1}+, but we can -% redefine it at our convenience (\texttt{FancyVerbLine} is the name of the -% line counter): -% \ifChangeBar\end{changebar}\fi -% -% {\fvset{fontsize=\small} -% \begin{SideBySideExample} -% Z\fvset{fontsize=\normalsize} -% \renewcommand{\FancyVerbFormatLine}[1]{% -% \makebox[0cm][l]{$\Rightarrow$}#1} -% \begin{Verbatim} -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{SideBySideExample} -% \renewcommand{\FancyVerbFormatLine}[1]{% -% \ifodd\value{FancyVerbLine}% -% \MakeUppercase{#1}\else#1\fi} -% \begin{Verbatim} -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% } -% -% \subsubsection{Fonts} -% -% \begin{optlist} -% \item[fontfamily (family name)]: font family to use. -% \texttt{tt}, \texttt{courier} and \texttt{helvetica} are pre-defined -% (\emph{Default:~tt}). -% \end{optlist} -% -% \ifPostScriptFonts ^^A We can guess that PostScript fonts are available -% \begin{SideBySideExample} -% \begin{Verbatim}[fontfamily=helvetica] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \else -% \begin{quote} -% \textbf{\large Warning!} PostScript fonts seems not available on your -% platform (we are looking for the file \texttt{times.sty}, so we will -% not show the examplaes using such PostScript fonts. -% \end{quote} -% \fi -% -% \ifChangeBar\begin{changebar}\fi -% \begin{optlist} -% \item[fontsize (font size)]: size of the font to use -% (\emph{Default: auto} \Dash the same as the current font). If you use the -% `\textsf{relsize}' package too, you can require a change of the size -% proportional to the current one (for instance: -% \verb+fontsize=\relsize{-2}+). -% \end{optlist} -% \ifChangeBar\end{changebar}\fi -% -% \ifPostScriptFonts ^^A We can guess that PostScript fonts are available -% \begin{SideBySideExample} -% \begin{Verbatim}[fontsize=\small] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[fontfamily=courier, -% fontsize=\large] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \else -% \begin{SideBySideExample} -% \begin{Verbatim}[fontsize=\small] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \fi -% -% \begin{optlist} -% \item[fontshape (font shape)]: font shape to use -% (\emph{Default: auto} \Dash the same as the current font). -% \end{optlist} -% -% \ifPostScriptFonts ^^A We can guess that PostScript fonts are available -% \begin{SideBySideExample} -% \begin{Verbatim}[fontfamily=courier, -% fontshape=it] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \else -% \begin{SideBySideExample} -% \begin{Verbatim}[fontshape=it] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \fi -% -% \begin{optlist} -% \item[fontseries (series name)]: \LaTeX{} font `series' to use -% (\emph{Default: auto} \Dash the same as the current font). -% \end{optlist} -% -% \ifPostScriptFonts ^^A We can guess that PostScript fonts are available -% \begin{SideBySideExample} -% \begin{Verbatim}[fontfamily=courier, -% fontseries=b] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \else -% \begin{SideBySideExample} -% \begin{Verbatim}[fontseries=b] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \fi -% -% \subsubsection{Types and characteristics of frames} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{optlist} -% \item[frame -% (none$\mid$leftline$\mid$topline$\mid$bottomline$\mid$lines$\mid$single)]: -% type of frame around the verbatim environment -% (\emph{Default: none} \Dash no frame). With \textsf{leftline} and -% \textsf{single} modes, a space of a length given by the \LaTeX{} -% \cs{fboxsep} macro is added between the left vertical line and the text. -% \end{optlist} -% \ifChangeBar\end{changebar}\fi -% -% ^^A Problem at the top of a page... -% \ifChangeBar\leavevmode\mbox{}\begin{changebar}\fi -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=leftline] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=topline] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=bottomline] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=lines] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=single] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \begin{optlist} -% \item[framerule (dimension)]: width of the rule of the frame -% (\emph{Default: 0.4pt if framing specified}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% framerule=1mm] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[framesep (dimension)]: width of the gap between the frame and -% the text (\emph{Default: \cs{fboxsep}}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% framesep=5mm] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[rulecolor (color command)]: color of the frame rule, expressed -% in the standard \LaTeX{} way -% (\emph{Default: black}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% rulecolor=\color{red}] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[fillcolor (color command)]: color used to fill the space -% between the frame and the text (its thickness is given by -% \texttt{framesep}) -% (\emph{Default: none} \Dash no color). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% framerule=1mm,framesep=3mm, -% rulecolor=\color{red}, -% fillcolor=\color{yellow}] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \ifChangeBar\leavevmode\mbox{}\begin{changebar}\fi -% \subsubsection{Label for the environment} -% -% \begingroup -% \newcommand{\Vitem}{\SaveVerb[aftersave={\item[\UseVerb{Vitem}]}]{Vitem}} -% \DefineShortVerb{\|} -% \begin{optlist} -% \Vitem|label ({[string]string})|: label(s) to print on top, bottom or -% both frame lines of the environment to describe it content -% (\emph{Default: empty} \Dash no label). -% If the label(s) contains special characters, as a comma or an equal sign, -% it must be put inside a group. If only one string is given, it will be -% used for both top and bottom lines (if the two are printed), but if an -% optional first label is given too, this one will be used for the top line -% and the second one for the bottom line. Note also that, if another value -% than \textsf{topline}, \textsf{bottomline}, \textsf{lines} or -% \textsf{single} is used for the \textsf{frame} parameter, the label(s) -% will not be printed. -% \end{optlist} -% \endgroup -% \ifChangeBar\end{changebar}\fi -% -% ^^A Problem at the top of a page... -% \ifChangeBar\leavevmode\mbox{}\begin{changebar}\fi -% \begin{SideBySideExample} -% \fvset{gobble=2} -% \begin{Verbatim}[frame=single, -% label=My text] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=topline, -% framesep=4mm, -% label=\fbox{\Large\emph{The code}}] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[labelposition (none$\mid$topline$\mid$bottomline$\mid$all)]: -% position where to print the label if one is defined, which must be -% coherent with the kind of frame chosen -% (\emph{Default: none if the label is empty, topline if one label is -% defined and all if two are defined}). -% Of course, some incompatible options (like -% \textsf{frame=topline,labelposition=bottomline}) will not print the -% label. -% \end{optlist} -% \ifChangeBar\end{changebar}\fi -% -% ^^A Problem at the top of a page... -% \ifChangeBar\leavevmode\mbox{}\begin{changebar}\fi -% \begin{SideBySideExample} -% \fvset{gobble=2} -% \begin{Verbatim}[frame=single, -% framesep=2mm, -% label=Text,labelposition=all] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=lines, -% label=Text,labelposition=topline] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=bottomline, -% framesep=3mm, -% label=\textit{Code included}, -% labelposition=bottomline] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[frame=lines, -% framesep=3mm, -% label={[Beginning of code]End of code}] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \subsubsection{Line numbering} -% -% \begin{optlist} -% \item[numbers (none$\mid$left$\mid$right)]: numbering of the verbatim lines -% (\emph{Default: none} \Dash no numbering). If requested, this numbering is -% done \emph{outside} the verbatim environment. -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2,numbers=left] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[gobble=2, -% numbers=right,numbersep=0pt] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[numbersep (dimension)]: gap between numbers and verbatim lines -% (\emph{Default: 12pt}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2, -% numbers=left,numbersep=2pt] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[firstnumber (auto$\mid$last$\mid$integer)]: number of the first line -% (\emph{Default: auto} \Dash numbering starts from 1). \textsf{last} means -% that the numbering is continued from the previous verbatim environment. If -% an integer is given, its value will be used to start the numbering. -% \end{optlist} -% -% \begin{SideBySideExample} -% \fvset{gobble=2, -% numbers=left,numbersep=3pt} -% \begin{Verbatim} -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[firstnumber=last] -% Verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[firstnumber=100] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[stepnumber (integer)]: interval at which line numbers are printed -% (\emph{Default:~1} \Dash all lines are numbered). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2,numbers=left, -% numbersep=3pt,stepnumber=2] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% The macro \cs{theFancyVerbLine} defines the typesetting style of the -% numbering, and the counter used is \texttt{FancyVerbLine}: -% -% \begin{SideBySideExample} -% \renewcommand{\theFancyVerbLine}{% -% \textcolor{red}{\small -% 8.\alph{FancyVerbLine}}} -% \begin{Verbatim}[gobble=2, -% numbers=left,numbersep=2pt] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{optlist} -% \item[numberblanklines (boolean)]: to number or not the empty lines -% (really empty or containing blank characters only) -% (\emph{Default: true} \Dash all lines are numbered). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2,numbers=left, -% numbersep=3pt, -% numberblanklines=false] -% First verbatim line. -% -% -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \subsubsection{Selection of lines to print} -% -% \begin{optlist} -% \item[firstline (integer)]: first line to print -% (\emph{Default: empty} \Dash all lines from the first are printed). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2,firstline=2, -% numbers=left,numbersep=2pt] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[lastline (integer)]: last line to print -% (\emph{Default: empty} \Dash all lines until the last one are printed). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[gobble=2,lastline=1, -% numbers=left,numbersep=2pt] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% % Instead of specifying a firstline at which to start printing a range -% of lines, you can define a start string; the start of the range is -% the first line that exactly equals the string. (The comparison is made -% before any characters are gobbled off the front of the line.) Similarly for a stop -% string. You can mix line-numbers and strings, e.g.\ start at -% firstline, and end at a stop string. Specifying the strings is a -% bit klunky. Initially you must define the strings with -% \cs{newcommand*} as in: -% \begin{SideBySideExample} -% \newcommand*\FancyVerbStartString{FROM} -% \newcommand*\FancyVerbStopString{TO} -% \begin{Verbatim}[gobble=2] -% First verbatim line. -% FROM -% Second verbatim line. -% TO -% Third verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \noindent To redefine the strings, you must use \cs{renewcommand*}. - -% \subsubsection{Spaces and tab characters} -% -% \begin{optlist} -% \item[showspaces (boolean)]: print a special character representing each -% space -% (\emph{Default: false} \Dash spaces not shown). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[showspaces=true] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% In practice, all verbatim environments have a~\texttt{*} variant, which -% sets \texttt{showspaces=true}: -% -% \begin{SideBySideExample} -% \begin{Verbatim*} -% Verbatim line. -% \end{Verbatim*} -% \end{SideBySideExample} -% -% There are also some parameters to determine the way tab characters are -% interpreted (using tabs is in fact a rather old-fashioned style of coding): -% -% \begin{optlist} -% \item[showtabs (boolean)]: explicitly show tab characters -% (\emph{Default: false} \Dash tab characters not shown). -% \end{optlist} -% -% \begin{optlist} -% \item[obeytabs (boolean)]: position characters according to the tabs -% (\emph{Default: false} \Dash tab characters are added to the current -% position). -% \end{optlist} -% -% \begin{optlist} -% \item[tabsize (integer)]: number of spaces given by a tab character -% (\emph{Default:~8}). -% \end{optlist} -% -% \subsubsection{Space between lines} -% -% \begin{optlist} -% \item[baselinestretch (auto$\mid$dimension)]: value to give to the usual -% `baselinestretch' \LaTeX{} parameter -% (\emph{Default: auto} \Dash its current value just before the verbatim -% command). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[baselinestretch=2] -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \subsubsection{Escape characters for inserting commands} -% -% \begin{optlist} -% \item[commandchars (three characters)]: characters which define the -% character which starts a macro and marks the beginning and end of a group; -% thus lets us introduce \emph{escape} sequences in verbatim code. Of -% course, it is better to choose special characters which are not used in -% the verbatim text! (\emph{Default: empty}). -% \label{sec:commandchars} -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[commandchars=\\\{\}] -% \textit{% This is a comment} -% First verbatim line. -% \fbox{Second} verbatim line. -% \textcolor{red}{Third} verbatim line. -% \end{Verbatim} -% -% \begin{Verbatim}[commandchars=+\[\]] -% +textit[\textbf{Verbatim} line]. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \ifChangeBar\begin{changebar}\fi -% Using this way, it is also possible to put labels to be able, later, to -% make reference to some lines of the verbatim environments: -% -% \begin{SideBySideExample} -% \begin{Verbatim}[commandchars=\\\{\}, -% numbers=left,numbersep=2pt] -% First verbatim line. -% Second line.\label{vrb:Important} -% Third verbatim line. -% \end{Verbatim} -% -% As I previously shown -% line~\ref{vrb:Important}, it is... -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \subsubsection{Margins} -% -% \begin{optlist} -% \item[xleftmargin (dimension)]: indentation to add at the start of each -% line -% (\emph{Default:~0pt} \Dash no left margin). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% xleftmargin=5mm] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[xrightmargin (dimension)]: right margin to add after each line -% (\emph{Default:~0pt} \Dash no right margin). -% \end{optlist} -% -% \begin{SideBySideExample} -% \begin{Verbatim}[frame=single, -% xrightmargin=1cm] -% Verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% -% \begin{optlist} -% \item[resetmargins (boolean)]: reset the left margin, which is useful if -% we are inside other indented environments (\emph{Default: false} \Dash no -% reset of the margin). -% \end{optlist} -% -% {% -% \DefineVerbatimEnvironment{Verbatim}{Verbatim}{gobble=0,numbers=none} -% \begin{SideBySideExample} -% \begin{itemize} -% \item First item -% \begin{Verbatim}[frame=single] -% Verbatim line. -% \end{Verbatim} -% \item Second item -% \begin{Verbatim}[frame=single, -% resetmargins=true] -% Verbatim line. -% \end{Verbatim} -% \end{itemize} -% \end{SideBySideExample} -% } -% -% \subsubsection{Overfull box messages} -% -% \begin{optlist} -% \item[hfuzz (dimension)]: value to give to the \TeX{} \cs{hfuzz} dimension -% for text to format. This can be used to avoid seeing some unimportant -% \emph{Overfull box} messages (\emph{Default:~2pt}). -% \end{optlist} -% -% \subsubsection{Page breaks} -% -% \begin{optlist} -% \item[samepage (boolean)]: in very special circumstances, we may want to -% make sure that a verbatim environment is not broken, even if it does not -% fit on the current page. To avoid a page break, we can set the -% \texttt{samepage} parameter to \emph{true} (\emph{Default: false}). -% \end{optlist} -% -% \subsubsection{Catcode characters} -% -% \begin{optlist} -% \item[codes (macro)]: to specify \emph{catcode} changes (\emph{Default: -% empty}). -% \end{optlist} -% -% For instance, this allows us to include formatted mathematics in verbatim -% text: -% -% {\fvset{fontsize=\small} -% \begin{SideBySideExample} -% Z\fvset{fontsize=\normalsize} -% \begin{Verbatim}[commandchars=\\\{\}, -% codes={\catcode`$=3\catcode`^=7}] -% x=1/sqrt(z**2) ! $\frac{1}{\sqrt{z^2}}$ -% \end{Verbatim} -% \end{SideBySideExample} -% } -% -% \subsubsection{Active characters} -% -% \begin{optlist} -% \item[defineactive (macro)]: to define the effect of \emph{active} -% characters -% (\emph{Default: empty}). -% \end{optlist} -% -% This allows us to do some devious tricks: see the example in Section -% \ref{sec:VerbatimInclude} on page~\pageref{sec:VerbatimInclude}. -% -% \subsection{Different kinds of verbatim environments} -% -% \subsubsection{Verbatim environment} -% -% This is the `normal' verbatim environment which we have been using up to -% now. -% -% \subsubsection{BVerbatim environment} -% -% This environment puts the verbatim material in a \TeX{} box. Some -% parameters do not work inside this environment (notably the framing ones), -% but two new ones are available: -% -% \begin{optlist} -% \item[boxwidth (auto$\mid$dimension)]: size of the box used -% (\emph{Default: auto} \Dash the width of the longest line is used). -% \end{optlist} -% -% \begin{optlist} -% \item[baseline (b$\mid$c$\mid$t)]: position of the baseline (on the -% \texttt{baseline}, the \texttt{center} or the \texttt{top} of the box) -% (\emph{Default: b}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \fvset{gobble=2} -% \begin{BVerbatim} -% First -% Second -% \end{BVerbatim} -% \begin{BVerbatim}[baseline=c] -% First -% Second -% \end{BVerbatim} -% \end{SideBySideExample} -% -% \begin{SideBySideExample} -% \begin{BVerbatim}[boxwidth=2cm] -% First -% Second -% \end{BVerbatim} -% \begin{BVerbatim}[boxwidth=2cm, -% baseline=t] -% First -% Second -% \end{BVerbatim} -% \end{SideBySideExample} -% -% \subsubsection{LVerbatim environment} -% -% This environment puts verbatim material into \LaTeX{} `LR' mode (the -% so-called \emph{left-to-right} mode, which in fact is the same thing that -% \TeX{} itself calls \emph{restricted horizontal mode}). -% -% \subsubsection{Personalized environments} -% -% \ifChangeBar\begin{changebar}\fi -% \VerbatimFootnotes% -% It is easy to define personal customized environments. You can redefine -% the existing ones using the \cs{RecustomVerbatimEnvironment} macro or create -% your own ones, using the \cs{DefineVerbatimEnvironment} macro\footnote{% -% \ifChangeBar\begin{changebar}\fi -% For verbatim commands, the \cs{CustomVerbatimCommand} and -% \cs{RecustomVerbatimCommand} macros also exist; for instance: -% -% \noindent% -% \verb+\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{frame=lines}+ -% \ifChangeBar\end{changebar}\fi}. -% In each case, you specify the name of the new environment, the type of -% environment on which it is based, and a set of initial option values. The -% options can be overridden with an optional argument in the normal way: -% -% \begin{SideBySideExample} -% \RecustomVerbatimEnvironment -% {Verbatim}{Verbatim} -% {gobble=2,frame=single} -% \begin{Verbatim} -% First verbatim line. -% Second verbatim line. -% \end{Verbatim} -% \end{SideBySideExample} -% \ifChangeBar\end{changebar}\fi -% -% \begin{SideBySideExample} -% \DefineVerbatimEnvironment% -% {MyVerbatim}{Verbatim} -% {gobble=2,numbers=left,numbersep=2mm, -% frame=lines,framerule=0.8mm} -% \begin{MyVerbatim} -% First verbatim line. -% Second verbatim line. -% \end{MyVerbatim} -% -% \begin{MyVerbatim}[numbers=none, -% framerule=1pt] -% First verbatim line. -% Second verbatim line. -% \end{MyVerbatim} -% \end{SideBySideExample} -% -% \section{Saving and restoring verbatim text and environments} -% -% The \cs{SaveVerb} and \cs{UseVerb} macros allow us to save and restore -% verbatim material. -% -% \begin{SideBySideExample} -% \DefineShortVerb{\|} -% \SaveVerb{Verb}|_verbatim_| -% I have saved \UseVerb{Verb} and reuse -% it later as many times as I want -% \UseVerb{Verb}. -% \end{SideBySideExample} -% -% This also provides a solution to putting verbatim text inside \LaTeX{} -% commands which do not normally permit it: -% -% {\fvset{frame=single,xrightmargin=0cm} -% \begin{Example} -% \DefineShortVerb{\|} -% \SaveVerb{Verb}|_OK^| -% \marginpar{\UseVerb{Verb}} -% \end{Example} -% } -% -% There is a useful ability to use verbatim text as the item text in a -% description list (something not normally permitted in \LaTeX), using the -% \texttt{aftersave} parameter: -% -% \begin{optlist} -% \item[aftersave (macro)]: macro to dynamically save some verbatim material -% (\emph{Default: empty}). -% \end{optlist} -% -% \begin{SideBySideExample} -% \newcommand{\Vitem}{% -% \SaveVerb[aftersave={% -% \item[\UseVerb{Vitem}]}]{Vitem}} -% \DefineShortVerb{\|} -% \begin{description} -% \Vitem|\MyCommand|: my command -% \end{description} -% \end{SideBySideExample} -% -% In the same way, we can use and restore (in normal, boxed and LR mode, -% using \cs{UseVerbatim}, \cs{BUseVerbatim} and \cs{LUseVerbatim} respectively) -% entire verbatim environments: -% -% \begin{SideBySideExample} -% Z\fvset{gobble=0,numbers=none} -% \begin{SaveVerbatim}{VerbEnv} -% Verbatim line. -% \end{SaveVerbatim} -% \UseVerbatim{VerbEnv} -% and \UseVerbatim{VerbEnv} -% \end{SideBySideExample} -% -% \begin{SideBySideExample} -% Z\fvset{gobble=0,numbers=none} -% \begin{SaveVerbatim}[gobble=5]{VerbEnv} -% First -% Second -% \end{SaveVerbatim} -% -% \fbox{\BUseVerbatim{VerbEnv}} -% and \BUseVerbatim{VerbEnv}. -% -% \LUseVerbatim{VerbEnv} and -% \LUseVerbatim{VerbEnv} -% \end{SideBySideExample} -% -% \section{Writing and reading verbatim files} -% \label{sec:VerbatimInclude} -% -% The command \cs{VerbatimInput} (the variants \cs{BVerbatimInput} and -% \cs{LVerbatimInput} also exist) allows inclusion of the contents of a file -% with verbatim formatting. Of course, the various parameters which we have -% described for customizing can still be used: -% -% ^^A The file we will use for \VerbatimInput -% -% \typeout{*************************************} -% \typeout{* Created files: hello.f90, file.txt} -% \typeout{* See fancyhdr.dvi for an explanation} -% \typeout{*************************************} -% -% \begin{VerbatimOut}{hello.f90} -% ! A "hello" program -% -% program hello -% print *,"Hello world" -% end program hello -% \end{VerbatimOut} -% -% \begin{SideBySideExample} -% Z\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{gobble=4} -% \fvset{fontsize=\small} -% \VerbatimInput{hello.f90} -% -% \fvset{frame=single,numbers=left, -% numbersep=3pt} -% \VerbatimInput{hello.f90} -% -% \VerbatimInput[firstline=3, -% rulecolor=\color{green}] -% {hello.f90} -% -% \VerbatimInput[frame=lines, -% fontshape=sl,fontsize=\footnotesize] -% {hello.f90} -% \end{SideBySideExample} -% -% We can make use of the `defineactive' parameter to set the comment lines -% in the program text in a different style: -% -% \begin{SideBySideExample} -% Z\RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}{gobble=4} -% \def\ExclamationPoint{\char33} -% \catcode`!=\active -% \VerbatimInput% -% [defineactive=% -% \def!{\color{cyan}\itshape -% \ExclamationPoint}] -% {hello.f90} -% \end{SideBySideExample} -% -% It is important to note that if the contents of the file does not fit on -% the page, it will be automatically broken across pages as needed (unless the -% \texttt{samepage} parameter has been set to \texttt{true}). -% -% There is also a \verb+VerbatimOut+ environment to write verbatim text to an -% output file, in the same way: -% -% \begin{SideBySideExample} -% \begin{VerbatimOut}{file.txt} -% I write that. -% And that too. -% \end{VerbatimOut} -% -% \VerbatimInput[frame=single, -% numbers=left,numbersep=6pt]{file.txt} -% \end{SideBySideExample} -% -% \ifChangeBar\begin{changebar}\fi -% \section{Automatic pretty printing} -% -% Obviously, automatic \emph{pretty printing} is outside the scope of this -% package. Nevertheless, this is specially interesting for verbatim -% inclusion of programming code files or fragments. In the \LaTeX{} world -% (not speaking of the \emph{literate programming} way), there are software -% for some special languages, as the `\textsf{C++2LaTeX}' package from Norbert -% \textsc{Kiesel}, but mainly two generic ones, which use completely different -% modes (an external preprocessor written in C and a \TeX{} based solution): -% the `\textsf{LGrind}'~\cite{LGrind} system, currently maintened by Michael -% \textsc{Piefel}, and the `\textsf{listings}'~\cite{Listings} package from -% Carsten \textsc{Heinz}. -% -% Future versions of \FVrbPackage{} and `\textsf{listings}' packages are -% planned to cooperate, which will offer great advantages to both users of the -% two actual packages, and will allow \FVrbPackage{} users to have automatic -% pretty printing of programming codes. -% -% \section{Known problems} -% -% \begin{itemize} -% \item Vladimir \textsc{Volovich} \verb+<vvv@vvv.vsu.ru>+ reported that the -% special character \verb+\th+, available with T1 encoding, can't be -% included as verbatim with \FVrbPackage. It can be true for other special -% characters too. -% \end{itemize} -% -% \section{Thanks} -% -% For interesting comments and suggestions, we would like to thank specially -% (alphabetic order): Philippe \textsc{Esperet} -% \url{esperet@marie.polytechnique.fr}, Michael \textsc{Friendly} -% \url{friendly@hotspur.psych.yorku.ca}, Rolf \textsc{Niepraschk} -% \url{niepraschk@gmx.de} and for bug reports Mario \textsc{Hassler} -% \relax\unskip\break -% \url{HASSLER@ippnv2.ipp.kfa-juelich.de}, Mikhail \textsc{Kolodin} -% \relax\unskip\break -% \url{myke@morrigan.spb.su}, Andreas Matthias, Ulrich M. Schwarz, and Vladimir \textsc{Volovich} -% \verb+<vvv@vvv.vsu.ru>+. -% \ifChangeBar\end{changebar}\fi -% -% \section{Conclusion} -% -% \ifChangeBar\begin{changebar}\fi -% There are a few other possibilities that we have not described here. -% Note specially that it is possible to define a customization file -% (\texttt{fancyvrb.cfg}) loaded at the end of the package, to store -% definitions of your customized commands and environments and to redefine -% the attributes of existing ones. -% \ifChangeBar\end{changebar}\fi -% -% \begin{thebibliography}{1} -% \bibitem{FancyBox} Timothy \textsc{van Zandt}, -% \textit{Documentation for `fancybox': Box tips and tricks for \LaTeX}. -% Available from \texttt{CTAN:} -% \texttt{macros/latex/contrib/supported/fancybox}, 1993. -% -% \bibitem{FancyVrb} Timothy \textsc{van Zandt}, -% \textit{`fancyvrb': Fancy Verbatims in \LaTeX}. -% Available from \texttt{CTAN:} -% \texttt{macros/latex/contrib/supported/fancyvrb}, 1998. -% -% \bibitem{LGrind} Various authors (current maintainer: Michael -% \textsc{Piefel}), -% \textit{The `LGrind' package}. -% Available from \texttt{CTAN:} \texttt{support/lgrind}, 1998. -% -% \bibitem{Listings} Carsten \textsc{Heinz}, -% \textit{The `Listings' package}. -% Available from \texttt{CTAN:} -% \texttt{macros/latex/contrib/supported/listings}, 1996-1997. -%\end{thebibliography} -% -% -% ^^A .................... End of the documentation part .................... -% -% \section{Driver file} -% -% The next bit of code contains the documentation driver file for \TeX{}, -% i.e., the file that will produce the documentation you are currently -% reading. It will be extracted from this file by the \texttt{docstrip} -% program. -% -% \begin{macrocode} -%<*driver> -\documentclass{ltxdoc} -\GetFileInfo{fancyvrb.dtx} -\usepackage{color} -\usepackage{fancyvrb,shortvrb} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage[charter]{mathdesign} -\usepackage{url} -\newif\ifChangeBar -\IfFileExists{changebar.sty}% - {\ChangeBartrue\usepackage[dvips,rightbars]{changebar}}{} -\EnableCrossrefs -\CodelineIndex -\RecordChanges -\OnlyDescription % Comment it for implementation details -%\Oldmakeindex % Uncomment if your MakeIndex is pre-0.9 -\hbadness=7000 % Over and under full box warnings -\hfuzz=3pt -\begin{document} - \DocInput{fancyvrb.dtx} -\end{document} -%</driver> -% \end{macrocode} -% -% \section{\FVrbPackage{} code} -% -%<*fancyvrb> -% -% \iffalse meta-comment, etc. -%% COPYRIGHT 1992-1999, by Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu> -%% -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% DESCRIPTION: -%% fancyvrb.sty is a LaTeX style option, containing flexible -%% verbatim environments and commands and extensive documentation. -%% -%% This is a companion to the `fancybox' package. -%% -% \fi -% -% \begin{quote} -% \emph{\textbf{\large Disclaimer (D.G./S.R.)}: This is the original -% comments of the code by Timothy \textsc{van Zandt}. We have not change -% them.} -% \end{quote} -% -% \subsection{Preambule} -% -% What we need. -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -% \end{macrocode} -% -% Who we are. -% \begin{macrocode} -\def\fileversion{2.7a, with DG/SPQR fixes, and firstline=lastline fix} -\def\filedate{2008/02/07} -\ProvidesPackage{fancyvrb}[\filedate] -\message{Style option: `fancyvrb' v\fileversion \space <\filedate> (tvz)} -\csname fancyvrb@loaded\endcsname -\let\fancyvrb@loaded\endinput -% \end{macrocode} -% -% \subsection{Errors} -% -% \begin{macrocode} -\def\FV@Error#1#2{% - \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% - \errmessage{FancyVerb Error:^^J\space\space #1^^J}} - -\def\FV@eha{Your command was ignored. Type <return> to continue.} -% \end{macrocode} -% -% \subsection{Verbatim footnotes} -% -% Color has to be protected. -% -% \noindent Won't work for some definitions of \cs{@makefntext}. -% If it weren't for \cs{@makefntext}, I would do this properly by defining a -% footnote environment. -% -% \begin{macro}{\VerbatimFootnotes} -% \begin{macrocode} -%% DG/SR modification begin - Jan. 21, 1998 -%% Suggested by Bernard Gaulle to solve a compatibility problem with `french' -%% (it introduce the restriction to put \VerbatimFootnotes AFTER the preambule) -%%\def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext} -\let\V@footnote\footnote -\def\VerbatimFootnotes{% -\let\@footnotetext\V@footnotetext% -\let\footnote\V@footnote} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\V@footnotetext} -% \begin{macrocode} -\long\def\V@footnotetext{% - \afterassignment\V@@footnotetext - \let\@tempa} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\V@@footnotetext} -% \begin{macrocode} -\def\V@@footnotetext{% - \insert\footins\bgroup - \csname reset@font\endcsname - \footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth\dp\strutbox - \floatingpenalty \@MM - \hsize\columnwidth - \@parboxrestore - \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% - \@makefntext{}% - \rule{\z@}{\footnotesep}% - \bgroup - \aftergroup\V@@@footnotetext - \ignorespaces} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\V@@@footnotetext} -% \begin{macrocode} -\def\V@@@footnotetext{\strut\egroup} -% \end{macrocode} -% \end{macro} -% -% \subsection{key=value} -% -% \begin{macrocode} -\RequirePackage{keyval} -% \end{macrocode} -% -% Extensions to keyval.sty: -% -% \verb+\define@booleankey{<family>}{<key>}{<iftrue>}{<iffalse>}+ -% -% Defines a \verb+<key>+ for \verb+<family>+ that executes: -% -% \verb+<iftrue>+ clause when value begins with `t' or `T', or is omitted. -% -% \verb+<iffalse>+ clause otherwise. -% -% \begin{macro}{\define@booleankey} -% \begin{macrocode} -\def\define@booleankey#1#2#3#4{% - \@namedef{KV@#1@#2@default}{#3}% - \@namedef{KV@#1@#2@false}{#4}% - \@namedef{KV@#1@#2}##1{\KV@booleankey{##1}{#1}{#2}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@booleankey} -% \begin{macrocode} -\def\KV@booleankey#1#2#3{% - \edef\@tempa{#1}\expandafter\KV@@booleankey\@tempa\relax\@nil{#2}{#3}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@@booleankey} -% \begin{macrocode} -\def\KV@@booleankey#1#2\@nil#3#4{% - \@nameuse{KV@#3@#4@\if t#1default\else\if T#1default\else false\fi\fi}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@None} -% \begin{macrocode} -\def\FV@None{none} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Auto} -% \begin{macrocode} -\def\FV@Auto{auto} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\fvset} -% \begin{macrocode} -\def\fvset#1{\setkeys{FV}{#1}} -% \end{macrocode} -% \end{macro} -% -% \cs{FV@Command} is for verbatim commands. Example: -% -% \verb+\def\VerbatimInput{\FV@Command{}{VerbatimInput}}+ -% -% \verb+\FV@Command{<key=value>}{<name>}+: -% -% \begin{enumerate} -% \item Defines \cs{FV@KeyValues} to be \verb+<key=value>+. -% \item Looks for $*$, and adds `showspaces' to \cs{FV@KeyValues} if found. -% \item Looks for \verb+[<key=value>]+ argument, and adds it to -% \cs{FV@KeyValues} if found. -% \item Executes \verb+\FVC@<name>+. -% \end{enumerate} -% -% \begin{macro}{\FV@Command} -% \begin{macrocode} -\def\FV@Command#1#2{% - \@ifstar - {\def\FV@KeyValues{#1,showspaces}\FV@@Command{#2}}% - {\def\FV@KeyValues{#1}\FV@@Command{#2}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@Command} -% \begin{macrocode} -\def\FV@@Command#1{% - \@ifnextchar[% - {\FV@GetKeyValues{\@nameuse{FVC@#1}}}% - {\@nameuse{FVC@#1}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@GetKeyValues} -% \begin{macrocode} -\def\FV@GetKeyValues#1[#2]{% - \expandafter\def\expandafter\FV@KeyValues\expandafter{\FV@KeyValues,#2}#1} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@CustomVerbatimCommand} -% \begin{macrocode} -\def\@CustomVerbatimCommand#1#2#3#4{% - \begingroup\fvset{#4}\endgroup % If there are errors, it easier to locate. -%% DG/SR modification begin - Jan. 13, 1998 -%% \def\@tempa##1##2\@nil{\def\@tempa{##2}}% -%% \expandafter\@tempa\string#3\@empty\@nil -%% \@ifundefined{FVC@\@tempa}% - \@ifundefined{FVC@#3}% -%% DG/SR modification end - {\FV@Error{Command `\string#3' is not a FancyVerb command.}\@eha}% - {#1{#2}{\FV@Command{#4}{#3}}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\CustomVerbatimCommand} -% \begin{macrocode} -\def\CustomVerbatimCommand{\@CustomVerbatimCommand\newcommand} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RecustomVerbatimCommand} -% \begin{macrocode} -\def\RecustomVerbatimCommand{\@CustomVerbatimCommand\renewcommand} -% \end{macrocode} -% \end{macro} -% -% \cs{FV@Environment} is for verbatim environments. Example: -% -% \verb+\def\Verbatim{\FV@Environment{}{Verbatim}}+ -% -% \verb+\@namedef{Verbatim*}{\FV@Environment{showspaces}{Verbatim}}+ -% -% \verb+\FV@Environment{<key=value>}{<name>}+: -% -% \begin{enumerate} -% \item Defines \cs{FV@KeyValues} to be \verb+<key=value>+. -% \item Sets \verb+\catcode`\^^M=13+, checks for `[', and resets -% \verb+\catcode``^^M=5+. -% \item Reads \verb+[<key=value>]+ and adds it to \cs{FV@KeyValues} if `[' -% was found. -% \item Executes \verb+\FVB@<name>+. -% \end{enumerate} -% -% \cs{FV@Environment} is like \cs{FV@Command}, except: -% -% \begin{itemize} -% \item It omits step 2 (looking for $*$), and -% \item It sets \verb+\catcode`\^^M=13+ when checking for the `[' of the -% optional argument, so that it does not skip over \verb+^^M+ if there -% is no `['. -% \end{itemize} -% -% \begin{macro}{\FV@Environment} -% \begin{macrocode} -\def\FV@Environment#1#2{% - \def\FV@KeyValues{#1}% - \catcode`\^^M=\active - \@ifnextchar[% - {\catcode`\^^M=5 \FV@GetKeyValues{\@nameuse{FVB@#2}}}% - {\catcode`\^^M=5 \@nameuse{FVB@#2}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\CustomVerbatimEnvironment} -% \begin{macrocode} -\def\CustomVerbatimEnvironment{\@CustomVerbatimEnvironment\newenvironment} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RecustomVerbatimEnvironment} -% \begin{macrocode} -\def\RecustomVerbatimEnvironment{\@CustomVerbatimEnvironment\renewenvironment} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@CustomVerbatimEnvironment} -% \begin{macrocode} -\def\@CustomVerbatimEnvironment#1#2#3#4{% - \begingroup\fvset{#4}\endgroup % If there are errors, it easier to locate. - \@ifundefined{FVB@#3}% - {\FV@Error{`#3' is not a FancyVerb environment.}\@eha}% - {#1{#2}{\FV@Environment{#4}{#3}}{\@nameuse{FVE@#3}}% - #1{#2*}{\FV@Environment{#4,showspaces}{#3}}{\@nameuse{FVE@#3}}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\DefineVerbatimEnvironment} -% \begin{macrocode} -\def\DefineVerbatimEnvironment#1#2#3{% - \@namedef{#1}{\FV@Environment{#3}{#2}}% - \@namedef{end#1}{\@nameuse{FVE@#2}}% - \@namedef{#1*}{\FV@Environment{#3,showspaces}{#2}}% - \@namedef{end#1*}{\@nameuse{FVE@#2}}} -% \end{macrocode} -% \end{macro} -% -% Then commands or environments set key values with \cs{FV@UseKeyValues}, -% within a group. -% -% \begin{macro}{\FV@UseKeyValues} -% \begin{macrocode} -\def\FV@UseKeyValues{% - \ifx\FV@KeyValues\@empty\else - \def\KV@prefix{KV@FV@}% - \expandafter\KV@do\FV@KeyValues,\relax,% - \def\FV@KeyValues{}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \subsection{Scanning} -% -% Scanning macros: -% -% \begin{itemize} -% \item read a line at a time from an environment or a file, -% \item save the line in \cs{FV@Line}, and -% \item execute \cs{FV@PreProcessLine}. -% \end{itemize} -% -% \noindent\cs{FV@PreProcessLine}: -% -% \begin{itemize} -% \item Determines whether line is in a user-specified ranges, and if so, -% \item Strips the line of a user-specified no. of tokens, and -% \item Executes \verb+\FV@ProcessLine{<line>}+. -% \end{itemize} -% -% Two things are common to scanning an environment or reading a file: -% -% \begin{itemize} -% \item \cs{FV@CatCodes} $\Longrightarrow$ Change \verb+\catcode+'s. -% \item \cs{FV@PreProcessLine} $\Longrightarrow$ See above. -% \end{itemize} -% -% \subsection{Codes} -% -% \begin{macro}{\FV@CatCodes} -% \begin{macrocode} -\def\FV@CatCodes{% - \let\do\@makeother\dospecials % The usual stuff. - \FV@ActiveWhiteSpace % See below. - \FV@FontScanPrep % See below. - \FV@CatCodesHook % A style hook. - \FancyVerbCodes} % A user-defined hook. -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ActiveWhiteSpace} -% \begin{macrocode} -\def\FV@ActiveWhiteSpace{% - \catcode`\^^M=\active % End of line - \catcode`\ =\active % Space - \catcode`\^^I=\active} % Tab -% \end{macrocode} -% \end{macro} -% -% CM Ligatures: -% -% \begin{tabbing} -% Left-quote: \= \verb+--+ \= \verb+---+ \= fl \= ffi \= ffl \kill -% Left-quote: \> `` \> !` \> ?` \\ -% Letter f: \> ff \> fi \> fl \> ffi \> ffl \\ -% Hyphen: \> \verb+--+ \> \verb+---+ -% \end{tabbing} -% -% \begin{macro}{\FV@CatCodesHook} -% \begin{macrocode} -\def\FV@CatCodesHook{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@AddToHook} -% \begin{macrocode} -\def\FV@AddToHook#1#2{% - \expandafter\def\expandafter#1\expandafter{#1#2\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FancyVerbCodes} -% \begin{macrocode} -\define@key{FV}{codes}[]{\def\FancyVerbCodes{#1\relax}} -\define@key{FV}{codes*}{% - \expandafter\def\expandafter\FancyVerbCodes\expandafter{% - \FancyVerbCodes#1\relax}} -\fvset{codes} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\define@key{FV}{commandchars}[\\\{\}]% - {\def\@tempa{#1}% - \ifx\@tempa\FV@None - \let\FV@CommandChars\relax - \else - \FV@DefineCommandChars#1\relax\relax\relax - \fi} -% \end{macrocode} -% -% \begin{macro}{\FV@DefineCommandChars} -% \begin{macrocode} -\def\FV@DefineCommandChars#1#2#3{% - \def\FV@CommandChars{% - \catcode`#1=0\relax\catcode`#2=1\relax\catcode`#3=2\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\FV@AddToHook\FV@CatCodesHook\FV@CommandChars -% \end{macrocode} -% -% \begin{macro}{\FV@CommentChar} -% \begin{macrocode} -\define@key{FV}{commentchar}[\%]{% - \def\@tempa{#1}% - \ifx\@tempa\FV@None - \let\FV@CommentChar\relax - \else - \def\FV@CommentChar{\catcode`#1=14}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\FV@AddToHook\FV@CatCodesHook\FV@CommentChar -% \end{macrocode} -% -% \begin{macrocode} -\fvset{commandchars=none,commentchar=none} -% \end{macrocode} -% -% \subsection{Preprocess line} -% -% These is tedious and takes up macro space, but it doesn't slow things -% down much when the parameters are not used. -% -% \noindent\texttt{start}, \texttt{stop} and \texttt{gobble} parameters: -% -% \noindent if value is a number, then after the assignment the next token is -% \cs{relax}. -% -% "Preprocessing the line" involves: -% \begin{itemize} -% \item Checking whether this line falls in the range specified by start or stop strings. -% or \texttt{firstline} or \texttt{lastline} line-numbers, or a mixture. -% \item Gobble'ing initial characters. -% \end{itemize} -% \begin{macrocode} -\define@key{FV}{firstline}{% - \afterassignment\FV@ParseStart\@tempcnta=0#1\relax\@nil{#1}} -% \end{macrocode} -% -% \begin{macro}{\FV@ParseStart} -% \begin{macrocode} -\def\FV@ParseStart#1\relax\@nil#2{% - \ifx\@nil#1\@nil - \edef\FancyVerbStartNum{\the\@tempcnta}% - \let\FancyVerbStartString\relax - \else - \edef\FancyVerbStartString{#2}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@firstline@default} -% \begin{macrocode} -\def\KV@FV@firstline@default{% - \let\FancyVerbStartNum\z@ - \let\FancyVerbStartString\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\define@key{FV}{lastline}{% - \afterassignment\FV@ParseStop\@tempcnta=0#1\relax\@nil{#1}} -% \end{macrocode} -% -% \begin{macro}{\FV@ParseStop} -% \begin{macrocode} -\def\FV@ParseStop#1\relax\@nil#2{% - \ifx\@nil#1\@nil - \edef\FancyVerbStopNum{\the\@tempcnta}% - \let\FancyVerbStopString\relax - \else - \edef\FancyVerbStopString{#2}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@lastline@default} -% \begin{macrocode} -\def\KV@FV@lastline@default{% - \let\FancyVerbStopNum\z@ - \let\FancyVerbStopString\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{firstline,lastline} -% \end{macrocode} -% -% \begin{macrocode} -\newcount\FV@CodeLineNo -% \end{macrocode} -% -% If \cs{FV@FindStartStop} determines the line should be printed, it -% executes \cs{FV@@PreProcessLine} -% -% \begin{macro}{\FV@PreProcessLine} -% \begin{macrocode} -\def\FV@PreProcessLine{% - \global\advance\FV@CodeLineNo\@ne - \FV@FindStartStop} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@PreProcessLine} -% \begin{macrocode} -\def\FV@@PreProcessLine{% - \FV@StepLineNo - \FV@Gobble - \expandafter\FV@ProcessLine\expandafter{\FV@Line}} -% \end{macrocode} -% \end{macro} -% -% The definition of \cs{FV@FindStartStop} changes, so that we don't -% have to check irrelevant conditions with each line. -% -% Here's how it works; for simplicity we assume \texttt{firstline} and \texttt{lastline} -% have been specified, rather than start or stop strings. -% -% The first time \cs{FV@FindStartStop} is called: -% \begin{enumerate} -% \item It calls -% \cs{FV@DefineFindStart}. (The name roughly means "define\\ -% \cs{FV@FindStartStop} to detect when we've reached the \underline{start} of the -% specified range".) This checks the range parameters that have been -% specified, and then redefines \cs{FV@FindStartStop} (yes, the -% function that has called this code) to contain only -% the necessary checks, for efficiency reasons: -% -% \begin{itemize} -% -% \item If we haven't printed any lines yet, which is true when\\ -% \cs{FV@FindStartStop} is first called, we only need to check -% the current line-number against \texttt{firstline}, so we redefine -% \cs{FV@FindStartStop} to be\\ -% \cs{FV@FindStartNum}. -% -% \item If \texttt{firstline} isn't set, we only have to check the -% current line-number against \texttt{lastline}, so we redefine -% \cs{FV@FindStartStop} to be \cs{FV@DefineFindStop}. -% (The name roughly means "define\\ -% \cs{FV@FindStartStop} to detect when we've reached the -% \underline{stop} (end) of the -% specified range", but unlike the START case, it includes code -% (\cs{FV@@PreProcessLine}) to print the current line.) -% -% \end{itemize} -% -% -% \item It then calls the newly-defined \cs{FV@FindStartStop} to see -% if the current line being processed is within the range to be printed. -% -% \end{enumerate} -% -% \cs{FV@FindStartStop} is redefined once as described above, but it -% can be redefined again: -% -% \begin{enumerate} -% -% \item When we have reached \texttt{firstline}, i.e.\ have entered the -% range to be printed, we redefine -% \cs{FV@FindStartStop} to be \cs{FV@DefineFindStop}. (We know -% we've reached the start, so there's no point checking that again on -% future calls.) -% -% \item When we reach \texttt{lastline} and have printed it, we won't -% want to print any more lines, so we redefine -% \cs{FV@FindStartStop} to \cs{relax} so we do nothing (and do -% it efficiently). -% -% Note that when \texttt{firstline} = \texttt{lastline} (= 6, say), it is -% \cs{FV@FindStartNum} (which \cs{FV@FindStartStop} has -% initially been redefined to) that notices when we reach line -% 6, and prints it, and redefines \cs{FV@FindStartStop} to be \cs{FV@DefineFindStop}. -% Then we read line 7, so \cs{FV@DefineFindStop} has to check -% whether we've passed \texttt{lastline}, and therefore shouldn't print -% the current line, before -% redefining \cs{FV@FindStartStop} to \cs{relax} as explained above. -% -% By contrast, when \texttt{firstline} is less than \texttt{lastline} (= 6, 8, say), when we -% reach line 8, \cs{FV@DefineFindStop} sees that we're at the -% end of the range, and \emph{does} print the line, before -% redefining \cs{FV@FindStartStop} to \cs{relax} as above. -% -% This slight weirdness is because several of the macros are -% defining themselves and one another, resulting in a slightly weird -% execution flow. -% -% \end{enumerate} -% -% \begin{macro}{\FV@FindStartStop} -% \begin{macrocode} -\def\FV@FindStartStop{\FV@DefineFindStart\FV@FindStartStop} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -%% \def\FV@DefinePreProcessLine{% -%% \setcounter{FancyVerbLine}{0}% -%% \FV@DefineFindStart} -% \end{macrocode} -% -% \begin{macro}{\FV@DefineFindStart} -% \begin{macrocode} -\def\FV@DefineFindStart{% - \ifx\FancyVerbStartString\relax - \ifnum\FancyVerbStartNum<\tw@ - \FV@DefineFindStop - \else - \let\FV@FindStartStop\FV@FindStartNum - \fi - \else - \let\FV@FindStartStop\FV@FindStartString - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FindStartNum} -% \begin{macrocode} -\def\FV@FindStartNum{% - \ifnum\FancyVerbStartNum>\FV@CodeLineNo\else - \FV@DefineFindStop - \expandafter\FV@@PreProcessLine - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FindStartString} -% \begin{macrocode} -%% SR modification begin - 1996 -\def\FV@FindStartString{% - \expandafter\FV@@FindStartString -{\meaning\FV@Line}% -{\meaning\FancyVerbStartString}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@FindStartString} -% \begin{macrocode} -\def\FV@@FindStartString#1#2{% -\edef\@fooA{#1}\edef\@fooB{#2}% - \ifx\@fooA\@fooB - \FV@DefineFindStop - \fi -} -%% SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@DefineFindStop} -% \begin{macrocode} -\def\FV@DefineFindStop{% - \ifx\FancyVerbStopString\relax - \ifnum\FancyVerbStopNum<\@ne - \let\FV@FindStartStop\FV@@PreProcessLine - \else - \let\FV@FindStartStop\FV@FindStopNum - \fi - \else - \let\FV@FindStartStop\FV@FindStopString - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FindStopNum} -% \begin{macrocode} -\def\FV@FindStopNum{% - \ifnum\FancyVerbStopNum>\FV@CodeLineNo - \else - \let\FV@FindStartStop\relax - \ifeof\FV@InFile\else - \immediate\closein\FV@InFile - \fi - \fi - \ifnum\FancyVerbStopNum<\FV@CodeLineNo - \else - \FV@@PreProcessLine - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FindStopString} -% \begin{macrocode} -%% SR modification begin - 1996 -\def\FV@FindStopString{% - \expandafter\FV@@FindStopString -{\meaning\FV@Line}% -{\meaning\FancyVerbStopString}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@FindStopString} -% \begin{macrocode} -\def\FV@@FindStopString#1#2{% -\edef\@fooA{#1}\edef\@fooB{#2}% - \ifx\@fooA\@fooB - \let\FV@FindStartStop\relax - \ifeof\FV@InFile\else - \immediate\closein\FV@InFile - \fi - \else - \expandafter\FV@@PreProcessLine - \fi} -%% SR modification end -% \end{macrocode} -% \end{macro} -% -% Gobblings. \cs{FV@Gobble} does nothing, or strips some tokens from -% the line and stores the result in \cs{FV@Line} again. We use -% \LaTeX's \verb+\renewcommand+ to define a command for gobbling up to -% 9 arguments. This is not the same as removing 9 tokens, but is easier. -% -% \begin{macro}{\FV@@Gobble} -% \begin{macrocode} -\def\FV@@Gobble{% - \expandafter\expandafter\expandafter\FV@@@Gobble - \expandafter\FV@@@@Gobble\FV@Line - \@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@@nil} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@@Gobble} -% \begin{macrocode} -\def\FV@@@Gobble#1\@nil#2\@@nil{\def\FV@Line{#1}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Gobble} -% \begin{macrocode} -\define@key{FV}{gobble}{% - \@tempcnta=#1\relax - \ifnum\@tempcnta<\@ne - \let\FV@Gobble\relax - \else - \ifnum\@tempcnta>9 - \FV@Error{gobble parameter must be less than 10}\FV@eha - \else - \renewcommand{\FV@@@@Gobble}[\@tempcnta]{}% - \let\FV@Gobble\FV@@Gobble - \fi - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@@@Gobble} -% \begin{macrocode} -\def\FV@@@@Gobble{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@gobble@default} -% \begin{macrocode} -\def\KV@FV@gobble@default{\let\FV@Gobble\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{gobble} -% \end{macrocode} -% -% \subsection{Scanning environments} -% -% \begin{macro}{\FV@Scan} -% \begin{macrocode} -\def\FV@Scan{% - \FV@CatCodes - \VerbatimEnvironment - \FV@DefineCheckEnd - \FV@BeginScanning} -% \end{macrocode} -% \end{macro} -% -% \cs{VerbatimEnvironment}: -% -% This saves the name of the current environment as -% \cs{FV@EnvironName}, if the latter is not already defined. -% Then \cs{FV@CheckEnd} knows how to find the end as long as either: -% \begin{itemize} -% \item \verb+\begin+ and \verb+\end+ are not used within the definition of -% the environment, OR -% \item \cs{VerbatimEnvironment} is used in the definition before the first -% \verb+\begin+. -% \end{itemize} -% -% \begin{macro}{\VerbatimEnvironment} -% \begin{macrocode} -\def\VerbatimEnvironment{% - \ifx\FV@EnvironName\relax\xdef\FV@EnvironName{\@currenvir}\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\let\FV@EnvironName\relax -% \end{macrocode} -% -%\subsection{Check end} -% -% We have to check the argument of the first \verb+\end{}+ in each line, -% compare it with \cs{FV@EnvironName}, and return \verb+\iftrue+ if it matches -% and \verb+\iffalse+ otherwise. -% -% There are four cases (R=regular): -% -% \begin{tabbing} -% catcode of \verb+{}+ \= : \= R \= 12 \= 12 \= 12 \kill -% case \> : \> i \> ii \> iii \> iv \\ -% catcode of \verb+\+ \> : \> R \> 12 \> 12 \> R \\ -% catcode of \verb+{}+ \> : \> R \> R \> 12 \> 12 -% \end{tabbing} -% -% For uniformity, we use \verb+![]+ instead of \verb+\{}+ in all the -% definitions. -% -% We first set the catcodes of \verb+\{}+ to those in effect in the -% verbatim environment. Then we define: -% -% \verb+!def!FV@CheckEnd#1[!FV@@CheckEnd#1\end{}!@nil]+ -% -% \noindent If {} have their usual catcodes, we define: -% -% \verb+!def!FV@@CheckEnd#1\end#2#3!@nil[!def!@tempa[#2]]+ -% -% \noindent If {} have catcode 12, we define: -% -% \verb+!def!FV@@CheckEnd#1\end{#2}#3!@nil[!def!@tempa[#2]]+ -% -% \begin{macrocode} -\begingroup -\catcode`\!=0 -\catcode`\[=1 -\catcode`\]=2 -% \end{macrocode} -% -% Case i: -% -% \begin{macrocode} -!gdef!FV@CheckEnd@i#1[!FV@@CheckEnd#1\end{}!@nil] -!gdef!FV@@CheckEnd@i#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] -!gdef!FV@@@CheckEnd@i[\end{}] -% \end{macrocode} -% -% Case ii: -% -% \begin{macrocode} -\catcode`!\=12 - -!gdef!FV@CheckEnd@ii#1[!FV@@CheckEnd#1\end{}!@nil] -!gdef!FV@@CheckEnd@ii#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] -!gdef!FV@@@CheckEnd@ii[\end{}] -% \end{macrocode} -% -% Case iii: -% -% \begin{macrocode} -!catcode`!{=12 -!catcode`!}=12 - -!gdef!FV@CheckEnd@iii#1[!FV@@CheckEnd#1\end{}!@nil] -!gdef!FV@@CheckEnd@iii#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] -!gdef!FV@@@CheckEnd@iii[\end{}] -% \end{macrocode} -% -% Case iv: -% -% \begin{macrocode} -!catcode`!\=0 - -!gdef!FV@CheckEnd@iv#1[!FV@@CheckEnd#1\end{}!@nil] -!gdef!FV@@CheckEnd@iv#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] -!gdef!FV@@@CheckEnd@iv[\end{}] -% \end{macrocode} -% -% \begin{macrocode} -\endgroup -% \end{macrocode} -% -% \begin{macro}{\FV@BadCodes} -% \begin{macrocode} -\def\FV@BadCodes#1{% - \FV@Error - {\string\catcode\space of \expandafter\@gobble\string#1 is wrong: - \the\catcode`#1}% - {Only the following catcode values are allowed: - ^^J\@spaces \expandafter\@gobble\string\\ \space\space --> 0 or 12. - ^^J\@spaces \string{ \string} --> 1 and 2, resp., or both 12. - ^^JTo get this error, either you are a hacker or you got bad advice.}% - \def\FV@CheckEnd##1{\iftrue}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@DefineCheckEnd} -% \begin{macrocode} -\def\FV@DefineCheckEnd{% - \ifnum\catcode`\\=\z@ - \ifnum\catcode`\{=\@ne - \let\FV@CheckEnd\FV@CheckEnd@i - \let\FV@@CheckEnd\FV@@CheckEnd@i - \let\FV@@@CheckEnd\FV@@@CheckEnd@i - \else - \ifnum\catcode`\{=12 - \let\FV@CheckEnd\FV@CheckEnd@iv - \let\FV@@CheckEnd\FV@@CheckEnd@iv - \let\FV@@@CheckEnd\FV@@@CheckEnd@iv - \else - \FV@BadCodes\{% - \fi - \fi - \else - \ifnum\catcode`\\=12 - \ifnum\catcode`\{=\@ne - \let\FV@CheckEnd\FV@CheckEnd@ii - \let\FV@@CheckEnd\FV@@CheckEnd@ii - \let\FV@@@CheckEnd\FV@@@CheckEnd@ii - \else - \ifnum\catcode`\{=12 - \let\FV@CheckEnd\FV@CheckEnd@iii - \let\FV@@CheckEnd\FV@@CheckEnd@iii - \let\FV@@@CheckEnd\FV@@@CheckEnd@iii - \else - \FV@BadCodes\{% - \fi - \fi - \else - \FV@BadCodes\\% - \fi - \fi} -% \end{macrocode} -% \end{macro} -% -% \subsection{Line-by-line scanning} -% -% We first skip everything after the beginning of the environment. -% -% \begin{macro}{\FV@BeginScanning} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active - \gdef\FV@BeginScanning#1^^M{% - \def\@tempa{#1}\ifx\@tempa\@empty\else\FV@BadBeginError\fi% - \FV@GetLine}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@BadBeginError} -% \begin{macrocode} -\def\FV@BadBeginError#1{% - \expandafter\@temptokena\expandafter{\@tempa}% - \FV@Error - {Extraneous input `\the\@temptokena' between - \string\begin{\FV@EnvironName}[<key=value>] and line end}% - {This input will be discarded. Hit <return> to continue.}} -% \end{macrocode} -% \end{macro} -% -% If \cs{FancyVerbGetLine} does not find a \verb+^^M+, then we are at -% the end of the file, and \cs{FV@EOF} attempts to terminate the document. -% Otherwise, \cs{FV@EOF} is gobbled by \cs{FancyVerbGetLine}. -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@GetLine} -% \begin{macrocode} -%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures) -%% \def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine} -\def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \begin{macro}{\FancyVerbGetLine} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active -\gdef\FancyVerbGetLine#1^^M{% - \@nil% - \FV@CheckEnd{#1}% - \ifx\@tempa\FV@EnvironName% % True if end is found - \ifx\@tempb\FV@@@CheckEnd\else\FV@BadEndError\fi% - \let\next\FV@EndScanning% - \else% - \def\FV@Line{#1}% - \def\next{\FV@PreProcessLine\FV@GetLine}% - \fi% - \next}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@BadEndError} -% \begin{macrocode} -\def\FV@BadEndError{% - \expandafter\@temptokena\expandafter{\@tempb}% - \FV@Error - {Extraneous input `\the\@temptokena' between - \string\end{\FV@EnvironName} and line end}% - {This input will be discarded. Type <return> to continue.}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EndScanning} -% \begin{macrocode} -\def\FV@EndScanning{% - \edef\next{\noexpand\end{\FV@EnvironName}}% - \global\let\FV@EnvironName\relax - \next} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\@ifundefined{@currenvline}{\let\@currenvline\@empty}{} -% \end{macrocode} -% -% \begin{macro}{\FV@CheckScan} -% \begin{macrocode} -\def\FV@CheckScan#1{\@ifnextchar\@nil{\@gobble}{\FV@EOF}} -\def\FV@CheckScan#1{\ifx\@nil#1\@empty\else\expandafter\FV@EOF\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EOF} -% \begin{macrocode} -\def\FV@EOF{% - \FV@Error{Couldn't find `\string\end{\FV@EnvironName}' to end - a verbatim environment\@currenvline.}% - {Probably you mistyped the environment name or included an extraneous - ^^Jspace, or are using an improperly defined verbatim environment. - ^^JHit return and I will try to terminate this job.}% - \FV@EndScanning - \end{document}} -% \end{macrocode} -% \end{macro} -% - % \subsection{Input} -% -% \begin{macrocode} -\newread\FV@InFile -% \end{macrocode} -% -% \begin{macro}{\FV@Input} -% \begin{macrocode} -\def\FV@Input#1{% - \immediate\openin\FV@InFile #1\relax - \ifeof\FV@InFile - \FV@Error{No verbatim file #1}\FV@eha - \immediate\closein\FV@InFile - \else - \FV@CatCodes - \expandafter\FV@@Input - \fi} -% \end{macrocode} -% \end{macro} -% -% \noindent\TeX{} reports EOF when reading after the last newline character. -% -% \noindent Thus, we read to InLine, and if \TeX{} reports EOF: -% \begin{itemize} -% \item If InLine=Empty, previous line was last line in file (file ends nl). -% \item Otherwise, InLine holds last line in file (file doesn't end in nl). -% \end{itemize} -% \cs{FV@@Input} handles both cases correctly. -% -% \begin{macro}{\FV@@Input} -% \begin{macrocode} -\def\FV@@Input{% - \def\FV@Line{}% - \FV@ReadLine - \ifeof\FV@InFile - \ifx\FV@Line\@empty\else - \FV@PreProcessLine - \fi - \immediate\closein\FV@InFile - \else - \FV@PreProcessLine - \expandafter\FV@@Input - \fi} -% \end{macrocode} -% \end{macro} -% -% We also want to handle true comment characters correctly. This means that -% we keep accumulating text in InLine until we find a \verb+^^M+ (indicating -% that the line did not contain a comment character). -% -% \begin{macro}{\FV@ReadLine} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active -\gdef\FV@ReadLine{% - \ifeof\FV@InFile\else - \immediate\read\FV@InFile to\@tempa% - \expandafter\FV@@ReadLine\@tempa^^M\relax^^M\@nil% - \fi} -% \end{macrocode} -% \end{macro} -% -% \verb+#2+ is empty if line ends in \verb+^^M+, \verb+#2=\relax+ otherwise -% -% \begin{macro}{\FV@@ReadLine} -% \begin{macrocode} -\gdef\FV@@ReadLine#1^^M#2^^M#3\@nil{% - \expandafter\def\expandafter\FV@Line\expandafter{% - \FV@Line#1}% - \ifx\relax#2\@empty\expandafter\FV@ReadLine\fi}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \subsection{Formatting -- Common components} -% -% Some things that are common to all verbatim formatting: -% -% \begin{macro}{\FV@FormattingPrep} -% \begin{macrocode} -\def\FV@FormattingPrep{% - \global\FV@CodeLineNo\z@ - \frenchspacing % Cancels special punctuation spacing. - \FV@SetupFont % See below. - \FV@DefineWhiteSpace % See below. - \FancyVerbDefineActive - \FancyVerbFormatCom} % A user-defined hook (formatcom parameter). -% \end{macrocode} -% \end{macro} -% -% Fonts -% -% \changes{v2.6}{1998/07/17}{Correct a bug for the -- ligature in T1 encoding -% (reported by Mario Hassler on May 12, 1998).} -% -% \begin{macrocode} -\expandafter\ifx\csname selectfont\endcsname\relax -% \end{macrocode} -% -% \begin{macro}{\FV@SetupFont} -% \begin{macrocode} -\def\FV@SetupFont{% - \FV@BaseLineStretch - \ifx\@currsize\small\normalsize\else\small\fi\@currsize - \FV@FontSize - \FV@FontFamily} - -\else - -\def\FV@SetupFont{% - \FV@BaseLineStretch - \FV@FontSize - \FV@FontFamily - \FV@FontSeries - \FV@FontShape - \selectfont -%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures) - \@noligs} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fi -% \end{macrocode} -% -% \begin{macro}{\FV@FontSize} -% \begin{macrocode} -\define@key{FV}{fontsize}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@Auto - \let\FV@FontSize\relax - \else - \def\FV@FontSize{#1}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@fontsize@default} -% \begin{macrocode} -\def\KV@FV@fontsize@default{\let\FV@FontSize\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@BaseLineStretch} -% \begin{macrocode} -\define@key{FV}{baselinestretch}[auto]{% - \def\@tempa{#1}% - \ifx\@tempa\FV@Auto - \let\FV@BaseLineStretch\relax - \else - \def\FV@BaseLineStretch{\def\baselinestretch{#1}}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@baselinestretch@default} -% \begin{macrocode} -\def\KV@FV@baselinestretch@default{\let\FV@BaseLineStretch\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\define@key{FV}{fontfamily}{% - \@ifundefined{FV@fontfamily@#1}% - {\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{#1}}} - {\csname FV@fontfamily@#1\endcsname}} -% \end{macrocode} -% -% \begin{macro}{\FV@FontSeries} -% \begin{macrocode} -\define@key{FV}{fontseries}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@Auto - \let\FV@FontSeries\relax - \else - \def\FV@FontSeries{\fontseries{#1}}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FontShape} -% \begin{macrocode} -\define@key{FV}{fontshape}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@Auto - \let\FV@FontShape\relax - \else - \def\FV@FontShape{\fontshape{#1}}% - \fi} -% \end{macrocode} -% \end{macro} -% -% Font family styles have to define \cs{FV@FontScanPrep} and -% \cs{FV@FontFamily}. -% -% \begin{macro}{\FV@MakeActive} -% \begin{macrocode} -\def\FV@MakeActive#1{% - \catcode`#1=\active - \def\next##1{\expandafter\def\expandafter\FV@MakeUnActive\expandafter{% - \FV@MakeUnActive\def##1{\string##1}}}% - \begingroup\lccode`~=`#1\relax\expandafter\next\expandafter~\endgroup} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@MakeUnActive} -% \begin{macrocode} -\def\FV@MakeUnActive{} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\begingroup -\catcode`\`=\active -% \end{macrocode} -% -% \begin{macro}{\FV@fontfamily@tt} -% \begin{macrocode} -\gdef\FV@fontfamily@tt{% - \def\FV@FontScanPrep{\FV@MakeActive\`}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\tt`{{\string`}}}} - \def\FV@FontFamily{\ttfamily\edef`{{\string`}}}} -%% SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@fontfamily@cmtt} -% \begin{macrocode} -\gdef\FV@fontfamily@cmtt{% - \def\FV@FontScanPrep{\FV@MakeActive\`}% - \def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\endgroup -% \end{macrocode} -% -% \begin{macro}{\FV@fontfamily@cmtt-spanish} -% \begin{macrocode} -\@namedef{FV@fontfamily@cmtt-spanish}{% - \def\FV@FontScanPrep{}% - \def\FV@FontFamily{\fontfamily{cmtt}}} -% \end{macrocode} -% \end{macro} -% -% Fix me -% -% \begin{macro}{\FV@fontfamily@courier} -% \begin{macrocode} -\@namedef{FV@fontfamily@courier}{% - \def\FV@FontScanPrep{}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\fontfamily{rpcr}}} - \def\FV@FontFamily{\fontfamily{pcr}}} -%% SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@fontfamily@helvetica} -% \begin{macrocode} -\@namedef{FV@fontfamily@helvetica}{% - \def\FV@FontScanPrep{}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\fontfamily{rphv}}} - \def\FV@FontFamily{\fontfamily{phv}}} -%% SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{fontfamily=tt,fontsize=auto,fontshape=auto,fontseries=auto, - baselinestretch=auto} -% \end{macrocode} -% -% \cs{FV@DefineWhiteSpace} -% -% We just define the active characters to be ordinary commands, which -% are easier to redefine. We do with any macros that use verbatim text. -% -% \begin{macrocode} -\begingroup -\catcode`\ =\active -\catcode`\^^I=\active -% \end{macrocode} -% -% \begin{macro}{\FV@DefineWhiteSpace} -% \begin{macrocode} -\gdef\FV@DefineWhiteSpace{\def {\FV@Space}\def^^I{\FV@Tab}}% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\endgroup -% \end{macrocode} -% -% \begin{macro}{\FancyVerbDefineActive} -% \begin{macrocode} -\define@key{FV}{defineactive}[]{\def\FancyVerbDefineActive{#1\relax}} -\define@key{FV}{defineactive*}{% - \expandafter\def\expandafter\FancyVerbDefineActive\expandafter{% - \FancyVerbDefineActive#1\relax}} -\fvset{defineactive} -% \end{macrocode} -% \end{macro} -% -% \cs{FV@Space}: -% -% \begin{macro}{\FV@Space} -% \begin{macrocode} -\define@booleankey{FV}{showspaces}% - {\def\FV@Space{{\FancyVerbSpace}}}% - {\def\FV@Space{\ }} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -{\catcode`\ =12 \gdef\FancyVerbSpace{\tt }} -% \end{macrocode} -% -% \begin{macrocode} -\fvset{showspaces=false} -% \end{macrocode} -% -% \cs{FV@Tab}: -% -% \begin{macro}{\FV@Tab} -% \begin{macrocode} -\def\FV@Tab{\hbox to\FancyVerbTabSize\fontdimen2\font{\hss\FV@TabChar}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FancyVerbTabSize} -% \begin{macrocode} -\define@key{FV}{tabsize}{% - \@tempcnta=#1\relax - \ifnum\@tempcnta>100 - \FV@Error{Tab size too large: `\the\@tempcnta'. (Max size = 100)}\FV@eha - \else - \edef\FancyVerbTabSize{\the\@tempcnta}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@TabChar} -% \begin{macrocode} -\define@booleankey{FV}{showtabs}% - {\def\FV@TabChar{\FancyVerbTab}}% - {\let\FV@TabChar\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{tabsize=8,showtabs=false} -% \end{macrocode} -% -% Here is a weak attempt at a tab character. It may exceed the width -% of a space character when the verbatim font is small. The only proper way -% to do this is making it part of the verbatim font. -% -% \begin{macro}{\FancyVerbTab} -% \begin{macrocode} -\def\FancyVerbTab{% - \valign{% - \vfil##\vfil\cr - \hbox{$\scriptscriptstyle-$}\cr - \hbox to 0pt{\hss$\scriptscriptstyle\rangle\mskip -.8mu$}\cr - \hbox{$\scriptstyle\mskip -3mu\mid\mskip -1.4mu$}\cr}} -% \end{macrocode} -% \end{macro} -% -% Obey Tabs: -% -% \begin{macrocode} -\newbox\FV@TabBox -% \end{macrocode} -% -% \begin{macro}{\FV@@ObeyTabsInit} -% \begin{macrocode} -\def\FV@@ObeyTabsInit{% - \@tempdimb=\FancyVerbTabSize\fontdimen\tw@\font - \edef\FV@ObeyTabSize{\number\@tempdimb}% - \advance\@tempdimb\fontdimen\tw@\font - \advance\@tempdimb-\FancyVerbTabSize sp % Allow for rounding errors. - \edef\FV@@ObeyTabSize{\number\@tempdimb}% - \let\FV@ObeyTabs\FV@@ObeyTabs - \let\FV@Tab\FV@TrueTab} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@@ObeyTabs} -% \begin{macrocode} -\def\FV@@ObeyTabs#1{\setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\let\FV@ObeyTabs\relax -% \end{macrocode} -% -% \begin{macro}{\FV@TrueTab} -% \begin{macrocode} -\def\FV@TrueTab{% - \egroup - \@tempdima=\FV@ObeyTabSize sp\relax - \@tempcnta=\wd\FV@TabBox - \advance\@tempcnta\FV@@ObeyTabSize\relax - \divide\@tempcnta\@tempdima - \multiply\@tempdima\@tempcnta - \advance\@tempdima-\wd\FV@TabBox - \setbox\FV@TabBox=\hbox\bgroup - \unhbox\FV@TabBox\kern\@tempdima\hbox to\z@{\hss\FV@TabChar}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ObeyTabsInit} -% \begin{macrocode} -\define@booleankey{FV}{obeytabs}% - {\let\FV@ObeyTabsInit\FV@@ObeyTabsInit}% - {\let\FV@ObeyTabsInit\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{obeytabs=false} -% \end{macrocode} -% -% \cs{FancyVerbFormatCom} -% -% \begin{macro}{\FancyVerbFormatCom} -% \begin{macrocode} -\define@key{FV}{formatcom}[]{\def\FancyVerbFormatCom{#1\relax}} -\define@key{FV}{formatcom*}{% - \expandafter\def\expandafter\FancyVerbFormatCom\expandafter{% - \FancyVerbFormatCom#1\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{formatcom} -% \end{macrocode} -% -% \begin{macro}{\FancyVerbFormatLine} -% \begin{macrocode} -\def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}} -% \end{macrocode} -% \end{macro} -% -% \subsection{List environments} -% -% Some parameters: -% -% \begin{macro}{\FV@XLeftMargin} -% \begin{macrocode} -\define@key{FV}{xleftmargin}{\def\FV@XLeftMargin{#1}} -\let\FV@XLeftMargin\z@ -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@XRightMargin} -% \begin{macrocode} -\define@key{FV}{xrightmargin}{\def\FV@XRightMargin{#1}} -\let\FV@XRightMargin\z@ -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\if@FV@ResetMargins} -% \begin{macrocode} -\define@booleankey{FV}{resetmargins}% - {\let\if@FV@ResetMargins\iftrue} - {\let\if@FV@ResetMargins\iffalse} -\fvset{resetmargins=false} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListParameterHook} -% \begin{macrocode} -\define@key{FV}{listparameters}{\def\FV@ListParameterHook{#1}} -\def\FV@ListParameterHook{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FancyVerbHFuzz} -% \begin{macrocode} -\define@key{FV}{hfuzz}{% - \@tempdima=#1\relax - \edef\FancyVerbHFuzz{\number\@tempdima sp}} -\fvset{hfuzz=2pt} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@InterLinePenalty} -% \begin{macrocode} -\define@booleankey{FV}{samepage}% - {\def\FV@InterLinePenalty{\interlinepenalty\@M}}% - {\let\FV@InterLinePenalty\relax} -\fvset{samepage=false} -% \end{macrocode} -% \end{macro} -% -% -% \noindent Lists: -% -% \verb+\FV@List{}+ is a rewriting of \verb+\list{}{}\item[]+. -% The rewrite gives me more control. -% I might not get the vertical spacing exactly the same, but it -% is more likely that it will get better than worse. -% -% The verbatim environment consists of a series of \verb+\hbox+'s inserted in -% vertical mode. -% -% \noindent We need to take care of the following: -% \begin{itemize} -% \item leftmargin -% \item rightmargin -% \item topskip -% \item botskip -% \item toppenalty -% \item botpenalty -% \item interlinepenalties -% \end{itemize} -% -% Note: A verbatim environment immediately after an \verb+\item+ starts on -% the same line as the \verb+\item+'s label, unless we reset margins. -% The user can instead have the environment start on a new -% line by inserting \verb+`\ '+ between \verb+\item+ and the environment. -% -% \begin{macro}{\FV@List} -% \begin{macrocode} -\def\FV@List#1{% - \begingroup - \FV@UseKeyValues - \FV@LeaveVMode - \if@inlabel\else\setbox\@labels=\box\voidb@x\fi - \FV@ListNesting{#1}% - \FV@ListParameterHook - \FV@ListVSpace - \FV@SetLineWidth - \FV@InterLinePenalty - \let\FV@ProcessLine\FV@ListProcessLine@i - \FV@CatCodes - \FV@FormattingPrep - \FV@ObeyTabsInit - \FV@BeginListFrame} -% \end{macrocode} -% \end{macro} -% -% -% \noindent Cases where we need to leave vmode: -% \begin{itemize} -% \item After an in-line section (\verb+\if@noskipsec=T+). -% \item After an \verb+\item+ command, if we reset margins. -% \end{itemize} -% -% Then we end \verb+\vmode+, using \verb+@noparlist+ as a flag if in vmode. -% (Not the usual meaning of \verb+@noparlist+.) -% -% \begin{macro}{\FV@LeaveVMode} -% \begin{macrocode} -\def\FV@LeaveVMode{% - \if@noskipsec - \leavevmode - \else - \if@FV@ResetMargins\if@inlabel\leavevmode\fi\fi - \fi - \ifvmode\@noparlisttrue\else\@noparlistfalse\unskip\par\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListNesting} -% \begin{macrocode} -\def\FV@ListNesting#1{% - \if@FV@ResetMargins - \@listdepth=\z@ - \else - \ifnum\@listdepth>5\relax - \@toodeep - \else - \advance\@listdepth\@ne - \fi - \fi - \rightmargin\z@ - \csname @list\romannumeral\the\@listdepth\endcsname - \ifnum#1=\z@ - \rightmargin\z@ - \leftmargin\z@ - \fi} -% \end{macrocode} -% \end{macro} -% -% -% \noindent \cs{FV@ListVSpace} contains selected parts of \cs{@trivlist} and -% \cs{@item}. -% -% \noindent Here are the cases: -% -% \noindent Vmode not in label or after \verb+@NOBREAK+: -% \begin{tabbing} -% \verb+<toppenalty>+ \= = \kill -% \verb+<topskip>+ \> = \verb!\topsep + \partopsep + \parskip! \\ -% \verb+<botskip>+ \> = \verb!\topsep + \partopsep! \\ -% \verb+<toppenalty>+ \> = \verb+\@beginparpenalty+ \\ -% \verb+<botpenalty>+ \> = \verb+\@endparpenalty+ -% \end{tabbing} -% -% \noindent Vmode in label: -% \begin{tabbing} -% \verb+<toppenalty>+ \= = \verb!\topsep + \partopsep! \= \% \kill -% \verb+<topskip>+ \> = \verb+\parskip+ \> \% Expected -% anyway. \\ -% \verb+<botskip>+ \> = \verb!\topsep + \partopsep! \> \% Omitted -% in \LaTeX{} -- a bug? \\ -% \verb+<toppenalty>+ \> = None \\ -% \verb+<botpenalty>+ \> = \verb+\@endparpenalty+ \> \% Ditto. -% \end{tabbing} -% -% \noindent Vmode after \verb+@nobreak+: -% \begin{tabbing} -% \verb+<toppenalty>+ \= = \kill -% \verb+<topskip>+ \> = \verb+\parskip+ \\ -% \verb+<botskip>+ \> = \verb!\topsep + \partopsep! \\ -% \verb+<toppenalty>+ \> = \verb+None+ \\ -% \verb+<botpenatly>+ \> = \verb+\@endparpenalty+ -% \end{tabbing} -% -% \noindent Hmode: -% \begin{tabbing} -% \verb+<toppenalty>+ \= = \kill -% \verb+<topskip>+ \> = \verb!\topsep + \parskip! \\ -% \verb+<botskip>+ \> = \verb+\topsep+ \\ -% \verb+<toppenalty>+ \> = \verb+\@beginparpenalty+ \\ -% \verb+<botpenatly>+ \> = \verb+\@endparpenalty+ -% \end{tabbing} -% -% \noindent Notes: -% \begin{itemize} -% \item Except when in label or after nobreak, \verb+\parskip+ is added with -% \verb+\addvspace+, so that net space is: -% -% \verb!MAX{\topsep (+\partopsep) + \parskip , \lastskip }! -% -% (The usual \verb+\@item+ works the same way.) -% \item \verb+\parskip+ is added afterwards by a new paragraph, if any. -% \item \verb+<botskip> == \@topsepadd+ -% \end{itemize} -% -% \begin{macro}{\FV@ListVSpace} -% \begin{macrocode} -\def\FV@ListVSpace{% - \@topsepadd\topsep - \if@noparlist\advance\@topsepadd\partopsep\fi - \if@inlabel - \vskip\parskip - \else - \if@nobreak - \vskip\parskip - \clubpenalty\@M - \else - \addpenalty\@beginparpenalty - \@topsep\@topsepadd - \advance\@topsep\parskip - \addvspace\@topsep - \fi - \fi - \global\@nobreakfalse - \global\@inlabelfalse - \global\@minipagefalse - \global\@newlistfalse} -% \end{macrocode} -% \end{macro} -% -% \begin{tabbing} -% \verb+\@totalleftmargin+ \= := \kill -% \verb+\leftmargin+ \> := totalleftmargin \\ -% \verb+\rightmargin+ \> := totalrightmargin \\ -% \verb+\@totalleftmargin+ \> := totalleftmargin of enclosing environment. -% \end{tabbing} -% -% \begin{macro}{\FV@SetLineWidth} -% \begin{macrocode} -\def\FV@SetLineWidth{% - \if@FV@ResetMargins\else - \advance\leftmargin\@totalleftmargin - \fi - \advance\leftmargin\FV@XLeftMargin\relax - \advance\rightmargin\FV@XRightMargin\relax - \linewidth\hsize - \advance\linewidth-\leftmargin - \advance\linewidth-\rightmargin - \hfuzz\FancyVerbHFuzz\relax} -% \end{macrocode} -% \end{macro} -% -% We have to insert the right interline penalties (\verb+\interlinepenalty+, -% \verb+\clubpenalty+, \verb+\widowpenalty+). We could process the environment -% as one long paragraph and let \TeX{} insert the penalties, but this -% might cause problems for a very long environment. -% -% \begin{description} -% \item[Line 1] : Insert \verb+\@labels+ (maybe) plus current\_line -% \item[Line 2] : Save current line -% \item[Line 3] : penalty = interline + club ; Insert last line ; -% Save current line. -% \item[Line 4] : penalty = interline ; Insert last line ; Save current line. -% \end{description} -% -% \noindent Then at the end: -% \begin{description} -% \item[Next line = 1] : Add null line. -% \item[Next line = 2] : Nothing. -% \item[Next line = 3] : penalty = interline + club + widow ; -% Insert last line. -% \item[Next line = 4] : penalty = interline + widow ; Insert last line. -% \end{description} -% -% \begin{macro}{\FV@ListProcessLine} -% \begin{macrocode} -\def\FV@ListProcessLine#1{% - \hbox to \hsize{% - \kern\leftmargin - \hbox to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListProcessLine@i} -% \begin{macrocode} -\def\FV@ListProcessLine@i#1{% - \hbox{% - \ifvoid\@labels\else - \hbox to \z@{\kern\@totalleftmargin\box\@labels\hss}% - \fi - \FV@ListProcessLine{#1}}% - \let\FV@ProcessLine\FV@ListProcessLine@ii} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListProcessLine@ii} -% \begin{macrocode} -\def\FV@ListProcessLine@ii#1{% - \setbox\@tempboxa=\FV@ListProcessLine{#1}% - \let\FV@ProcessLine\FV@ListProcessLine@iii} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListProcessLine@iii} -% \begin{macrocode} -\def\FV@ListProcessLine@iii#1{% - {\advance\interlinepenalty\clubpenalty\penalty\interlinepenalty}% - \box\@tempboxa - \setbox\@tempboxa=\FV@ListProcessLine{#1}% - \let\FV@ProcessLine\FV@ListProcessLine@iv} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListProcessLine@iv} -% \begin{macrocode} -\def\FV@ListProcessLine@iv#1{% - \penalty\interlinepenalty - \box\@tempboxa - \setbox\@tempboxa=\FV@ListProcessLine{#1}}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EndList} -% \begin{macrocode} -\def\FV@EndList{% - \FV@ListProcessLastLine - \FV@EndListFrame - \@endparenv - \endgroup - \@endpetrue} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@ListProcessLastLine} -% \begin{macrocode} -\def\FV@ListProcessLastLine{% - \ifx\FV@ProcessLine\FV@ListProcessLine@iv - {\advance\interlinepenalty\widowpenalty\penalty\interlinepenalty}% - \box\@tempboxa - \else - \ifx\FV@ProcessLine\FV@ListProcessLine@iii - {\advance\interlinepenalty\widowpenalty - \advance\interlinepenalty\clubpenalty - \penalty\interlinepenalty}% - \box\@tempboxa - \else - \ifx\FV@ProcessLine\FV@ListProcessLine@i - \FV@Error{Empty verbatim environment}{}% - \FV@ProcessLine{}% - \fi - \fi - \fi} -% \end{macrocode} -% \end{macro} -% -% Verbatim environment: -% -% \DescribeEnv{Verbatim} -% \begin{macrocode} -\def\FV@VerbatimBegin{\FV@List\z@} -\def\FV@VerbatimEnd{\FV@EndList} -% \end{macrocode} -% -% \begin{macro}{\FVB@Verbatim} -% \begin{macrocode} -\def\FVB@Verbatim{\FV@VerbatimBegin\FV@Scan} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVE@Verbatim} -% \begin{macrocode} -\def\FVE@Verbatim{\FV@VerbatimEnd} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\DefineVerbatimEnvironment{Verbatim}{Verbatim}{} -% \end{macrocode} -% -% With \cs{UseVerbatim}, we have to take care of some of the things -% \verb+\end{}+ would do. -% -% \begin{macro}{\FV@UseVerbatim} -% \begin{macrocode} -\def\FV@UseVerbatim#1{% - \FV@VerbatimBegin#1\FV@VerbatimEnd - \@doendpe\global\@ignorefalse\ignorespaces} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\VerbatimInput} -% \begin{macrocode} -\def\VerbatimInput{\FV@Command{}{VerbatimInput}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@VerbatimInput} -% \begin{macrocode} -\def\FVC@VerbatimInput#1{\FV@UseVerbatim{\FV@Input{#1}}} -% \end{macrocode} -% \end{macro} -% -% LVerbatim environment: -% -% \DescribeEnv{LVerbatim} -% \begin{macrocode} -\def\FV@LVerbatimBegin{\FV@List\@ne} -\def\FV@LVerbatimEnd{\FV@EndList} -% \end{macrocode} -% -% \begin{macro}{\FVB@LVerbatim} -% \begin{macrocode} -\def\FVB@LVerbatim{\FV@LVerbatimBegin\FV@Scan} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVE@LVerbatim} -% \begin{macrocode} -\def\FVE@LVerbatim{\FV@LVerbatimEnd} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\DefineVerbatimEnvironment{LVerbatim}{LVerbatim}{} -% \end{macrocode} -% -% \begin{macro}{\FV@LUseVerbatim} -% \begin{macrocode} -\def\FV@LUseVerbatim#1{% - \FV@LVerbatimBegin#1\FV@LVerbatimEnd - \@doendpe\global\@ignorefalse\ignorespaces} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\LVerbatimInput} -% \begin{macrocode} -\def\LVerbatimInput{\FV@Command{}{LVerbatimInput}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@LVerbatimInput} -% \begin{macrocode} -\def\FVC@LVerbatimInput#1{\FV@LUseVerbatim{\FV@Input{#1}}} -% \end{macrocode} -% \end{macro} -% -% Frames: -% -% \begin{macro}{\FV@Frame@none} -% \begin{macrocode} -\def\FV@Frame@none{% - \let\FV@BeginListFrame\relax - \let\FV@LeftListFrame\relax - \let\FV@RightListFrame\relax - \let\FV@EndListFrame\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Frame@single} -% \begin{macrocode} -\def\FV@Frame@single{% - \let\FV@BeginListFrame\FV@BeginListFrame@Single - \let\FV@LeftListFrame\FV@LeftListFrame@Single - \let\FV@RightListFrame\FV@RightListFrame@Single - \let\FV@EndListFrame\FV@EndListFrame@Single} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Frame@lines} -% \begin{macrocode} -\def\FV@Frame@lines{% - \let\FV@BeginListFrame\FV@BeginListFrame@Lines - \let\FV@LeftListFrame\relax - \let\FV@RightListFrame\relax - \let\FV@EndListFrame\FV@EndListFrame@Lines} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Frame@topline} -% \begin{macrocode} -\def\FV@Frame@topline{% - \let\FV@BeginListFrame\FV@BeginListFrame@Lines - \let\FV@LeftListFrame\relax - \let\FV@RightListFrame\relax - \let\FV@EndListFrame\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Frame@bottomline} -% \begin{macrocode} -\def\FV@Frame@bottomline{% - \let\FV@BeginListFrame\relax - \let\FV@LeftListFrame\relax - \let\FV@RightListFrame\relax - \let\FV@EndListFrame\FV@EndListFrame@Lines} -% \end{macrocode} -% \end{macro} -% -% \changes{v2.6}{1998/07/17}{Add ``leftline'' value for the ``frame'' parameter -% (idea taken from a requirement of -% Christophe Roudet on June 9, 1998).} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@Frame@leftline} -% \begin{macrocode} -%% To define a frame with only a left line -\def\FV@Frame@leftline{% - % To define the \FV@FrameFillLine macro (from \FV@BeginListFrame) - \ifx\FancyVerbFillColor\relax - \let\FV@FrameFillLine\relax - \else - \@tempdima\FV@FrameRule\relax - \multiply\@tempdima-\tw@ - \edef\FV@FrameFillLine{% - {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}% - \kern-\number\@tempdima sp}}% - \fi - \let\FV@BeginListFrame\relax - \let\FV@LeftListFrame\FV@LeftListFrame@Single - \let\FV@RightListFrame\relax - \let\FV@EndListFrame\relax} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \changes{v2.6}{1998/07/17}{Add the ``label'' and ``labelposition'' parameters -% (suggested by Michael Friendly on May 15, 1998).} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@BeginListFrame@Single} -% \begin{macrocode} -\def\FV@BeginListFrame@Single{% - \lineskip\z@ - \baselineskip\z@ - \ifx\FancyVerbFillColor\relax - \let\FV@FrameFillLine\relax - \else - \@tempdima\FV@FrameRule\relax - \multiply\@tempdima-\tw@ - \edef\FV@FrameFillLine{% - {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}% - \kern-\number\@tempdima sp}}% - \fi -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine - \FV@SingleFrameLine{\z@}% -%% DG/SR modification end - \penalty\@M - \FV@SingleFrameSep - \penalty\@M} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Label} -% \begin{macrocode} -%% DG/SR modification begin - May. 19, 1998 -\define@key{FV}{label}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@None - \let\FV@LabelBegin\relax - \let\FV@LabelEnd\relax - \else - \FV@Label@i#1\@nil% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Label@i} -% \begin{macrocode} -\def\FV@Label@i{\@ifnextchar[{\FV@Label@ii}{\FV@Label@ii[]}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@Label@ii} -% \begin{macrocode} -\def\FV@Label@ii[#1]#2\@nil{% - \def\@tempa{#1}% - \ifx\@tempa\empty - \def\FV@LabelBegin{#2}% - \else - \def\FV@LabelBegin{#1}% - \def\FV@LabelPositionBottomLine{\@ne}% - \fi - \def\FV@LabelEnd{#2}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{label=none} -% \end{macrocode} -% -% \begin{macro}{\FV@LabelPosition} -% \begin{macrocode} -\define@key{FV}{labelposition}[none]{% - \@ifundefined{FV@LabelPosition@#1}% - {\FV@Error{Label position `#1' not defined.}\FV@eha}% - {\@nameuse{FV@LabelPosition@#1}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@LabelPosition@none} -% \begin{macrocode} -\def\FV@LabelPosition@none{% - \let\FV@LabelPositionTopLine\relax% - \let\FV@LabelPositionBottomLine\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@LabelPosition@topline} -% \begin{macrocode} -\def\FV@LabelPosition@topline{% - \def\FV@LabelPositionTopLine{\@ne}% - \let\FV@LabelPositionBottomLine\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@LabelPosition@bottomline} -% \begin{macrocode} -\def\FV@LabelPosition@bottomline{% - \let\FV@LabelPositionTopLine\relax% - \def\FV@LabelPositionBottomLine{\@ne}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@LabelPosition@all} -% \begin{macrocode} -\def\FV@LabelPosition@all{% - \def\FV@LabelPositionTopLine{\@ne}% - \def\FV@LabelPositionBottomLine{\@ne}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{labelposition=topline} -%% DG/SR modification end -% \end{macrocode} -% -% \begin{macro}{\FV@SingleFrameLine} -% \begin{macrocode} -%% DG/SR modification begin - May. 19, 1998 -%% \def\FV@SingleFrameLine{% -\def\FV@SingleFrameLine#1{% -%% DG/SR modification end - \hbox to\z@{% - \kern\leftmargin -%% DG/SR modification begin - Jun. 22, 1998 - \ifnum#1=\z@ - \let\FV@Label\FV@LabelBegin - \else - \let\FV@Label\FV@LabelEnd - \fi - \ifx\FV@Label\relax -%% DG/SR modification end - \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% -%% DG/SR modification begin - Jun. 22, 1998 - \else - \ifnum#1=\z@ - \setbox\z@\hbox{\strut\enspace\FV@LabelBegin\enspace\strut}% - \else - \setbox\z@\hbox{\strut\enspace\FV@LabelEnd\enspace\strut}% - \fi - \@tempdimb=\dp\z@ - \advance\@tempdimb -.5\ht\z@ - \@tempdimc=\linewidth - \advance\@tempdimc -\wd\z@ - \divide\@tempdimc\tw@ - \ifnum#1=\z@ % Top line - \ifx\FV@LabelPositionTopLine\relax - \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% - \else - \FV@FrameLineWithLabel - \fi - \else % Bottom line - \ifx\FV@LabelPositionBottomLine\relax - \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% - \else - \FV@FrameLineWithLabel - \fi - \fi - \fi -%% DG/SR modification end - \hss}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FrameLineWithLabel} -% \begin{macrocode} -%% DG/SR modification begin - May. 19, 1998 -\def\FV@FrameLineWithLabel{% - \ht\z@\@tempdimb\dp\z@\@tempdimb% - \FancyVerbRuleColor{% - \vrule \@width\@tempdimc \@height\FV@FrameRule - \raise\@tempdimb\box\z@ - \vrule \@width\@tempdimc \@height\FV@FrameRule}} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@BeginListFrame@Lines} -% \begin{macrocode} -\def\FV@BeginListFrame@Lines{% - \begingroup - \lineskip\z@skip -%% DG modification begin - June 18, 1997 (effect of \baselineskip too earlier) -%% \baselineskip\z@skip -%% \FV@SingleFrameLine -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine - \FV@SingleFrameLine{\z@}% -%% DG/SR modification end - \kern-0.5\baselineskip\relax - \baselineskip\z@skip -%% DG modification end - \kern\FV@FrameSep\relax - \endgroup}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EndListFrame@Lines} -% \begin{macrocode} -\def\FV@EndListFrame@Lines{% - \begingroup - \baselineskip\z@skip - \kern\FV@FrameSep\relax -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine - \FV@SingleFrameLine{\@ne}% -%% DG/SR modification end - \endgroup} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \begin{macro}{\FV@SingleFrameSep} -% \begin{macrocode} -\def\FV@SingleFrameSep{% - \hbox to \z@{% - \kern\leftmargin - \hbox to\linewidth{% - \FancyVerbRuleColor{% -%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) - \ifx\FancyVerbFillColor\relax - \vrule\@width 0pt\@height\FV@FrameSep\relax - \fi -%% DG modification end - \vrule\@width\FV@FrameRule\relax - \ifx\FancyVerbFillColor\relax - \hfil - \else - {\FancyVerbFillColor\leaders\hrule\@height\FV@FrameSep\hfil}% - \fi -%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) - \ifx\FancyVerbFillColor\relax - \vrule\@width 0pt\@height\FV@FrameSep\relax - \fi -%% DG modification end - \vrule\@width\FV@FrameRule\relax}}% - \hss}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@LeftListFrame@Single} -% \begin{macrocode} -\def\FV@LeftListFrame@Single{% - \strut - {\FancyVerbRuleColor{\vrule \@width\FV@FrameRule}}% - \FV@FrameFillLine -%% DG modification begin - June 18, 1997 (to fill color on left side) -%% \kern\FV@FrameSep} - \ifx\FancyVerbFillColor\relax - \kern\FV@FrameSep - \else - {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% - \fi} -%% DG modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@RightListFrame@Single} -% \begin{macrocode} -\def\FV@RightListFrame@Single{% -%% DG modification begin - June 18, 1997 (to fill color on right side) -%% \kern\FV@FrameSep - \ifx\FancyVerbFillColor\relax - \kern\FV@FrameSep - \else - {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% - \fi - {\noexpand\leavevmode\FancyVerbRuleColor{\vrule\@width\FV@FrameRule}}} -%% DG modification end -% \end{macrocode} -% \end{macro} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@EndListFrame@Single} -% \begin{macrocode} -\def\FV@EndListFrame@Single{% - \penalty\@M - \FV@SingleFrameSep - \penalty\@M -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine} - \FV@SingleFrameLine{\@ne}} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \begin{macro}{\FV@FrameRule} -% \begin{macrocode} -\define@key{FV}{framerule}{% - \@tempdima=#1\relax - \edef\FV@FrameRule{\number\@tempdima sp\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@framerule@default} -% \begin{macrocode} -\def\KV@FV@framerule@default{\let\FV@FrameRule\fboxrule} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@FrameSep} -% \begin{macrocode} -\define@key{FV}{framesep}{% - \@tempdima=#1\relax - \edef\FV@FrameSep{\number\@tempdima sp\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@framesep@default} -% \begin{macrocode} -\def\KV@FV@framesep@default{\let\FV@FrameSep\fboxsep} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{framerule,framesep} -% \end{macrocode} -% -% \begin{macro}{\FancyVerbRuleColor} -% \begin{macrocode} -\define@key{FV}{rulecolor}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@None - \let\FancyVerbRuleColor\relax - \else - \let\FancyVerbRuleColor\@tempa - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FancyVerbFillColor} -% \begin{macrocode} -\define@key{FV}{fillcolor}{% - \def\@tempa{#1}% - \ifx\@tempa\FV@None - \let\FancyVerbFillColor\relax - \else - \let\FancyVerbFillColor\@tempa - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{rulecolor=none,fillcolor=none} -% \end{macrocode} -% -% \begin{macro}{\FV@Frame@double} -% \begin{macrocode} -\def\FV@Frame@double{% - \let\FV@FrameBegin\FV@FrameBegin@double - \let\FV@FrameLine\FV@FrameLine@double - \let\FV@FrameEnd\FV@FrameEnd@double} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\define@key{FV}{frame}[none]{% - \@ifundefined{FV@Frame@#1}% - {\FV@Error{Frame style `#1' not defined.}\FV@eha}% - {\@nameuse{FV@Frame@#1}}} -% \end{macrocode} -% -% \begin{macrocode} -\fvset{frame=none} -% \end{macrocode} -% -% -% Code line numbers: -% -% \begin{macrocode} -\newcounter{FancyVerbLine} -% \end{macrocode} -% -% \begin{macro}{\FV@SetLineNo} -% \begin{macrocode} -\define@key{FV}{firstnumber}[auto]{% - \def\@tempa{#1}\def\@tempb{auto}% - \ifx\@tempa\@tempb - \def\FV@SetLineNo{% - \c@FancyVerbLine\FV@CodeLineNo - \advance\c@FancyVerbLine\m@ne}% - \else - \def\@tempb{last}% - \ifx\@tempa\@tempb - \let\FV@SetLineNo\relax - \else -%% DG/SR modification begin - Jan. 19, 1998 -%% \def\FV@SetLineNo{\c@FancyVerbLine#1}% - \def\FV@SetLineNo{% - \c@FancyVerbLine#1 - \advance\c@FancyVerbLine\m@ne}% -%% DG/SR modification end - \fi - \fi} -% \end{macrocode} -% \end{macro} -% -% \changes{v2.6}{1998/07/17}{Add the ``numberblanklines'' parameter to allow -% to don't number empty lines (suggested by -% Philippe Esperet on April 25, 1998).} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\if@FV@NumberBlankLines} -% \begin{macrocode} -\define@booleankey{FV}{numberblanklines}% - {\let\if@FV@NumberBlankLines\iftrue} - {\let\if@FV@NumberBlankLines\iffalse} -\fvset{numberblanklines=true} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \changes{v2.6}{1998/07/17}{Correct a bug which didn't allow to use the label -% macro in verbatim env. -% (reported by Philippe Esperet on May 20, 1998).} -% -% \ifChangeBar\mbox{}\begin{changebar}\fi -% \begin{macro}{\FV@refstepcounter} -% \begin{macrocode} -%% DG/SR modification begin - May. 20, 1998 -%%\def\refstepcounter#1{% Adapted from latex.ltx -\def\FV@refstepcounter#1{% -%% DG/SR modification end - \stepcounter{#1}% - \protected@edef\@currentlabel - {\csname p@#1\endcsname\arabic{FancyVerbLine}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@StepLineNo} -% \begin{macrocode} -\def\FV@StepLineNo{% - \FV@SetLineNo% - \def\FV@StepLineNo{% - \if@FV@NumberBlankLines% - \FV@refstepcounter{FancyVerbLine}% - \else% - \ifx\FV@Line\empty% - \else% - \FV@refstepcounter{FancyVerbLine}% - \fi% - \fi}% - \FV@StepLineNo} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\mbox{}\fi -% -% \begin{macro}{\theFancyVerbLine} -% \begin{macrocode} -%% DG/SR modification begin - 1995 -%%\def\theFancyVerbLine{\rm\tiny\arabic{FancyVerbLine}} -\def\theFancyVerbLine{\rmfamily\tiny\arabic{FancyVerbLine}} -%% DG/SR modification end -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\define@key{FV}{numbers}[none]{% - \@ifundefined{FV@Numbers@#1}% - {\FV@Error{Numbers style `#1' not defined.}\FV@eha}% - {\@nameuse{FV@Numbers@#1}}} -% \end{macrocode} -% -% (D.G. -- Dec. 20, 1995 and Jan. 28, 1998): -% -% Add-on to allow a step when printing the lines counter -% (``\texttt{stepnumber''} keyword) -% -% Add-on to allow the counter to be printed on right side -% (\texttt{numbers=right}) -% -% \begin{macro}{\FV@Numbers@none} -% \begin{macrocode} -%% DG modification begin - Dec. 20, 1995 and Jan. 28, 1998 -%%\def\FV@Numbers@none{\let\FV@LeftListNumber\relax} -\def\FV@Numbers@none{% -\let\FV@LeftListNumber\relax -\let\FV@RightListNumber\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\newcount\FV@StepNumber -\define@key{FV}{stepnumber}{\FV@StepNumber#1} -% \end{macrocode} -% -% \begin{macro}{\KV@FV@stepnumber@default} -% \begin{macrocode} -\def\KV@FV@stepnumber@default{\FV@StepNumber\@ne} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{stepnumber} -% \end{macrocode} -% -% ^^A `changebar' bug... \ifChangeBar\mbox{}\begin{changebar}\fi -% \begin{macro}{\FV@Numbers@left} -% \begin{macrocode} -%% DG modification begin - Dec. 20, 1995 -%%\def\FV@Numbers@left{% -%% \def\FV@LeftListNumber{\hbox to\z@{% -%% \hss\theFancyVerbLine\kern\FV@NumberSep}}} -\def\FV@Numbers@left{% -%% DG/SR modification begin - Apr. 28, 1998 - \let\FV@RightListNumber\relax -%% DG/SR modification end - \def\FV@LeftListNumber{% - \@tempcnta=\FV@CodeLineNo - \@tempcntb=\FV@CodeLineNo - \divide\@tempcntb\FV@StepNumber - \multiply\@tempcntb\FV@StepNumber - \ifnum\@tempcnta=\@tempcntb -%% DG/SR modification begin - Apr. 28, 1998 -%% \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% - \if@FV@NumberBlankLines - \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% - \else - \ifx\FV@Line\empty - \else - \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% - \fi - \fi -%% DG/SR modification end - \fi}} -% \end{macrocode} -% \end{macro} -% ^^A `changebar' bug... \ifChangeBar\end{changebar}\fi -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@Numbers@right} -% \begin{macrocode} -\def\FV@Numbers@right{% -%% DG/SR modification begin - Apr. 28, 1998 - \let\FV@LeftListNumber\relax -%% DG/SR modification end - \def\FV@RightListNumber{% - \@tempcnta=\FV@CodeLineNo - \@tempcntb=\FV@CodeLineNo - \divide\@tempcntb\FV@StepNumber - \multiply\@tempcntb\FV@StepNumber - \ifnum\@tempcnta=\@tempcntb -%% DG/SR modification begin - Apr. 28, 1998 -%% \hbox to \z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% - \if@FV@NumberBlankLines - \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% - \else - \ifx\FV@Line\empty - \else - \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% - \fi - \fi -%% DG/SR modification end - \fi}} -%% DG modification end -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \begin{macro}{\FV@NumberSep} -% \begin{macrocode} -\define@key{FV}{numbersep}{% - \@tempdima=#1\relax - \edef\FV@NumberSep{\number\@tempdima sp\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{numbers=none,numbersep=12pt,firstnumber=auto} -% \end{macrocode} -% -% \subsection{BVerbatim} -% -% \DescribeEnv{BVerbatim} -% \begin{macrocode} -\def\FV@BVerbatimBegin{% - \begingroup - \FV@UseKeyValues - \FV@BeginVBox - \let\FV@ProcessLine\FV@BProcessLine - \FV@FormattingPrep - \FV@ObeyTabsInit}% -\def\FV@BVerbatimEnd{\FV@EndVBox\endgroup} -% \end{macrocode} -% -% \begin{macro}{\FV@BeginVBox} -% \begin{macrocode} -\def\FV@BeginVBox{% - \leavevmode - \hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi\bgroup - \ifcase\FV@baseline\vbox\or\vtop\or$\vcenter\fi\bgroup} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EndVBox} -% \begin{macrocode} -\def\FV@EndVBox{\egroup\ifmmode$\fi\hfil\egroup} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@boxwidth} -% \begin{macrocode} -\define@key{FV}{boxwidth}{% - \def\@tempa{#1}\def\@tempb{auto}% - \ifx\@tempa\@tempb - \let\FV@boxwidth\relax - \else - \@tempdima=#1\relax - \edef\FV@boxwidth{\number\@tempdima sp}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KV@FV@boxwidth@default} -% \begin{macrocode} -\def\KV@FV@boxwidth@default{\let\FV@boxwidth\relax} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@baseline} -% \begin{macrocode} -\define@key{FV}{baseline}{% - \if t#1\@empty\let\FV@baseline\@ne\else - \if c#1\@empty\let\FV@baseline\tw@\else\let\FV@baseline\z@\fi - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\fvset{baseline=b,boxwidth} -% \end{macrocode} -% -% \begin{macro}{\FV@BProcessLine} -% \begin{macrocode} -\def\FV@BProcessLine#1{\hbox{\FancyVerbFormatLine{#1}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVB@BVerbatim} -% \begin{macrocode} -\def\FVB@BVerbatim{\FV@BVerbatimBegin\FV@Scan} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVE@BVerbatim} -% \begin{macrocode} -\def\FVE@BVerbatim{\FV@BVerbatimEnd} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\DefineVerbatimEnvironment{BVerbatim}{BVerbatim}{} -% \end{macrocode} -% -% \begin{macro}{\FV@BUseVerbatim} -% \begin{macrocode} -\def\FV@BUseVerbatim#1{\FV@BVerbatimBegin#1\FV@BVerbatimEnd} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BVerbatimInput} -% \begin{macrocode} -\def\BVerbatimInput{\FV@Command{}{BVerbatimInput}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@BVerbatimInput} -% \begin{macrocode} -\def\FVC@BVerbatimInput#1{\FV@BUseVerbatim{\FV@Input{#1}}} -% \end{macrocode} -% \end{macro} -% -% \subsection{Save verbatim} -% -% \DescribeEnv{SaveVerbatim} -% \begin{macrocode} -\def\SaveVerbatim{\FV@Environment{}{SaveVerbatim}} -% \end{macrocode} -% -% \begin{macro}{\FVB@SaveVerbatim} -% \begin{macrocode} -\def\FVB@SaveVerbatim#1{% - \@bsphack - \begingroup - \FV@UseKeyValues -%% \FV@BeginVBox -%% \let\FV@ProcessLine\FV@BProcessLine -%% \FV@FormattingPrep -%% \FV@ObeyTabsInit% -%% - \def\SaveVerbatim@Name{#1}% - \gdef\FV@TheVerbatim{}% - \def\FV@ProcessLine##1{% - \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{% - \FV@TheVerbatim\FV@ProcessLine{##1}}}% - \gdef\FV@TheVerbatim{}% - \FV@Scan} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVE@SaveVerbatim} -% \begin{macrocode} -\def\FVE@SaveVerbatim{% - \expandafter\global\expandafter\let - \csname FV@SV@\SaveVerbatim@Name\endcsname\FV@TheVerbatim -%% \expandafter\gdef -%% \csname FV@SV@\SaveVerbatim@Name\endcsname{\FV@TheVerbatim} -%% \FV@EndVBox -%% \endgroup} - \endgroup\@esphack} -% \end{macrocode} -% \end{macro} -% -% \DescribeEnv{SaveVerbatim} -% \begin{macrocode} -\DefineVerbatimEnvironment{SaveVerbatim}{SaveVerbatim}{} -% \end{macrocode} -% -% \begin{macro}{\FV@CheckIfSaved} -% \begin{macrocode} -\def\FV@CheckIfSaved#1#2{% - \@ifundefined{FV@SV@#1}% - {\FV@Error{No verbatim text has been saved under name `#1'}\FV@eha}% - {#2{\csname FV@SV@#1\endcsname}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\UseVerbatim} -% \begin{macrocode} -\def\UseVerbatim{\FV@Command{}{UseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@UseVerbatim} -% \begin{macrocode} -\def\FVC@UseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@UseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\LUseVerbatim} -% \begin{macrocode} -\def\LUseVerbatim{\FV@Command{}{LUseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@LUseVerbatim} -% \begin{macrocode} -\def\FVC@LUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@LUseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BUseVerbatim} -% \begin{macrocode} -\def\BUseVerbatim{\FV@Command{}{BUseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@BUseVerbatim} -% \begin{macrocode} -\def\FVC@BUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BUseVerbatim}} -% \end{macrocode} -% \end{macro} -% -% \subsection{Verbatim out} -% -% \begin{macrocode} -\newwrite\FV@OutFile -% \end{macrocode} -% -% \begin{macro}{\VerbatimOut} -% \begin{macrocode} -\def\VerbatimOut{\FV@Environment{}{VerbatimOut}} -% \end{macrocode} -% \end{macro} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FVB@VerbatimOut} -% \begin{macrocode} -\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 - \let\FV@FontScanPrep\relax -%% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures) - \let\@noligs\relax -%% DG/SR modification end - \FV@Scan} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% \begin{macro}{\FVE@VerbatimOut} -% \begin{macrocode} -\def\FVE@VerbatimOut{\immediate\closeout\FV@OutFile\endgroup\@esphack} -% \end{macrocode} -% \end{macro} -% -% \DescribeEnv{VerbatimOut} -% \begin{macrocode} -\DefineVerbatimEnvironment{VerbatimOut}{VerbatimOut}{} -% \end{macrocode} -% -% \begin{macro}{\FV@DefineTabOut} -% \begin{macrocode} -\def\FV@DefineTabOut{% - \def\FV@Tab{}% - \@tempcnta=\FancyVerbTabSize\relax - \loop\ifnum\@tempcnta>\z@ - \edef\FV@Tab{\FV@Tab\space}% - \advance\@tempcnta\m@ne - \repeat} -% \end{macrocode} -% \end{macro} -% -% \subsection{Short verbatim} -% -% \cs{SaveVerb} -% -% Note ``\verb+\outer\def^^M{}+''. This is so that verbatim commands report an -% error when encountering an end-of-line, rather than scanning to -% the end of the file each time there is a missing verbatim delimiter. -% -% If scanning fails (and thus \TeX{} ignores \cs{FV@GetVerb}), \verb+#1+ is -% defined to be empty, a group is ended, but \cs{FancyVerbAfterSave} is not -% invoked. -% -% \begin{macro}{\FV@Command} -% \begin{macrocode} -\def\SaveVerb{\FV@Command{}{SaveVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@SaveVerb} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active% -\gdef\FVC@SaveVerb#1#2{% - \@namedef{FV@SV@#1}{}% - \begingroup% - \FV@UseKeyValues% - \FV@CatCodes% - \outer\def^^M{\FV@EOL}% - \global\let\@tempg\FancyVerbAfterSave% - \catcode`#2=12% - \def\@tempa{\def\FancyVerbGetVerb####1####2}% - \expandafter\@tempa\string#2{\endgroup\@namedef{FV@SV@#1}{##2}\@tempg}% - \FancyVerbGetVerb\FV@EOL}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@EOL} -% \begin{macrocode} -\def\FV@EOL{% - \endgroup - \FV@Error% - {Could not find the end delimiter of a short verb command}% - {You probably just forget the end delimiter of a \string\Verb\space or - \string\SaveVerb^^J% - command, or you broke the literal text across input lines.^^J% - Hit <return> to procede.}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FancyVerbAfterSave} -% \begin{macrocode} -\define@key{FV}{aftersave}{\def\FancyVerbAfterSave{#1}} -\fvset{aftersave=} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FV@UseVerb} -% \begin{macrocode} -\def\FV@UseVerb#1{\mbox{\FV@UseKeyValues\FV@FormattingPrep#1}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\UseVerb} -% \begin{macrocode} -\def\UseVerb{\FV@Command{}{UseVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@UseVerb} -% \begin{macrocode} -\def\FVC@UseVerb#1{% - \@ifundefined{FV@SV@#1}% - {\FV@Error{Short verbatim text never saved to name `#1'}\FV@eha}% - {\FV@UseVerb{\@nameuse{FV@SV@#1}}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Verb} -% \begin{macrocode} -\def\Verb{\FV@Command{}{Verb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@Verb} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active% -\gdef\FVC@Verb#1{% - \begingroup% - \FV@UseKeyValues% - \FV@FormattingPrep% - \FV@CatCodes% - \outer\def^^M{}% - \catcode`#1=12% - \def\@tempa{\def\FancyVerbGetVerb####1####2}% - \expandafter\@tempa\string#1{\mbox{##2}\endgroup}% - \FancyVerbGetVerb\FV@EOL}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\DefineShortVerb} -% \begin{macrocode} -\def\DefineShortVerb{\FV@Command{}{DefineShortVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@DefineShortVerb} -% \begin{macrocode} -\def\FVC@DefineShortVerb#1{% - \@ifundefined{FV@CC@\string#1}% - {\FVC@@DefineShortVerb#1}% - {\FV@Error{`\expandafter\@gobble\string#1' is already a short - verb character.}\FV@eha}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@@DefineShortVerb} -% \begin{macrocode} -\def\FVC@@DefineShortVerb#1{% - \begingroup - \lccode`\~=`#1% - \lowercase{\gdef\@tempg{\edef~}\global\let\@temph~}% - \endgroup - \expandafter\let\csname FV@AC@\string#1\endcsname\@temph - \expandafter\edef\csname FV@CC@\string#1\endcsname{\the\catcode`#1}% - \expandafter\let\csname FV@KV@\string#1\endcsname\FV@KeyValues - \@tempg{% - \let\noexpand\FV@KeyValues\expandafter\noexpand - \csname FV@KV@\string#1\endcsname - \noexpand\FVC@Verb\expandafter\@gobble\string#1}% - \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do#1}% - \expandafter\def\expandafter\@sanitize\expandafter{\@sanitize\@makeother#1}% - \catcode`#1=\active}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\UndefineShortVerb} -% \begin{macrocode} -\def\UndefineShortVerb#1{% - \@ifundefined{FV@CC@\string#1}% - {\FV@Error{`\expandafter\@gobble\string#1' is not a short - verb character}\FV@eha}% - {\FV@UndefineShortVerb#1}} -% \end{macrocode} -% \end{macro} -% -% \changes{v2.6}{1998/07/17}{Correct a bug to undefine the macro associated -% to short verbatim character -% (reported by Mikhail Kolodin on June 12, 1998).} -% -% \ifChangeBar\begin{changebar}\fi -% \begin{macro}{\FV@UndefineShortVerb} -% \begin{macrocode} -\def\FV@UndefineShortVerb#1{% - \catcode`#1=\csname FV@CC@\string#1\endcsname -%% DG/SR modification begin - Jun. 12, 1998 - \expandafter\let\csname FV@CC@\string#1\endcsname\relax -%% DG/SR modification end - \begingroup - \lccode`\~=`#1% - \lowercase{\gdef\@tempg{\let~}}% - \endgroup - \expandafter\@tempg\csname FV@AC@\string#1\endcsname - \def\@tempa##1\do#1##2\@nil##3\@nil##4\@@nil{##3\def\dospecials{##1##2}\fi}% - \expandafter\@tempa\dospecials\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil - \def\@tempa##1\@makeother#1##2\@nil##3\@nil##4\@@nil{% - ##3\def\@sanitize{##1##2}\fi}% - \expandafter\@tempa\@sanitize\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil} -% \end{macrocode} -% \end{macro} -% \ifChangeBar\end{changebar}\fi -% -% Moving verbatim. Need to worry about using separate identifier -% for this class of verbatim, and -% -% \begin{macro}{\SaveMVerb} -% \begin{macrocode} -\def\SaveMVerb{\FV@Command{}{SaveMVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@SaveMVerb} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active% -\gdef\FVC@SaveMVerb#1#2{% - \@ifundefined{FV@SVM@#1}{}% - {\FV@Error{Moving verbatim name `#1' already used}% - {I will overwrite the old definition. Hit <return> to continue.}}% - \global\@namedef{FV@SVM@#1}{}% - \begingroup% - \let\FV@SavedKeyValues\FV@KeyValues% - \FV@UseKeyValues% - \FV@CatCodes% - \outer\def^^M{}% - \global\let\@tempg\FancyVerbAfterSave% - \catcode`#2=12% - \def\@tempa{\def\FancyVerbGetVerb####1####2}% - \expandafter\@tempa\string#2{% - \if@filesw - \FV@DefineWhiteSpace% - \let\FV@Space\space% - \let\FV@Tab\space% - \FV@MakeUnActive% - \let\protect\string - \immediate\write\@auxout{% - \noexpand\SaveGVerb[\FV@SavedKeyValues]{#1}\string#2##2\string#2}% - \fi - \endgroup% - \@namedef{FV@SV@#1}{##2}% - \@tempg}% - \FancyVerbGetVerb\FV@EOL}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\SaveGVerb} -% \begin{macrocode} -\def\SaveGVerb{\FV@Command{}{SaveGVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@SaveGVerb} -% \begin{macrocode} -\begingroup -\catcode`\^^M=\active% -\gdef\FVC@SaveGVerb#1#2{% - \global\@namedef{FV@SVG@#1}{}% - \begingroup% - \FV@UseKeyValues% - \FV@CatCodes% - \outer\def^^M{}% - \catcode`#2=12% - \def\@tempa{\def\FancyVerbGetVerb####1####2}% - \expandafter\@tempa\string#2{\endgroup\global\@namedef{FV@SVG@#1}{##2}}% - \FancyVerbGetVerb\FV@EOL}% -\endgroup -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\UseMVerb} -% \begin{macrocode} -\def\UseMVerb{\protect\pUseMVerb} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\pUseMVerb} -% \begin{macrocode} -\def\pUseMVerb{\FV@Command{}{pUseMVerb}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FVC@pUseMVerb} -% \begin{macrocode} -\def\FVC@pUseMVerb#1{% - \expandafter\ifx \csname FV@SVM@#1\endcsname\relax - \expandafter\ifx \csname FV@SVG@#1\endcsname\relax - \@warning{Moving verbatim text not defined for name `#1'}\FV@eha - {\bf ??}% - \else - \FV@UseVerb{\@nameuse{FV@SVG@#1}}% - \fi - \else - \FV@UseVerb{\@nameuse{FV@SVM@#1}}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\expandafter\ifx\csname documentclass\endcsname\relax -% \end{macrocode} -% -% \DescribeEnv{lrbox} -% \begin{macrocode} - \def\lrbox#1{% - \edef\@tempa{% - \endgroup - \setbox#1\hbox{% - \begingroup\aftergroup}% - \def\noexpand\@currenvir{\@currenvir}}% - %\def\noexpand\@currenvline{\on@line}}% - \@tempa - \@endpefalse - \bgroup - \ignorespaces} - \def\endlrbox{\unskip\egroup} -% \end{macrocode} -% -% \begin{macrocode} -\fi -% \end{macrocode} -% -% \begin{macrocode} -%% DG/SR modification begin - Mar 21 2000 -%%\@input{fancyvrb.rc} -\InputIfFileExists{fancyvrb.cfg}{}{} -%% DG/SR modification end -% \end{macrocode} -% -% \noindent Unused code - don't take care! (DG/SR) -% -% \noindent Error messages to void: -% -% \iffalse -% \begin{verbatim} -% \FV@CheckBadBegin -% \FV@CheckBadEnd -% -% \define@key{FV}{noligs}{% -% \def\FV@ActiveLigs{}% -% \def\FV@DefineLigs{}% -% \@tfor\@tempa:=#1\do{% -% {\lccode`\~=`#1\relax\lowercase{\gdef\@tempg{~}}}% -% \expandafter\FV@addtonoligs\@tempg}} -% \def\FV@addtonoligs#1{% -% \expandafter\def\expandafter\FV@ActiveLigs\expandafter{% -% \FV@ActiveLigs\catcode`#1=\active}% -% \expandafter\def\expandafter\FV@DefineLigs\expandafter{% -% \FV@DefineLigs\edef#1{{\string#1}}}} -% -% \fvset{suppressligs=\'} -% -% \fvset{noligs={>,-}} -% \fvset{suppressligs=\>} -% \fvset{suppressligs=\<} -% -% \def\FV@Error#1#2{% -% \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% -% \typeout{% -% ^^J** FancyVerb Error:\space\space -% Type \space H <return> \space for immediate help. **}% -% \errmessage{#1^^J}} -% \end{verbatim} -% \fi -%</fancyvrb> -% -% \Finale -%%% \PrintIndex -% \PrintChanges -% -\endinput -%% -%% End of file `fancyvrb.dtx' diff --git a/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.ins b/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.ins deleted file mode 100644 index 4f6e0bae73d..00000000000 --- a/Master/texmf-dist/source/latex/fancyvrb/fancyvrb.ins +++ /dev/null @@ -1,35 +0,0 @@ -%% `fancyvrb.ins' -%% -%% Docstrip installation instruction file for docstyle `fancyvrb' -%% -%% Timothy Van Zandt (Princeton University - USA) <tvz@Princeton.EDU> -%% June 24, 1998 - -\def\batchfile{fancyvrb.ins} -\input docstrip.tex -\keepsilent -\Msg{*** Generating the `fancyvrb' package ***} -\askforoverwritefalse -\generate{\file{fancyvrb.sty}{\from{fancyvrb.dtx}{fancyvrb}}} - -\ifToplevel{% -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the file} -\Msg{* fancyvrb.sty searched by TeX.} -\Msg{*} -\Msg{* To produce the documentation, run the file `fvrb-ex.dtx'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* If you require the commented code, desactivating the} -\Msg{* OnlyDescription macro, you must recompile, execute:} -\Msg{* `makeindex -s PATH/gind.ist fancyvrb'} -\Msg{* `makeindex -s PATH/gglo.ist -o fancyvrb.gls fancyvrb.glo'} -\Msg{* and recompile.} -\Msg{*} -\Msg{***********************************************************} -} - -\endinput -%% -%% End of file `fancyvrb.ins' diff --git a/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.dtx b/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.dtx deleted file mode 100644 index 65d24f0fd09..00000000000 --- a/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.dtx +++ /dev/null @@ -1,1564 +0,0 @@ -% \iffalse meta-comment, etc. -%% -%% Package `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') -%% -%% COPYING: -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> March 27, 1998 -%% -% \fi -% -% \changes{v1.9}{2010/05/16}{Use LPPL as license and fix bug with loading pstricks (hv)} -% \changes{v1.8}{2010/01/04}{Use ^^ instead of eight-bits chars. [KB/ER]} -% \changes{v1.7}{1998/03/26}{First public release.} -% \changes{v0.1}{1995}{First personal version.} -% -% \newif\ifmulticols -% \IfFileExists{multicol.sty}{\multicolstrue}{\multicolsfalse} -% \newif\ifpstricks -% \IfFileExists{pstricks.sty}{\pstrickstrue}{\pstricksfalse} -% -% \DoNotIndex{\\,\^,\£,\§,\µ,\¶} ^^A Unefficient... -% \DoNotIndex{\@defpar,\@gobble,\@ifnextchar,\@tempdimb} -% \DoNotIndex{\active,\advance,\Answer@No,\Answer@Yes,\author} -% \DoNotIndex{\begin,\begingroup,\box} -% \DoNotIndex{\catcode,\center,\circle,\CodelineIndex,\color,\ColorVersion} -% \DoNotIndex{\date,\DeclareOption,\def,\DocInput,\documentclass,\dp} -% \DoNotIndex{\else,\EnableCrossrefs,\end,\endcenter,\endgroup,\endinput} -% \DoNotIndex{\endpspicture,\expandafter} -% \DoNotIndex{\fboxsep,\fcolorbox,\fi,\filedate,\fileversion,\footnotesize} -% \DoNotIndex{\FV@XRightMargin,\fvset,\GetFileInfo,\hbadness,\hbox,\hfuzz} -% \DoNotIndex{\iden,\IfFileExists,\ifmmode,\ifpstricks,\ifx,\input} -% \DoNotIndex{\jobname,\large} -% \DoNotIndex{\m@th,\maketitle,\mathbf,\mathit,\mathnormal} -% \DoNotIndex{\mathsl,\mathtt,\message,\mu,\multiply} -% \DoNotIndex{\NeedsTeXFormat,\newcommand,\newif,\newpsobject,\newread} -% \DoNotIndex{\Oldmakeindex,\OnlyDescription} -% \DoNotIndex{\par,\parindent,\pounds,\PrintChanges,\PrintIndex} -% \DoNotIndex{\ProcessOptions,\ProvidesPackage,\psellipse,\pspicture} -% \DoNotIndex{\PSTricksLoaded,\pstrickstrue,\put} -% \DoNotIndex{\Question@Color,\Question@Mark} -% \DoNotIndex{\read,\RecordChanges,\RecustomVerbatimEnvironment,\relax} -% \DoNotIndex{\RequirePackage} -% \DoNotIndex{\section,\setbox,\setlength,\smallskip,\space,\strip} -% \DoNotIndex{\textbf,\textcolor,\textit,\textsc,\textsf,\textsl,\texttt} -% \DoNotIndex{\textwidth,\title,\topsep,\ttyin} -% \DoNotIndex{\underline,\unitlength,\usepackage} -% \DoNotIndex{\VerbatimEnvironment,\VerbatimInput,\vspace,\z@} -% -% \setcounter{IndexColumns}{2} -% -% \newcommand{\FVrbPackage}{`\textsf{fancyvrb}'} -% \newcommand{\FVrbExPackage}{`\textsf{fvrb-ex}'} -% \newcommand{\HbawPackage}{`\textsf{hbaw}'} -% \newcommand{\HcolorPackage}{`\textsf{hcolor}'} -% -% \title{The `\textsf{fvrb-ex}' package\\ -% Example environments\\with the \FVrbPackage{} package} -% \author{Denis Girou\\CNRS/IDRIS\\Orsay -- France\\ -% {\footnotesize email: Denis.Girou@idris.fr}} -% \date{Version 1.9\\\today} -% -% \maketitle -% -% \begin{abstract} -% This package, built above the \FVrbPackage{} one (from Timothy -% \textsc{van Zandt}), offer several kinds of the so-called \emph{example} -% environments to format some code both in ``verbatim'' mode and in the -% ``normal'' way, below or on the side. The advantage of such environments -% is that the code itself is included only one time in the source code, -% which allow to be sure of the consistence of the two versions shown. -% -% Some other kinds of such environments are specially devoted to graphics, -% allowing to give the size of them. It is possible in this case to draw -% also a grid. -% \end{abstract} -% -% \ifmulticols -% \setlength{\columnseprule}{0.6pt} -% \begin{multicols}{2} -% {\parskip 0pt ^^A We have to reset \parskip (bug in \LaTeX) -% \fi -% \tableofcontents -% \ifmulticols -% } -% \end{multicols} -% \fi -% -% \section{Introduction} -% -% These macros are based on some previous work of Timothy \textsc{van -% Zandt}, adapted and developed to suit my personal needs. -% -% This package is built above the \FVrbPackage{} one (from Timothy -% \textsc{van Zandt}), to offer some \emph{example} environments showing both -% the code and it result. It main strength is that it allow to use all the -% power of \FVrbPackage{}, with it great number of customization parameters. -% -% These macros can also be used in conjunction with the \HbawPackage{} and -% \HcolorPackage{} packages, to allow to generate the verbatim code with -% some \emph{highlighting} attributes to emphasize parts of the text. -% It can also produce different effects according to the choice of a -% \emph{colored} or \emph{black and white} version. This last facility was -% developed for slides, to allow to generate them both in color for -% projection and in black and white to distribute them as paper copy. -% -% Some special environments for graphic drawings allow to define directly -% the size of them, without requiring to use also a \emph{picture} -% environment. To be able to use them, the PSTricks package must be available, -% even if these specialized environments can be used for graphics built with -% another macro language than PSTricks. -% -% \begin{quote} -% \textbf{\large Warning!} You must be aware that it has been reported -% that this package doesn't work at all on some platforms, due to the way -% the 8~bits characters are managed by some \TeX{} systems. -% \end{quote} -% -% \section{User interface} -% -% \begin{quote} -% \textbf{\large Warning!} We suppose here that you already know the -% \FVrbPackage{} package. If not, look at it own documentation! -% \end{quote} -% -% \subsection{Environments} -% -% \noindent Five new environments are defined: -% -% \begin{description} -% \item[Example]: show the verbatim text and the formatted result below. -% \item[CenterExample]: same than \texttt{Example}, but the result is -% centered. -% \item[SideBySideExample]: show the formatted result on the left and the -% verbatim text on the right. The result is centered vertically according to -% the text. -% \item[PCenterExample]: same than \texttt{CenterExample}, but the -% result is put inside a PSTricks \texttt{pspicture} environment. It is -% undefined if PSTricks is not available. It is specially devoted to graphic -% drawings, but not specially built with PSTricks itself. It require to -% specify the dimensions of the graphic. In fact, it is the same thing than -% to use the \texttt{CenterExample} environment and to put the material -% inside a \LaTeX{} \texttt{picture} or PSTricks \texttt{pspicture} -% environment, but it can be more convenient to have not to specify this -% one explicitely. -% \item[PSideBySideExample]: same than \texttt{SideBySideExample}, but the -% result is put inside a PSTricks \texttt{pspicture} environment. The -% preceding comments for \texttt{PCenterExample} are of course also valid -% for it. -% \end{description} -% -% \noindent The syntax of the first three is: -% -% \begin{Verbatim} -% \begin{EnvironmentName}[optional_fancyvrb_arguments] -% .................................................. -% \end{EnvironmentName} -% \end{Verbatim} -% -% \noindent and for the two last ones: -% -% \begin{Verbatim} -% \begin{EnvironmentName}[opt_fvrb_args][(x_min,y_min)](x_max,y_max) -% ................................................................ -% \end{EnvironmentName} -% \end{Verbatim} -% -% In these last cases, default values for \verb+x_min+ and \verb+y_min+ are -% 0. -% -% \subsection{Loading options} -% -% \begin{description} -% \item[baw] : allow highlighting for a \emph{b}lack \emph{a}nd \emph{w}hite -% version. In this case the \HbawPackage{} will be loaded and it definitions -% will be active to emphasize texts. -% \item[color] : allow highlighting for a \emph{color} version. In this case -% the \HcolorPackage{} will be loaded and it definitions will be active to -% emphasize texts. -% \item[bawcolor] : doesn't specify in the file if it will be a \emph{b}lack -% \emph{a}nd \emph{w}hite or a \emph{color} version to generate. A question -% will be asked interactively at compile time. This allow to generate at -% choice one of the two versions without any change in the file. -% \item[pstricks] : require the loading of PSTricks (which of course must be -% available on the system) to be able to use the special environments -% devoted to graphics (but not at all mandatory PSTricks graphics). -% \end{description} -% -% Of course, these three keywords are mutually exclusive. If none of the -% \texttt{baw}, \texttt{color} or \texttt{bawcolor} keyword is specified, -% none of the supplementary files will be loaded. -% -% \subsection{\FVrbPackage{} options imposed} -% -% \noindent The following \FVrbPackage{} parameters are imposed: -% -% \begin{description} -% \item[gobble=2]: each line inside these environments is supposed to be -% indented by 2 characters. It only concern the aspect of the source code, -% which will be more readable like that. -% \item[numbersep=3pt]: it will be effective only if \texttt{numbers=left} -% or \texttt{numbers=right} will be chosen. -% \item[commentchar=W]: it is the comment character for the source text, -% which will not be printed in the verbatim part, but executed in the -% formatted part. So, it allow to have the example not generated by the code -% shown, which can be surprising for readers and must be used only with -% care in special circumstances! Character chosen is 163 (£). If it cannot -% be used on your system or if you have it inside your verbatim text, you -% must change it by yourself in the package file. -% \item[commandchars=XYZ]: respectively the \emph{escape}, \emph{beginning -% of group} and \emph{end of group} characters, to allow escape sequences -% (\LaTeX{} commands as font and color changes) to be applied on the -% verbatim text, using the \HbawPackage{} or \HcolorPackage{} packages. -% These characters are specially chosen to probably be used by nobody in -% their codes... Characters chosen are those of codes 167, 181 and 182 -% (§µ¶). If they cannot be used on your system or if you have some of them -% inside your verbatim text, you must made yourself the relevant changes in -% the three files of the package. -% \end{description} -% -% \section{Usage examples} -% -% \subsection{Usage of the environments} -% -% \RecustomVerbatimEnvironment{Verbatim}{Verbatim} -% {gobble=4,commentchar=£,numbers=left,numbersep=3pt,frame=single} -% -% \begin{Verbatim} -% \begin{Example} -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Example} -% \end{Verbatim} -% -% \begin{Example} -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Example} -% -% \vspace{5mm} -% It is possible to customize the verbatim environments as in the standard -% way defined by \FVrbPackage{}, locally as argument of the -% environment\footnote{Take care that you must define these parameters -% directly for the \texttt{Example}, \texttt{CenterExample} and -% \texttt{SideBySideExample} environments, but that you must put them inside -% a \cs{fvset} macro for the \texttt{PCenterExample} and -% \texttt{PSideBySideExample} ones, as in these cases you can also specify -% some PSTricks parameters, using the \cs{psset} macro.}, -% or globally using the \cs{fvset} command. -% -% \begin{Verbatim} -% \begin{Example}[frame=lines,framerule=1mm,numbers=left] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Example} -% \end{Verbatim} -% -% \begin{Example}[frame=lines,framerule=1mm,numbers=left] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{Example} -% -% \begin{Verbatim} -% \begin{CenterExample}[frame=single,numbers=right] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{CenterExample} -% \end{Verbatim} -% -% \begin{CenterExample}[frame=single,numbers=right] -% First verbatim line. -% Second verbatim line. -% Third verbatim line. -% \end{CenterExample} -% -% \newlength\MyLength -% \MyLength=\textwidth -% \advance\MyLength -4.7cm -% -% \noindent -% \begin{minipage}{4.7cm} -% \begin{SideBySideExample}[xrightmargin=3cm,numbers=left] -% First -% Second -% \end{SideBySideExample} -% \end{minipage}% -% \begin{minipage}{\MyLength} -% \begin{Verbatim} -% \begin{SideBySideExample} -% [xrightmargin=3cm,numbers=left] -% First -% Second -% \end{SideBySideExample} -% \end{Verbatim} -% \end{minipage} -% -% \ifpstricks ^^A If PSTricks is available -% \vspace{5mm} -% As explained, the \texttt{PCenterExample} and \texttt{PSideBySideExample} -% environments, specially devoted to graphics, put their contents inside a -% PSTricks \texttt{pspicture} environment\footnote{The $*$ convention of the -% \texttt{pspicture} environment is not accepted here.}. So, we must define -% the size of it. -% -% \begin{Verbatim} -% \fvset{frame=lines,framerule=0.5mm,numbers=left} -% -% \begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) -% \setlength{\unitlength}{1cm} -% \put(0,0){\circle{1}} -% \end{PCenterExample} -% \end{Verbatim} -% -% \begin{PCenterExample}[frame=lines,framerule=0.5mm,numbers=left]% -% (-0.5,-0.5)(0.5,0.5) -% \setlength{\unitlength}{1cm} -% \put(0,0){\circle{1}} -% \end{PCenterExample} -% -% \noindent So, it is the same thing than to do: -% -% \begin{Verbatim} -% \fvset{frame=lines,framerule=0.5mm,numbers=left} -% -% \begin{CenterExample} -% \setlength{\unitlength}{1cm} -% \begin{picture}(1,1)(-0.5,-0.5) -% \put(0,0){\circle{1}} -% \end{picture} -% \end{CenterExample} -% \end{Verbatim} -% -% \begin{CenterExample}[frame=lines,framerule=0.5mm,numbers=left] -% \setlength{\unitlength}{1cm} -% \begin{picture}(1,1)(-0.5,-0.5) -% \put(0,0){\circle{1}} -% \end{picture} -% \end{CenterExample} -% -% Using the\cs{showgrid} macro, we can require to superpose the graphic -% above a grid, which can help to built it as desired. The size of the -% picture must be at least of 1 unit in this case, and the grid is rounded to -% the next greater integer. -% -% \begin{Verbatim} -% \showgrid -% \begin{PCenterExample}[frame=single,numbers=left](-1,-1)(1,1) -% \setlength{\unitlength}{1cm} -% \put(0,0){\circle{1}} -% \end{PCenterExample} -% \end{Verbatim} -% -% {\showgrid -% \begin{PCenterExample}[frame=single,numbers=left](-1,-1)(1,1) -% \setlength{\unitlength}{1cm} -% \put(0,0){\circle{1}} -% \end{PCenterExample} -% } -% -% \begin{Verbatim} -% \fvset{frame=single,xrightmargin=5cm} -% \begin{PSideBySideExample}(-2,-1)(2,1) -% \psellipse*[linecolor=yellow](2,1) -% \end{PSideBySideExample} -% -% \showgrid -% \begin{PSideBySideExample}(-2,-1)(2,1) -% \psellipse[linestyle=dashed](2,1) -% \end{PSideBySideExample} -% \end{Verbatim} -% -% {\fvset{frame=single,xrightmargin=5cm} -% \begin{PSideBySideExample}(-2,-1)(2,1) -% \psellipse*[linecolor=yellow](2,1) -% \end{PSideBySideExample} -% -% \showgrid -% \begin{PSideBySideExample}(-2,-1)(2,1) -% \psellipse[linestyle=dashed](2,1) -% \end{PSideBySideExample} -% } -% -% \vspace{5mm} -% The special £ character defined as the comment for \FVrbPackage{} must be -% used with care, as it allow to change the code run in the formatted part -% without showing these changes in the verbatim part. So, the code shown will -% not correspond any more in this case to the one which produce the result... -% (we must take care also to do not indent these lines, otherwise we will -% change the formatting...). -% -% Nevertheless, in very special circumstances, it allow to do special tricks. -% -% \begin{Verbatim}[commentchar=Z] -% \begin{CenterExample}[frame=lines,framerule=0.5mm] -% First verbatim line. -% £\textit{% -% Second verbatim line. -% £} -% £\LARGE -% Third verbatim line. -% \end{CenterExample} -% \end{Verbatim} -% -% \begin{CenterExample}[frame=lines,framerule=0.5mm] -% First verbatim line. -% £\textit{% -% Second verbatim line. -% £} -% £\LARGE -% Third verbatim line. -% \end{CenterExample} -% -% \else ^^A If PSTricks is not available -% \begin{quote} -% \textbf{\large Warning!} The \texttt{PCenterExample} and -% \texttt{PSideBySideExample} are not demonstrated here, because PSTricks -% was not found on your platform. -% \end{quote} -% \fi -% -% \subsection{Usage of the \HbawPackage{} and \HcolorPackage{} packages} -% -% If the option \texttt{baw}, \texttt{color} or \texttt{bawcolor} is chosen, -% we can use special commands to emphasize text in the verbatim formatting. -% It allow mainly to change the font or the color of special parts of the text. -% -% \noindent Here we suppose that the package option \texttt{baw} for the -% \FVrbExPackage{} has been chosen: -% -% \begin{Verbatim} -% \begin{CenterExample}[frame=single,numbers=right] -% §HLaµFirst¶ verbatim line. -% §HLbµSecond¶ verbatim line. -% §HLCBWzµThird¶ verbatim line. -% \end{CenterExample} -% \end{Verbatim} -% -% \begin{CenterExample}[frame=single,numbers=right] -% §HLaµFirst¶ verbatim line. -% §HLbµSecond¶ verbatim line. -% §HLCBWzµThird¶ verbatim line. -% \end{CenterExample} -% -% \ifpstricks ^^A If PSTricks is available -% \begin{Verbatim} -% \fvset{frame=single} -% \begin{PSideBySideExample}[xrightmargin=5.5cm](-2,-1)(2,1) -% \psellipse[linestyle=§HLCBWzµdashed¶](2,1) -% \end{PSideBySideExample} -% -% \begin{PSideBySideExample}[xrightmargin=4.5cm](-2,-1)(2,1) -% \psellipse[linestyle=§HLbµdotted¶](2,1) -% \end{PSideBySideExample} -% \end{Verbatim} -% -% {\fvset{frame=single} -% \begin{PSideBySideExample}[xrightmargin=5.5cm](-2,-1)(2,1) -% \psellipse[linestyle=§HLCBWzµdashed¶](2,1) -% \end{PSideBySideExample} -% -% \begin{PSideBySideExample}[xrightmargin=4.5cm](-2,-1)(2,1) -% \psellipse[linestyle=§HLbµdotted¶](2,1) -% \end{PSideBySideExample} -% } -% \fi -% -% \subsection{Thanks} -% -% I thank you Sebastian \textsc{Rahtz} \verb+<s.rahtz@elsevier.co.uk>+, -% Thomas \textsc{Siegel} \verb+<siegel@aix520.informatik.uni-leipzig.de>+ and -% Rolf \textsc{Niepraschk}\break\relax \verb+<niepraschk@ptb.de>+ for their -% tests and comments on preliminary versions of this package. -% -% -% ^^A .................... End of the documentation part .................... -% -% \section{Driver file} -% -% The next bit of code contains the documentation driver file for \TeX{}, -% i.e., the file that will produce the documentation you are currently -% reading. It will be extracted from this file by the \texttt{docstrip} -% program. -% -% \begin{macrocode} -%<*driver> -\documentclass{ltxdoc} -\GetFileInfo{fvrb-ex.dtx} -\usepackage[baw,pstricks]{fvrb-ex} -\EnableCrossrefs -\CodelineIndex -\RecordChanges -%%\OnlyDescription % Comment it for implementation details -%\Oldmakeindex % Uncomment if your MakeIndex is pre-0.9 -\hbadness=7000 % Over and under full box warnings -\begin{document} - % To be able to use the letter "mu" - \catcode`\^^b5=\active - \def^^b5{$\mu$} - % To be able to use the letter "pound" - \catcode`\^^a3=\active - \def^^a3{$\pounds$} - \DocInput{fvrb-ex.dtx} -\end{document} -%</driver> -% \end{macrocode} -% -% \section{\FVrbExPackage{} code} -% -%<*fvrb-ex> -% -% \iffalse meta-comment, etc. -%% Package `fvrb-ex' -%% -% \fi -% -% \subsection{Preambule and options management} -% -% What we need. -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -% \end{macrocode} -% -% Who we are. -% \begin{macrocode} -\def\fileversion{1.9} -\def\filedate{2010/05/16} -\ProvidesPackage{fvrb-ex}[\filedate] -\message{`fvrb-ex' v\fileversion, \filedate\space (Denis Girou)} -% \end{macrocode} -% -% Require PSTricks if specified (to define the \texttt{PCenterExample} and -% \texttt{PSideBySideExample} environments). -% \begin{macrocode} -\newif\ifpstricks\pstricksfalse -\let\LoadPStricks=\relax -\DeclareOption{pstricks}{\def\LoadPStricks{\RequirePackage{pstricks}}\pstrickstrue} -% \end{macrocode} -% -% Declaration of the explicit black and white version. -% \begin{macrocode} -\DeclareOption{baw}{\def\ColorVersion{n}} -% \end{macrocode} -% -% Declaration of the explicit color version. -% \begin{macrocode} -\DeclareOption{color}{\def\ColorVersion{y}} -% \end{macrocode} -% -% Declaration option to choose black and white or color version. -% \begin{macrocode} -\DeclareOption{bawcolor}{\def\ColorVersion{?}} -% \end{macrocode} -% -% Process the options. -% \begin{macrocode} -\ProcessOptions\relax -\LoadPStricks -% \end{macrocode} -% -% Require the \FVrbPackage{} package. -% \begin{macrocode} -\ifpstricks\RequirePackage{pstricks}\fi -\RequirePackage{fancyvrb} -% \end{macrocode} -% -% To ask an interactive question if necessary (code from `docstrip'). -% \begin{macrocode} -\newread\ttyin -\def\iden#1{#1} -\def\strip#1#2 \@gobble{\def #1{#2}} -\def\@defpar{\par} -\def\@gobble#1{} -\def\Ask#1#2{% -\message{#2}\read\ttyin to #1\ifx#1\@defpar\def#1{}\else -\iden{\expandafter\strip\expandafter#1#1\@gobble\@gobble} \@gobble\fi} -% \end{macrocode} -% -% To be able to ask later to choose between color and black and white version. -% \begin{macro}{\Answer@Yes} -% \begin{macrocode} -\def\Answer@Yes{y} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Answer@No} -% \begin{macrocode} -\def\Answer@No{n} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Question@Mark} -% \begin{macrocode} -\def\Question@Mark{?} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Question@Color} -% \begin{macrocode} -\def\Question@Color{Color version? (y=yes)} -% \end{macrocode} -% \end{macro} -% -% For the highlighting style (color or black and white version), if defined. -% -% \begin{macro}{\Highlight@Attributes} -% \begin{macrocode} -\def\Highlight@Attributes{} % Default=nothing -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\NoHighlight@Attributes} -% \begin{macrocode} -\def\NoHighlight@Attributes{} % Default=nothing -% \end{macrocode} -% \end{macro} -% -% Forced choice of the \emph{black and white} version. -% \begin{macrocode} -\ifx\ColorVersion\Answer@Yes - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hcolor} % Color version -\fi -% \end{macrocode} -% -% Forced choice of the \emph{color} version. -% \begin{macrocode} -\ifx\ColorVersion\Answer@No - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hbaw} % Black and white version -\fi -% \end{macrocode} -% -% Choice of the highlighting style (color, black and white or nothing). -% \begin{macrocode} -\ifx\ColorVersion\Question@Mark - \Ask\ColorVersion{^^J\Question@Color} - \ifx\ColorVersion\Answer@Yes - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hcolor} % Color version - \else - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hbaw} % Black and white version - \fi -\fi -% \end{macrocode} -% -% Verbatim example environments must be indented by two spaces, which should -% be ignored. -% \begin{macrocode} -\fvset{gobble=2} -% \end{macrocode} -% -% To decide later if the result must be surimpose on a grid (useful only if -% PSTricks is available). -% \begin{macrocode} -\newif\ifFvrbEx@Grid -% \end{macrocode} -% -% \subsection{The various example environments} -% -% \DescribeEnv{Example} -% \texttt{Example} is an environment to show the verbatim code and -% the result just below. -% \begin{macrocode} -\def\Example{% -\catcode`\^^M=\active -\@ifnextchar[{\catcode`\^^M=5\Example@}{\catcode`\^^M=5\Begin@Example}} -% \end{macrocode} -% -% \cs{endExample} is a macro for the \texttt{Example} environment to close -% the verbatim part and to put the formatted result below. -% \begin{macrocode} -\def\endExample{% -\end{VerbatimOut}% -\Below@Example{\input{\jobname.tmp}}} -% \end{macrocode} -% -% \begin{macro}{\Example@} -% \cs{Example@} is an internal macro to set locally the \FVrbPackage{} options -% if needed (both for the \texttt{Example}, \texttt{CenterExample} and -% \texttt{SideBySideExample} environments). -% \begin{macrocode} -\def\Example@[#1]{\fvset{#1}\Begin@Example} -% \end{macrocode} -% \end{macro} -% -% \DescribeEnv{CenterExample} -% \texttt{CenterExample} is an environment to show the verbatim code and -% the result just below, inside a \texttt{center} environment. -% \begin{macrocode} -\def\CenterExample{% -\catcode`\^^M=\active -\@ifnextchar[{\catcode`\^^M=5\Example@}{\catcode`\^^M=5\Begin@Example}} -% \end{macrocode} -% -% \begin{macro}{\endCenterExample} -% \cs{endCenterExample} is a macro for the \texttt{CenterExample} -% environment to close the verbatim part and to put the formatted result below, -% centering it. -% \begin{macrocode} -\def\endCenterExample{% -\end{VerbatimOut}% -\center -\Below@Example{\input{\jobname.tmp}} -\endcenter} -% \end{macrocode} -% \end{macro} -% -% \DescribeEnv{SideBySideExample} -% \texttt{SideBySideExample} is an environment to show the verbatim code and -% the result on the left, using a \texttt{minipage} environment. -% \begin{macrocode} -\def\SideBySideExample{% -\catcode`\^^M=\active -\@ifnextchar[{\catcode`\^^M=5\Example@}% - {\catcode`\^^M=5\Begin@Example}} -% \end{macrocode} -% -% \begin{macro}{\endSideBySideExample} -% \cs{endSideBySideExample} is a macro for the \texttt{SideBySideExample} -% environment to close the verbatim part and to put the formatted result on -% the left side. -% \begin{macrocode} -\def\endSideBySideExample{% -\end{VerbatimOut}% -\SideBySide@Example{\input{\jobname.tmp}}} -% \end{macrocode} -% \end{macro} -% -% \subsection{General macros} -% -% \begin{macro}{\Begin@Example} -% \cs{Begin@Example} is an internal macro to start an example environment. -% \begin{macrocode} -\newcommand{\Begin@Example}{% -\parindent=0pt -\multiply\topsep by 2 -\VerbatimEnvironment -\begin{VerbatimOut}[codes={\catcode`\^^a3=12\catcode`\^^a7=12\catcode`\^^b5=12% - \catcode`\^^b6=12}]{\jobname.tmp}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Below@Example} -% \cs{Below@Example} is an internal macro to insert the verbatim part and -% to put the formatted result just below. The possible highlighting must -% be suppressed and the comment character desactivated before to input the -% formatted part. -% \begin{macrocode} -\newcommand{\Below@Example}[1]{% -\VerbatimInput[gobble=0,commentchar=^^a3,commandchars=^^a7^^b5^^b6,numbersep=3pt]% - {\jobname.tmp} -\catcode`\^^a3=9\relax% -\NoHighlight@Attributes % To suppress possible highlighting -\ifFvrbEx@Grid\vspace{5pt}\fi -#1% -\ifFvrbEx@Grid\vspace{5pt}\fi -\par} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\SideBySide@Example} -% \cs{SideBySide@Example} is an internal macro to insert the verbatim part and -% to put the formatted result on the left side, using a \texttt{minipage} -% environment. The possible highlighting must be suppressed and the comment -% character desactivated before to input the formatted part. -% \begin{macrocode} -\newcommand{\SideBySide@Example}[1]{% -\@tempdimb=\FV@XRightMargin -\advance\@tempdimb -5mm -\begin{minipage}[c]{\@tempdimb} - \fvset{xrightmargin=0pt} - \catcode`\^^a3=9\relax% - \NoHighlight@Attributes % To suppress possible highlighting - #1 -\end{minipage}% -\@tempdimb=\textwidth -\advance\@tempdimb -\FV@XRightMargin -\advance\@tempdimb 5mm -\begin{minipage}[c]{\@tempdimb} - \VerbatimInput[gobble=0,commentchar=^^a3,commandchars=^^a7^^b5^^b6,numbersep=3pt, - xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} -\end{minipage}} -% \end{macrocode} -% \end{macro} -% -% \subsection{Example environments using the \texttt{pspicture} PSTricks one} -% -% Of course, PSTricks must be available to be able to use them. -% \begin{macrocode} -\ifx\PSTricksLoaded\endinput -% \end{macrocode} -% -% Grid definition (using PSTricks). -% \begin{macrocode} - \newcommand{\showgrid}{\FvrbEx@Gridtrue} - \newpsobject{FvrbExGrid}{psgrid}{subgriddiv=0,griddots=10,gridlabels=7pt} -% \end{macrocode} -% -% \DescribeEnv{PCenterExample} -% \texttt{PCenterExample} is an environment to show the verbatim code and -% the result just below, inside a \texttt{center} environment. -% \begin{macrocode} - \def\PCenterExample{\@ifnextchar[{\Pst@Example}{\Pst@@Example}} -% \end{macrocode} -% -% \begin{macro}{\endPCenterExample} -% \cs{endPCenterExample} is a macro for the \texttt{PCenterExample} -% environment to close the verbatim part and to put the formatted result below, -% inside a PSTricks \texttt{pspicture} environment, and centering it. -% \begin{macrocode} - \def\endPCenterExample{% - \end{VerbatimOut}% - \Below@Example{% - \center - \expandafter\pspicture\Picture@Size - \ifFvrbEx@Grid\FvrbExGrid\fi\relax - \input{\jobname.tmp}% - \endpspicture - \endcenter - \smallskip}} -% \end{macrocode} -% \end{macro} -% -% \DescribeEnv{PSideBySideExample} -% \texttt{PSideBySideExample} is an environment to show the verbatim code and -% to put the formatted result on the left side, inside a PSTricks -% \texttt{pspicture} environment. -% \begin{macrocode} - \def\PSideBySideExample{\@ifnextchar[{\Pst@Example}{\Pst@@Example}} -% \end{macrocode} -% -% \begin{macro}{\endPSideBySideExample} -% \cs{endPSideBySideExample} is a macro for the \texttt{PSideBySideExample} -% environment to close the verbatim code and to put the formatted result on -% the left side, inside a PSTricks \texttt{pspicture} environment. -% \begin{macrocode} - \def\endPSideBySideExample{% - \end{VerbatimOut}% - \SideBySide@Example{% - \ifFvrbEx@Grid\vspace{5pt}\fi - \expandafter\pspicture\Picture@Size - \ifFvrbEx@Grid\FvrbExGrid\fi\relax - \input{\jobname.tmp}% - \endpspicture - \ifFvrbEx@Grid\vspace{5pt}\fi - \smallskip}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Pst@Example} -% \cs{Pst@Example} is an internal macro to set locally the \FVrbPackage{} -% options if needed (both for \texttt{PCenterExample} and -% \texttt{PSideBySideExample} environments). -% \begin{macrocode} - \def\Pst@Example[#1]{\fvset{#1}\Pst@@Example} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Pst@@Example} -% \cs{Pst@@Example} is an internal macro to define the starting point of the -% \texttt{pspicture} environment to used. -% \begin{macrocode} - \def\Pst@@Example#1(#2,#3){% - \catcode`\^^M=\active - \@ifnextchar({\catcode`\^^M=5\Pst@@@Example(#2,#3)} - {\catcode`\^^M=5\Pst@@@Example(0,0)(#2,#3)}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Pst@@@Example} -% \cs{Pst@@@Example} is an internal macro to transmit the size of the -% \texttt{pspicture} environment to used and to call the relevant internal -% macro to insert the verbatim part. -% \begin{macrocode} - \def\Pst@@@Example(#1,#2)(#3,#4){% - \def\Picture@Size{(#1,#2)(#3,#4)}% - \Begin@Example} -% \end{macrocode} -% \end{macro} -% -% End of the code for environments using PSTricks. -% \begin{macrocode} -\fi % End \ifx\PSTricksLoaded -% \end{macrocode} -%</fvrb-ex> -% -% \section{\HbawPackage{} code} -% -%<*hbaw> -% -% \iffalse meta-comment, etc. -%% Package `hbaw' -%% -% \fi -% -% What we need. -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -% \end{macrocode} -% -% Who we are. -% \begin{macrocode} -\def\fileversion{1.4} -\def\filedate{1998/03/19} -\ProvidesPackage{hbaw}[\filedate] -\message{`hbaw' v\fileversion, \filedate\space (Denis Girou)} -% \end{macrocode} -% -% \begin{macro}{\FvrbEx@ColoredBox} -% \cs{FvrbEx@ColoredBox} is an internal macro to print some text in bold face -% in a defined color, inside a colored box of another color. -% \begin{macrocode} -\newcommand{\FvrbEx@ColoredBox}[3]{% -\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Highlight@Attributes} -% \cs{Highlight@Attributes} is an internal macro to define a serie of -% highlighting macros to emphasize text in a black and white mode. -% All have a corresponding version in color mode, using the \HcolorPackage{} -% package. We take care here of possible mathematic material. -% \begin{macrocode} -\def\Highlight@Attributes{% -% \end{macrocode} -% \end{macro} -% -% Some font changes. -% \begin{macrocode} -\def\HLa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLb##1{\ifmmode\mathsl{##1}\else\textsl{##1}\fi} -\def\HLc##1{##1} -\def\HLd##1{##1} -\def\HLe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLf##1{##1} -\def\HLq##1{##1} -\def\HLr##1{##1} -\def\HLz##1{##1} -% \end{macrocode} -% -% Bold text. -% \begin{macrocode} -\def\HLBFa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFb##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFc##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFd##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFf##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFz##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -% \end{macrocode} -% -% Italic text (\verb+\textsl+ rather than \verb+\textit+ due to the problem -% of the coding of the \$ character). -% \begin{macrocode} -\def\HLITa##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITb##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITc##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITd##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITe##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITf##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITz##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -% \end{macrocode} -% -% Small capitals text. -% \begin{macrocode} -\def\HLSCa##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCb##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCc##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCd##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCe##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCf##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCz##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -% \end{macrocode} -% -% Teletype writer text. -% \begin{macrocode} -\def\HLTTa##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTb##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTc##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTd##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTe##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTf##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTq##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTr##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTz##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -% \end{macrocode} -% -% Italic and teletype writer text. -% \begin{macrocode} -\def\HLITTTa##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTb##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTc##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTd##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTe##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTf##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTz##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -% \end{macrocode} -% -% Black text inside a colored box. -% \begin{macrocode} -\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} -\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} -\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} -\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} -\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} -\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} -\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} -% \end{macrocode} -% -% White text inside a colored box (we replace cyan and yellow by green because -% these colors are not well seen in black and white mode). -% \begin{macrocode} -\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} -\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} -\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} -\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} -% \end{macrocode} -% -% Underlined text. -% \begin{macrocode} -\def\HLSa##1{\underline{##1}} -\def\HLSb##1{\underline{##1}} -\def\HLSc##1{\underline{##1}} -\def\HLSd##1{\underline{##1}} -\def\HLSe##1{\underline{##1}} -\def\HLSf##1{\underline{##1}} -\def\HLSz##1{\underline{##1}} -% \end{macrocode} -% -% Underlined text (same than preceding in this black and white version). -% \begin{macrocode} -\def\HLSaa##1{\underline{##1}} -\def\HLSbb##1{\underline{##1}} -\def\HLScc##1{\underline{##1}} -\def\HLSdd##1{\underline{##1}} -\def\HLSee##1{\underline{##1}} -\def\HLSef##1{\underline{##1}} -\def\HLSez##1{\underline{##1}} -% \end{macrocode} -% -% End of \cs{Highlight@Attributes}. -% \begin{macrocode} -} -% \end{macrocode} -% -% \begin{macro}{\NoHighlight@Attributes} -% \cs{NoHighlight@Attributes} is an internal macro to inhibit all -% the highlighting macros define by \cs{Highlight@Attributes}. It is -% necessary to call it before to insert the formatted part, as highlighting -% process must concern only the verbatim part. -% \end{macro} -% -% \begin{macrocode} -\def\NoHighlight@Attributes{% -% \end{macrocode} -% -% First, we re-establish the active catcodes for the verbatim mode. -% \begin{macrocode} -\catcode`\^^a7=0\relax% -\catcode`\^^b5=1\relax% -\catcode`\^^b6=2\relax% -% \end{macrocode} -% -% Desactivation of the highlighting macros. -% \begin{macrocode} -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -% \end{macrocode} -% -% End of \cs{NoHighlight@Attributes}. -% \begin{macrocode} -} -% \end{macrocode} -% -% Activation of the highlighting macros. -% \begin{macrocode} -\Highlight@Attributes -% \end{macrocode} -% -%</hbaw> -% -% \section{\HcolorPackage{} code} -% -%<*hcolor> -% -% \iffalse meta-comment, etc. -%% Package `hcolor' -%% -% \fi -% -% What we need. -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -% \end{macrocode} -% -% Who we are. -% \begin{macrocode} -\def\fileversion{1.4} -\def\filedate{1998/03/19} -\ProvidesPackage{hcolor}[\filedate] -\message{`hcolor' v\fileversion, \filedate\space (Denis Girou)} -% \end{macrocode} -% -% \begin{macro}{\FvrbEx@ColoredUnderline} -% \cs{FvrbEx@ColoredUnderline} is an internal macro to underline some text in -% color. -% \begin{macrocode} -\newcommand{\FvrbEx@ColoredUnderline}[3]{% -$\setbox\z@\hbox{\begingroup#3\endgroup}% -\dp\z@\z@\m@th\color{#1}\underline{\textcolor{#2}{\box\z@}}$} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FvrbEx@ColoredBox} -% \cs{FvrbEx@ColoredBox} is an internal macro to print some text in bold face -% in a defined color, inside a colored box of another color. -% \begin{macrocode} -\newcommand{\FvrbEx@ColoredBox}[3]{% -\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Highlight@Attributes} -% \cs{Highlight@Attributes} is an internal macro to define a serie of -% highlighting macros to emphasize text in a black and white mode. -% All have a corresponding version in black and white mode, using the -% \HbawPackage{} package. We do not take care here of possible mathematic -% material, but it can be done... -% \begin{macrocode} -\def\Highlight@Attributes{% -% \end{macrocode} -% \end{macro} -% -% Some font changes. -% \begin{macrocode} -\def\HLa##1{\textcolor{blue}{##1}} -\def\HLb##1{\textcolor{cyan}{##1}} -\def\HLc##1{\textcolor{green}{##1}} -\def\HLd##1{\textcolor{magenta}{##1}} -\def\HLe##1{\textcolor{red}{##1}} -\def\HLf##1{\textcolor{yellow}{##1}} -\def\HLq##1{\textcolor{PaleGreen}{##1}} -\def\HLr##1{\textcolor{SlateBlue}{##1}} -\def\HLz##1{\textcolor{black}{##1}} -% \end{macrocode} -% -% Colored bold text. -% \begin{macrocode} -\def\HLBFa##1{\textcolor{blue}{\textbf{##1}}} -\def\HLBFb##1{\textcolor{cyan}{\textbf{##1}}} -\def\HLBFc##1{\textcolor{green}{\textbf{##1}}} -\def\HLBFd##1{\textcolor{magenta}{\textbf{##1}}} -\def\HLBFe##1{\textcolor{red}{\textbf{##1}}} -\def\HLBFf##1{\textcolor{yellow}{\textbf{##1}}} -\def\HLBFz##1{\textcolor{black}{\textbf{##1}}} -% \end{macrocode} -% -% Colored italic text (\verb+\textsl+ rather than \verb+\textit+ due to the -% problem of the coding of the \$ character). -% \begin{macrocode} -\def\HLITa##1{\textcolor{blue}{\textsl{##1}}} -\def\HLITb##1{\textcolor{cyan}{\textsl{##1}}} -\def\HLITc##1{\textcolor{green}{\textsl{##1}}} -\def\HLITd##1{\textcolor{magenta}{\textsl{##1}}} -\def\HLITe##1{\textcolor{red}{\textsl{##1}}} -\def\HLITf##1{\textcolor{yellow}{\textsl{##1}}} -\def\HLITz##1{\textcolor{black}{\textsl{##1}}} -% \end{macrocode} -% -% Colored small capitals text. -% \begin{macrocode} -\def\HLSCa##1{\textcolor{blue}{\textsc{##1}}} -\def\HLSCb##1{\textcolor{cyan}{\textsc{##1}}} -\def\HLSCc##1{\textcolor{green}{\textsc{##1}}} -\def\HLSCd##1{\textcolor{magenta}{\textsc{##1}}} -\def\HLSCe##1{\textcolor{red}{\textsc{##1}}} -\def\HLSCf##1{\textcolor{yellow}{\textsc{##1}}} -\def\HLSCz##1{\textcolor{black}{\textsc{##1}}} -% \end{macrocode} -% -% Colored teletype writer text. -% \begin{macrocode} -\def\HLTTa##1{\textcolor{blue}{\texttt{##1}}} -\def\HLTTb##1{\textcolor{cyan}{\texttt{##1}}} -\def\HLTTc##1{\textcolor{green}{\texttt{##1}}} -\def\HLTTd##1{\textcolor{magenta}{\texttt{##1}}} -\def\HLTTe##1{\textcolor{red}{\texttt{##1}}} -\def\HLTTf##1{\textcolor{yellow}{\texttt{##1}}} -\def\HLTTq##1{\textcolor{ForestGreen}{\texttt{##1}}} -\def\HLTTr##1{\textcolor{PineGreen}{\texttt{##1}}} -\def\HLTTz##1{\textcolor{black}{\texttt{##1}}} -% \end{macrocode} -% -% Colored italic and teletype writer text. -% \begin{macrocode} -\def\HLITTTa##1{\textcolor{blue}{\textsl{\texttt{##1}}}} -\def\HLITTTb##1{\textcolor{cyan}{\textsl{\texttt{##1}}}} -\def\HLITTTc##1{\textcolor{green}{\textsl{\texttt{##1}}}} -\def\HLITTTd##1{\textcolor{magenta}{\textsl{\texttt{##1}}}} -\def\HLITTTe##1{\textcolor{red}{\textsl{\texttt{##1}}}} -\def\HLITTTf##1{\textcolor{yellow}{\textsl{\texttt{##1}}}} -\def\HLITTTz##1{\textcolor{black}{\textsl{\texttt{##1}}}} -% \end{macrocode} -% -% Black text inside a colored box. -% \begin{macrocode} -\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} -\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} -\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} -\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} -\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} -\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} -\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} -% \end{macrocode} -% -% White text inside a colored box. -% \begin{macrocode} -\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} -\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{cyan}{white}} -\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} -\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} -\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{yellow}{white}} -\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} -% \end{macrocode} -% -% Colored underlined text. -% \begin{macrocode} -\def\HLSa##1{\color{blue}\underline{##1}} -\def\HLSb##1{\color{cyan}\underline{##1}} -\def\HLSc##1{\color{green}\underline{##1}} -\def\HLSd##1{\color{magenta}\underline{##1}} -\def\HLSe##1{\color{red}\underline{##1}} -\def\HLSf##1{\color{yellow}\underline{##1}} -\def\HLSz##1{\color{black}\underline{##1}} -% \end{macrocode} -% -% Colored underlined colored text (with the same color). -% \begin{macrocode} -\def\HLSaa##1{\FvrbEx@ColoredUnderline{blue}{black}{##1}} -\def\HLSbb##1{\FvrbEx@ColoredUnderline{cyan}{black}{##1}} -\def\HLScc##1{\FvrbEx@ColoredUnderline{green}{black}{##1}} -\def\HLSdd##1{\FvrbEx@ColoredUnderline{magenta}{black}{##1}} -\def\HLSee##1{\FvrbEx@ColoredUnderline{red}{black}{##1}} -\def\HLSef##1{\FvrbEx@ColoredUnderline{yellow}{black}{##1}} -\def\HLSez##1{\FvrbEx@ColoredUnderline{black}{black}{##1}} -% \end{macrocode} -% -% End of \cs{Highlight@Attributes}. -% \begin{macrocode} -} -% \end{macrocode} -% -% \begin{macro}{\NoHighlight@Attributes} -% \cs{NoHighlight@Attributes} is an internal macro to inhibit all -% the highlighting macros define by \cs{Highlight@Attributes}. It is -% necessary to call it before to insert the formatted part, as highlighting -% process must concern only the verbatim one. -% \end{macro} -% -% \begin{macrocode} -\def\NoHighlight@Attributes{% -% \end{macrocode} -% -% First, we re-establish the active catcodes for the verbatim mode. -% \begin{macrocode} -\catcode`\^^a7=0\relax% -\catcode`\^^b5=1\relax% -\catcode`\^^b6=2\relax% -% \end{macrocode} -% -% Desactivation of the highlighting macros. -% \begin{macrocode} -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -% \end{macrocode} -% -% End of \cs{NoHighlight@Attributes}. -% \begin{macrocode} -} -% \end{macrocode} -% -% Activation of the highlighting macros. -% \begin{macrocode} -\Highlight@Attributes -% \end{macrocode} -% -%</hcolor> -% -% \section{Test file} -% -%<*t-fvrbex> -% \iffalse meta-comment, etc. -%% File `t-fvrbex' -%% -% \fi -% -% \begin{macrocode} -\documentclass{article} - -\usepackage[bawcolor,pstricks]{fvrb-ex} -\pstrickstrue -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage[charter]{mathdesign} -\usepackage{url} -\usepackage{xcolor} - -\begin{document} - -\title{Test file for the `\textsf{fvrb-ex}' package} -\author{Denis Girou\\CNRS/IDRIS\\Orsay -- France\\ - {\footnotesize email: Denis.Girou@idris.fr}} -\date{Version 1.2\\March 27, 1998} - -\maketitle - -\RecustomVerbatimEnvironment{Verbatim}{Verbatim} - {gobble=2,commentchar=^^a3,numbers=left,numbersep=3pt,frame=single} - -\section{\texttt{Example} environment} - -\begin{Verbatim} - \begin{Example} - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{Example} -\end{Verbatim} - -\begin{Example} - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{Example} - -\begin{Verbatim} - \begin{Example}[frame=lines,framerule=1mm,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{Example} -\end{Verbatim} - -\begin{Example}[frame=lines,framerule=1mm,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{Example} - -\section{\texttt{CenterExample} environment} - -\begin{Verbatim} - \begin{CenterExample}[frame=single,numbers=right] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{CenterExample} -\end{Verbatim} - -\begin{CenterExample}[frame=single,numbers=right] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{CenterExample} - -\begin{Verbatim} - \begin{CenterExample}[frame=lines,numbers=left] - ^^a7HLa^^b5First^^b6 verbatim line. - ^^a7HLb^^b5Second^^b6 verbatim line. - ^^a7HLCBWz^^b5Third^^b6 verbatim line. - \end{CenterExample} -\end{Verbatim} - -\begin{CenterExample}[frame=lines,numbers=left] - ^^a7HLa^^b5First^^b6 verbatim line. - ^^a7HLb^^b5Second^^b6 verbatim line. - ^^a7HLCBWz^^b5Third^^b6 verbatim line. -\end{CenterExample} - -\section{\texttt{SideBySideExample} environment} - -\begin{Verbatim} - \begin{SideBySideExample}[xrightmargin=5cm,frame=lines, - numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. - \end{SideBySideExample} -\end{Verbatim} - -\begin{SideBySideExample}[xrightmargin=5cm,frame=single,numbers=left] - First verbatim line. - Second verbatim line. - Third verbatim line. -\end{SideBySideExample} - -\ifpstricks % If PSTricks is available - -\section{\texttt{PCenterExample} environment} - -\begin{Verbatim} - \fvset{frame=lines,framerule=0.5mm,numbers=left} - - \begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} - \end{PCenterExample} - - \showgrid - \begin{PCenterExample}(-1,-1)(1,1) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} - \end{PCenterExample} -\end{Verbatim} - -{\fvset{frame=lines,framerule=0.5mm,numbers=left} -\begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} -\end{PCenterExample} -\showgrid -\begin{PCenterExample}(-1,-1)(1,1) - \setlength{\unitlength}{1cm} - \put(0,0){\circle{1}} -\end{PCenterExample} -} - -\section{\texttt{PSideBySideExample} environment} - -\begin{Verbatim} - \fvset{frame=single,xrightmargin=5cm} - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse*[linecolor=yellow](2,1) - \end{PSideBySideExample} - \showgrid - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=dashed](2,1) - \end{PSideBySideExample} -\end{Verbatim} - -{\fvset{frame=single,xrightmargin=5cm} -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse*[linecolor=yellow](2,1) -\end{PSideBySideExample} - -\showgrid -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=dashed](2,1) -\end{PSideBySideExample} -} - -\begin{Verbatim} - \fvset{frame=single,xrightmargin=5cm} - \begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) - \end{PSideBySideExample} - \begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) - \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) - \end{PSideBySideExample} -\end{Verbatim} - -{\fvset{frame=single,xrightmargin=5cm} -\begin{PSideBySideExample}(-2,-1)(2,1) - \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) -\end{PSideBySideExample} -\begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) - \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) -\end{PSideBySideExample} - - -\else % If PSTricks is not available -\begin{quote} - \section{\texttt{PCenterExample} and \texttt{PSideBySideExample} -environments} - - \textbf{\large Warning!} These two environments are not demonstrated here, -because PSTricks was not found on this platform. -\end{quote} -\fi - -\end{document} -% \end{macrocode} -% -%</t-fvrbex> -% -% \Finale -% \PrintIndex -% \PrintChanges -% -\endinput -%% -%% End of file `fvrb-ex.dtx' diff --git a/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.ins b/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.ins deleted file mode 100644 index 37aad57417f..00000000000 --- a/Master/texmf-dist/source/latex/fancyvrb/fvrb-ex.ins +++ /dev/null @@ -1,41 +0,0 @@ -%% `fvrb-ex.ins' -%% -%% Docstrip installation instruction file for docstyle `fvrb-ex' -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> -%% March 26, 1998 - -\NeedsTeXFormat{LaTeX2e} -\def\batchfile{fvrb-ex.ins} -\input docstrip.tex -\keepsilent -\Msg{*** Generating the `fvrb-ex' package ***} -\askforoverwritefalse -\generate{\catcode`\£=12\catcode`\§=12\catcode`\µ=12\catcode`\¶=12% - \file{fvrb-ex.sty}{\from{fvrb-ex.dtx}{fvrb-ex}}% - \file{hbaw.sty}{\from{fvrb-ex.dtx}{hbaw}}% - \file{hcolor.sty}{\from{fvrb-ex.dtx}{hcolor}}% - \file{t-fvrbex.tex}{\from{fvrb-ex.dtx}{t-fvrbex}}} - -\ifToplevel{% -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the files} -\Msg{* fvrb-ex.sty, hbaw.sty and hcolor.sty into a directory} -\Msg{* searched by TeX.} -\Msg{*} -\Msg{* To produce the documentation, run the file `fvrb-ex.dtx'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* If you require the commented code, desactivating the} -\Msg{* OnlyDescription macro, you must recompile, execute:} -\Msg{* `makeindex -s PATH/gind.ist fvrb-ex'} -\Msg{* `makeindex -s PATH/gglo.ist -o fvrb-ex.gls fvrb-ex.glo'} -\Msg{* and recompile.} -\Msg{*} -\Msg{***********************************************************} -} - -\endinput -%% -%% End of file `fvrb-ex.ins' diff --git a/Master/texmf-dist/tex/latex/fancyvrb/fvrb-ex.sty b/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb-ex.sty index e3e1a70c55c..054ede2ada7 100644 --- a/Master/texmf-dist/tex/latex/fancyvrb/fvrb-ex.sty +++ b/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb-ex.sty @@ -1,101 +1,71 @@ %% -%% This is file `fvrb-ex.sty', -%% generated with the docstrip utility. +%% This is file `fancyvrb-ex.sty', %% -%% The original source files were: +%% COPYRIGHT 2018-, by Herbert Voss <hvoss@tug.org> %% -%% fvrb-ex.dtx (with options: `fvrb-ex') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from fvrb-ex.sty. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file fvrb-ex.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -%% -%% Package `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') -%% -%% COPYING: %% This package may be distributed under the terms of the LaTeX Project Public %% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> March 27, 1998 +%% Either version 1.3 or, at your option, any later version. %% -%% Package `fvrb-ex' +%% DESCRIPTION: +%% fancyvrb.sty is a LaTeX style option, containing flexible +%% verbatim environments and commands and extensive documentation. +%% it is based on the work of Denis Girou %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{1.9} -\def\filedate{2010/05/16} -\ProvidesPackage{fvrb-ex}[\filedate] -\message{`fvrb-ex' v\fileversion, \filedate\space (Denis Girou)} -\newif\ifpstricks\pstricksfalse -\let\LoadPStricks=\relax -\DeclareOption{pstricks}{\def\LoadPStricks{\RequirePackage{pstricks}}\pstrickstrue} -\DeclareOption{baw}{\def\ColorVersion{n}} -\DeclareOption{color}{\def\ColorVersion{y}} -\DeclareOption{bawcolor}{\def\ColorVersion{?}} -\ProcessOptions\relax -\LoadPStricks -\ifpstricks\RequirePackage{pstricks}\fi -\RequirePackage{fancyvrb} -\newread\ttyin -\def\iden#1{#1} -\def\strip#1#2 \@gobble{\def #1{#2}} -\def\@defpar{\par} -\def\@gobble#1{} -\def\Ask#1#2{% -\message{#2}\read\ttyin to #1\ifx#1\@defpar\def#1{}\else -\iden{\expandafter\strip\expandafter#1#1\@gobble\@gobble} \@gobble\fi} -\def\Answer@Yes{y} -\def\Answer@No{n} -\def\Question@Mark{?} -\def\Question@Color{Color version? (y=yes)} +\def\fileversion{0.01} +\def\filedate{2018/11/01} +\ProvidesPackage{fancyvrb-ex}[\filedate] +\message{Style option: `fancyvrb-ex' v\fileversion \space <\filedate> (tvz)} +\csname fancyvrb-ex@loaded\endcsname +\expandafter\let\csname fancyvrb-ex@loaded\endcsname\endinput +\newif\ifEX@pstricks \EX@pstricksfalse +\DeclareOption{pstricks}{\EX@pstrickstrue} +\newif\ifEX@color\EX@colorfalse +\DeclareOption{color}{\global\EX@colortrue} +\ProcessOptions +\RequirePackage{fancyvrb} % Standard LaTeX `color' package +\RequirePackage{xcolor} % Standard LaTeX `color' package +\def\FV@Error#1#2{% + \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% + \errmessage{FancyVerb Error:^^J\space\space #1^^J}} + +\def\FV@eha{Your command was ignored. Type <return> to continue.} + +% The exa part of fancyvrb +% \def\Highlight@Attributes{} % Default=nothing \def\NoHighlight@Attributes{} % Default=nothing -\ifx\ColorVersion\Answer@Yes - \RequirePackage{color} % Standard LaTeX `color' package +\ifEX@color \RequirePackage{hcolor} % Color version +\else + \RequirePackage{hbaw} % black and white version \fi -\ifx\ColorVersion\Answer@No - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hbaw} % Black and white version -\fi -\ifx\ColorVersion\Question@Mark - \Ask\ColorVersion{^^J\Question@Color} - \ifx\ColorVersion\Answer@Yes - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hcolor} % Color version - \else - \RequirePackage{color} % Standard LaTeX `color' package - \RequirePackage{hbaw} % Black and white version - \fi -\fi -\fvset{gobble=2} +\ifEX@pstricks\RequirePackage{pstricks}\fi +% +%\fvset{gobble=0} \newif\ifFvrbEx@Grid +% \def\Example{% \catcode`\^^M=\active \@ifnextchar[{\catcode`\^^M=5\Example@}{\catcode`\^^M=5\Begin@Example}} +% \def\endExample{% \end{VerbatimOut}% \Below@Example{\input{\jobname.tmp}}} +% \def\Example@[#1]{\fvset{#1}\Begin@Example} +% \def\CenterExample{% \catcode`\^^M=\active \@ifnextchar[{\catcode`\^^M=5\Example@}{\catcode`\^^M=5\Begin@Example}} +% \def\endCenterExample{% \end{VerbatimOut}% \center \Below@Example{\input{\jobname.tmp}} \endcenter} +% \def\SideBySideExample{% \catcode`\^^M=\active \@ifnextchar[{\catcode`\^^M=5\Example@}% @@ -103,13 +73,13 @@ \def\endSideBySideExample{% \end{VerbatimOut}% \SideBySide@Example{\input{\jobname.tmp}}} -\newcommand{\Begin@Example}{% +\newcommand\Begin@Example{% \parindent=0pt \multiply\topsep by 2 \VerbatimEnvironment \begin{VerbatimOut}[codes={\catcode`\^^a3=12\catcode`\^^a7=12\catcode`\^^b5=12% \catcode`\^^b6=12}]{\jobname.tmp}} -\newcommand{\Below@Example}[1]{% +\newcommand\Below@Example[1]{% \VerbatimInput[gobble=0,commentchar=^^a3,commandchars=^^a7^^b5^^b6,numbersep=3pt]% {\jobname.tmp} \catcode`\^^a3=9\relax% @@ -135,7 +105,7 @@ xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} \end{minipage}} \ifx\PSTricksLoaded\endinput - \newcommand{\showgrid}{\FvrbEx@Gridtrue} + \newcommand\showgrid{\FvrbEx@Gridtrue} \newpsobject{FvrbExGrid}{psgrid}{subgriddiv=0,griddots=10,gridlabels=7pt} \def\PCenterExample{\@ifnextchar[{\Pst@Example}{\Pst@@Example}} \def\endPCenterExample{% @@ -168,6 +138,7 @@ \def\Picture@Size{(#1,#2)(#3,#4)}% \Begin@Example} \fi % End \ifx\PSTricksLoaded +%% \endinput %% -%% End of file `fvrb-ex.sty'. +%% End of file `fancyvrb-ex.sty'. diff --git a/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty b/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty index 5840c7f3df1..c0982956a43 100644 --- a/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +++ b/Master/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty @@ -1,56 +1,26 @@ %% %% This is file `fancyvrb.sty', -%% generated with the docstrip utility. %% -%% The original source files were: -%% -%% fancyvrb.dtx (with options: `fancyvrb') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from fancyvrb.sty. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file fancyvrb.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -%% -%% Package `fancyvrb' -%% -%% COPYRIGHT 1992-2010, by Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu> -%% 2010, by Herbert Voss <hvoss@tug.org> -%% -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% - %% COPYRIGHT 1992-1999, by Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu> +%% 2010-2018, by Herbert Voss <hvoss@tug.org> %% %% This package may be distributed under the terms of the LaTeX Project Public %% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. +%% Either version 1.3 or, at your option, any later version. %% %% DESCRIPTION: %% fancyvrb.sty is a LaTeX style option, containing flexible %% verbatim environments and commands and extensive documentation. %% -%% This is a companion to the `fancybox' package. -%% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{2.7a, with DG/SPQR fixes, and firstline=lastline fix} -\def\filedate{2008/02/07} +\def\fileversion{3.0} +\def\filedate{2018/11/01} \ProvidesPackage{fancyvrb}[\filedate] \message{Style option: `fancyvrb' v\fileversion \space <\filedate> (tvz)} \csname fancyvrb@loaded\endcsname \let\fancyvrb@loaded\endinput +%\ProcessOptions +\RequirePackage{xcolor} % Standard LaTeX `color' package \def\FV@Error#1#2{% \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% \errmessage{FancyVerb Error:^^J\space\space #1^^J}} @@ -159,9 +129,12 @@ \expandafter\def\expandafter#1\expandafter{#1#2\relax}} \define@key{FV}{codes}[]{\def\FancyVerbCodes{#1\relax}} \define@key{FV}{codes*}{% - \expandafter\def\expandafter\FancyVerbCodes\expandafter{% - \FancyVerbCodes#1\relax}} + \expandafter\def\expandafter\FancyVerbCodes\expandafter{\FancyVerbCodes#1\relax}} \fvset{codes} +% +\define@key{FV}{vspace}[\topsep]{\def\FancyVerbVspace{#1}} +\fvset{vspace} +% \define@key{FV}{commandchars}[\\\{\}]% {\def\@tempa{#1}% \ifx\@tempa\FV@None @@ -242,9 +215,7 @@ } \def\FV@@FindStartString#1#2{% \edef\@fooA{#1}\edef\@fooB{#2}% - \ifx\@fooA\@fooB - \FV@DefineFindStop - \fi + \ifx\@fooA\@fooB\FV@DefineFindStop\fi } %% SR modification end \def\FV@DefineFindStop{% @@ -398,7 +369,7 @@ \def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine} %% DG/SR modification end \begingroup -\catcode`\^^M=\active +\catcode`\^^M=\active% \gdef\FancyVerbGetLine#1^^M{% \@nil% \FV@CheckEnd{#1}% @@ -536,33 +507,16 @@ \def\FV@MakeUnActive{} \begingroup \catcode`\`=\active -\gdef\FV@fontfamily@tt{% - \def\FV@FontScanPrep{\FV@MakeActive\`}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\tt`{{\string`}}}} - \def\FV@FontFamily{\ttfamily\edef`{{\string`}}}} -%% SR modification end -\gdef\FV@fontfamily@cmtt{% - \def\FV@FontScanPrep{\FV@MakeActive\`}% - \def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}} +\gdef\FV@fontfamily@tt{\def\FV@FontScanPrep{\FV@MakeActive\`}\def\FV@FontFamily{\ttfamily\edef`{{\string`}}}} +\gdef\FV@fontfamily@cmtt{\def\FV@FontScanPrep{\FV@MakeActive\`}\def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}} \endgroup -\@namedef{FV@fontfamily@cmtt-spanish}{% - \def\FV@FontScanPrep{}% - \def\FV@FontFamily{\fontfamily{cmtt}}} -\@namedef{FV@fontfamily@courier}{% - \def\FV@FontScanPrep{}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\fontfamily{rpcr}}} - \def\FV@FontFamily{\fontfamily{pcr}}} -%% SR modification end -\@namedef{FV@fontfamily@helvetica}{% - \def\FV@FontScanPrep{}% -%% SR modification begin - 1995 -%% \def\FV@FontFamily{\fontfamily{rphv}}} - \def\FV@FontFamily{\fontfamily{phv}}} -%% SR modification end -\fvset{fontfamily=tt,fontsize=auto,fontshape=auto,fontseries=auto, - baselinestretch=auto} +\@namedef{FV@fontfamily@cmtt-spanish}{\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{cmtt}}} +\@namedef{FV@fontfamily@courier}{\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{pcr}}} +\@namedef{FV@fontfamily@helvetica}{\def\FV@FontScanPrep{}\let\FV@FontFamily\sffamily} +% \def\FV@FontFamily{\fontfamily{phv}}} +\def\myFont{} +\@namedef{FV@fontfamily@myFont}{\def\FV@FontScanPrep{}\def\FV@FontFamily{\myFont}} +\fvset{fontfamily=tt,fontsize=auto,fontshape=auto,fontseries=auto,baselinestretch=auto} \begingroup \catcode`\ =\active \catcode`\^^I=\active @@ -684,7 +638,8 @@ \leftmargin\z@ \fi} \def\FV@ListVSpace{% - \@topsepadd\topsep +% \@topsepadd\topsep + \@topsepadd=\FancyVerbVspace \if@noparlist\advance\@topsepadd\partopsep\fi \if@inlabel \vskip\parskip @@ -956,64 +911,48 @@ \begingroup \baselineskip\z@skip \kern\FV@FrameSep\relax -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine \FV@SingleFrameLine{\@ne}% -%% DG/SR modification end \endgroup} \def\FV@SingleFrameSep{% \hbox to \z@{% \kern\leftmargin \hbox to\linewidth{% \FancyVerbRuleColor{% -%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) \ifx\FancyVerbFillColor\relax \vrule\@width 0pt\@height\FV@FrameSep\relax \fi -%% DG modification end \vrule\@width\FV@FrameRule\relax \ifx\FancyVerbFillColor\relax \hfil \else {\FancyVerbFillColor\leaders\hrule\@height\FV@FrameSep\hfil}% \fi -%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) \ifx\FancyVerbFillColor\relax \vrule\@width 0pt\@height\FV@FrameSep\relax \fi -%% DG modification end \vrule\@width\FV@FrameRule\relax}}% \hss}} \def\FV@LeftListFrame@Single{% \strut {\FancyVerbRuleColor{\vrule \@width\FV@FrameRule}}% \FV@FrameFillLine -%% DG modification begin - June 18, 1997 (to fill color on left side) -%% \kern\FV@FrameSep} \ifx\FancyVerbFillColor\relax \kern\FV@FrameSep \else {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% \fi} -%% DG modification end \def\FV@RightListFrame@Single{% -%% DG modification begin - June 18, 1997 (to fill color on right side) -%% \kern\FV@FrameSep \ifx\FancyVerbFillColor\relax \kern\FV@FrameSep \else {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% \fi {\noexpand\leavevmode\FancyVerbRuleColor{\vrule\@width\FV@FrameRule}}} -%% DG modification end \def\FV@EndListFrame@Single{% \penalty\@M \FV@SingleFrameSep \penalty\@M -%% DG/SR modification begin - May. 19, 1998 -%% \FV@SingleFrameLine} \FV@SingleFrameLine{\@ne}} -%% DG/SR modification end \define@key{FV}{framerule}{% \@tempdima=#1\relax \edef\FV@FrameRule{\number\@tempdima sp\relax}} @@ -1052,32 +991,26 @@ \def\@tempa{#1}\def\@tempb{auto}% \ifx\@tempa\@tempb \def\FV@SetLineNo{% - \c@FancyVerbLine\FV@CodeLineNo + \c@FancyVerbLine\FV@CodeLineNo% \advance\c@FancyVerbLine\m@ne}% - \else + \else% \def\@tempb{last}% \ifx\@tempa\@tempb - \let\FV@SetLineNo\relax - \else -%% DG/SR modification begin - Jan. 19, 1998 -%% \def\FV@SetLineNo{\c@FancyVerbLine#1}% + \let\FV@SetLineNo\relax% + \else% \def\FV@SetLineNo{% - \c@FancyVerbLine#1 + \c@FancyVerbLine#1% \advance\c@FancyVerbLine\m@ne}% -%% DG/SR modification end - \fi + \fi% \fi} \define@booleankey{FV}{numberblanklines}% {\let\if@FV@NumberBlankLines\iftrue} {\let\if@FV@NumberBlankLines\iffalse} \fvset{numberblanklines=true} -%% DG/SR modification begin - May. 20, 1998 -%%\def\refstepcounter#1{% Adapted from latex.ltx \def\FV@refstepcounter#1{% -%% DG/SR modification end \stepcounter{#1}% - \protected@edef\@currentlabel - {\csname p@#1\endcsname\arabic{FancyVerbLine}}} + \protected@edef\@currentlabel{\csname p@#1\endcsname\arabic{FancyVerbLine}}% +} \def\FV@StepLineNo{% \FV@SetLineNo% \def\FV@StepLineNo{% @@ -1090,16 +1023,11 @@ \fi% \fi}% \FV@StepLineNo} -%% DG/SR modification begin - 1995 -%%\def\theFancyVerbLine{\rm\tiny\arabic{FancyVerbLine}} \def\theFancyVerbLine{\rmfamily\tiny\arabic{FancyVerbLine}} -%% DG/SR modification end \define@key{FV}{numbers}[none]{% \@ifundefined{FV@Numbers@#1}% {\FV@Error{Numbers style `#1' not defined.}\FV@eha}% {\@nameuse{FV@Numbers@#1}}} -%% DG modification begin - Dec. 20, 1995 and Jan. 28, 1998 -%%\def\FV@Numbers@none{\let\FV@LeftListNumber\relax} \def\FV@Numbers@none{% \let\FV@LeftListNumber\relax \let\FV@RightListNumber\relax} @@ -1107,22 +1035,14 @@ \define@key{FV}{stepnumber}{\FV@StepNumber#1} \def\KV@FV@stepnumber@default{\FV@StepNumber\@ne} \fvset{stepnumber} -%% DG modification begin - Dec. 20, 1995 -%%\def\FV@Numbers@left{% -%% \def\FV@LeftListNumber{\hbox to\z@{% -%% \hss\theFancyVerbLine\kern\FV@NumberSep}}} \def\FV@Numbers@left{% -%% DG/SR modification begin - Apr. 28, 1998 \let\FV@RightListNumber\relax -%% DG/SR modification end \def\FV@LeftListNumber{% \@tempcnta=\FV@CodeLineNo \@tempcntb=\FV@CodeLineNo \divide\@tempcntb\FV@StepNumber \multiply\@tempcntb\FV@StepNumber \ifnum\@tempcnta=\@tempcntb -%% DG/SR modification begin - Apr. 28, 1998 -%% \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% \if@FV@NumberBlankLines \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% \else @@ -1131,12 +1051,9 @@ \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% \fi \fi -%% DG/SR modification end \fi}} \def\FV@Numbers@right{% -%% DG/SR modification begin - Apr. 28, 1998 \let\FV@LeftListNumber\relax -%% DG/SR modification end \def\FV@RightListNumber{% \@tempcnta=\FV@CodeLineNo \@tempcntb=\FV@CodeLineNo @@ -1281,7 +1198,7 @@ \define@key{FV}{aftersave}{\def\FancyVerbAfterSave{#1}} \fvset{aftersave=} \def\FV@UseVerb#1{\mbox{\FV@UseKeyValues\FV@FormattingPrep#1}} -\def\UseVerb{\FV@Command{}{UseVerb}} +\DeclareRobustCommand\UseVerb{\FV@Command{}{UseVerb}} \def\FVC@UseVerb#1{% \@ifundefined{FV@SV@#1}% {\FV@Error{Short verbatim text never saved to name `#1'}\FV@eha}% @@ -1413,11 +1330,10 @@ \ignorespaces} \def\endlrbox{\unskip\egroup} \fi -%% DG/SR modification begin - Mar 21 2000 -%%\@input{fancyvrb.rc} +% +%% \InputIfFileExists{fancyvrb.cfg}{}{} -%% DG/SR modification end -%%% \PrintIndex +%% \endinput %% %% End of file `fancyvrb.sty'. diff --git a/Master/texmf-dist/tex/latex/fancyvrb/hbaw.sty b/Master/texmf-dist/tex/latex/fancyvrb/hbaw.sty deleted file mode 100644 index 8c63a2b7e3c..00000000000 --- a/Master/texmf-dist/tex/latex/fancyvrb/hbaw.sty +++ /dev/null @@ -1,158 +0,0 @@ -%% -%% This is file `hbaw.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% fvrb-ex.dtx (with options: `hbaw') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from hbaw.sty. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file fvrb-ex.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -%% -%% Package `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') -%% -%% COPYING: -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> March 27, 1998 -%% -%% Package `hbaw' -%% -\NeedsTeXFormat{LaTeX2e} -\def\fileversion{1.4} -\def\filedate{1998/03/19} -\ProvidesPackage{hbaw}[\filedate] -\message{`hbaw' v\fileversion, \filedate\space (Denis Girou)} -\newcommand{\FvrbEx@ColoredBox}[3]{% -\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} -\def\Highlight@Attributes{% -\def\HLa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLb##1{\ifmmode\mathsl{##1}\else\textsl{##1}\fi} -\def\HLc##1{##1} -\def\HLd##1{##1} -\def\HLe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLf##1{##1} -\def\HLq##1{##1} -\def\HLr##1{##1} -\def\HLz##1{##1} -\def\HLBFa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFb##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFc##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFd##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFf##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLBFz##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} -\def\HLITa##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITb##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITc##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITd##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITe##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITf##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLITz##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} -\def\HLSCa##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCb##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCc##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCd##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCe##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCf##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLSCz##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} -\def\HLTTa##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTb##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTc##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTd##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTe##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTf##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTq##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTr##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLTTz##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} -\def\HLITTTa##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTb##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTc##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTd##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTe##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTf##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLITTTz##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} -\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} -\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} -\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} -\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} -\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} -\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} -\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} -\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} -\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} -\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} -\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} -\def\HLSa##1{\underline{##1}} -\def\HLSb##1{\underline{##1}} -\def\HLSc##1{\underline{##1}} -\def\HLSd##1{\underline{##1}} -\def\HLSe##1{\underline{##1}} -\def\HLSf##1{\underline{##1}} -\def\HLSz##1{\underline{##1}} -\def\HLSaa##1{\underline{##1}} -\def\HLSbb##1{\underline{##1}} -\def\HLScc##1{\underline{##1}} -\def\HLSdd##1{\underline{##1}} -\def\HLSee##1{\underline{##1}} -\def\HLSef##1{\underline{##1}} -\def\HLSez##1{\underline{##1}} -} -\def\NoHighlight@Attributes{% -\catcode`\^^a7=0\relax% -\catcode`\^^b5=1\relax% -\catcode`\^^b6=2\relax% -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -} -\Highlight@Attributes -\endinput -%% -%% End of file `hbaw.sty'. diff --git a/Master/texmf-dist/tex/latex/fancyvrb/hcolor.sty b/Master/texmf-dist/tex/latex/fancyvrb/hcolor.sty deleted file mode 100644 index 89ee76508bf..00000000000 --- a/Master/texmf-dist/tex/latex/fancyvrb/hcolor.sty +++ /dev/null @@ -1,161 +0,0 @@ -%% -%% This is file `hcolor.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% fvrb-ex.dtx (with options: `hcolor') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from hcolor.sty. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file fvrb-ex.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -%% -%% Package `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') -%% -%% COPYING: -%% This package may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> March 27, 1998 -%% -%% Package `hcolor' -%% -\NeedsTeXFormat{LaTeX2e} -\def\fileversion{1.4} -\def\filedate{1998/03/19} -\ProvidesPackage{hcolor}[\filedate] -\message{`hcolor' v\fileversion, \filedate\space (Denis Girou)} -\newcommand{\FvrbEx@ColoredUnderline}[3]{% -$\setbox\z@\hbox{\begingroup#3\endgroup}% -\dp\z@\z@\m@th\color{#1}\underline{\textcolor{#2}{\box\z@}}$} -\newcommand{\FvrbEx@ColoredBox}[3]{% -\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} -\def\Highlight@Attributes{% -\def\HLa##1{\textcolor{blue}{##1}} -\def\HLb##1{\textcolor{cyan}{##1}} -\def\HLc##1{\textcolor{green}{##1}} -\def\HLd##1{\textcolor{magenta}{##1}} -\def\HLe##1{\textcolor{red}{##1}} -\def\HLf##1{\textcolor{yellow}{##1}} -\def\HLq##1{\textcolor{PaleGreen}{##1}} -\def\HLr##1{\textcolor{SlateBlue}{##1}} -\def\HLz##1{\textcolor{black}{##1}} -\def\HLBFa##1{\textcolor{blue}{\textbf{##1}}} -\def\HLBFb##1{\textcolor{cyan}{\textbf{##1}}} -\def\HLBFc##1{\textcolor{green}{\textbf{##1}}} -\def\HLBFd##1{\textcolor{magenta}{\textbf{##1}}} -\def\HLBFe##1{\textcolor{red}{\textbf{##1}}} -\def\HLBFf##1{\textcolor{yellow}{\textbf{##1}}} -\def\HLBFz##1{\textcolor{black}{\textbf{##1}}} -\def\HLITa##1{\textcolor{blue}{\textsl{##1}}} -\def\HLITb##1{\textcolor{cyan}{\textsl{##1}}} -\def\HLITc##1{\textcolor{green}{\textsl{##1}}} -\def\HLITd##1{\textcolor{magenta}{\textsl{##1}}} -\def\HLITe##1{\textcolor{red}{\textsl{##1}}} -\def\HLITf##1{\textcolor{yellow}{\textsl{##1}}} -\def\HLITz##1{\textcolor{black}{\textsl{##1}}} -\def\HLSCa##1{\textcolor{blue}{\textsc{##1}}} -\def\HLSCb##1{\textcolor{cyan}{\textsc{##1}}} -\def\HLSCc##1{\textcolor{green}{\textsc{##1}}} -\def\HLSCd##1{\textcolor{magenta}{\textsc{##1}}} -\def\HLSCe##1{\textcolor{red}{\textsc{##1}}} -\def\HLSCf##1{\textcolor{yellow}{\textsc{##1}}} -\def\HLSCz##1{\textcolor{black}{\textsc{##1}}} -\def\HLTTa##1{\textcolor{blue}{\texttt{##1}}} -\def\HLTTb##1{\textcolor{cyan}{\texttt{##1}}} -\def\HLTTc##1{\textcolor{green}{\texttt{##1}}} -\def\HLTTd##1{\textcolor{magenta}{\texttt{##1}}} -\def\HLTTe##1{\textcolor{red}{\texttt{##1}}} -\def\HLTTf##1{\textcolor{yellow}{\texttt{##1}}} -\def\HLTTq##1{\textcolor{ForestGreen}{\texttt{##1}}} -\def\HLTTr##1{\textcolor{PineGreen}{\texttt{##1}}} -\def\HLTTz##1{\textcolor{black}{\texttt{##1}}} -\def\HLITTTa##1{\textcolor{blue}{\textsl{\texttt{##1}}}} -\def\HLITTTb##1{\textcolor{cyan}{\textsl{\texttt{##1}}}} -\def\HLITTTc##1{\textcolor{green}{\textsl{\texttt{##1}}}} -\def\HLITTTd##1{\textcolor{magenta}{\textsl{\texttt{##1}}}} -\def\HLITTTe##1{\textcolor{red}{\textsl{\texttt{##1}}}} -\def\HLITTTf##1{\textcolor{yellow}{\textsl{\texttt{##1}}}} -\def\HLITTTz##1{\textcolor{black}{\textsl{\texttt{##1}}}} -\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} -\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} -\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} -\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} -\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} -\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} -\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} -\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} -\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{cyan}{white}} -\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} -\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} -\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} -\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{yellow}{white}} -\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} -\def\HLSa##1{\color{blue}\underline{##1}} -\def\HLSb##1{\color{cyan}\underline{##1}} -\def\HLSc##1{\color{green}\underline{##1}} -\def\HLSd##1{\color{magenta}\underline{##1}} -\def\HLSe##1{\color{red}\underline{##1}} -\def\HLSf##1{\color{yellow}\underline{##1}} -\def\HLSz##1{\color{black}\underline{##1}} -\def\HLSaa##1{\FvrbEx@ColoredUnderline{blue}{black}{##1}} -\def\HLSbb##1{\FvrbEx@ColoredUnderline{cyan}{black}{##1}} -\def\HLScc##1{\FvrbEx@ColoredUnderline{green}{black}{##1}} -\def\HLSdd##1{\FvrbEx@ColoredUnderline{magenta}{black}{##1}} -\def\HLSee##1{\FvrbEx@ColoredUnderline{red}{black}{##1}} -\def\HLSef##1{\FvrbEx@ColoredUnderline{yellow}{black}{##1}} -\def\HLSez##1{\FvrbEx@ColoredUnderline{black}{black}{##1}} -} -\def\NoHighlight@Attributes{% -\catcode`\^^a7=0\relax% -\catcode`\^^b5=1\relax% -\catcode`\^^b6=2\relax% -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -} -\Highlight@Attributes -\endinput -%% -%% End of file `hcolor.sty'. |