1 | % Support package for ESAF User Guide |
---|
2 | % $Id: esaf.sty 2441 2006-02-01 08:29:07Z thea $ |
---|
3 | % Alessandro Thea - created |
---|
4 | |
---|
5 | \NeedsTeXFormat{LaTeX2e} |
---|
6 | \ProvidesPackage{esaf} |
---|
7 | [2004/02/26 v0.1 |
---|
8 | `esaf' verbatim facilities% |
---|
9 | ] |
---|
10 | %\@ifundefined{VerbatimEnvironment}{\RequirePackage{fancybox}}{} |
---|
11 | \@ifundefined{DefineVerbatimEnvironment}{\RequirePackage{fancyvrb}}{} |
---|
12 | \@ifundefined{FrameCommand}{\RequirePackage{framed}}{} |
---|
13 | |
---|
14 | \def\code#1{\texttt{#1}} |
---|
15 | |
---|
16 | %\DefineVerbatimEnvironment% |
---|
17 | % {displaycode}{Verbatim}{fontsize=\footnotesize, frame=single, framerule=0.4mm, framesep=2mm, resetmargins=true} |
---|
18 | |
---|
19 | \newenvironment{lined}[1]% |
---|
20 | {\begin{center}\begin{minipage}{#1}\hrule\medskip} |
---|
21 | {\vspace{-1ex}\hrule \end{minipage}\end{center}} |
---|
22 | |
---|
23 | \setlength{\FrameRule}{0.4mm} |
---|
24 | \setlength{\FrameSep}{3pt} |
---|
25 | |
---|
26 | \newlength{\VerbBackVSpace} |
---|
27 | \setlength{\VerbBackVSpace}{4pt}% 11pt |
---|
28 | |
---|
29 | \newenvironment{displaycode}% |
---|
30 | { |
---|
31 | \VerbatimEnvironment% |
---|
32 | \begin{contlabelframe}{} |
---|
33 | \vspace{-\VerbBackVSpace} |
---|
34 | \begin{Verbatim}[fontsize=\footnotesize, resetmargins=true,framesep=0mm]}%, frame=single, framerule=0.4mm, framesep=2mm]% |
---|
35 | {% |
---|
36 | \end{Verbatim}% |
---|
37 | \vspace{-\VerbBackVSpace} |
---|
38 | \end{contlabelframe}% |
---|
39 | } |
---|
40 | |
---|
41 | |
---|
42 | % Frame with a label at top |
---|
43 | \newcommand\LabFrame[1]{% |
---|
44 | \fboxrule=\FrameRule |
---|
45 | \fboxsep=\FrameSep |
---|
46 | \fbox{\vbox{\nobreak \vskip-0.7\FrameSep |
---|
47 | % \rlap{\strut#1}\nobreak\nointerlineskip \vskip0.7\FrameSep |
---|
48 | \ifx\Current@Lab\empty \relax\else% |
---|
49 | \rightline{\strut\Current@Lab}\nobreak\nointerlineskip \vskip0.7\FrameSep |
---|
50 | \fi% |
---|
51 | \hbox{#1}}}% |
---|
52 | } |
---|
53 | |
---|
54 | \makeatletter |
---|
55 | |
---|
56 | % environment contlabelframe has two arguments |
---|
57 | % 1: [optional] continuation label |
---|
58 | % 2: {required} first label |
---|
59 | % Optional continuation label defaults to the first label plus "\ (cont.)" |
---|
60 | |
---|
61 | \newenvironment{contlabelframe}[2][\First@Lab\ \texttt{\itshape(...continued)}]{% |
---|
62 | \def\First@Lab{#2}% |
---|
63 | \def\Contin@Lab{#1}% |
---|
64 | \def\FrameCommand##1{% |
---|
65 | \LabFrame{##1}% |
---|
66 | % Propagate continuation label to main label, for *third* use |
---|
67 | % (first use is a measurement) |
---|
68 | \global\let\Current@Lab\Next@Lab |
---|
69 | \global\let\Next@Lab\Contin@Lab |
---|
70 | }% |
---|
71 | \global\let\Current@Lab\First@Lab |
---|
72 | \global\let\Next@Lab\First@Lab |
---|
73 | \MakeFramed{\advance\hsize-\width \FrameRestore} |
---|
74 | }{\endMakeFramed} |
---|