summaryrefslogtreecommitdiff
path: root/macros/generic/frame/frame-doc.tex
blob: 169ef569e5a3b5bb33c04e4a63e6049fe2cae9cc (plain)
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
91
92
93
94
95
96
97
%% BEGIN frame-doc
%%
%% $Id: frame-doc.tex 320 2010-05-15 09:42:13Z herbert $
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{mathpazo,url}
\usepackage[colorlinks,linktocpage]{hyperref}

\usepackage{frame}
\let\Ffv\fileversion
% Usage:
% \fancyframebox {rule thickness} {separation from inner guy} {inner guy}
%
% \makeemptybox {width} {height} {depth}
\begin{document}
\title{Documentation for frame.tex:\\
  fancy frames for generic TeX}
\author{Timothy Van Zandt\thanks{The documentation was put into
  \LaTeX\ format by Herbert Vo\ss}\\ \url{tvz@Princeton.EDU}}
\date{Version \Ffv\\[3pt] \today}

\maketitle
\thispagestyle{empty}

\begin{abstract}
\texttt{frame.tex/frame.sty} provides fancy frames for generic TeX 
\end{abstract}

\clearpage
\tableofcontents
\clearpage

\section{Usage} 
 
\setbox0=\hbox{\it the center}
\count11=1
\loop\ifnum\count11<11
    \setbox0=\hbox{\fancyframebox{.1pt}{5pt}{\unhbox0}}
    \advance\count11 by1
\repeat
 
\vbox{\centerline{\box0}\vss}
 
This paragraph is probably rather hard to read.  I have used \TeX's
rule-drawing and macro capability to set 10 boxes on top of the
text.  This was rather easy to do in \TeX.  I challenge anyone
to come up with as simple a method for {\it troff}.
 
\def\\{\char`\\}\def\{{\char`\{}\def\}{\char`\}}
The command I used was:
 
$$\hbox{\tt \\fancyframebox\{.1pt\}\{5pt\}\{{\it text to be boxed}\}}$$
 
{\tt \\fancyframebox} makes a framed {\tt \\hbox} containing its
third argument, surrounded by extra space (its second argument),
and rules on all four sides whose width is its first argument.
To get 10 boxes, you just re-frame 10 times.  I used a {\tt \\loop}
construct, but one could just write out 10 nested {\tt \\fancyframebox}
calls.
 
In order to center the fancy boxes, I put them into {\tt \\box0} and
used {\tt \\centerline\{\\box0\}} to write it out.  To make the
text come out on top, I put it in a {\tt \\vbox to 0pt} construct,
making \TeX\ try to squeeze everything vertically to zero.  A
{\tt \\vss} allowed the {\tt \\vbox} to shrink (without it \TeX
\ would still have done the job, but would have complained about
an ``overfull {\tt \\vbox}'').[Ed.-Example was changed...]
 
Thus, the final set of commands, including the \TeX\ loop instructions,
to typeset the boxes was
 
\bigskip

\begin{verbatim} 
\setbox0=\hbox{\it the center}
\count11=1
\loop\ifnum\count11<11
    \setbox0=\hbox{\fancyframebox{.1pt}{5pt}{\unhbox0}}
    \advance\count11 by1
\repeat
 
\vbox{\centerline{\box0}\vss}
\end{verbatim}
 
\bigskip
 
Simple---at least when you consider the task\dots.

\section{Macros}


\begin{verbatim}
\fancyframebox{rule thickness}{separation from inner guy}{inner guy}
\makeemptybox{width}{height}{depth}
\end{verbatim}
 
\end{document}