1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
\ProvidesPackage{verbatimbox}
[2007/03/16 v1.0]
% verbatimbox.sty is based on boxedverbatim environment found
% in moreverb.sty.
%
% It adds the verbbox environment and theverbbox command.
%
% The verbbox environment is just like boxedverbatim, except:
%
% 1) verbbox has no framed place around it; and
% 2) the verbatim box is not output,
% but saved in the global box named \savedverbbox.
%
% The command \theverbbox will output the verbatim box most recently
% created within the verbbox environment (that is, \savedverbbox).
% The [t] option to \theverbbox is made for outputting a verbbox
% in a tabular environment. Without the [t], insufficient vertical
% space is allocated above the box.
%
% This routine allows the verbatim environment to be stuffed into a
% LaTeX box, which can then be embedded in other LaTeX constructs.
%
% This routine is useful, because there are many LaTeX environments
% in which a verbatim environment cannot be simply opened, but
% in which a box can be simply placed (e.g., tabular).
%
% An enabling routine \addvbuffer{}, is available for general
% use. It adds vertical buffer space above and below the argument
% of the command. The vertical space added above the original box
% is the length \boxtopsep; below the box, it is \boxbottomsep. It
% shares some functional similarities to \raisebox, but it is not the
% same.
%
\NeedsTeXFormat{LaTeX2e}
\@ifundefined{verbatim@processline}{\RequirePackage{verbatim}}{}
\global\newsavebox{\savedverbbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The verbbox environment is based on
% the boxedverbatim environment found in moreverb.sty
%
\def\verbbox{%
\def\verbatim@processline{%
{\setbox0=\hbox{\the\verbatim@line}%
\hsize=\wd0 \the\verbatim@line\par}}%
\@minipagetrue%
\@tempswatrue%
\setbox0=\vbox\bgroup \verbatim
}
\def\endverbbox{%
\endverbatim
\unskip\setbox0=\lastbox %
\egroup
\global\sbox{\savedverbbox}{\box0}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand\theverbbox[1][x]{%
\if #1t%
% The t option is for outputting the savedverbbox inside a tabular
% environment (else insufficent vertical space above box)
\boxtopsep = 3pt
\boxbottomsep = 0pt
\addvbuffer{\usebox{\savedverbbox}}
\else%
\usebox{\savedverbbox}
\fi%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \addvbuffer is based on \fbox,
% but without a frame. Empty buffer space
% is added above and below the object, making a new box.
% Above the box is added \boxtopsep (initially 3pt) vertical space.
% Below the box is added \boxbottomsep (initially 0pt) vertical space.
% This routine is called when a savedverbbox is output in a tabular
% environment.
%
\newdimen\boxtopsep
\newdimen\boxbottomsep
\newdimen\ps@tempdima
\newbox\ps@tempboxa
\boxtopsep = 3pt
\boxbottomsep = 0pt
\long\def\addvbuffer#1{\leavevmode\setbox\ps@tempboxa\hbox{#1}\ps@tempdima
0pt \advance\ps@tempdima \dp\ps@tempboxa \hbox{\lower \ps@tempdima\hbox
{\vbox{\hbox{\vbox{\vskip\boxtopsep \box\ps@tempboxa \vskip
\boxbottomsep}}}}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
|