{SAURON} Observations of Disks in Early-Type Galaxies
M.\ Bureau
Y.\ Copin
E.\ K.\ Verolme
P.\ T.\ de Zeeuw
We briefly describe the {SAURON} project, aimed at determining the intrinsic shape and internal dynamics of spheroids. We focus here on the ability of {SAURON} to identify gaseous and stellar disks and to measure their morphology and kinematics. We illustrate some of our results with complete maps of NGC~3377, NGC~3623, and NGC~4365.
bureaum_astroph.tex
% Conference proceedings for ``Galaxy Disks and Disk Galaxies'' conference,
% organized by the Vatican Observatory in Rome June 12-16 2000.
%
% Martin Bureau, September 2000 (for the Sauron Team)
%
\documentstyle[11pt,newpasp,twoside,epsf]{article}
\markboth{Bureau et al.}{{\tt SAURON} Observations of Disks}
\pagestyle{myheadings}
%
\begin{document}
%
% Title and authors
%
\title{{\tt SAURON} Observations of Disks in Early-Type Galaxies}
\author{M.\ Bureau, Y.\ Copin, E.\ K.\ Verolme, P.\ T.\ de Zeeuw}
\affil{Sterrewacht Leiden, Postbus 9513, 2300~RA Leiden, Netherlands}
\author{R.\ Bacon, Eric Emsellem}
\affil{CRAL-Observatoire, 9 Avenue Charles-Andr\'{e}, 69230
  Saint-Genis-Laval, France}
\author{Roger L.\ Davies, Harald Kuntschner}
\affil{Physics Department, University of Durham, South Road, Durham
   DH1~3LE, United Kingdom}
\author{C.\ Marcella Carollo}
\affil{Department of Astronomy, Columbia University, 538 West 120th Street, 
   New York, NY~10027, U.\ S.\ A.}
\author{Bryan W.\ Miller}
\affil{Gemini Observatory, Casilla 603, La Serena, Chile}
\author{G.\ Monnet}
\affil{European Southern Observatory, Karl-Schwarzschild Strasse 2, 
   D-85748 Garching, Germany}
\author{Reynier F.\ Peletier}
\affil{Department of Physics and Astronomy, University of
   Nottingham, University Park, Nottingham NG7~2RD, United Kingdom}
%
% Abstract
%
\begin{abstract}
  We briefly describe the {\tt SAURON} project, aimed at determining the
  intrinsic shape and internal dynamics of spheroids. We focus here on the
  ability of {\tt SAURON} to identify gaseous and stellar disks and to measure
  their morphology and kinematics. We illustrate some of our results with
  complete maps of NGC~3377, NGC~3623, and NGC~4365.
\end{abstract}
%
% Description of the {\tt SAURON} project
%
\section{The {\tt SAURON} Project}
We are carrying out a study to determine the distribution of intrinsic shapes
of early-type galaxies and bulges and to constrain the range of internal
velocity, age, and metallicity distributions realized in luminous galaxies. Of
interest are the observed dichotomy of central cusp slopes, the dynamical role
of central massive black holes, and the relation between the kinematics and
stellar populations.

\noindent Such goals require the use of wide-field spectroscopy with complete spatial
coverage, a large bandpass, and sufficient spectral resolution. {\tt SAURON} was
designed specifically to meet these goals. In its low spatial resolution
mode, it has a $41\arcsec\times33\arcsec$ field-of-view sampled at 0\farcs94
and a $4800-5400$~\AA\ wavelength range with $3.6$~\AA\ resolution (90~km~s$^{-1}$
instrumental dispersion). The instrument is fully described in Bacon et al.\ 
(2001).

\noindent For the {\tt SAURON} project, we are observing a {\em representative} sample
of spheroids covering the full range of environment, nuclear cusp slope,
rotational support, and apparent flattening. The sample was chosen from a
complete list of galaxies to populate homogeneously six ($\epsilon$, $M_B$)
planes. These planes, representing E/S0/Sa and field/cluster galaxies, are
illustrated in Figure~1. The data are reduced in a uniform manner using a
pipeline specifically developed for {\tt SAURON}.

\begin{figure}
\plotone{bureaum1.ps}
\caption{The {\tt SAURON} representative sample of E, S0, and Sa
  galaxies. {\em Filled circles:} Cluster galaxies.  {\em Empty circles:}
  Field galaxies.}
\end{figure}
%
% Examples of disk observations
%
\section{{\tt SAURON} Observations of Disks}
The wavelength range covered by {\tt SAURON} for nearby galaxies includes many
important emission and absorption lines, such as H$\beta$, [OIII], Mgb, Fe1,
and [NI]. The emission lines allow us to meaure the total intensity and mean
velocity of the ionized gas, but our main goal is to measure the full stellar
line-of-sight velocity distribution from the absorption lines (i.e.\ $v$,
$\sigma$, $h_3$, $h_4$) and to measure line-strength indices. Below, we
present examples of a gaseous disk (NGC~3377) and a stellar disk (NGC~3623)
embedded in a larger spheroid. We also show line-strength maps for a galaxy
harboring a central kinematically decoupled component (NGC~4365). Disks,
asymmetries, and evidence of triaxiality are all easily detected (see de Zeeuw
et al.\ 2001).
%
% Gaseous disk in NGC3377
%
\subsection{A Barred Gaseous Disk in NGC~3377}
NGC~3377 is a large E6 galaxy in the Leo group, previously thought to be
axisymmetric. Figure~2 shows the [OIII] total intensity and velocity field
obtained with {\tt SAURON}. The ionized gas distribution is strongly
non-axisymmetric, resembling a bar. The gaseous kinematics also suggests a
bar-like perturbation, showing minor-axis rotation and a twist of the
kinematic major axis. Evidence of triaxiality is also seen in the {\tt SAURON}
stellar velocity field of NGC~3377, which shows significant minor-axis
rotation (Bacon et al.\ 2001).

\begin{figure}
\plotone{bureaum2_astroph.ps}
\caption{The {\tt SAURON} [OIII] total emission line intensity ({\em left})
  and velocity field ({\em right}) for the E6 galaxy NGC~3377. The scales are
  in arcseconds and velocities extend from -140 to 140~km~s$^{-1}$.}
\end{figure}
%
% Stellar disk in NGC~3623
%
\subsection{A Central Stellar Disk in NGC~3623}
NGC~3623 (M~65) is another highly-inclined galaxy in the Leo group, but it is
of much later type than NGC~3377, SABa(rs). It is part of the Leo triplet with
NGC~3627 and NGC~3628 but does not appear to be interacting. NGC~3623's
kinematics has barely been studied and the {\tt SAURON} observations provide the
first glimpse of its dynamics. Figure~3 shows the reconstructed luminosity
distribution, velocity field, and velocity dispersion field obtained with
{\tt SAURON}. They encompass most of the bulge. The large-scale velocity field
reveals minor-axis rotation, in agreement with the presence of a bar. In
addition, a quasi edge-on disk is present in the center, where the isovelocity
contours flatten out abruptly. This disk appears as a central depression in
the velocity dispersion field, and its effects are also seen in the $h_3$ and
$h_4$ maps (not shown).

\begin{figure}
\plotone{bureaum3_astroph.ps}
\caption{The {\tt SAURON} reconstructed luminosity distribution ({\em left}),
  velocity field ({\em center}), and velocity dispersion field ({\em right})
  for the SABa galaxy NGC~3623. Each field is approximately
  $48\arcsec\times62\arcsec$ and represents the mosaic of two partially
  overlapping {\tt SAURON} pointings. Velocities range from -180 to
  180~km~s$^{-1}$ and dispersions from 80 to 180~km~s$^{-1}$.}
\end{figure}
%
% The kinematically decoupled component in NGC4365
%
\subsection{The Kinematically Decoupled Core of NGC~4365}
NGC~4365 is a large E3 galaxy in Virgo. It was known to possess a
kinematically decoupled core, rotating perpendicularly to the outer parts (in
projection; see Surma \& Bender 1995). Figure~4 presents maps of the
reconstructed luminosity distribution, velocity, and velocity dispersion, as
well as the Mgb and H$\beta$ line-strength maps in the Lick/IDS system. The
{\tt SAURON} data reveal the morphology, kinematics, and line-strengths of the stars
over most of the body of the galaxy. The two components with misaligned
angular momenta are easily recovered and suggest that the galaxy is triaxial
or at least that it departs significantly from axisymmetry. The velocity
dispersion and line-strengths follow the light distribution and show no sign
of the central component. The line-strengths suggest a constant
luminosity-weighted age of $\approx14$~Gyr across the galaxy, accompanied by a
decrease of the metallicity with radius; only the very center may be 2--3~Gyr
younger. These results imply that the kinematic configuration is stable over a
Hubble time and that the entire galaxy experienced a similar star formation
history, most likely involving considerable gaseous dissipation (see Davies et
al.\ 2001 for more details).

\begin{figure}
\plotone{bureaum4.ps}
\caption{The {\tt SAURON} reconstructed luminosity distribution, velocity,
  velocity dispersion, Mgb, and H$\beta$ maps for the E3 galaxy NGC~4365. The
  data represent the mosaic of two partially overlapping {\tt SAURON}
  pointings.}
\end{figure}
%
% References
%
\begin{references}
\reference Bacon, R., et al.\ 2001, \mnras, submitted.
\reference Davies, R.\ L., et al.\ 2001, ApJL, submitted.
\reference Surma, P., \& Bender, R.\ 1995, \aap, 298, 405
\reference de Zeeuw, P.\ T., et al.\ 2001, \mnras, submitted.
\end{references}
%
\end{document}

epsf.tex
%%% ====================================================================
%%%   This file is freely redistributable and placed into the
%%%   public domain by Tomas Rokicki.
%%%  @TeX-file{
%%%     author          = "Tom Rokicki",
%%%     version         = "2.7k",
%%%     date            = "19 July 1997",
%%%     time            = "10:00:05 MDT",
%%%     filename        = "epsf.tex",
%%%     address         = "Tom Rokicki
%%%                        Box 2081
%%%                        Stanford, CA 94309
%%%                        USA",
%%%     telephone       = "+1 415 855 9989",
%%%     email           = "rokicki@cs.stanford.edu (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "PostScript, TeX",
%%%     supported       = "yes",
%%%     abstract        = "This file contains macros to support the inclusion
%%%                        of Encapsulated PostScript files in TeX documents.",
%%%     docstring       = "This file contains TeX macros to include an
%%%                        Encapsulated PostScript graphic.  It works
%%%                        by finding the bounding box comment,
%%%                        calculating the correct scale values, and
%%%                        inserting a vbox of the appropriate size at
%%%                        the current position in the TeX document.
%%%
%%%                        To use, simply say
%%%
%%%                        \input epsf % somewhere early on in your TeX file
%%%
%%%                        % then where you want to insert a vbox for a figure:
%%%                        \epsfbox{filename.ps}
%%%
%%%                        Alternatively, you can supply your own
%%%                        bounding box by
%%%
%%%                        \epsfbox[0 0 30 50]{filename.ps}
%%%
%%%                        This will not read in the file, and will
%%%                        instead use the bounding box you specify.
%%%
%%%                        The effect will be to typeset the figure as
%%%                        a TeX box, at the point of your \epsfbox
%%%                        command. By default, the graphic will have
%%%                        its `natural' width (namely the width of
%%%                        its bounding box, as described in
%%%                        filename.ps). The TeX box will have depth
%%%                        zero.
%%%
%%%                        You can enlarge or reduce the figure by
%%%                        saying
%%%
%%%                          \epsfxsize=<dimen> \epsfbox{filename.ps}
%%%                        or
%%%                          \epsfysize=<dimen> \epsfbox{filename.ps}
%%%
%%%                        instead. Then the width of the TeX box will
%%%                        be \epsfxsize and its height will be scaled
%%%                        proportionately (or the height will be
%%%                        \epsfysize and its width will be scaled
%%%                        proportionately).
%%%
%%%                        The width (and height) is restored to zero
%%%                        after each use, so \epsfxsize or \epsfysize
%%%                        must be specified before EACH use of
%%%                        \epsfbox.
%%%
%%%                        A more general facility for sizing is
%%%                        available by defining the \epsfsize macro.
%%%                        Normally you can redefine this macro to do
%%%                        almost anything.  The first parameter is
%%%                        the natural x size of the PostScript
%%%                        graphic, the second parameter is the
%%%                        natural y size of the PostScript graphic.
%%%                        It must return the xsize to use, or 0 if
%%%                        natural scaling is to be used.  Common uses
%%%                        include:
%%%
%%%                           \epsfxsize  % just leave the old value alone
%%%                           0pt         % use the natural sizes
%%%                           #1          % use the natural sizes
%%%                           \hsize      % scale to full width
%%%                           0.5#1       % scale to 50% of natural size
%%%                           \ifnum #1>\hsize\hsize\else#1\fi
%%%                                       % smaller of natural, hsize
%%%
%%%                        If you want TeX to report the size of the
%%%                        figure (as a message on your terminal when
%%%                        it processes each figure), say
%%%                        `\epsfverbosetrue'.
%%%
%%%                        If you only want to get the bounding box
%%%                        extents, without producing any output boxes
%%%                        or \special{}, then say
%%%                        \epsfgetbb{filename}.  The extents will be
%%%                        saved in the macros \epsfllx \epsflly
%%%                        \epsfurx \epsfury in PostScript units of
%%%                        big points.
%%%
%%%                        Revision history:
%%%
%%%                        ---------------------------------------------
%%%                        epsf.tex macro file:
%%%                        Originally written by Tomas Rokicki of
%%%                        Radical Eye Software, 29 Mar 1989.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Don Knuth, 3 Jan 1990.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Tomas Rokicki, 18 Jul 1990.
%%%                        Accept bounding boxes with no space after
%%%                        the colon.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 03 Dec 1991 [2.0].
%%%                        Add version number and date typeout.
%%%
%%%                        Use \immediate\write16 instead of \message
%%%                        to ensure output on new line.
%%%
%%%                        Handle nested EPS files.
%%%
%%%                        Handle %%BoundingBox: (atend) lines.
%%%
%%%                        Do not quit when blank lines are found.
%%%
%%%                        Add a few percents to remove generation of
%%%                        spurious blank space.
%%%
%%%                        Move \special output to
%%%                        \epsfspecial{filename} so that other macro
%%%                        packages can input this one, then change
%%%                        the definition of \epsfspecial to match
%%%                        another DVI driver.
%%%
%%%                        Move size computation to \epsfsetsize which
%%%                        can be called by the user; the verbose
%%%                        output of the bounding box and scaled width
%%%                        and height happens here.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 05 May 1992 [2.1].
%%%                        Wrap \leavevmode\hbox{} around \vbox{} with
%%%                        the \special so that \epsffile{} can be
%%%                        used inside \begin{center}...\end{center}
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 09 Dec 1992 [2.2].
%%%                        Introduce \epsfshow{true,false} and
%%%                        \epsfframe{true,false} macros; the latter
%%%                        suppresses the insertion of the PostScript,
%%%                        and instead just creates an empty box,
%%%                        which may be handy for rapid prototyping.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 14 Dec 1992 [2.3].
%%%                        Add \epsfshowfilename{true,false}.  When
%%%                        true, and \epsfshowfalse is specified, the
%%%                        PostScript file name will be displayed
%%%                        centered in the figure box.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 20 June 1993 [2.4].
%%%                        Remove non-zero debug setting of \epsfframemargin,
%%%                        and change margin handling to preserve EPS image
%%%                        size and aspect ratio, so that the actual
%%%                        box is \epsfxsize+\epsfframemargin wide by
%%%                        \epsfysize+\epsfframemargin high.
%%%                        Reduce output of \epsfshowfilenametrue to
%%%                        just the bare file name.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 13 July 1993 [2.5].
%%%                        Add \epsfframethickness for control of
%%%                        \epsfframe frame lines.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 02 July 1996 [2.6]
%%%                        Add missing initialization \epsfatendfalse;
%%%                        the lack of this resulted in the wrong
%%%                        BoundingBox being picked up, mea culpa, sigh...
%%%                        ---------------------------------------------
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 25 October 1996 [2.7]
%%%                        Update to match changes in from dvips 5-600
%%%                        distribution: new user-accessible macros:
%%%                        \epsfclipon, \epsfclipoff, \epsfdrafton,
%%%                        \epsfdraftoff, change \empty to \epsfempty.
%%%                        ---------------------------------------------
%%%                        
%%%                        Modified to avoid verbosity, give help.
%%%                        --kb@cs.umb.edu, for Texinfo.
%%%  }
%%% ====================================================================
%
\ifx\epsfannounce\undefined \def\epsfannounce{\immediate\write16}\fi
 \epsfannounce{This is `epsf.tex' v2.7k <10 July 1997>}%
%
\newread\epsffilein    % file to \read
\newif\ifepsfatend     % need to scan to LAST %%BoundingBox comment?
\newif\ifepsfbbfound   % success?
\newif\ifepsfdraft     % use draft mode?
\newif\ifepsffileok    % continue looking for the bounding box?
\newif\ifepsfframe     % frame the bounding box?
\newif\ifepsfshow      % show PostScript file, or just bounding box?
\epsfshowtrue          % default is to display PostScript file
\newif\ifepsfshowfilename % show the file name if \epsfshowfalse specified?
\newif\ifepsfverbose   % report what you're making?
\newdimen\epsfframemargin % margin between box and frame
\newdimen\epsfframethickness % thickness of frame rules
\newdimen\epsfrsize    % vertical size before scaling
\newdimen\epsftmp      % register for arithmetic manipulation
\newdimen\epsftsize    % horizontal size before scaling
\newdimen\epsfxsize    % horizontal size after scaling
\newdimen\epsfysize    % vertical size after scaling
\newdimen\pspoints     % conversion factor
%
\pspoints = 1bp        % Adobe points are `big'
\epsfxsize = 0pt       % default value, means `use natural size'
\epsfysize = 0pt       % ditto
\epsfframemargin = 0pt % default value: frame box flush around picture
\epsfframethickness = 0.4pt % TeX's default rule thickness
%
\def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
   \global\def\epsfurx{540}\global\def\epsfury{720}%
   \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
   \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
%
% We use \epsfgetlitbb if the user specified an explicit bounding box,
% and \epsfnormal otherwise.  Because \epsfgetbb can be called
% separately to retrieve the bounding box, we move the verbose
% printing the bounding box extents and size on the terminal to
% \epsfstatus.  Therefore, when the user provided the bounding box,
% \epsfgetbb will not be called, so we must call \epsfsetsize and
% \epsfstatus ourselves.
%
\def\epsfgetlitbb#1#2 #3 #4 #5]#6{%
   \epsfgrab #2 #3 #4 #5 .\\%
   \epsfsetsize
   \epsfstatus{#6}%
   \epsfsetgraph{#6}%
}%
%
\def\epsfnormal#1{%
    \epsfgetbb{#1}%
    \epsfsetgraph{#1}%
}%
%
\newhelp\epsfnoopenhelp{The PostScript image file must be findable by
TeX, i.e., somewhere in the TEXINPUTS (or equivalent) path.}%
%
\def\epsfgetbb#1{%
%
%   The first thing we need to do is to open the
%   PostScript file, if possible.
%
    \openin\epsffilein=#1
    \ifeof\epsffilein
        \errhelp = \epsfnoopenhelp
        \errmessage{Could not open file #1, ignoring it}%
    \else                       %process the file
        {%                      %start a group to contain catcode changes
            % Make all special characters, except space, to be of type
            % `other' so we process the file in almost verbatim mode
            % (TeXbook, p. 344).
            \chardef\other=12
            \def\do##1{\catcode`##1=\other}%
            \dospecials
            \catcode`\ =10
            \epsffileoktrue         %true while we are looping
            \epsfatendfalse     %[02-Jul-1996]: add forgotten initialization
            \loop               %reading lines from the EPS file
                \read\epsffilein to \epsffileline
                \ifeof\epsffilein %then no more input
                \epsffileokfalse %so set completion flag
            \else                %otherwise process one line
                \expandafter\epsfaux\epsffileline:. \\%
            \fi
            \ifepsffileok
            \repeat
            \ifepsfbbfound
            \else
                \ifepsfverbose
                    \immediate\write16{No BoundingBox comment found in %
                                    file #1; using defaults}%
                \fi
            \fi
        }%                      %end catcode changes
        \closein\epsffilein
    \fi                         %end of file processing
    \epsfsetsize                %compute size parameters
    \epsfstatus{#1}%
}%
%
% Clipping control:
\def\epsfclipon{\def\epsfclipstring{ clip}}%
\def\epsfclipoff{\def\epsfclipstring{\ifepsfdraft\space clip\fi}}%
\epsfclipoff % default for dvips is OFF
%
% The special that is emitted by \epsfsetgraph comes from this macro.
% It is defined separately to allow easy customization by other
% packages that first \input epsf.tex, then redefine \epsfspecial.
% This macro is invoked in the lower-left corner of a box of the
% width and height determined from the arguments to \epsffile, or
% from the %%BoundingBox in the EPS file itself.
%
% This version is for dvips:
\def\epsfspecial#1{%
     \epsftmp=10\epsfxsize
     \divide\epsftmp\pspoints
     \ifnum\epsfrsize=0\relax
       \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
                llx=\epsfllx\space
                lly=\epsflly\space
                urx=\epsfurx\space
                ury=\epsfury\space
                rwi=\number\epsftmp
                \epsfclipstring
               }%
     \else
       \epsfrsize=10\epsfysize
       \divide\epsfrsize\pspoints
       \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
                llx=\epsfllx\space
                lly=\epsflly\space
                urx=\epsfurx\space
                ury=\epsfury\space
                rwi=\number\epsftmp\space
                rhi=\number\epsfrsize
                \epsfclipstring
               }%
     \fi
}%
%
% \epsfframe macro adapted from the TeXbook, exercise 21.3, p. 223, 331.
% but modified to set the box width to the natural width, rather
% than the line width, and to include space for margins and rules
\def\epsfframe#1%
{%
  \leavevmode                   % so we can put this inside
                                % a centered environment
  \setbox0 = \hbox{#1}%
  \dimen0 = \wd0                                % natural width of argument
  \advance \dimen0 by 2\epsfframemargin         % plus width of 2 margins
  \advance \dimen0 by 2\epsfframethickness      % plus width of 2 rule lines
  \vbox
  {%
    \hrule height \epsfframethickness depth 0pt
    \hbox to \dimen0
    {%
      \hss
      \vrule width \epsfframethickness
      \kern \epsfframemargin
      \vbox {\kern \epsfframemargin \box0 \kern \epsfframemargin }%
      \kern \epsfframemargin
      \vrule width \epsfframethickness
      \hss
    }% end hbox
    \hrule height 0pt depth \epsfframethickness
  }% end vbox
}%
%
\def\epsfsetgraph#1%
{%
   %
   % Make the vbox and stick in a \special that the DVI driver can
   % parse.  \vfil and \hfil are used to place the \special origin at
   % the lower-left corner of the vbox.  \epsfspecial can be redefined
   % to produce alternate \special syntaxes.
   %
   \leavevmode
   \hbox{% so we can put this in \begin{center}...\end{center}
     \ifepsfframe\expandafter\epsfframe\fi
     {\vbox to\epsfysize
     {%
        \ifepsfshow
            % output \special{} at lower-left corner of figure box
            \vfil
            \hbox to \epsfxsize{\epsfspecial{#1}\hfil}%
        \else
            \vfil
            \hbox to\epsfxsize{%
               \hss
               \ifepsfshowfilename
               {%
                  \epsfframemargin=3pt % local change of margin
                  \epsfframe{{\tt #1}}%
               }%
               \fi
               \hss
            }%
            \vfil
        \fi
     }%
   }}%
   %
   % Reset \epsfxsize and \epsfysize, as documented above.
   %
   \global\epsfxsize=0pt
   \global\epsfysize=0pt
}%
%
%   Now we have to calculate the scale and offset values to use.
%   First we compute the natural sizes.
%
\def\epsfsetsize
{%
   \epsfrsize=\epsfury\pspoints
   \advance\epsfrsize by-\epsflly\pspoints
   \epsftsize=\epsfurx\pspoints
   \advance\epsftsize by-\epsfllx\pspoints
%
%   If `epsfxsize' is 0, we default to the natural size of the picture.
%   Otherwise we scale the graph to be \epsfxsize wide.
%
   \epsfxsize=\epsfsize{\epsftsize}{\epsfrsize}%
   \ifnum \epsfxsize=0
      \ifnum \epsfysize=0
        \epsfxsize=\epsftsize
        \epsfysize=\epsfrsize
        \epsfrsize=0pt
%
%   We have a sticky problem here:  TeX doesn't do floating point arithmetic!
%   Our goal is to compute y = rx/t. The following loop does this reasonably
%   fast, with an error of at most about 16 sp (about 1/4000 pt).
%
      \else
        \epsftmp=\epsftsize \divide\epsftmp\epsfrsize
        \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
        \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
        \epsftmp=\epsfysize
        \loop \advance\epsftsize\epsftsize \divide\epsftmp 2
        \ifnum \epsftmp>0
           \ifnum \epsftsize<\epsfrsize
           \else
              \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp
           \fi
        \repeat
        \epsfrsize=0pt
      \fi
   \else
     \ifnum \epsfysize=0
       \epsftmp=\epsfrsize \divide\epsftmp\epsftsize
       \epsfysize=\epsfxsize \multiply\epsfysize\epsftmp
       \multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
       \epsftmp=\epsfxsize
       \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
       \ifnum \epsftmp>0
          \ifnum \epsfrsize<\epsftsize
          \else
             \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp
          \fi
       \repeat
       \epsfrsize=0pt
     \else
       \epsfrsize=\epsfysize
     \fi
   \fi
}%
%
% Issue some status messages if the user requested them
%
\def\epsfstatus#1{% arg = filename
   \ifepsfverbose
     \immediate\write16{#1: BoundingBox:
                  llx = \epsfllx\space lly = \epsflly\space
                  urx = \epsfurx\space ury = \epsfury\space}%
     \immediate\write16{#1: scaled width = \the\epsfxsize\space
                  scaled height = \the\epsfysize}%
   \fi
}%
%
%   We still need to define the tricky \epsfaux macro. This requires
%   a couple of magic constants for comparison purposes.
%
{\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%BoundingBox}}%
\global\def\epsfatend{(atend)}%
%
%   So we're ready to check for `%BoundingBox:' and to grab the
%   values if they are found.
%
%   If we find a line
%
%   %%BoundingBox: (atend)
%
%   then we ignore it, but set a flag to force parsing all of the
%   file, so the last %%BoundingBox parsed will be the one used.  This
%   is necessary, because EPS files can themselves contain other EPS
%   files with their own %%BoundingBox comments.
%
%   If we find a line
%
%   %%BoundingBox: llx lly urx ury
%
%   then we save the 4 values in \epsfllx, \epsflly, \epsfurx, \epsfury.
%   Then, if we have not previously parsed an (atend), we flag completion
%   and can stop reading the file.  Otherwise, we must keep on reading
%   to end of file so that we find the values on the LAST %%BoundingBox.
\long\def\epsfaux#1#2:#3\\%
{%
   \def\testit{#2}%             % save second character up to just before colon
   \ifx#1\epsfpercent           % then first char is percent (quick test)
       \ifx\testit\epsfbblit    % then (slow test) we have %%BoundingBox
            \epsfgrab #3 . . . \\%
            \ifx\epsfllx\epsfatend % then ignore %%BoundingBox: (atend)
                \global\epsfatendtrue
            \else               % else found %%BoundingBox: llx lly urx ury
                \ifepsfatend    % then keep parsing ALL %%BoundingBox lines
                \else           % else stop after first one parsed
                    \epsffileokfalse
                \fi
                \global\epsfbbfoundtrue
            \fi
       \fi
   \fi
}%
%
%   Here we grab the values and stuff them in the appropriate definitions.
%
\def\epsfempty{}%
\def\epsfgrab #1 #2 #3 #4 #5\\{%
   \global\def\epsfllx{#1}\ifx\epsfllx\epsfempty
      \epsfgrab #2 #3 #4 #5 .\\\else
   \global\def\epsflly{#2}%
   \global\def\epsfurx{#3}\global\def\epsfury{#4}\fi
}%
%
%   We default the epsfsize macro.
%
\def\epsfsize#1#2{\epsfxsize}%
%
%   Finally, another definition for compatibility with older macros.
%
\let\epsffile=\epsfbox
\endinput
