. : http://xray.sai.msu.ru/~mystery/html/latex/fancybox-full.ps
: Tue Sep 22 19:53:42 1998
: Tue Oct 2 14:36:30 2012
:
Documentation for fancybox.sty:
Box tips and tricks for L A T E X
Timothy Van Zandt
tvz@Princeton.EDU
Version 1.2
February 27, 191998
fancybox.sty, together with its documentation, gives extensive
answers to and solutions for many questions about how to frame
or rotate this or that in L A T E X. It also contains commands for
shadow, double and oval frames.
Contents

fancybox.sty, Version 1.2 1
1 Fancy frames
fancybox.sty has five variants of L A T E X's ``fbox command:
``shadowbox, ``doublebox, ``ovalbox (with ``thinlines) and
``Ovalbox (with ``thicklines).
Here are examples: 1
``shadowbox--``large``bf New Glarus Birdwatch
New Glarus Birdwatch
``doublebox--``large``bf New Glarus Birdwatch
New Glarus Birdwatch
``ovalbox--``large``bf New Glarus Birdwatch
ff
\Omega \Phi \Psi
New Glarus Birdwatch
``Ovalbox--``large``bf New Glarus Birdwatch
ff
\Omega
\Phi
\Psi
New Glarus Birdwatch
The distance between the box and the frame is ``fboxsep, as with L A T E X's
``fbox command. The commands use other parameters as well:
``shadowbox The width of the frame is ``fboxrule (the same as with ``fbox).
The width of the shadow is ``shadowsize (default: 4pt).
``doublebox The width of the inner frame is .75``fboxrule, and the width of
the outer frame is 1.5``fboxrule. The distance between the two frames
is 1.5``fboxrule plus .5pt.
1 In this documentation, the default value of ``fboxsep has been changed from 3pt to
6pt.

fancybox.sty, Version 1.2 2
``ovalbox The width of the frame is set by the ``thinlines declaration. The
diameter of the corner arcs is set with the ``cornersize command.
``cornersize--num
sets the diameter of the corners arcs to num times the lessor of the
width and height of the box.
``cornersize*--dim
sets the diameter of the corner arcs to dim. This is all approximate,
because L A T E X has a limited range of arc sizes to choose from. The
default is
``cornersize--.5
``Ovalbox This is like ``ovalbox, except that the width of the lines is set by
the ``thicklines declaration.
There are no analogs to L A T E X's ``framebox command, which has various
optional arguments not supported by ``fbox. You can get the exact same
functionality by putting the argument of the above framing commands in a
``makebox.
There is also a variant ``fancyoval of L A T E X's ``oval picture object. The
difference is that ``oval always makes the diameter of the corner arcs as
large as possible, and ``fancyoval uses the ``cornersize command to set
the diameter.
2 A short course on boxes
The ``shadowbox, ``doublebox, ``ovalbox and ``Ovalbox commands described
in the previous section are examples of LRbox commands, meaning that
their argument is processed in LR mode. L A T E X LRbox commands include
``mbox, ``makebox, ``fbox, ``framebox, ``sbox and ``savebox. All the PSTricks
commands whose argument is text are LRbox commands, including, e.g, the
framing, rotating, scaling and positioning commands, and some of the node
commands. Any rotation command is an LRbox command.
The purpose of the rest of this documentation is to provide answers to,
and solutions for, frequently asked questions about using LRbox commands
with L A T E X. I will use ``fbox for the leading example of a box framing

fancybox.sty, Version 1.2 3
command, 2 and ``rotateleft for the leading example of a box rotation com
mand. (fancybox.sty does not contain a ``rotateleft command, as this
must be implemented via ``special's, but there are numerous boxrotation
style files around.) However, most of what is said here applies to any LRbox
command.
In each LRbox command, the text is processed in restricted horizontal mode,
which is referred to as ``LRmode'' in Lamport's L A T E X: User's Guide and
Reference Manual. In restricted horizontal mode, the input, consisting of
regular characters and boxes, is made into one (long or short) line. There is
no linebreaking, nor can there be vertical mode material such as an entire
displayed equation. However, the fact that you can include another box
means that this isn't really a restriction.
For one thing, alignment environments such as L A T E X's tabular are just
boxes, and thus present no problem. Picture environments and the LRbox
commands themselves are also just boxes. Entire paragraphs or other vertical
mode material such as displayed equations can be nested in a ``parbox or
minipage.
3 Defining LRbox environments
To frame a minipage, you have to write
``fbox--%
``begin--minipage--3in
blah
``end--minipage
You might want to define an environment fminipage that frames its contents,
but you can't use
``newenvironment--fminipage%
--``fbox--``begin--minipage%
--``end--minipage
because the braces are not balanced in the definition.
2 In the examples using ``fbox, be aware that the default value of ``fboxsep has been
changed in this documentation from 3pt to 6pt.

fancybox.sty, Version 1.2 4
fancybox.sty contains an Sbox environment that makes it easy to define
your own LRbox environments. It is a variant of L A T E X's ``sbox command
that saves the contents of the environment in a storage bin that can be
retrieved with the command ``TheSbox. 3 For example, here is a framed mini
page:
``begin--Sbox
``begin--minipage--3in
blah
``end--minipage
``end--Sbox
``fbox--``TheSbox
and here is an fminipage environment that works:
``newenvironment--fminipage%
--``begin--Sbox``begin--minipage%
--``end--minipage``end--Sbox``fbox--``TheSbox
Let's see that it really works:
``begin--fminipage--2in
Since the former doesn't use braces to delimit
the contents of the box, $``ldots$
``end--fminipage
Since the former doesn't use
braces to delimit the con
tents of the box, : : :
3 The difference between
``begin--Sbox
blah
``end--Sbox
``TheSbox
and
``newsavebox--``mybox
``sbox--``mybox--blah
``usebox--``mybox
is that Sbox saves the contents globally, and ``TheSbox erases the contents globally.

fancybox.sty, Version 1.2 5
4 Math
Inline math, or pieces of a displayed equation (as opposed to a whole equa
tion), are horizontal mode material, but most LRbox commands switch out
of math mode when they occur in math mode. Thus, you have to explicitly
switch back in to math mode when desired. 4 For example:
$x + y = ``fbox--$``Omega$$
x + y
=\Omega You also have to explicitly write
``scriptstyle, ``scriptscriptstyle or ``displaystyle
if you want one of these special math styles. For example, here I will frame
an equation, but not the equation number:
``begin--equation
``fbox--$``displaystyle
``int--``Omega0 ``zeta(``omega) d``omega
``geq ``bar--r$
``end--equation
Z
\Omega 0
i(!)d! r (1)
Entire displayed equations or eqnarray environments work differently be
cause they are vertical mode material. Thus, they have to go inside a ``parbox
or minipage. E.g.,
``newlength--``mylength
``[
``setlength--``fboxsep--15pt
``setlength--``mylength--``linewidth
``addtolength--``mylength--2``fboxsep
4 This is not true for the PSTricks LRbox commands.

fancybox.sty, Version 1.2 6
``addtolength--``mylength--2``fboxrule
``fbox--%
``parbox--``mylength--
``setlength--``abovedisplayskip--0pt
``setlength--``belowdisplayskip--0pt
``begin--equation
x + y = z
``end--equation
``]
x + y = z (2)
The outer ``[ ``] are just used to display the boxed equation, rather than
actually switch into math mode. Note how I set the width of the ``parbox
so that the displayed box would exactly have width ``linewidth. 5
I also set the display skips to 0pt and increased the size of ``fboxsep so that
I would have the same distance all around between the equation and the
frame.
This is again a mouthful, and so I might instead define: 6
``newenvironment--FramedEqn%
--``setlength--``fboxsep--15pt
``setlength--``mylength--``linewidth%
``addtolength--``mylength--2``fboxsep%
``addtolength--``mylength--2``fboxrule%
``Sbox
``minipage--``mylength%
``setlength--``abovedisplayskip--0pt%
``setlength--``belowdisplayskip--0pt%
``equation%
--``endequation``endminipage``endSbox
``[``fbox--``TheSbox``]
5 That is what ``mylength is for. It is better to define a single scratch length that you
reuse rather than creating a new one each time.
6 The reason for using ``minipage instead of ``begin--minipage, and so on, is that
with AmSL A T E X, ``begin and ``end cannot appear in the definition of a new equation
environment.

fancybox.sty, Version 1.2 7
fancybox.sty doesn't bother defining any such environments, because there
are too many possible designs. But let's see if the one above works:
``begin--FramedEqn
``Rightarrow P``sim``xi(P``gamma) ``frac--1--3
``end--FramedEqn
) P (P fl ) \Gamma 1
3 (3)
fancybox.sty contains a Beqnarray environment, which is like the eqnarray
environment but it is not vertical mode material. Instead, it produces a box
just large enough to hold all the equations. For example:
``fbox--%
``begin--Beqnarray*
x & = & y````
y & ? & x ````
``int45 f(x)dx & = & ``sum--i``in F xi
``end--Beqnarray*
x = y
y ? x
Z 5
4
f(x)dx =
X
i2F
x i
The unstarred version produces standard equation numbers on the right
(even with the leqno style option and AmSL A T E X). It might not work with
special equation numbering macros.
5 Floats
A common mistake is to put a whole table, figure or other float environ
ment inside an LRbox command. Instead, you should put everything that is

fancybox.sty, Version 1.2 8
inside the environment (including the ``caption, if you want that boxed too)
inside a minipage of the desired width, and then put the minipage inside
the LRbox command.
For example:
``begin--table[h]
``begin--center
``fbox--%
``begin--minipage--.8``textwidth
``begin--center
``begin--tabular--rl
foo & bar
``end--tabular
``end--center
``caption--A table of foo and bar.
``end--minipage
``end--center
``end--table
foo bar
Table 1: A table of foo and bar.
Note how I had to use center twice: once to center the framed box, and
again to center the stuff inside the box.
That is a mouthful, and so I might define a FramedTable environment like
the following, which sets the size of the minipage so that the framed box is
exactly the width of the page (no need for the first center environment this
time):
``newenvironment--FramedTable%
--``begin--table[h]
``begin--Sbox%
``setlength--``mylength--``textwidth%
``addtolength--``mylength--2``fboxsep%
``addtolength--``mylength--2``fboxrule%

fancybox.sty, Version 1.2 9
``begin--minipage--``mylength%
--``end--minipage``end--Sbox``fbox--``TheSbox``end--table%
Now let's see if it works:
``begin--FramedTable
``begin--center
``begin--tabular--rl
foo & bar
``end--tabular
``end--center
``caption--A table of foo and bar.
``end--FramedTable
foo bar
Table 2: A table of foo and bar.
The most common reason to want to rotate an entire float, caption and all,
is to put it on a page by itself in landscape mode, centered both horizontally
and vertically. Compared to the table framing we did above, we just have to
replace ``fbox by our box rotation command (e.g., ``rotateleft or whatever),
set the width of the minipage to ``textheight (if you want to use the full size
of the page), and use the float position specifier [p]. fancybox.sty contains
an environment,
``begin--landfloat--float--rotation command
...
``end--landfloat
that automates this. It has two arguments: the name of the floating envi
ronment, and your rotation command. For example, if ``rotateleft--foo
rotates foo by 90 degrees, and you want a landscape mode table, then try
``begin--landfloat--table--``rotateleft
...
``end--landfloat

fancybox.sty, Version 1.2 10
If the whole document is in landscape mode, then landfloat gives you a
portraitmode float---good for a table that is too tall to fit in landscape
mode.
If you don't add a caption to a float, it doesn't matter much what floating
environment you use (e.g., table, figure or whatever). Thus, you can put
anything in a landscape float. For example, suppose I have a very wide
equation. Then I can write:
``begin--landfloat--table--``rotateleft
``begin--equation
...
``end--equation
``end--landfloat
fancybox.sty defines a generic caption, ``GenericCaption, that doesn't af
fect the numbering of floats, doesn't make an entry in a list of floats, and
doesn't add anything to the argument you give. I could have used this if I
wanted to add a caption to the previous example.
6 Center, flushleft and flushright
There are two ways to box a center, flushleft or flushright environment.
If you have long lines and you want T E X to do the line breaking, then put the
environment inside a minipage. 7 If you have short lines and you want the
frame to adjust itself to the size of the longest line, then use fancybox.sty's
Bcenter, Bflushleft or Bflushright
environment instead.
These are basically just tabular environments with a single column, and so
each line should end with ````, or ````[dim] to insert extra space, and the text
on each line must be balanced. Also, each line is sitting in its own group,
and so, e.g., if you want to change the font for the whole environment, you
should do this before the environment rather than after. Like the tabular
environment, the box that is produced has the baseline at the center, unless
7 List and other such environments work best inside a minipage environment rather
than a ``parbox.

fancybox.sty, Version 1.2 11
you include an optional argument [t] to align the box with the top line or
[b] to align the box with the bottom line.
For example:
``setlength--``fboxsep--10pt%
``fbox--%
``begin--Bcenter
Love of life````
and other short stories````
by Policarpa Salabarrieta
``end--Bcenter
Love of life
and other short stories
by Policarpa Salabarrieta
Compare this with:
``setlength--``fboxsep--10pt%
``fbox--%
``begin--minipage--6cm
``begin--center
Love of life and other short stories
by Policarpa Salabarrieta
``end--center
``end--minipage
Love of life and other short
stories by Policarpa Salabarrieta
In either case, if we want the resulting framed box centered, we have to
include it inside another center environment.
Here is another example:
My list: ``fbox--%
``begin--Bflushleft[b]

fancybox.sty, Version 1.2 12
Galanga root````
Coconut````
Tempeh
``end--Bflushleft
My list:
Galanga root
Coconut
Tempeh
7 Lists
There are again two ways to box a list environment such as
itemize, enumerate or description.
You can put it in a minipage of predetermined size and let T E X do the line
breaking, or you can use
Bitemize, Benumerate or Bdescription
instead, and let the box adjust to the size of the longest line.
For example.
``fbox--%
``begin--Bitemize
``item Groceries
``item Clean hamster cages
``item Pick up Peter
``end--Bitemize
ffl Groceries
ffl Clean hamster cages
ffl Pick up Peter
Most of the usual list parameters are irrelevant except for ``itemsep and
``labelsep. These environments are also based on the tabular environment,

fancybox.sty, Version 1.2 13
and so each item should be balanced text. You can't write ``vspace--4pt
either, but you can insert an extra amount of space before an item by writing
``item(4pt) (or ``item(4pt)[label] if you have a label). Also, you can break
lines within an item using ```` or ````[dim]. For example:
``fbox--%
``begin--Bdescription
``item[David] Groceries
``item[Eli] Hamster cages````
Surreal numbers
``item(3pt)[Doris] Pick up Peter
``end--Bdescription
David Groceries
Eli Hamster cages
Surreal numbers
Doris Pick up Peter
These environments also have an optional argument, [t] to align the box
with the top line, and [b] to align the box with the bottom line.
To do:
``fbox--``setlength--``itemsep--0pt%
``begin--Benumerate[t]
``item Groceries
``item Hamster cages
``item Pick up Peter
``end--Benumerate
To do: 1. Groceries
2. Hamster cages
3. Pick up Peter
There is also a generic ``Blist command that is analogous to L A T E X's ``list.
It has the same two obligatory arguments, plus a third optional [t] or [b]
argument for changing the alignment.

fancybox.sty, Version 1.2 14
8 Superimposing boxes
The command
``boxput*(x,y)--LR stuff1 --LR stuff2
puts LR stuff1 either behind (the default) or in front of (with the *) LR
stuff2 . 8 The resulting box has the dimensions of LR stuff2 .
The coordinates (x,y) determine where the center of LR stuff1 is positioned.
For example, (0,0) puts it at the center of LR stuff2 , (0,1) puts it at the
centertop, and (1,1) puts it in the bottomleft corner.
More generally, the origin of the coordinate system is at the center of LR
stuff2 , one unit in the vertical direction is half the vertical size of LR stuff2 ,
and one unit in the horizontal direction is half the width of LR stuff2 . Thus,
x and y should always be numbers (without units such as pt or cm), with one
exception: If y is b or B, LR stuff1 is positioned vertically at the baseline of
LR stuff2 . (x,y) is optional---the default is (0,0).
Except for the funny coordinate system, ``boxput is like the ``put command
in a picture. In particular, you can use ``makebox in LR stuff1 to finetune
the positioning, and LRstuff1 can contain a picture environment.
You might use ``boxput to put a ``water mark'' in the background of a box,
or to put a label next to a box, when you don't want this label to take up
any space. Here is a lazy example:
``boxput--``makebox(0,0)--``Huge Censored!--``parbox--3in--%
The origin of the coordinate system is at the center of
--``em LR stuff2, and one unit in the xdirection
is half the width of --``em LR stuff2.
Censored!
The origin of the coordinate system is at
the center of LR stuff2, and one unit in the
xdirection is half the width of LR stuff2.
This would be a lot more interesting using PSTricks, with ``Censored!'' in
the foreground, rotated 30 degrees, and red:
8 You will only notice the difference between ``boxput and ``boxput* if you are using
color implemented by ``special's

fancybox.sty, Version 1.2 15
``boxput*--``rput--30--``Huge``red Censored--``parbox--3in--%
blah blah
Here is another example using PSTricks:
``newcommand--``titledframe[2]--%
``boxput*(0,1)--``psframebox*--#1%
--``psframebox[framesep=12pt]--#2
The following example illustrated roughly how it works, but ``My title'' does
not blot out the frame behind it because this documentation does not use
PSTricks.
``titledframe--My title--%
``parbox--2in--The title is superimposed
on the top part of the frame.
The title is superimposed on
the top part of the frame.
My title
9 Framing a whole page
The commands
``fancyput*(x,y)--LR stuff
``thisfancyput*(x,y)--LR stuff
are pretty much like ``put commands in a L A T E X picture environment whose
origin is 1 inch down and to the right from the top left corner of the page. 9
The only differences are that (i) that any LRmode material is permitted
(including L A T E X picture environment, of course), (ii) the coordinate is op
tional (0pt,0pt) is substituted by default), and (iii) if the coordinate is
included, you must specify the units.
``thisfancyput affects only the current page, and is a global declaration
(analogous to ``thispagestyle).
9 Don't blame me for T E X's peculiar 1 inch margins.

'
&
$
%
fancybox.sty, Version 1.2 16
If you include the optional *, then the command adds to, rather than replaces,
other things that have been inserted with ``fancyput or ``thisfancyput.
These commands are particularly useful for framing a page, because you can
get a frame that is, e.g., 1 inch from each side of the physical page without
having to worry about what margins you are using for the document. Here
is an example:
``thisfancyput(3.25in,4.5in)--%
``setlength--``unitlength--1in``fancyoval(7,9.5)
You could also use ``fancyput to add some kind of ``watermark'' or back
ground image (e.g., a light gray ``DRAFT'').
There are other commands that directly frame or in some other way box the
page of text:
``fancypage--cmds1 --cmds2
``thisfancypage--cmds1 --cmds2
Each finished page, before adding the headers and footers, (and thus having
width and height ``textwidth and ``textheight, is boxed with
cmds1 --pagebox
Thus, cmds1 should be, or should end with, a command whose argument
can be a box, such as ``fbox or ``rotateleft.
Then the headers and footers are added, using the new width of the page,
and this is boxed with
cmds2 --pagebox
The same rules apply to cmds2 as to cmds1 .
Here is an example:
``thisfancypage--%
``setlength--``fboxsep--8pt%
``setlength--``shadowsize--8pt%
``shadowbox--
Warning: The commands described in this section change L A T E X's output
routine, and may not work with document styles that do the same. Also,
bad arguments can cause serious errors with uninformative error messages.

fancybox.sty, Version 1.2 17
10 Switching to landscape mode midstream
The most common reason to switch to landscape mode midstream is to rotate
a float, such as a table or figure. This was discussed in Section ??.
If you want to rotate one or more pages, without rotating the headers and
footers, use the
``begin--LandScape--cmd
...
``end--LandScape
environment. cmd should be the command for rotating the page 90 degrees
to the left or right. (E.g., ``rotateleft, or ``rotate[l].)
If you want to rotate the headers, footers and margins as well, use the
``begin--Landscape--paperwidth--paperheight--cmd
...
``end--Landscape
environment (the small s makes the difference) to rotate the pages left (coun
terclockwise), and use the Landscape* environment (same arguments) to ro
tate the pages right (clockwise). The three arguments are the width of the
paper, the height of the paper, and the rotation command you are using.
For example, if I have a portrait mode document using the US 8.5in by 11in
paper, and if ``rotateleft--foo rotates foo 90 degrees counterclockwise,
then I can write
``begin--Landscape--8.5in--11in--``rotateleft
You can use ``LandScape, ``Landscape and ``Landscape*, rather then the
LandScape, Landscape and Landscape* environments, if you want the rest
of the document to be in landscape mode.
If your document is being printed in landscape mode, then these environ
ments switch to portrait mode.
For example, suppose I have a landscape mode document, and I want to
switch to portrait mode for the rest of the document, rotating the pages to
the ``right'' with ``rotateright. Then I would write

fancybox.sty, Version 1.2 18
``Landscape*--11in--8.5in--``rotateright
These environments switch the text width and height, leaving the margins
exactly as they were before. It is quite possible that you want to make
other changes to the page parameters after switching to landscape mode, but
as Lamport points out the L A T E X User's Guide and Reference Manual, this
generally doesn't work right in the middle of the document. fancybox.sty
has a command ``UsePageParameters which gets around this. It should be
used right after you change the page parameters (and the page parameter
changes should come right after the beginning of the landscape environment,
or ``clearpage).
Warning: The commands and environments described in this section change
L A T E X's output routine, and may not work with document styles that do the
same. Also, bad arguments can cause serious errors with uninformative error
messages.
11 Verbatim
If you try to frame some verbatim text by typing
``fbox--%
``begin--minipage--5cm
``begin--verbatim
``My ``Program ``Listing
if -- foo -- bar fi
``end--verbatim
``end--minipage
you will get nonsense at best. This is because the argument to ``fbox is read
before the ``begin--verbatim is processed. But then it is too late for T E X
to go back and interpret the contents of the verbatim environment literally
rather than as special T E X commands and characters.
One solution is to use the Sbox environment:
``begin--Sbox
``begin--minipage--5cm
``begin--verbatim
``My ``Program ``Listing

fancybox.sty, Version 1.2 19
if -- foo -- bar fi
``end--verbatim
``end--minipage
``end--Sbox
``setlength--``fboxsep--8pt
``fbox--``TheSbox
``My ``Program ``Listing
if -- foo -- bar fi
fancybox.sty also contains a command that ``fixes'' L A T E X's LRbox com
mands for use with verbatim text:
``VerbBox--cmd--LR stuff
This is like
cmd --LR stuff
but LR stuff can contain verbatim text. 10 For example:
``VerbBox--``fbox--``verb+``foo--bar+
``foo--bar
For footnotes, put the command ``VerbatimFootnotes in the preamble, and
then you can use verbatim commands or environments in the argument of
``footnote. This is an optional feature because it might conflict with some
body else's modification of the footnote system.
If you try to define your own framed verbatim environment with
``newenvironment--FramedVerb%
--``begin--Sbox``begin--minipage--5in``begin--verbatim
--``end--verbatim``end--minipage``end--Sbox
``setlength--``fboxsep--8pt``fbox--``TheSbox
10 Or other tricks that involve ``catcode changes, as occurs with some foreign language
macros.

fancybox.sty, Version 1.2 20
and then type
``begin--FramedVerb
if -- foo -- bar fi
``end--FramedVerb
you will again run into trouble because after the ``begin--verbatim, L A T E X
is searching for the literal string ``end--verbatim as the end of the verbatim
text. It just skips right over the ``end--FramedVerb and may well continue
to the end of the file or until it throws up.
fancybox.sty contains some verbatim environments that get around this
problem and that have other advantages for LRboxing verbatim listings,
when compared to the standard L A T E X verbatim environment. Admittedly,
many of their special features have nothing to do with boxes.
Here are the basic verbatim environments:
Verbatim Works pretty much like L A T E X's verbatim.
LVerbatim Like Verbatim, but list rather than trivlist is used to display
the listing, and so it is indented from the left margin. (This is what I
am using for verbatim listings in this document.)
BVerbatim[pos] Produces a box with the same width as the longest verba
tim line. The baseline is in the center, unless you include the optional
argument [t] for alignment with the top line or [b] for alignment with
the bottom line.
VerbatimOut--file Writes the verbatim text to file.
SaveVerbatim--cmd Saves the verbatim text as cmd . cmd is defined glob
ally, without checking whether cmd is already defined. Use obviously
innocuous names like ``MyTemp.
Important: For any of these verbatim environments, or new verbatim
environments you define yourself (see below), nothing should come after
``begin--Verbatim or before ``end--Verbatim on the same line --- not even
spaces! 11 If you put something after ``begin--Verbatim on the same line, it
11 If you need to allow something to come before ``end--Verbatim, then you have two
options:
ffl Put the command ``AltGetVerbatim in the preamble. This switches to a scheme

fancybox.sty, Version 1.2 21
is simply ignored. However, if you put something after ``end--Verbatim on
the same line, or if you misspell ``end--Verbatim, you will get an error such
as
! File ended while scanning use of ``Verbatim.
and the document will end at that point.
You can define new verbatim environments using ``newenvironment. You
just have to start the definition with
``VerbatimEnvironment
For example, here is the framed verbatim environment we tried earlier:
``newenvironment--FramedVerb%
--``VerbatimEnvironment
``begin--Sbox``begin--minipage--5cm``begin--Verbatim%
--``end--Verbatim``end--minipage``end--Sbox
``setlength--``fboxsep--8pt``fbox--``TheSbox
Let's give it a try:
``begin--FramedVerb
if -- foo -- bar fi
``end--FramedVerb
if -- foo -- bar fi
Here are three commands for inputting a whole file verbatim. The file must
end with a new line.
where anything preceding ``end--Verbatim is simply ignored. This can cause prob
lems if you do really weird things with active characters or other commands within
the verbatim environment (e.g., active conditionals that are not balanced within a
line of verbatim text), but in this case you are probably a good enough hacker to
use the next option.
ffl ``EndVerbatimTokens is a token register that you can set to the tokens that should
precede ``end--Verbatim on the same line, with their verbatim ``catcode's.

fancybox.sty, Version 1.2 22
``VerbatimInput--file Like ``Verbatim.
``LVerbatimInput--file Like ``LVerbatim.
``BVerbatimInput[pos]--file Like ``BVerbatim.
Here are three commands for making use of verbatim text that has been
saved to a command:
``UseVerbatim--cmd Like ``Verbatim.
``LUseVerbatim--cmd Like ``LVerbatim.
``BUseVerbatim[pos]--cmd Like ``BVerbatim.
The SaveVerbatim environment and the ``UseVerbatim commands are useful
for including verbatim text in the argument of ``marginpar, ``fbox and other
commands. For example, here is another way to define the FramedVerb
environment:
``newenvironment--FramedVerb%
--``VerbatimEnvironment
``begin--SaveVerbatim--``MyTemp%
--``end--SaveVerbatim%
``setlength--``fboxsep--8pt%
``fbox--``begin--minipage--5cm``UseVerbatim--``MyTemp
``end--minipage
Here are some verbatim commands for shortpieces of (inline) verbatim text:
``Verbchar literal char
Like L A T E X's ``verb command, but it will complain if it encounters a
new line in literal . 12 For example:
The main use for the ``Verb+SaveVerbatim+
environment