%-*-tex-*-
\ifundefined{writestatus} \input status \relax \fi %
\chcode{figtbl}
\def\cqu{\cquote{Example is always more efficacious than precept.}{Rasselas,
Samuel~Johnson (1709-1784)}
}
\chapterhead{figtbl}{FIGURE\cr and\cr TABLE INSERTS}
\vskip 0pt plus 20pt
\intex\ supplies two basic commands |\figureform| and |\tableform|
that places figures in the current position, writes to the appropriate files
for the generation of
lists of figures and tables, and
does automatic numbering if
|\autonumberingon|. The commands |\figureinsert| and |\tableinsert|
are identical except that the figure is put in place only if there is room on
the current page. Otherwise, it is placed at the top of the following page.
\intex\ also provides three commands for delayed insertion
of text. These are |\begintopinsert|, |\beginmidinsert|, and |\beginpageinsert|, which will
place the text at the top of the page, in place if there is room, or take the
full next page, respectively. These commands are terminated, by an
|\endtopinsert|, |\endmidinsert| and |\endpageinsert| respectively.
Finally, |\ejectinserts| forces deferred figures or tables to be printed so
that they do not spill over into following chapters. This may be necessary,
for example, before a set of appendices.
\begingroup \hfuzz=20pt
\shead{figtblcomlist}{Command List}
\beginthreecolumn
\ext|\beginmidinsert|
\ext|\beginpageinsert|
\ext|\begintopinsert|
\ext|\captionbox|
\ext|\captionnumfont|
\ext|\captiontextfraction|
\ext|\captiontitlefont|
\ext|\captionbodyfont|
\ext|\captionbody|
\ext|\captionbodyon|
\ext|\captionbodyoff|
\ext|\centergraph|
\ext|\centerplotfile|
\ext|\ejectinserts|
\ext|\endmidinsert|
\ext|\endpageinsert|
\ext|\endtopinsert|
\ext|\figureform|
\ext|\figureinsert|
\ext|\figurelabel|
\ext|\rect|
\ext|\tableform|
\ext|\tableinsert|
\ext|\tablelabel|
\ext|\topcaptiontrue|
\ext|\topcaptionfalse|
\endthreecolumn
\endgroup
\shead{figures}{Possible Figures -- \tex Graph}
\intex\ supplies a |\rect by | that will put an empty rectangle
in the position of the actual figure. The addition of
\tex Graph allows for the insertion of actual figures. A \tex Graph figure
may be centered using |\centergraph{}|. An external plot file, may be
placed in position by the use of |\centerplotfile{}|. Both these
commands use information supplied by \tex Graph to determine the amount of
space to leave. All files must be processed to be \tex Graph compatible. For
details on \tex Graph, see ``An Introduction to \tex Graph''.
\shead{caption}{Figure and Table Captions}
\intex\ supplies a number of facilities for captions. A specific example is
given as Figure~\ref{dummyfig}. The caption is broken down into four parts.
The first is the {\bf Fig.} whose value is determined by |\figurelabel| that
is language dependent. The second part is the number that may or may not be
automatically generated. These font of these first two parts is determined by
|\captionnumfont|. The second and third parts are the caption title and
caption body respectively. The caption title will appear in the list of
figures while the caption body will not. |\captiontitlefont| and
|\captionbodyfont| determine the fonts of these latter two sections
respectively. \intex\ defaults both these to |\rm| at the moment.
|\captionbodyon|, which is the default, allows the |\captionbody| to be
printed.
However the command |\captionbodyoff| will turn off the
printing of everything inside a |\captionbody|. This is done when the list of
figures or tables are made using a |\makefiglist| or |\maketbllist|
although it is not really necessary as the |\captionbody| is not
even written out to a list file. Finally
if |\topcaptiontrue|, the caption is placed above the figure while if it is
false, the default, it is placed below.
\shead{deferredinserts}{Deferred Inserts}
\intex\ supplies\footnote{\dagger}{The commands in this section are
essentially {\it plain} commands. They have been renamed to maintain
consistency with the |\begin...| and |\end...| conventions of \intex.}
commands of the form |\begininsert| and corresponding
|\endinsert|. These commands form a group and take the || between
the |\begin...| and |\end...| and insert it, or defer it as the spacing
warrants. A || of |top| will put the || at the top of the current
page, if there is room, or on the next page if there is not. |mid| will put
it at the location it is called out, if there is room, or at the top of the
next page if there is not. |page| will reserve the entire next page for the
||.
\shead{figtablex}{Deferred Figures or Table Inserts}
The basic command |\figureform| takes three parameters, the figure number or tag,
the figure caption, and the figure itself as described in
Section~\ref{figures}. It places the figure in the text at the present
position whether there is room or not. Usually the desirable effect is to
defer the figure until the following page if there is not enough room on the
present one. The command |\figureinsert| does just that.
The following command will insert the figure as shown. Autonumbering is on.
\begingroup
\let\captionnumfont = \twelvebfxsca
\let\captiontitlefont = \twelvess
\let\captionbodyfont=\tenss
\figureinsert{dummyfig}{This is not a very
Exciting Figure \captionbody{-- It does show though it is
entirely possible to use the font freedom to create a less
than pleasing final result. The group here prevents this
disaster from spreading.}}{\rect 4cm by 6cm}
\endgroup
\beginttverbatim
\1begingroup
\1let\1captionnumfont = \1twelvebfxsca % scaled 10pt
\1let\1captiontitlefont = \1twelvess
\1let\1captionbodyfont=\1tenss
\1figureinsert{dummyfig}{This is not a very
Exciting Figure \1captionbody{-- It does show though it is
entirely possible to use the font freedom to create a less
than pleasing final result. The group here prevents this
disaster from spreading.}}{\1rect 4cm by 6cm}
\1endgroup
\endttverbatim
The spacing between the figure and the caption is determined by the value of
|\captionskip|. If new values are desired, these are produced by
|\captionskip = |.
Figure~\ref{target} uses the facilities of \tex Graph and a deferred
insert.
Assume that |\target| is the graphics description for the
figure. The figure is called out here.
\ifundefined{textref}
\begingroup \catcode`\^=12 \input texgraph \endgroup \fi
\let\dmess=\message
\def\target{\btg \unitscale .5
\move h:2 v:2
\lcir r:1.5 \pfill p:.7
\lcir r:1 \pfill p:.5
\lcir r:.5 \pfill p:.3
\move h:4 v:4
\etg}
\figureinsert{target}{This is a
Figure Insertion Involving Graphics}{\centergraph{\target}}
The commands were
\beginttverbatim
\1def\1target{\1btg \1unitscale .5
\1move h:2 v:2
\1lcir r:1.5 \1pfill p:.7
\1lcir r:1 \1pfill p:.5
\1lcir r:.5 \1pfill p:.3
\1move h:4 v:4
\1etg}
\1figureinsert{target}{This is a
Figure Insertion Involving Graphics}{\1centergraph{\1target}}
\endttverbatim
\tex Graph commands are documented in ``texgraph.doc''.
The format of the |\tableform| and |\tableinsert| commands
is the same with the last argument
replaced by the table itself or an |\input{}| that would bring
in the file. The ``Fig.'' in the caption is in the command |\figurelabel|.
There is an equivalent |\tablelabel|.
\shead{fullpagefig}{Full Page Figure/Table Inserts}
Full page figure/table inserts are complicated by the need to position the
caption differently if the figure/table exists or not. The following is used
for a full page figure if there is no figure and the caption is required at
the bottom of the page.
\begintt
\beginpageinsert
\captionskip = 0pt plus 1 fill % pushes caption to bottom of page
\figureform{}{}{} % note empty last parameter
\endpageinsert
\endtt
If there is a figure, it will be placed at the top of the page and
the caption, a |\captionskip| below it. The commands for this are
\begintt
\beginpageinsert
\figureform{}{}{}
\endpageinsert
\endtt
Tables are inserted similarly.
To insert a table or figure vertically on a page, \tex Graph must be used.
\shead{figcomp}{Complications and Unusual Cases}
Insertions are not without there complications. The following problems can
occur:
\beginlist
\li $\bullet$ Two or more figure insertions reverse their order: This will
occur when there is room to insert the second figure called out but not the
first. {\bf Solutions(?):} call them out in different order; use
|\figureform| to force the insertion and accept the consequences; make the
figures smaller.
\li $\bullet$ A figure has one or two lines of text below it: This will
happen if the inserted figure is almost a full page. It is even possible to
have an almost blank page preceding it. {\bf Solution:} Change the
|\figureinsert| to an full page insert as described in
Section~\ref{fullpagefig}.
\li $\bullet$ Two full page figures in row are really parts 1 and 2 of the
same figure: This is complication both with the automatic numbering of the
figures and the list of figures. The solution is somewhat complicated.
Only the numbering problem is considered here. See Chapter~\ref{auto}
for the details on autonumbering. {\bf Solution:}
\begintt
\silent{\autofignum{}}
\begingroup
\autonumberingoff
\beginpageinsert
\figureform{\ref{}(a)}{}{}
\endpageinsert
\beginpageinsert
\figureform{\ref{}(b)}{}{}
\endpageinsert
\endgroup
\endtt
\li $\bullet$ Figures from a previous chapter or section spill over into the
next: {\bf Solution:} Follow the last figure with |\ejectinserts|. If a new
page is required, follow this by |\ejectpage|.
\endlist
\shead{figtblcomforms}{Command Forms}
\beginblockmode
\ext\@|\beginmidinsert|
\nbr
\ext\@|\beginpageinsert|
\nbr
\ext\@|\begintopinsert|
\nbr
These basic deferred text insertion commands start a group and define the
beginning of || that will be inserted either in place or at the top of
the next page if there is no room, on the entire next page, or at the top of
the page respectively.
\mbr
\ext\@|\captionbox{}{}|
\nbr
This command is used for captioning figures or tables. If the ||
plus the || is shorter than
|\captiontextfraction| of the size of the enclosing box or
page, the two are centered. If the total is greater, the title is put in a box,
in ragged format and will be automatically broken if it takes more than the
one line. The spacing is always one. |\captiontextfraction| is defaulted to
0.8.
The captionbox is used in both |\figureform| and |\tableform| but is
available for other captioning as necessary.
\mbr
\ext\@|\captionbody{}|
\nbr
This command is optionally placed in title field of a caption. it is used to
write an essay about a figure or table that you do not want to turn up in the
list of figures or tables. It is printed if |\captionbodyon| and is not
printed if |\captionbodyoff|. |\captionbodyon| is the default. The
|\captionbody| is {\bf not} written out to the |.fig| or |.tbl| file.
\mbr
\ext\@|\captionbodyon \captionbodyoff|
\nbr
|\captionbodyon| allows a |\captionbody| text to be output --
|\captionbodyoff| prevents it. The default in normal text is |\captionbodyon|
but in lists of figures or tables produced by |\makefiglist| or
|\maketbllist| is |\captionbodyoff|.
\mbr
\ext\@|\captionbodyfont|
\nbr
This command sets font of the body of the caption of a Figure or Table.
The material affected by this font will not appear in a list of tables or
figures.
The default is the same as current active font.
\mbr
\ext\@|\captionnumfont|
\nbr
This command sets font of the herald {\bf Fig.} and the number.
It is set in a consistent way as part of the document font specification in a
font family. The default is the same as the |\ssheadfont|.
\mbr
\ext\@|\captiontitlefont|
\nbr
This command sets font of the title of a Figure or Table.
The default is the same as current active font.
\mbr
\ext\@|\captionskip [=] |
\nbr
This command sets the spacing between the figure/table and the following
|\captionbox|. It is assigned |0pt plus 1fill| to force the caption box to the
bottom of the page for a full page figure.
\mbr
\ext\@|\captiontextfraction|
\nbr
This value controls the fraction of the width of the page that will be used
to determine whether the caption text is set as a single line or as several
lines. It is defined in {\tt inrsdef.tex} as |\def\captiontextfraction{0.8}|.
\mbr
\ext\@|\ejectinserts|
\nbr
This command forces out all of the inserts, be they footnotes or deferred
figures and leaves the position at the end of the last insert. If a new page
is desired, the |\ejectinserts| should be followed by an |\ejectpage|.
\mbr
\ext\@|\endmidinsert|
\nbr
\ext\@|\endpageinsert|
\nbr
\ext\@|\endtopinsert|
\nbr
These commands terminate their respective |\begin..insert| and close the
group.
\mbr
\ext\@|\figureform{}{}{}|
\nbr
This is the basic command for inserting and captioning space for a figure in
a document. If |autonumbering| is on, the || becomes the tag
for the figure for in text reference. The actual text inserted in the figure
caption is |\figurelabel| where the || is
computed determined from the tag value. For instance ``|\ref{dummyfig}|'' gives
``\ref{dummyfig}''. If autonumbering is off, the text of the
|| is inserted. The || should take up the same
amount of space as the actual figure, less captions. If the |.fig| file is
open, the |\figtoc| command with its ||, || and
|| arguments are written to it.
\mbr
\ext\@|\figureinsert{}{}{}|
\nbr
This is equivalent to
\begintt
\beginmidinsert
\figureform{}{}{}|
\endmidinsert
\endtt
The effect is to place the figure at the present location, if there is enough
room on the page, or defer it to the top of the next page if there is not.
See Section~\ref{figcomp} for complications.
\mbr
\ext\@|\figurelabel|
\nbr
This command is defined to give the text that precedes the ||
in the caption. In \intex\ this is ``\figurelabel''. This is modified by
redefining it with a |\def\figurelabel {}|.
\mbr
\ext\@|\rect by |
\nbr
This creates a line boxed rectangle with the dimensions given and then places
it in a |\centerline|.
\mbr
\ext\@|\tableform{}{}{

}|
\nbr
This command is almost identical to |\figureform| except that the |listfile|
is |.tbl|, the prenumber caption, which is ``\tablelabel'' is
defined by the command |\tablelabel|,
and the final argument will usually be the actual table.
\mbr
\ext\@|\tableinsert{}{}{}|
\nbr
This is equivalent to
\begintt
\beginmidinsert
\tableform{}{}{}|
\endmidinsert
\endtt
The effect is to place the table at the present location, if there is enough
room on the page, or defer it to the top of the next page if there is not.
See Section~\ref{figcomp} for complications.
\mbr
\ext\@|\tablelabel|
\nbr
This command is defined to be the prestring to the table number. It defaults
to ``\tablelabel''. This is modified by
redefining it with a |\def\tablelabel {}|.
\endblockmode
\ejectpage
\done