Creating the combined figure
From Bradley Kuszmaul:
(1) Set the 'special' flag in xfig.
(2) Generate two files using:
$ make overview.pstex overview.pstex_t -n -W overview.fig
fig2dev -L pstex overview.fig overview.pstex
fig2dev -L pstex_t -p overview.pstex overview.fig overview.pstex_t
(3) include the graphics in your latex by doing
\input{overview.pstex_t}
(4) You may need some graphcs mode thing, such as
\usepackage{epsfig}
(5) I use this macro
\newcommand{\figput}[2]{%
\begin{figure}%
\begin{center}%
\input{#1.pstex_t}%
\end{center}%
\caption{\mbox{\tt (#1.eps)} #2}%
\label{fig:#1}%
\end{figure}%
}
which I use like this
\figput{overview}{How the components fit together. The program is
written in an extension to C that has some implicit and explicit
atomicity. The compiler produces an executable that, using a
combination of the run-time library and the hardware, runs the
program. The interface between the executable and the
hardware-and-library is called the transactional API\@.}
Note: i don't think you need epsfig, but you do need:
\usepackage[dvips]{graphicx,color}
Also, you don't need to run fig2dev directly; xfig can export the 2
files in "combined" form.
Scaling the combined figure
A script (from Tinh Tieu?) that creates a little .tex document with your
figure and uses dvips to get an eps.
#!/usr/bin/perl
# convert xfig pstex to eps
# usage pstex
$basename=shift;
open TEX, ">$basename.tex" or die "Cannot open $basename.tex for write :$!";
print TEX "\\documentclass{article}\n";
print TEX "\\usepackage{graphicx,color}\n";
print TEX "\\setlength{\\textwidth}{100cm}\n";
print TEX "\\setlength{\\textheight}{100cm}\n";
print TEX "\\begin{document}\n";
print TEX "\\pagestyle{empty}\n";
print TEX "\\input{$basename.pstex_t}\n";
print TEX "\\end{document}";
close TEX;
system("latex $basename.tex");
print STDOUT "making eps\n";
system("dvips -E $basename.dvi -o $basename.eps");
print STDOUT "making pdf\n";
system("epstopdf $basename.eps");
print STDOUT "making pgn\n";
system("convert -density 600 $basename.pdf $basename.png");
system("rm $basename.dvi $basename.aux $basename.log $basename.tex");