summaryrefslogtreecommitdiff
path: root/macros/generic/insbox/demo.tex
blob: f2ec5e488667c0946f1d8b5f129992c0cbb9f8e1 (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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
% This file contains description of \InsertBoxL, \InsertBoxR, \InsertBoxC
% and \MoveBelowBox macros that are defined in the INSBOX package.
% Compile it and check this source file to see how that all was done.

\nopagenumbers

\input insbox
\input epsf


% a macro for building a box with a frame around it
\def\Frame#1{%
  \vbox{
    \hrule
    \hbox{%
      \vrule
      \vbox{\vskip 4mm \hbox{\hskip 4mm #1 \hskip 4mm} \vskip 4mm}%
      \vrule
      }
    \hrule
  }
}



% Put an \epsfbox in the right after two lines of text:
\InsertBoxR{2}{\epsfbox{pic1.eps}}
Creating documents like this is quite easy. Just four easy macros
can do all the stuff required to put pictures on the page and
format all the neighbouring paragraphs so that they do not interfere
with pictures. The picture you see in the right was inserted using
the following command put just before the beginning of this paragraph:
\hfil\break
{\tt\string\InsertBoxR\char123 2\char125\char123\string\epsfbox\char123
    pic1.eps\char125\char125}


The meaning of the macro's arguments is very easy. The first
argument should be the number of lines to be typeset ``normally'',
that is using the whole width of the page. The second argument
is {\it any\/} box that is to be put on the page beside the text.
The letter {\tt R} at the end of the macro's name indicates
that the picture should be put in the right. Of course, there is
also a macro named {\tt\string\InsertBoxL} which works similarly,
but puts the picture in the left. Further in this document you will
find a description of the {\tt\string\InsertBoxC} macro. As you
probably guessed, it inserts a picture centered in the page.


\def\somebox{\vbox{
  \hsize = 5cm
  \noindent Some simple text. Some simple text. Some simple text.
  Some\break simple text. Some simple text.
  $$ a^2 + b^2 = c^2 $$
  That was a simple formula. Let's put more text here to make
  this box bigger... Some simple text. Some simple text.
}}

% as you see, you can supply the third optional parameter to
% \InsertBoxL and \InsertBoxR macros; it may help if they
% calculate the space for the frame incorrectly
\InsertBoxL{2}{\Frame{\somebox}}[-2]
I mentioned earlier that almost {\it anything\/} can be inserted
in the document --- not only {\tt\string\epsfbox}es. You can create
{\it any\/} box containing graphics, text, math formulas and put it
beside your text using {\tt\string\InsertBox} macros. The simple
example in the left should be a good proof.


The macros are quite reliable, but you may experience some problems
if you put displayed math formulas beside pictures. The space reserved
for the frame may appear too little or too big. But there is an
easy way to make neccessary correction. Check the source file
to see how it was done in this particular situation.
    $$ \sum_{i=1}^{n} i^3 = \left( {n(n+1) \over 2} \right)^2 $$
Also, I do not guarrantee correct behaviour of these macros in other
extreme conditions. It is not possible to put two {\tt\string\InsertBox}
commands before a paragraph --- in that case you should not expect
a paragraph squeezed between two frames.


\def\somebox{\vbox{
  \epsfxsize=4cm
  \hbox{\epsfbox{pic2.eps}}
  \hbox to 4cm{\hss Figure 2.\hss}
}}

There is also a macro for inserting boxes centered in the page. Its name
is {\tt\string\InsertBoxC} and it requires only one argument --- the
box to be inserted. The macro should be called from {\it inside\/}
a paragraph (not put {\it before\/} a paragraph). The box will be put
just below the line containing the macro. For example the picture below
was inserted by putting
{\tt\string\InsertBoxC\char123 \string\somebox\char125}
after {\it this\/}\InsertBoxC{\somebox} word. The line was completed,
the picture was inserted and the paragraph continues below the picture.
The usage seems very simple and intuitive.


\InsertBoxR{0}{\somebox}
I recommend that you see the source of this document and check how
changes to arguments of {\tt\string\InsertBox} macros affect paragraphs.
But before I end, let me give you one more hint. Sometimes you may wish
to generate a vertical skip like this:


\MoveBelowBox
In such situation you should use the {\tt\string\MoveBelowBox} command.
It starts the next paragraph just below the current picture.


\bigskip
\noindent
Micha\l{} Gulczy\'nski \hfil\break
{\tt mgulcz@we.tuniv.szczecin.pl}


\bye