\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