  %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%
 %%%%%   BoxedEPS.tex FOR FIGURE INSERTS OF EPSF NORM  %%%%%
 %%%%%   (EPSF = Encapsulated PostScript File)
  %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%  
 %%%  AUTHOR: Laurent Siebenmann
  %%    lcs@matups.matups.fr
  %%  
 %%%  VERSIONS: Feb 1991 -- October, 1992
  %%  
 %%%  SOMMAIRE: BoxedEPS.tex d\'efinit des macro-commandes
  %%    qui permettent d'int\'egrer dans un document TeX des 
  %%    objets graphiques d\'ecrits par fichier de norme EPSF,
  %%    tout en accordant a chacun le statut d'une bo\^ite TeX ayant 
  %%    les bonnes dimensions.  La (seule!) contribution unique 
  %%    de ce fichier est de faire cela d'une fa{\c}con universelle.
  %%    C'est a dire de fa{\c}con \`a pouvoir commod\'ement 
  %%    servir avec tout pilote d'imprimante de norme 
  %%    PostScript --- malgr\'e l'absence d'une norme 
  %%    pour \special. 
  %%  
 %%%  POSTINGS: anonymous ftp 
  %%  ---  ftp 130.84.128.100 (alias rsovax.circe.fr); 
  %%  login: anonymous; password: <anything>; directory 
  %%  [anonymous.siebenmann].  This is the master copy in 1992.
  %%  
  %%  ---  ftp 129.69.1.12 (alias rusinfo.rus.uni-stuttgart.de);
  %%  login: anonymous; password: <anything>; 
  %%  directory hints .../tex/graphics/...
  %%  
 %%%% DOCUMENTATION:
  %%  --- see BoxedEPS.doc
  %%  
 %%%% ACTIVATION:
  %%  by a driver-by-driver protocol
  %%  see \SetTexturesEPSFSpecial 
  %%  and its companions below.
  %%  

 \ifx\MYUNDEFINED\BoxedEPSF
   \let\temp\relax
 \else
   \message{}
   \message{ !!! BoxedEPS %
         or BoxedArt macros already defined !!!}
   \let\temp\endinput
 \fi
  \temp
 
 \chardef\EPSFCatAt\the\catcode`\@
 \catcode`\@=11

 \chardef\C@tColon\the\catcode`\:
 \chardef\C@tSemicolon\the\catcode`\;
 \chardef\C@tQmark\the\catcode`\?
 \chardef\C@tEmark\the\catcode`\!
 \chardef\C@tDqt\the\catcode`\"

 \def\PunctOther@{\catcode`\:=12
   \catcode`\;=12 \catcode`\?=12 \catcode`\!=12 \catcode`\"=12}
 \PunctOther@

 %%temporarily suppress Plain's logging of allocations
 \let\wlog@ld\wlog 
 \def\wlog#1{\relax} 

 %% New for TOOLS
 \newif\ifIN@
 \newdimen\XShift@ \newdimen\YShift@ 
 \newtoks\Realtoks
 
 %%% New for Boxed EPSF
  %
 \newdimen\Wd@ \newdimen\Ht@
 \newdimen\Wd@@ \newdimen\Ht@@
 %
 \newdimen\TT@
 \newdimen\LT@
 \newdimen\BT@
 \newdimen\RT@
 %
 \newdimen\XSlide@ \newdimen\YSlide@ 
 %
 \newdimen\TheScale  %% secretly scale in mils: 1pt= 1mil 
 \newdimen\FigScale  %% secretly scale in mils: 1pt= 1mil 
 %
 \newdimen\ForcedDim@@

 \newtoks\EPSFDirectorytoks@
 \newtoks\EPSFNametoks@
 \newtoks\BdBoxtoks@
 \newtoks\LLXtoks@  %% useful info for Oz
 \newtoks\LLYtoks@  

  
 \newif\ifNotIn@
 \newif\ifForcedDim@
 \newif\ifForceOn@
 \newif\ifForcedHeight@
 \newif\ifPSOrigin

 \newread\EPSFile@ 
 
 %%%% MESSAGES (separate macro needed for Europe)
  %%  
  \def\ms@g{\immediate\write16}

 %%%% WORD-PROCESSING MACROS
  %%
  %%% \IN@0#1@#2@ : Is 1st exp of #1 in 1st exp of #2 ??
   %% Answer in \ifIN@
 \newif\ifIN@\def\IN@{\expandafter\INN@\expandafter}
  \long\def\INN@0#1@#2@{\long\def\NI@##1#1##2##3\ENDNI@
    {\ifx\m@rker##2\IN@false\else\IN@true\fi}%
     \expandafter\NI@#2@@#1\m@rker\ENDNI@}
  \def\m@rker{\m@@rker}

  %%%  \SPLIT@0#1@#2@  :  Split 1st exp of #2 at 1st exp of #1
   %%  \Initialtoks@ , \Terminaltoks@ will contain pieces
  \newtoks\Initialtoks@  \newtoks\Terminaltoks@
  \def\SPLIT@{\expandafter\SPLITT@\expandafter}
  \def\SPLITT@0#1@#2@{\def\TTILPS@##1#1##2@{%
     \Initialtoks@{##1}\Terminaltoks@{##2}}\expandafter\TTILPS@#2@}

 %%%% MACROS TO TRIM  \ForeTrim@0#1@ and \Trim@0#1@  
   %% result appears in \Trimtoks@
   %% LIMITATION: assume no multiple spaces to trim

  \newtoks\Trimtoks@

  %%% \ForeTrim@0#1@ trims initial space of first erpansion of #1
   %% #1 of form \the\toks0 or \mymacro
 \def\ForeTrim@{\expandafter\ForeTrim@@\expandafter}
 \def\ForePrim@0 #1@{\Trimtoks@{#1}}
 \def\ForeTrim@@0#1@{\IN@0\m@rker. @\m@rker.#1@%
     \ifIN@\ForePrim@0#1@%
     \else\Trimtoks@\expandafter{#1}\fi}
   %%\m@rker expands here to \m@@rker since spot initial,
   %% so no confusuion with \m@rker

  %%% \Trim@0#1@ trims init and terminal spaces 
   %% Same syntax.
   %% Warns if internal spaces found.
   %% 
  \def\Trim@0#1@{%
      \ForeTrim@0#1@%
      \IN@0 @\the\Trimtoks@ @%
        \ifIN@ 
             \SPLIT@0 @\the\Trimtoks@ @\Trimtoks@\Initialtoks@
             \IN@0\the\Terminaltoks@ @ @%
                 \ifIN@
                 \else \Trimtoks@ {FigNameWithSpace}%
                 \fi
        \fi
      }


  %%%% MATH MACROS (provisional)
    %% use dimen registers for reals; unit 1pt
    %% (numerical dimension arguments OK unless contrary noted)

  %%%% One needs the point token seq (pt with cat 12) USES dimen 0
   \newtoks\pt@ks
   \def \getpt@ks 0.0#1@{\pt@ks{#1}}
   \dimen0=0pt\relax\expandafter\getpt@ks\the\dimen0@

   %%% Convert dimen to "decimal multiplier"% USES dimens 0,2
  \newtoks\Realtoks% the output!
  \def\Real#1{%
    \dimen2=#1%
      \SPLIT@0\the\pt@ks @\the\dimen2@%%  lop off the points
       \Realtoks=\Initialtoks@%\showthe\Realtoks
            }

   %%% Multiplication 
      % USES dimens 0,2,4,6; preserves args; output \Product
   \newdimen\Product
   \def\Mult#1#2{%
     \dimen4=#1\relax
     \dimen6=#2%
     \Real{\dimen4}%
     \Product=\the\Realtoks\dimen6%
        }

   %%% Inverse 
     % USES dimens 0; preserves arg; output \Inverse
 \newdimen\Inverse
 \newdimen\hmxdim@ \hmxdim@=8192pt%halfmaxdimen
 \def\Invert#1{%
  \Inverse=\hmxdim@
  \dimen0=#1%
  \divide\Inverse \dimen0%
  \multiply\Inverse 8}

 %%% \Rescale#1#2#3  % USES dimens 0,2,4,6
  %%  alters dimen register #1 by ratio #2/#3 
  %%  where #2,#3 can be raw dimensions OR dimen registers
   \def\Rescale#1#2#3{% Adequate accuracy. Can improve. 
              \divide #1 by 100\relax
              \dimen2=#3\divide\dimen2 by 100 \Invert{\dimen2}% 
              \Mult{#1}{#2}%
              \Mult\Product\Inverse 
              #1=\Product}

 %%% \Scale#1 scales dimen register #1 
   %  by dimen register real \TheScale; USES dimens 0
  \def\Scale#1{\dimen0=\TheScale %
      \divide #1 by  1280 %% 1280*5120*10=1000*2^16 
      \divide \dimen0 by 5120 % 
      \multiply#1 by \dimen0 
      \divide#1 by 10   %% max size of #1 about 32000/10 pt
     }
 
 %%% SCRUNCHING BOXES AND SHIFTING CONTENTS
  %% TeX has to do this in general
  %% since some drivers do not let 
  %% one do it readily using Postscript

 \newbox\scrunchbox

 %%% \Scrunched#1 puts #1 in an hbox
  %%    then in effect zeros the dimensions of this box
 \def\Scrunched#1{{\setbox\scrunchbox\hbox{#1}%
   \wd\scrunchbox=0pt
   \ht\scrunchbox=0pt
   \dp\scrunchbox=0pt
   \box\scrunchbox}}

  %%% \Shifted@#1 puts #1 in \hbox 
   %% then locates basepoint to bottom left corner
   %% then translates ink only by \XShift@,\YShift@
   %% with Postscript convention
   %% For simplicity use only on scrunched boxes
  %\newdimen\XShift@ 
  %\newdimen\YShift@ 
 \def\Shifted@#1{%
   \vbox {\kern-\YShift@
       \hbox {\kern\XShift@\hbox{#1}\kern-\XShift@}%
           \kern\YShift@}}

  %%% \cBoxedEPSF#1 the main macro
   %%  component macros are explained in order below

 \def\cBoxedEPSF#1{{\leavevmode 
    %% double brace for amstex \allign, \alligned, ...
   \ReadNameAndScale@{#1}%
   \SetEPSFSpec@
   \ReadEPSFile@ \ReadBdB@x  
   %% Calculations
     \TrimFigDims@ 
     \CalculateFigScale@  
     \ScaleFigDims@
     \SetInkShift@
   \hbox{$\mathsurround=0pt\relax
         \vcenter{\hbox{%
             \FrameSpider{\hskip-.4pt\vrule}%
             \vbox to \Ht@{\offinterlineskip\parindent=\z@%
                \FrameSpider{\vskip-.4pt\hrule}\vfil 
                \hbox to \Wd@{\hfil}%
                \vfil
                \InkShift@{\EPSFSpecial{\EPSFSpec@}{\FigSc@leReal}}%
             \FrameSpider{\hrule\vskip-.4pt}}%
         \FrameSpider{\vrule\hskip-.4pt}}}%
     $}%
    \CleanRegisters@ 
    \ms@g{ *** Box composed for the % 
         EPSF file \the\EPSFNametoks@}%
    }}
 
 \def\tBoxedEPSF#1{\setbox4\hbox{\cBoxedEPSF{#1}}%
     \setbox4\hbox{\raise -\ht4 \hbox{\box4}}%
     \box4
      }

 \def\bBoxedEPSF#1{\setbox4\hbox{\cBoxedEPSF{#1}}%
     \setbox4\hbox{\raise \dp4 \hbox{\box4}}%
     \box4
      }

  \let\BoxedEPSF\cBoxedEPSF% default setting

  %% Some compatibility with BoxedArt.tex
   %
   \let\BoxedArt\BoxedEPSF

  %% Some compatibility with Sweet-teX
   %
  \def\gLinefigure[#1scaled#2]_#3{%
        \BoxedEPSF{#3 scaled #2}}
    
  %% Some compatibility with Rokicki's dvips
   %
  \let\EPSFbox\bBoxedEPSF \let\EPSFfile\bBoxedEPSF
  
  \def\EPSFxsize{\afterassignment\ForceW@\ForcedDim@@}
      \def\ForceW@{\ForcedDim@true\ForcedHeight@false}
  
  \def\EPSFysize{\afterassignment\ForceH@\ForcedDim@@}
      \def\ForceH@{\ForcedDim@true\ForcedHeight@true}

  \def\EmulateRokicki{%
       \let\epsfbox\bBoxedEPSF \let\epsffile\bBoxedEPSF
       \let\epsfxsize\EPSFxsize \let\epsfysize\EPSFysize} 
 
 %%% \ReadNameAndScale@#1
  %
 \def\ReadNameAndScale@#1{\IN@0 scaled@#1@% DOUBLE BARRELED
   \ifIN@\ReadNameAndScale@@0#1@%
   \else \ReadNameAndScale@@0#1 scaled\DefaultMilScale @%
   \fi}
  
 \def\ReadNameAndScale@@0#1scaled#2@{% HELPER MACRO
    \let\OldBackslash@\\%
    \def\\{\OtherB@ckslash}%
    \edef\temp@{#1}%
    \Trim@0\temp@ @%
    \EPSFNametoks@\expandafter{\the\Trimtoks@ }%
    \FigScale=#2 pt%
    \let\\\OldBackslash@
    }
 
 \def\SetDefaultEPSFScale#1{%
      \global\def\DefaultMilScale{#1}}

 \SetDefaultEPSFScale{1000}


 %%% \ReadEPSFile@
  %
 \def \SetBogusBbox@{%
     \global\BdBoxtoks@{ BoundingBox:0 0 100 100 }%
     \global\def\BdBoxLine@{ BoundingBox:0 0 100 100 }%
     \ms@g{ !!! Will use placeholder !!!}%
     }

 {\catcode`\%=12\gdef\P@S@{%!}} %% %! min sign of PS file

 \def\ReadEPSFile@{%\show\EPSFSpec@%
     \openin\EPSFile@\EPSFSpec@
     \relax  %necessary to prevent precocious expansion of \ifeof
  \ifeof\EPSFile@
     \ms@g{}%
     \ms@g{ !!! EPS FILE \the\EPSFDirectorytoks@
       \the\EPSFNametoks@\space WAS NOT FOUND !!!}%
     \SetBogusBbox@
  \else%\fi
   \begingroup%%
   \catcode`\%=12\catcode`\:=12\catcode`\!=12
   \catcode`\G=14\catcode`\\=14\relax% 14 is comment
   \global\read\EPSFile@ to \BdBoxLine@%\show\BdBoxLine@
   \IN@0\P@S@ @\BdBoxLine@ @%
   \ifIN@ %% %! accepted as %!PS so do BdBox search!!
     \NotIn@true
     \loop   
       \ifeof\EPSFile@\NotIn@false 
         \ms@g{}%
         \ms@g{ !!! BoundingBox NOT FOUND IN %
            \the\EPSFDirectorytoks@\the\EPSFNametoks@\space!!! }%
         \SetBogusBbox@
       \else\global\read\EPSFile@ to \BdBoxLine@
       %\show\BdBoxLine@
       \fi
       \global\BdBoxtoks@\expandafter{\BdBoxLine@}%
       \IN@0BoundingBox:@\the\BdBoxtoks@ @%
       \ifIN@\NotIn@false\fi%
     \ifNotIn@\repeat
   \else
         \ms@g{}%
         \ms@g{ !!! \the\EPSFNametoks@\space not PS!\space !!!}%
         \SetBogusBbox@
   \fi
  \endgroup\relax
  \fi
  \closein\EPSFile@ 
   }


  %%% \ReadBdB@x
   % Rmk For simplicity 0 not used in syntax 
   %  of \ReadBdB@x@,  \ReadBdB@x@@ 
  \def\ReadBdB@x{% PART 0
   \expandafter\ReadBdB@x@\the\BdBoxtoks@ @}
  
  \def\ReadBdB@x@#1BoundingBox:#2@{% PART 1
    \ForeTrim@0#2@%
    \IN@0atend@\the\Trimtoks@ @%
       \ifIN@\Trimtoks@={0 0 100 100 }%
         \ms@g{}%
         \ms@g{ !!! BoundingBox not found in %
         \the\EPSFDirectorytoks@\the\EPSFNametoks@\space !!!}%
         \ms@g{ !!! It must not be at end of EPSF !!!}%
         \ms@g{ !!! Will use placeholder !!!}%
       \fi%% cf \SetBogusBbox@
    \expandafter\ReadBdB@x@@\the\Trimtoks@ @%
   }
    
  \def\ReadBdB@x@@#1 #2 #3 #4@{% PART 2
      \Wd@=#3bp\advance\Wd@ by -#1bp%
      \Ht@=#4bp\advance\Ht@ by-#2bp%
       \Wd@@=\Wd@ \Ht@@=\Ht@ %% useful info for Clark
       \LLXtoks@={#1}\LLYtoks@={#2}%% useful info for Oz
      \ifPSOrigin\XShift@=-#1bp\YShift@=-#2bp\fi 
     }

  %%% \SetEPSFDirectory 
   %
   \def\G@bbl@#1{}
   \bgroup
     \global\edef\OtherB@ckslash{\expandafter\G@bbl@\string\\}
   \egroup

  \def\SetEPSFDirectory{%  Part 1
           \bgroup\PunctOther@\relax
           \let\\\OtherB@ckslash
           \SetEPSFDirectory@}

 \def\SetEPSFDirectory@#1{% Part 2
    \edef\temp@{#1}%
    \Trim@0\temp@ @%  result in \Trimtoks@
    \global\toks1\expandafter{\the\Trimtoks@ }\relax
    \egroup
    \EPSFDirectorytoks@=\toks1
    }

  %%% \SetEPSFSpec@
 \def\SetEPSFSpec@{%
     \bgroup
     \let\\=\OtherB@ckslash
     \global\edef\EPSFSpec@{%
        \the\EPSFDirectorytoks@\the\EPSFNametoks@}%
     \global\edef\EPSFSpec@{\EPSFSpec@}%
     \egroup}
   

 %%% \TrimFigDims@ 
  % 
 \def\TrimTop#1{\advance\TT@ by #1}
 \def\TrimLeft#1{\advance\LT@ by #1}
 \def\TrimBottom#1{\advance\BT@ by #1}
 \def\TrimRight#1{\advance\RT@ by #1}

 \def\TrimBoundingBox#1{%
   \TrimTop{#1}%
   \TrimLeft{#1}%
   \TrimBottom{#1}%
   \TrimRight{#1}%
       }

 \def\TrimFigDims@{%
    \advance\Wd@ by -\LT@ 
    \advance\Wd@ by -\RT@ \RT@=\z@
    \advance\Ht@ by -\TT@ \TT@=\z@
    \advance\Ht@ by -\BT@ 
    }


 %%% \CalculateFigScale@
  %
  \def\ForceWidth#1{\ForcedDim@true
       \ForcedDim@@#1\ForcedHeight@false}
  
  \def\ForceHeight#1{\ForcedDim@true
       \ForcedDim@@=#1\ForcedHeight@true}

  \def\ForceOn{\ForceOn@true}
  \def\ForceOff{\ForceOn@false\ForcedDim@false}
  
  \def\CalculateFigScale@{%
            %Have default \FigScale or read \FigScale
     \ifForcedDim@\FigScale=1000pt% %% start afresh
           \ifForcedHeight@
                \Rescale\FigScale\ForcedDim@@\Ht@
           \else
                \Rescale\FigScale\ForcedDim@@\Wd@
           \fi
     \fi
     \Real{\FigScale}%
     \edef\FigSc@leReal{\the\Realtoks}%
     }
   
  \def\ScaleFigDims@{\TheScale=\FigScale
      \ifForcedDim@
           \ifForcedHeight@ \Ht@=\ForcedDim@@  \Scale\Wd@
           \else \Wd@=\ForcedDim@@ \Scale\Ht@
           \fi
      \else \Scale\Wd@\Scale\Ht@        
      \fi
      \ifForceOn@\relax\else\global\ForcedDim@false\fi
      \Scale\LT@\Scale\BT@  %%%\Scale\Wd@\Scale\Ht@
      \Scale\XShift@\Scale\YShift@
      }
      
  %%% \ShowReservedBoxes
   %%  shows (prints) corrected scaled and positioned
   %%  bounding boxes; for diagnostics
  %%% \HideReservedBoxes makes them invisible again
   %%
 \def\HideReservedBoxes{\global\def\FrameSpider##1{\null}}
 \def\ShowReservedBoxes{\global\def\FrameSpider##1{##1}}
 \let\HideDisplacementBoxes\HideReservedBoxes  %% some synonyms
 \let\ShowDisplacementBoxes\ShowReservedBoxes
 \let\HideFigureFrames\HideReservedBoxes
 \let\ShowFigureFrames\ShowReservedBoxes
  \ShowDisplacementBoxes
 
  %%% \hSlide#1, \vSlide#1
   %%
 \def\hSlide#1{\advance\XSlide@ by #1}
 \def\vSlide#1{\advance\YSlide@ by #1}
 
  %%% \SetInkShift@, \InkShift@#1
   %%
  \def\SetInkShift@{%
            \advance\XShift@ by -\LT@
            \advance\XShift@ by \XSlide@
            \advance\YShift@ by -\BT@
            \advance\YShift@ by -\YSlide@
             }
   %
  \def\InkShift@#1{\Shifted@{\Scrunched{#1}}}
 
  %%% \CleanRegisters@
   %
  \def\CleanRegisters@{%
      \globaldefs=1\relax
        \XShift@=\z@\YShift@=\z@\XSlide@=\z@\YSlide@=\z@
        \TT@=\z@\LT@=\z@\BT@=\z@\RT@=\z@
      \globaldefs=0\relax}

 %%% Special syntax for several drivers. The macros 
  %% \SetTexturesEPSFSpecial  %% Textures 
  %% \SetUnixCoopEPSFSpecial %% dvi2ps early unix 
  %% \SetBechtolsheimDVI2PSEPSFSpecial and 
  %% \SetBechtolsheimDVITPSEPSFSpecial %% by S.P.Bechtolsheim
  %% \SetLisEPSFSpecial %% dvi2ps by Tony Lis
  %% \SetRokickiEPSFSpecial  %% dvips by Tom Rokicki
  %%  --- also for DVIReader, in DirectTeX by W. Ricken
  %% \SetOzTeXEPSFSpecial  %% OzTeX (>=1.42) by Andrew Trevorrow
  %% \SetPSprintEPSFSpecial %% PSprint by Andrew Trevorrow
  %%  --- also for OzTeX versions <= 1.41 !!
  %% \SetArborEPSFSpecial  %% ArborTeX DVILASER/PS
  %% \SetClarkEPSFSpecial %% dvitops by James Clark
  %% \SetDVIPSoneEPSFSpecial %% DVIPSONE of Y&Y 
  %% \SetBeebeEPSFSpecial %% DVIALW by N. Beebe
  %% \SetNorthlakeEPSFSpecial %% Northlake Software
  %% \SetStandardEPSFSpecial %% Nonexistant: Placebo below
  %% Many drivers supported roughly
  %% by (re-)defining the macro \EPSFSpecial#1#2, where
  %% #1 = EPS file pathname (use \\ for the letter backslash)
  %% #2 = scale in mils 
  %% Be wary of using strange characters in pathnames!
 
 %% Textures, Blue Sky Research, Barry Smith
 \def\SetTexturesEPSFSpecial{\PSOriginfalse%\PSOrigintrue
  \gdef\EPSFSpecial##1##2{\relax
    \edef\specialthis{##2}%
    \SPLIT@0.@\specialthis.@\relax
    \special{illustration ##1 scaled
                        \the\Initialtoks@}}}
 
  %% Unix : dvi2ps by:  Mark Senn, Stephan  Bechtolsheim,  
   % Bob  Brown, Richard, Furuta, James Schaad, Robert  Wells, 
   % Norm Hutchinson, Neal Holt, Scott Jones, Howard Trickey.
   % Introduced by B. Horn <bkph@ai.mit.edu>
  \def\SetUnixCoopEPSFSpecial{\PSOrigintrue % Please test!
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt% convert real to dimen
      \divide\dimen4 by 1000\relax
      \Real{\dimen4}%dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%  
      %%convert dimen to real
      \special{psfile=##1\space 
        hscale=\Aux@\space
        vscale=\Aux@}}}

  %% dvi2ps and dvitps by S.P. Bechtolsheim,
   % Introduced by B. Horn <bkph@ai.mit.edu> and Carl.M.Jones, 
   % testing by R. Evans <Robert@cm.cardiff.ac.uk>
   % Note that a prolog file psfig.pro
   % specific to the driver should be available.
  \def\SetBechtolsheimEPSFSpecial@{%% tool macro only
   \PSOrigintrue
   \special{\DriverTag@ Include0 "psfig.pro"}%
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt %% convert real to dimen
      \divide\dimen4 by 1000\relax
      \Real{\dimen4} %% dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%% convert dimen to real
      \special{\DriverTag@ Literal "10 10 0 0 10 10 startTexFig
           \the\mag\space 1000 div 3.25 neg mul 
           \the\mag\space 1000 div .25 neg mul translate %% correction
           \the\mag\space 1000 div \Aux@\space mul 
           \the\mag\space 1000 div \Aux@\space mul scale "}%
      \special{\DriverTag@ Include1 "##1"}%
      \special{\DriverTag@ Literal "endTexFig "}%
        }}

  %% dvi2ps and dvitps by S.P. Bechtolsheim,
   % Introduced by B. Horn <bkph@ai.mit.edu> and Carl.M.Jones, 
   % testing by R. Evans <Robert@cm.cardiff.ac.uk>
   % Note that a prolog file psfig.pro
   % specific to the driver should be available.
  \def\SetBechtolsheimEPSFSpecial@{%% tool macro only
   \PSOrigintrue
   \special{\DriverTag@ Include0 "psfig.pro"}%
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt %% convert real to dimen
      \divide\dimen4 by 1000\relax
      \Real{\dimen4} %% dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%% convert dimen to real
      \special{\DriverTag@ Literal "10 10 0 0 10 10 startTexFig
           \the\mag\space 1000 div 
           dup 3.25 neg mul 2 index .25 neg mul translate %% correction line
           \Aux@\space mul dup scale "}%
      \special{\DriverTag@ Include1 "##1"}%
      \special{\DriverTag@ Literal "endTexFig "}%
        }}

  \def\SetBechtolsheimDVITPSEPSFSpecial{\def\DriverTag@{dvitps: }%
      \SetBechtolsheimEPSFSpecial@}

  \def\SetBechtolsheimDVI2PSEPSFSSpecial{\def\DriverTag@{DVI2PS: }%
      \SetBechtolsheimEPSFSpecial@}

  %% dvi2ps by Tony Lis,
   % implantations? ; dates?; availability?
   % Introduced by B. Horn <bkph@ai.mit.edu>
  \def\SetLisEPSFSpecial{\PSOrigintrue 
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt% convert real to dimen
      \divide\dimen4 by 1000\relax
      \Real{\dimen4}% dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%  
      %%convert dimen to real
      \special{pstext="10 10 0 0 10 10 startTexFig\space
           \the\mag\space 1000 div \Aux@\space mul 
           \the\mag\space 1000 div \Aux@\space mul scale"}%
      \special{psfile=##1}%
      \special{pstext=endTexFig}%
        }}

  %% dvips by Tom Rokicki; free driver in portable C 
   % Introduced by W.D. Neumann <neumann@mps.ohio-state.edu>
  \def\SetRokickiEPSFSpecial{\PSOrigintrue 
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt% convert real to dimen
      \divide\dimen4 by 10\relax
      \Real{\dimen4}% dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%  
      %%convert dimen to real
      \special{psfile="##1"\space 
        hscale=\Aux@\space
        vscale=\Aux@}}}

  \def\SetInlineRokickiEPSFSpecial{\PSOrigintrue 
   \gdef\EPSFSpecial##1##2{%
      \dimen4=##2pt% convert real to dimen
      \divide\dimen4 by 1000\relax
      \Real{\dimen4}% dimens 0,2 used here
      \edef\Aux@{\the\Realtoks}%  
      %%convert dimen to real
      \special{ps::[begin] 10 10 0 0 10 10 startTexFig\space
           \the\mag\space 1000 div \Aux@\space mul 
           \the\mag\space 1000 div \Aux@\space mul scale}%
      \special{ps: plotfile ##1}%
      \special{ps::[end] endTexFig}%
        }}

 %%%  OzTeX (versions 1.42 and later), by Andrew Trevorrow
 %%%  (for earlier versions see PSprint below!!)
 %%  complete public domain TeX for Macintosh
 %%  Send 10 UNFORMATTED 800K disks 
 %%  with return postage to
 %%  Peter Abbott, Computing Service, 
 %%  Aston University, Aston Triangle, Birmingham B4 7ET
 %%  Posting: ftp   midway.uchicago.edu
 %%  Nota: Version 1.42 may give
 %%  spurious "offpage" error notices on printing.
 %%  Nota: Support for MacPaint files not here yet.
 \def\SetOzTeXEPSFSpecial{\PSOrigintrue
 \gdef\EPSFSpecial##1##2{%
 \dimen4=##2pt%% convert real to dimen
 \divide\dimen4 by 1000\relax
 \Real{\dimen4}%% dimens 0,2 used here
 \edef\Aux@{\the\Realtoks}%% convert dimen to real
 \special{epsf=\string"##1\string"\space scale=\Aux@}%
 }} 

 %% PSprint, by AndrewTrevorrow for VaX VMS
 %% and OzTeX versions <= 1.41  
  % tested 2-91 by Max Calviani <ISICA@ASTRPD.infn.it>
  \def\SetPSprintEPSFSpecial{\PSOriginFALSE % artifice; see below
   \gdef\EPSFSpecial##1##2{%note order
     \special{##1\space 
       ##2 1000 div \the\mag\space 1000 div mul
       ##2 1000 div \the\mag\space 1000 div mul scale
       \the\LLXtoks@\space neg \the\LLYtoks@\space neg translate
       }}}

 %% DVILASER/PS driver originally written by David Fuchs
  % marketed and supported by ArborTeXt  535 W. William St.
  % Suite 300, Ann Arbor, MI 48103, U.S.A
  % (313) 996-3566 (313) 996-3573
  % help@arbortext.com, Andrew Dobrowolski
 \def\SetArborEPSFSpecial{\PSOriginfalse % check!
   \gdef\EPSFSpecial##1##2{%
     \edef\specialthis{##2}%
     \SPLIT@0.@\specialthis.@\relax % suppress decimals (nec!)
     \special{ps: epsfile ##1\space \the\Initialtoks@}}}

 %% dvitops, (c) James Clark <jjc@jclark.uucp>
  % public domain; distributed by UK TeX Archive
  % computers: unix, msdos, vms, primos and vm/cms,
  % introduced by S. Ratz <spqr@uk.ac.southampton.ecs>
 \def\SetClarkEPSFSpecial{\PSOriginfalse % please test!
   \gdef\EPSFSpecial##1##2{%
     \Rescale {\Wd@@}{##2pt}{1000pt}%
     \Rescale {\Ht@@}{##2pt}{1000pt}%
     \special{dvitops: import 
           ##1\space\the\Wd@@\space\the\Ht@@}}}

 %% DVIPSONE, for PC compatibles
  % Y&Y, 106 Indian Hill, Carlisle MA 01741, USA
  % (508) 371-3286
  % (introduced by B. Horn <bkph@ai.mit.edu>)
  \let\SetDVIPSONEEPSFSpecial\SetUnixCoopEPSFSpecial
  \let\SetDVIPSoneEPSFSpecial\SetUnixCoopEPSFSpecial

 %% DVIALW by N. Beebe, public domain 
  % DVI Driver Distribution, Center for Scientific Computing,
  % Department of Mathematics, 220 South Physics Building,
  % University of Utah, Salt Lake City, UT 84112, USA
  % (introduced by B. Horn <bkph@ai.mit.edu>)
  % Proposed standard; see TUGboat article 1993.
  \def\SetBeebeEPSFSpecial{%please test!
   \PSOriginfalse% 
   \gdef\EPSFSpecial##1##2{\relax
    \special{language "PS",
      literal "##2 1000 div ##2 1000 div scale",
      position = "bottom left",
      include "##1"}}}
  \let\SetDVIALWEPSFSpecial\SetBeebeEPSFSpecial

 %% Northlake software
  \def\SetNorthlakeEPSFSpecial{\PSOrigintrue
   \gdef\EPSFSpecial##1##2{%
     \edef\specialthis{##2}%
     \SPLIT@0.@\specialthis.@\relax % suppress decimals (nec!)
     \special{insert ##1,magnification=\the\Initialtoks@}}}

 \def\SetStandardEPSFSpecial{%
   \gdef\EPSFSpecial##1##2{%
     \ms@g{}
     \ms@g{%
       !!! Sorry! There is still no standard for \string%
       \special\space EPSF integration !!!}%
     \ms@g{%
      --- So you will have to identify your driver using a command}%
     \ms@g{%
      --- of the form \string\Set...EPSFSpecial, in order to get}%
     \ms@g{%
      --- your graphics to print.  See BoxedEPS.doc.}%
     \ms@g{}
     \gdef\EPSFSpecial####1####2{}
     }}

  \SetStandardEPSFSpecial %% currently gives warning
 
 \let\wlog\wlog@ld %%restore logging 

 \catcode`\:=\C@tColon
 \catcode`\;=\C@tSemicolon
 \catcode`\?=\C@tQmark
 \catcode`\!=\C@tEmark
 \catcode`\"=\C@tDqt

 \catcode`\@=\EPSFCatAt

  \endinput

%%%%%%%%%%%% ASCII Character test
 %
 %       Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
 %       Lower case letters: abcdefghijklmnopqrstuvwxyz
 %                                   Digits: 0123456789
 % Square, curly, angle braces, parentheses: [] {} <> ()
 %           Backslash, slash, vertical bar: \ / |
 %                              Punctuation: . ? ! , : ;
 %          Underscore, hyphen, equals sign: _ - =
 %                Quotes--right left double: ' ` "
 %"at", "number" "dollar", "percent", "and": @ # $ % &
 %           "hat", "star", "plus", "tilde": ^ * + ~
 %
 %%%%%%%%%%%%%%%%%%%%%%%%
 %
 % Une seule erreur de transmission peut empoisoner un programme!
 %
 % A single transmission error can poison a whole program.
 %
 %%%%%%%%%%%%%%%%%%%%%%%%
\input phyzzx
\hsize=40pc
%\draft
\font\sf=cmss10                    %San-Serif 10
\font\ssf=cmssq8                   %San-Serif 8
\font\tsf=cmssbx10                 %Bold San-Serif 10
\font\ttsf=cmssbx10 scaled 1200    %Bold San-Serif 12

\def\Figure#1#2{\midinsert
$$\BoxedEPSF{#1}$$
\noindent {\sf #2}
\endinsert}

\input BoxedEPS
%%\SetTexturesEPSFSpecial
\SetRokickiEPSFSpecial %%for unix dvips
\HideDisplacementBoxes
%
\catcode`\@=11 % This allows us to modify PLAIN macros.
%
\def\NEWrefmark#1{\step@ver{{\;#1}}}
%
\catcode`\@=12 % at signs are no longer letters
%

\def\footstrut{\baselineskip 12pt}
\def\square{\kern1pt\vbox{\hrule height 1.2pt\hbox{\vrule width 1.2pt\hskip 3pt
   \vbox{\vskip 6pt}\hskip 3pt\vrule width 0.6pt}\hrule height 0.6pt}\kern1pt}
\def\d{\ket{D}}
\def\x{\ket{\chi}}
\def\dint#1{\int\!\!\!\!\!\int\limits_{\!\!#1}}
\def\bra#1{\langle #1 |}
\def\ket#1{| #1 \rangle}
\def\vev#1{\langle #1 \u
ngle}
\def\for{{\rm for}}
\def\vx{{x}}
\def\vy{{y}}
\def\ov{{\overline}}
\def\bU{{\bf U}}
\def\A{{\cal A}}
\def\B{{\cal B}}
\def\C{{\cal C}}
\def\D{{\cal D}}
\def\H{\widehat{\cal H}}
\def\HH{{\cal H}}
\def\F{{\cal F}}
\def\I{{\cal I}}
\def\K{{\cal K}}
\def\W{{\cal W}}
\def\G{{\cal G}}
\def\L{{\cal L}}
\def\M{{\cal M}}
\def\N{{\cal N}}
\def\O{{\cal O}}
\def\P{{\cal P}}
\def\Q{\hat{Q}}
\def\R{{\cal R}}
\def\s{{\cal S}}
\def\T{{\cal T}}
\def\tS{\widetilde S}
\def\V{{\cal V}}
\def\U{{\cal U}}
\def\PP{P}
\def\bz{{\overline z}}
\def\da{{\downarrow}}
\def\p{\partial}
\def\ua{{\uparrow}}
\def\e{{\epsilon}}
\def\g{{\gamma}}
\def\k{{\kappa}}
\def\l{{\bigl[}}
\def\r{{\bigr]}}
\def\ov{\overline}
\def\spr{\mathop{{\sum}'}}
\def\wt{\widetilde}
\def\wh{\widehat}
\def\ss{\wt\s}
\def\B{{\cal B}}
\def\D{{\cal D}}
\def\W{{\cal W}}
\def\P{{\cal P}}
\def\V{{\cal V}}
\def\O{{\cal O}}
\def\s{{\cal S}}
\def\p{\partial}
\def\wC{\wt\C}
\def\bv{{\bf v}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\singlespace
\def\mapdown#1{\Big\downarrow
   \rlap{$\vcenter{\hbox{$\scriptstyle#1$}}$}}
\def\mapup#1{\Big\uparrow
   \rlap{$\vcenter{\hbox{$\scriptstyle#1$}}$}}
\def\define#1#2\par{\def#1{\Ref#1{#2}\edef#1{\noexpand\refmark{#1}}}}
\def\con#1#2\noc{\let\?=\Ref\let\<=\refmark\let\Ref=\REFS
         \let\refmark=\undefined#1\let\Ref=\REFSCON#2
         \let\Ref=\?\let\refmark=\<\refsend}

\let\refmark=\NEWrefmark



\define\kakukikkawa{M. Kaku and K. Kikkawa, ``Field theory of relativistic
strings. I. Trees'', Phys. Rev. {\bf D10} (1974) 1110; ``Field theory
of relativistic strings. II. Loops and Pomerons'', Phys. Rev. {\bf D10}
(1974) 1823.}

\define\mandelstam{S. Mandelstam, ``Interacting-string picture of 
dual resonance models'', Nucl. Phys. {\bf B64} (1973) 205; ``Dual-resonance
models'', Phys. Rep. {\bf C13} (1974) 259.}


\define\zwiebachhms{B. Zwiebach, `New moduli spaces from string
background independence consistency conditions', MIT preprint MIT-CTP-2527,
hep-th/9605075}

\define\zwiebachlong{B. Zwiebach, `Closed string field theory: Quantum
action and the Batalin-Vilkovisky master equation', Nucl. Phys {\bf B390}
(1993) 33, hep-th/9205075.}


\define\senzwiebach{A.~Sen and B.~Zwiebach, `Local background
independence of classical closed string field theory', Nucl.
Phys.{\bf B414} (1994) 649, hep-th/9307088.}


\define\senzwiebachtwo{A.~Sen and B.~Zwiebach, `Quantum background
independence of closed string field theory',  Nucl. Phys.{\bf
B423} (1994) 580, hep-th/9311009.}

\define\senzwiebachgauge{A.~Sen and B.~Zwiebach, `A note on gauge
transformations in Batalin-Vilkovisky theory', Phys. Lett.
{\bf B320} (1994) 29, hep-th/9309027.}

\define\senzwiebachnew{A.~Sen and B.~Zwiebach, `Background
independent algebraic structures in closed string field theory',
MIT-CTP-2346, August 1994, hep-th/9408053.}


\define\zwiebachweyl{B.~Zwiebach, `Generalized BRST operator and Weyl-descent
equations', MIT-CTP-2533, to appear.}

\define\campbell{M.~Campbell, P.~Nelson and E.~Wong, `Stress tensor
perturbations in conformal field theory', {\it Int.\ Jour.\ Mod.\
Phys.\ } {\bf A6}(1991):4909.}

\define\ranganathan{K.~Ranganathan, `Nearby CFT's in the operator
formalism: the role of a connection', {\it Nucl.\ Phys.\ } {\bf
B408}(1993):180.}

\define\rangasonodazw{K.~Ranganathan, H.~Sonoda and B.~Zwiebach, `Connections
on the state-space over conformal field theories', Nucl. Phys.
{\bf B414} (1994) 405, hep-th/9304053.}

\define\bergmanzwiebach{O.Bergman and B.Zwiebach `The dilaton theorem
and closed string backgrounds' Nucl.~Phys. {\bf B441} (1995) 76,
hep-th/9411047.}

\define\belopolskyzwiebach{A. Belopolsky and B. Zwiebach,
`Off-shell string amplitudes: Towards a computation
of the tachyon potential',  to
appear in Nucl. Phys. B, hep-th/9409015.}


\define\alvarez{L. Alvarez-Gaume, C. Gomez, G. Moore and C. Vafa,
`Strings in the operator formalism', Nucl.
Phys. {\bf B303} (1988) 455;\hfill\break
C. Vafa, `Operator formulation on Riemann surfaces',
Phys. Lett. {\bf B190} (1987) 47.}


\define\leclair{A. LeClair, M. E. Peskin and C. R. Preitschopf, Nucl. Phys.
{\bf B317} (1989) 411.}



\define\penkavaschwarz{M. Penkava and A. Schwarz,
``On Some Algebraic Structures Arising in String Theory",
UC Davis preprint, UCD-92-03, hep-th/9212072.}

\define\kimurastasheff{T. Kimura, J. Stasheff, and A. A. Voronov, `On operad
structures
of moduli spaces and string theory', Kyoto University preprint RIMS-936,
July 1993, to appear in Comm. Math. Phys., hep-th/9307114.}

\define\kimuravoronov{T. Kimura and A. A. Voronov, `The cohomology of algebras
over moduli spaces', University of North Carolina preprint,
October 1994, hep-th/9410108.}


\define\sonoda{H. Sonoda, Composite operators in QCD,
Nucl. Phys. {\bf B383} (1992) 173, hep-th/9205085;\hfill\break
``Operator Coefficients for Composite Operators in the $(\phi^4)_4$
Theory'', Nucl. Phys. {\bf B394} (1993) 302, hep-th/9205084. }

\define\kugozwiebach{T. Kugo and B. Zwiebach, 
Prog. Theo. Phys. {\bf 87} (1992) 801}

\define\wittenosbi{E. Witten, ``On background independent open-string 
field theory'' Phys. Rev. {\bf D46} (1992) 5467; hep-th/9208027; ``Some
computations in background independent open-string field theory'', 
Phys. Rev. {\bf D47} (1993) 3405; hep-th/9210065;\hfill\break
K.~Li and E. Witten, ``Role of short distance behavior in off-shell open-string
field theory'', Phys. Rev. {\bf D48} (1993) 853; hep-th/9303067.}

\define\zwiebachos{B. Zwiebach, ``Interpolating string field theories",
Mod. Phys. Lett. {\bf A7} (1992) 1079, hep-th/9202015.}

\define\shatashvili{S. Shatashvili, ``On the problems with background 
independence in string theory'', hep-th/9311177.}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\singlespace
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{}~ \hfill \vbox{\hbox{MIT-CTP-2531}
 }\break
\title{BUILDING STRING FIELD THEORY AROUND}
\titlestyle{NON-CONFORMAL BACKGROUNDS}
\author{Barton Zwiebach \foot{E-mail address: zwiebach@irene.mit.edu
\hfill\break Supported in part by D.O.E.
cooperative agreement DE-FC02-94ER40818.}}
\address{Center for Theoretical Physics,\break
Laboratory of Nuclear Science\break
and Department of Physics\break
Massachusetts Institute of Technology\break
Cambridge, Massachusetts 02139, U.S.A.}

\abstract 
{The main limitations of string field theory 
arise because its present formulation requires a 
background representing a classical solution, 
a background defined by a strictly conformally invariant theory.
Here we sketch a construction for a gauge-invariant
string field action around non-conformal backgrounds. 
The construction makes no reference to any conformal theory.
Its two-dimensional field-theoretic
aspect is based on a generalized BRST operator 
satisfying a set of Weyl descent equations. Its geometric aspect
uses a complex of moduli
spaces of two-dimensional Riemannian manifolds having ordinary punctures, 
and organized by the number of special punctures which goes from zero 
to infinity. In this complex there is a 
Batalin-Vilkovisky algebra that includes  naturally the operator
which adds one special puncture. We obtain 
a classical field equation that appears to relax the condition of
conformal invariance usually taken to define classical string backgrounds.}
\endpage


\singlespace
\baselineskip=18pt

\chapter{Introduction and Summary}

Light-cone string field theory, 
developed in the early seventies, 
was explicitly constructed around 
Minkowski spacetime background [\kakukikkawa]. Its framework,
however, can be used to build string theory around spacetime backgrounds 
which include at least two flat dimensions, one of which is time. 
Covariant string field theory, developed from the middle eighties to the 
early nineties, removed this restriction. String field theory
can now be formulated around general conformal backgrounds, backgrounds 
encoded by strictly conformal invariant field theories (CFT's) and representing
rather arbitrary classical solutions of string theory. 
Even though this formulation does not give an {\it a priori} 
characterization of classical solutions, CFT's are clearly classical 
solutions because the 
corresponding string field action 
is quadratic in the fluctuating field. 
In passing from light-cone to covariant string field theory
much was learned about the properties and significance of the BRST operator,
the construction of covers of moduli spaces of Riemann surfaces, and the
role of Batalin-Vilkovisky algebras. 
The next logical step would be to achieve a construction of string field
theory around completely general backgrounds, backgrounds 
that need not represent
classical solutions. The resulting string field theory would have terms 
linear in the fluctuating field.  It is the purpose of the present work 
to begin such construction.

Indeed the main limitations of
 present day string field theory are not due to the
use of a `background' to write the theory. The limitations largely 
arise because 
the background must correspond to a classical solution. Ideally
string field theory should help us find classical solutions, but
finding classical solutions using a reference classical solution is
not very easy.
Moreover, it is not manifest that string field theories formulated using
different conformal backgrounds are really the same theory. This is the
question of background independence, a property that was proven explicitly 
in Refs.[\senzwiebach, \senzwiebachtwo].   One may wonder if
a fully satisfactory string
action should be written without using a background at all, but
comparison with Einstein's theory, a familiar and natural analog, suggests
otherwise.  
In gravity, backgrounds play the role of off-shell
fields and represent arbitrary metrics on a manifold.  
The action is  a function in the space of 
backgrounds, a function that is stationary at the backgrounds 
representing classical solutions.  Background independence 
 for Einstein's theory is simply
the fact that the space of backgrounds (the space of metrics) can
be  described without using a special background (a special metric).
It is natural to wonder  what is the space of string backgrounds.
Present day string field theory provides a partial answer:  the
space of string backgrounds in the neighborhood of a conformal background
is the vector space of all local operators of the conformal theory.\foot{
Restricted to operators annihilated by $L_0^-$ and $b_0^-$, in
the case of closed strings.}  It has not proven easy to give a description
of the space of backgrounds without using a reference conformal background, 
but the expected answer has
been that this space is something closely related
to the space of two-dimensional field theories. 

Indeed, we  say something {\it closely related~}
to the space of two-dimensional field theories, since subtle
complications abound. The field theories we must consider must have 
all possible couplings, including non-renormalizable ones.
This may not be a serious difficulty, if all couplings are present
non-renormalizability is really not an issue, the space of theories
is just the space of renormalized couplings, a space of infinite dimension.
Another issue, possibly more relevant [\bergmanzwiebach], 
is the recent finding that the
space of string backgrounds have parameters that are not present in the
space of quantum field theories. This is the case of the string coupling.
The string coupling arises from the expectation value of the string dilaton and
is a parameter of string backgrounds but it is not a parameter of the
conformal theories (due to the ghost anomaly). This suggests
that in some sense the space of backgrounds is a little more akin to the
space of possible two-dimensional Lagrangians.

In this paper the ingredient we will use for the construction of 
the string action is  a two-dimensional 
quantum field theory, a non-conformal one.
How close it is to a general two-dimensional quantum 
field theory is something that one may  learn by further study of the
construction to be given here.  
The  string action will be written as a function on
the state space of this two-dimensional quantum 
field theory. 
This state space  represents the tangent space to the space  
of backgrounds
at the particular background encoded by the field theory in question. 
As such, the state space can only
be expected to give a local description of the space of backgrounds.
Ideally we would like to have 
the string action defined directly on the space of backgrounds.
Strictly speaking, the  construction to be presented here
still has a residual background dependence since the string action is not
written directly on the space of backgrounds but rather on its tangent space
at some background: the identification of the tangent
space with the space itself can be background dependent.
Thus given two backgrounds, the string
actions written in the two different tangent spaces may not be manifestly
the same. It seems very plausible that a background independence analysis would
enable one to rewrite the action to be built in this paper as a function on the
space of backgrounds.   

There are two pieces of indirect evidence that suggest that the
above construction of a string field theory around non conformal
backgrounds should be possible. 
First, by giving
an arbitrary expectation value to the string field of a SFT formulated around
a conformal background we obtain a well-defined string action which is
not stationary in the new fluctuating field [\zwiebachlong]. This
action is gauge invariant and represents string theory around a background
which is not a classical solution. 
The reason this action is not the desired answer is that
the new background is described explicitly in terms of the
original conformal background.
The second piece of evidence comes from the sigma model approach 
to string theory. In this approach given 
fairly arbitrary two-dimensional field theories 
one can define beta functions whose vanishing appear
to represent string field equations. 
In this approach one does not assume conformal
invariance. The sigma model method suffers from several technical 
complications: it is very difficult to deal with backgrounds that
correspond to massive string fields,
the definition of the list of background fields is not systematic and, 
there is no prescription to find the action, nor
its gauge invariances. 

In the standard formulation of string field theory gauge transformations
are defined by the BRST operator, and gauge invariance is a consequence
of the nilpotency of this operator. It should be emphasized that
string field theory formulated around non-conformal backgrounds must
still be gauge invariant, despite the fact that one will not be able
to have a BRST operator that squares to zero.
Earlier work trying to write a string action 
as a function in the space of
two dimensional field theories has been mostly inconclusive. 
The functions that were written do not
show any clear evidence of string field gauge invariances. 
\foot{With the notable
exception of Ref.[\wittenosbi] which addressed the case of open
strings using the Batalin-Vilkovisky framework
to ensure gauge invariance from the start. Difficulties with this approach 
have been studied in Ref.[\shatashvili].}
While the condition to have a conformal background is the vanishing of 
the trace
$T\equiv T_\mu^\mu$ of the stress tensor, it is not clear that the equation 
of motion that selects a {\it classical string background}
is simply $T =0$. Such equation of motion need not have string 
field gauge invariance.
In fact we will find that the equation of motion of
string theory  appears to be
non polynomial in $T$, with leading term linear in $T$. 
Vanishing $T$
would  always be a solution, but there
might exist solutions with non zero $T$, such solutions
would represent classical string backgrounds that are not conformal. 

The construction of string field theory around a non conformal background will
have two ingredients, one from two-dimensional geometry and the other from
two-dimensional field theory. Both ingredients were also present in the case
of conformal backgrounds but as we will see there are major departures.
Let us first consider the two dimensional geometry ingredient. 

\goodbreak
\noindent
\underbar{Moduli spaces of two-dimensional surfaces}.~In the conformal case
we found string vertices, collectively denoted by $\V$ which represented
pieces of the moduli spaces of Riemann surfaces with punctures and 
local coordinates at the
punctures. The regions of moduli spaces corresponding to the string vertices,
and the local coordinates at the punctures had to be chosen  carefully
in order that the string vertices satisfy a set of recursion relations involving
sewing. Such choices were made using an auxiliary problem on Riemann surfaces,
that of finding a metric (a Weyl factor) of least area under the
condition that all nontrivial closed curves be longer than or equal to $2\pi$.
The local coordinates at the punctures could be defined using the behavior
of the metric near the punctures. While the metric played a purely auxiliary
role in the conformal case, in the non conformal case it is necessary
since the two-dimensional field theory is not 
conformal and  correlation functions will depend on the chosen metric. 
Since the recursion relations hold when the string vertices are
equipped with metrics and local coordinates, 
they can be used in the non conformal case. It will not be possible, however,
to attain gauge invariance using only the string vertices. Apart from
two-dimensional quantum field theory complications, 
new moduli spaces of Riemann
surfaces equipped with Weyl metrics are needed. 

The need arises from the algebraic structure of the theory to 
be built. Such structure was explored indirectly Ref.[\zwiebachlong] sect 4.5.
The algebraic structure of standard closed string field theory
is based on a homotopy Lie algebra defined by string field products
$m_n$ where $n\geq 1$ is the number of string fields to be multiplied.
The lowest product $m_1$ is simply action by the BRST operator of
the conformal theory. For the present case the homotopy Lie algebra must have
a product $m_0$. Such product simply represents a particular (fixed) 
string field, a grassmann odd, ghost-number $+3$ string field
to be denoted as $F$. The surfaces in the 
new moduli spaces that we need
will have special punctures where the string field $F$ will be inserted.
In addition the surfaces will also have ordinary punctures where the
dynamical string fields are inserted. 
The $\B^1$ spaces of background independence [\senzwiebachtwo], 
now equipped with Weyl metrics,
have one special puncture. The special string field $F$ will be inserted
at this special puncture, and the dynamical string field is inserted
at the ordinary punctures. The resulting function of the string field
will define the part of the string action linear in $F$. 
The identities satisfied by the $\B^1$ spaces that
guaranteed background independence in [\senzwiebachtwo]
 are precisely the identities that
guarantee gauge invariance in the new construction. 
With this linear term included gauge invariance will
hold to $\O( F)$, but not to quadratic order.
Moduli spaces $\B^2$ of surfaces with two special punctures are required. 
Such kind of moduli spaces were studied in detail in [\zwiebachhms] where 
they were seen to arise from second order background independence conditions. 
Again, the identities required for background independence
are essentially the same identities that are required to attain gauge
invariance in the new construction. The $\B^2$ spaces with  $F$'s inserted
in each of the two special punctures defines the part of the string action
quadratic in $F$, and gauge invariance now holds to $\O (F^2)$.
To achieve full gauge invariance we introduce moduli spaces
$\B^3, \B^4, \cdots$ with all numbers of special punctures. 
While we work with such spaces directly, we will sketch how such 
spaces also arise from higher order background
independence conditions. We thus see that the geometrical
ingredient necessary to build a string field theory around
a non-conformal background was encoded 
in the potentially infinite set of background independence conditions that
arise from a string field theory built around a background encoded by
a CFT that sits on a CFT space.   

We explain that all $\B$ spaces $\B^1, \B^2, \cdots$ should be thought as
string vertices, with the standard string vertices $\V$, which have
no special punctures, identified as the space $\B^0$. 
The complete collection of all string 
vertices can be formally put together into a single
space $\B \equiv \B^0+ \B^1 + \B^2 + \cdots$. This element $\B$ is an
element of the complex which includes the formal sum
of moduli spaces of Riemann spheres
with Weyl metrics with all possible numbers of ordinary and 
special punctures.\foot{In this paper we only consider the 
classical closed string theory and thus only spheres are relevant.
The extension to quantum closed strings is not expected to be
problematic.} We write $\B = \sum_{k,p} \B^k_p$ where $\B^k_p$ denotes
a moduli space of spheres with $k$ special punctures and $p$ ordinary
punctures.  
In this complex we have an antibracket operation, which corresponds
to the sewing of ordinary punctures of the corresponding surfaces, and
an operator $\K$ that acting on a moduli space of surfaces it adds one 
special puncture to the each of the surfaces [\zwiebachhms]. 
The operator $\K$ satisfies the identity
$\K^2=0$, and this is related to the fact that any  space  in the complex
is defined to be antisymmetric
under the exchange of the labels on any two of the special punctures.  The 
generalized string vertex $\B$ is shown to satisfy an 
extremely simple relation: $\partial\B  -\K \B +\half
\{ \B , \B \} - \V'_3 =0$. If expanded in terms of the number of special
punctures this equation gives all the recursion relations satisfied by
the familiar string vertices $\V$ and all the $\B^k$ spaces. This equation
explains in a simple way why the action we build satisfies
the Batalin-Vilkovisky master equation.

It is important to note that the label $k$ in 
$\B^k_p$ not only gives the number of special punctures on the surfaces
in the moduli
space $\B^k_p$ but also specifies the dimension of $\B^k_p$. We have:
$\hbox{dim}~(\B^k_p) = k+ \hbox{dim}~(\V_{k+p})$, namely, for each
special puncture the moduli space gains one real dimension above that
of the standard string vertex with the same total number of punctures.    
This is in accord with ghost number conservation, given that $F$ has
ghost number three, and that ordinary string fields 
giving a nonzero contribution
to an ordinary string vertex must have an average ghost number of two.
One can therefore think of $\B^k_p$ as a space fibered over $\M_{k+p}$ where
$\pi: \B^k_p \to \M_{k+p}$
is a projection that forgets about the Weyl metric on the surface and
the choice of local coordinates at the punctures. 
For every complex structure $\Sigma \in \pi \,(\B^k_p)$ 
one has a {\it compact} $k$ dimensional space $\pi^{-1} (\Sigma)\in \B^k_p$ 
with the same complex structure. 
In the conformal context the
fibers simply represented different local coordinates at the punctures.
Integration over $\B$ spaces includes 
integration over fibers, and in the present case
this is properly thought as integration
over Weyl metrics! This represents a surprising realization of 
an intuitive expectation. If we start with
non conformal theories one would expect that integration over metrics
would include integration over conformal
structures {\it and} Weyl metrics. This could not have been strictly true, 
however. A complete integration over  Weyl metrics
would very likely give rise to infinities,
since the space of inequivalent Weyl metrics 
is infinite dimensional and non-compact.
The standard string vertices have no Weyl integration, but the $\B^k$ spaces
do. Since they are compact finite dimensional spaces they give rise  to
limited integration over the space of Weyl metrics. 
As the number of special punctures
increases one is integrating over compact 
subspaces of the space of Weyl metrics of larger and larger dimensionality. 


\noindent
\underbar{Two dimensional field theory ingredient.}
~The main question here is what is the string field $F$ and what
is the proper replacement of the BRST operator, which for the
case of conformal backgrounds defines the linearized gauge 
transformations of the theory. In the conformal context,  
gauge invariance, to first order,
follows from the fact that the BRST operator squares to zero.
For two-dimensional non-conformal field theories we do not
expect to have a BRST charge that is conserved nor we expect this charge
to square to zero. 

There is a way to motivate the type of identities that must be satisfied
by the generalized BRST charge $Q$ and the string field $F$. 
The type of identities required for gauge invariance 
away from conformal backgrounds were given in Ref.[\zwiebachlong]
sect.4.5, and the first few read 
$$  {\cal Q}\ket{{\cal F}} = 0\, , \eqn\clfornzero$$
$${\cal Q}^2\, \ket{A} = -  \l\, {\cal F} , A \r \, ,\eqn\failnilp$$
$$ {\cal Q} \l A_1 , A_2 \r  + \l {\cal Q} A_1 , A_2 \r + (-)^{A_1} \l A_1,
{\cal Q}A_2 \r  = -  \l {\cal F},A_1,A_2 \r  , \eqn\foxxfxo$$
We have used calligraphic symbols to denote ${\cal Q}$ and ${\cal F}$ because
these are not the same objects 
as $Q$ and $F$. We need ${\cal Q }$ and $\F$ but it seems  unlikely that 
one can give
a simple construction of them starting from a two-dimensional quantum
field theory. Indeed, ${\cal F} =0$ is the
condition that selects a classical string background, and
such equation is probably fairly intricate. Our strategy will be to 
construct ${\cal Q}$ and ${\cal F}$ from simpler objects $Q$ and $F$
whose existence we will {\it postulate}. The object $Q$ will correspond to
a non-conserved charge and therefore will be contour
dependent and denoted as $Q(\gamma)$. We demand that
$$\eqalign{
\lim_{r\to 0} Q (\gamma_r)\, F (0)\, &=\,\,\,0 \,\,\,,\cr
[ Q (\gamma) ]^2\, &=\,\, {1\over 2\pi i}\, \int_\gamma F^{\,[1]} \,,\cr
Q(\gamma_2) - Q (\gamma_1)\, &= - {1\over 2\pi i} \int_M F^{\,[2]} \,. \cr}
\eqn\conse$$ 
We claim that these equations define a natural extension 
of the conformal field theory BRST operator to the non conformal case. 
The special ghost
number three local operator $F(z,\bar z)$, vanishing in the conformal
case, controls the violation of all the standard BRST properties.    
The first equation says that as we shrink the contour around $F$ the
BRST operator will give a result that goes to zero.
This is the closest analog of \clfornzero\  given that the BRST operator is not
conserved. The next identity equates the failure
of $Q(\gamma)$ to square to zero to the line integral of
the one-form $F^{\,[1]}(z,\bar z)$ associated to $F (z, \bar z)$.
Finally the failure of $Q$ to be conserved is measured by the variation
of $Q$ as we change the defining contours. For 
two homologous contours $\gamma_1$ and $\gamma_2$,
namely two contours bounding a cylindrical region $M$: $\partial M =\gamma_2
-\gamma_1$ we find that the change in $Q$ is given by an integral of the
two-form $F^{\,[2]}(z, \bar z)$ associated to $F$. 

We will not
attempt in the present paper to give an explicit construction of the
operators $Q$ and $F$ in terms of two-dimensional field theory data.
This will be the subject of a forthcoming publication [\zwiebachweyl].
The BRST operator will be built in terms of line integrals involving
ghost fields and the stress tensor of the theory (which is not traceless).
The two form $F^{[2]}$ appears to be equal to the divergence of the
ghost field times the trace $T$ of the stress tensor. Apart from states
that have nontrivial ghost dependence, the operator $F$ is also proportional
to the trace $T$ of the stress tensor. The ghost-sector of the two-dimensional
field theory must be defined so that the BRST operator acts properly
on forms on the moduli space of Riemann surfaces equipped with Weyl metrics.


The relation between $Q$ and $F$ on one hand and ${\cal Q}$ and ${\cal F}$ on
the other is through the family of $\B$ spaces discussed earlier. In fact
${\cal Q}$ can be identified as the operator appearing in the part of the
string action quadratic on the string field and ${\cal F}$ as the string 
field appearing in the part of the action linear on the string field.
In the case of ${\cal F}$ it turns out that it equals $F$ plus contributions
from $\B$ spaces with one ordinary puncture and two or more special punctures,
namely $\B^k_1$ spaces with $k\geq 2$. The complete field equation reads:
$$\ket{{\cal F}}_{1'} \equiv 
 \ket{F}_{1'} +  \sum_{k\geq 2}\,{1\over k!} \int_{\B^k_1} 
\bra{\Omega^{[k]}_{1\bar 1 \cdots \bar k}}
F\rangle_{\bar 1}\cdots \ket{F}_{\bar k} \ket{S_{11'}}  =0\, . \eqn\feqn$$
This is a non polynomial equation that starts with a term linear in $\ket{F}$
and by construction $\ket{F} =0$ is a solution. As we mentioned earlier 
there may be nontrivial solutions of this equation. Such solutions, having
$\ket{F}\not= 0$, but $\ket{{\cal F}}=0$ would represent classical 
string backgrounds
that do not correspond to conformal field theories.

\Figure{figg1.eps}{Figure 1.~The representation of the field equation 
that selects a classical string background. The first term in the 
equation is simply the state $\ket{F}$, the second term is the state
obtained through the ordinary puncture in the moduli 
space $\B^2_1$ where the two special punctures are filled with $F$. }


It is worthwhile to point out briefly the parallel with 
Einstein's theory. The
utility of Einstein's equations derives mostly from the fact that they can
be written without committing one-self to a reference classical background.
The equations of motion for the fluctuating field around flat space would
be of little help in finding nontrivial classical solutions.
The Einstein action, expanded around an arbitrary
background metric $\ov g_{\alpha\beta}$ that does not satisfy the
field equations reads
$$ S(g) = -{1\over \k^2} \int \sqrt{\ov g}\, \ov R\, d^4x
+{1\over \k^2} \int d^4x \sqrt{\ov g}\, \l\, \ov R^{\mu\nu}
- {1\over 2} \,\ov g^{\mu\nu}\, \ov R\, \r \, h_{\mu\nu}
+ \O (h^2), \eqn\einst$$
where $h_{\mu\nu}$ is the fluctuating field. 
The advantage of expanding around an arbitrary metric is clear. Multiplying
the fluctuating field is the fully geometrical Einstein field 
equation:
$\ov R^{\mu\nu} - \half\,\ov g^{\mu\nu}\, \ov R\, =0$. Our string analog
for this equation is $\ket{{\cal F}(F) }=0$, as shown in \feqn. 
Gauge invariance of \einst\ under
$\delta_\epsilon h_{\mu\nu} = \ov D_\mu \epsilon_\nu+ \ov D_\nu\epsilon_\mu$
holds on account of the Bianchi identity
$\overline D_\nu \l \,\ov R^{\mu\nu} - \half\,
\ov g^{\mu\nu}\, \ov R\, \r = 0$.  The string field theory analog 
of the gravitational Bianchi identity is
the equation ${\cal Q }\ket{{\cal F}} =0$. The field independent term
in the expansion \einst\ is simply the Einstein action evaluated at
the background metric. It is for this reason that it should be of
interest to understand the $\B^k_0$ spaces. These spaces
give the string field-independent contributions to the string field action
(see conclusions, for further comments).

\noindent
\underbar{Organization of this paper}~
In section 2 we first review a few of the results of Ref.[\zwiebachhms] 
and then discuss the systematics of
 higher order background independence conditions, showing how they arise
from the requirement of vanishing antibracket cohomology. 
In section 3 we explain the identities that should be satisfied by the
generalized BRST operator $Q$ and the special string field $F$. We explore
the consistency of these equations, and discuss $Q$ action on moduli
spaces whose surfaces have both ordinary and special punctures. In
section 4 we begin the construction of the new gauge invariant string 
action as a power expansion in the number of $F$ insertions. 
We discuss explicitly the terms with zero, one and two insertions. Such
terms use the string vertices $\V$, the $\B^1$ spaces and $\B^2$ spaces.
In section 6 we complete the construction by working to all orders
in the number of $F$ insertions. We offer comments and spell out
some open questions in section 7.   
 

\chapter{Review and Developments}

In this section we review some of the technology developed in [\zwiebachhms]
dealing with moduli spaces of surfaces with ordinary and special punctures.
While the cases of one or two special punctures were the subject of
main attention in previous works, in the present paper the number of
special punctures will be arbitrary. We  define in this general context
the homomorphism from surfaces to functions. Finally, we explain how
relevant $\B$ spaces with more than two punctures arise from higher order
background independence consistency conditions. 


\section{Properties of String Vertices and $\B$ spaces}

The moduli spaces of surfaces we must deal with are moduli 
spaces of Riemann surfaces with labelled punctures. The punctures can
be of two types, ordinary punctures, where the dynamical string field is
inserted, and special punctures where special states are inserted.
The punctures have analytic local coordinates defined around them,
and the moduli spaces are symmetric under the exchange of labels of
any two ordinary punctures, and antisymmetric under the exchange of 
labels of any two special punctures. For the purposes of the present
paper one must also define a Weyl metric (or conformal factor $\rho$
with $ds = \rho |dz|$) on every surface of each moduli space. 
The above moduli spaces, called $\B$ spaces, are indexed by the number
of special punctures, sometimes indicated as a superscript. The Batalin
Vilkovisky algebra of surfaces with ordinary punctures
[\senzwiebachtwo], was extended to this more general case in Ref.[\zwiebachhms].
The main results are summarized below. 

The antibracket of $\B$ spaces satisfies the following identities 
[\zwiebachhms]:
$$\eqalign{
\{\B_1 , \B_2\} &= -\,(-)^{(\B_1+\bar n_1 +1)(\B_2+\bar n_2 + 1)} 
\,\{\B_2,\B_1\}\,, \cr
 \p\, \{\B_1 ,  \B_2\}  &= \{ \p\B_1 ,  \B_2\} + (-)^{\B_1 +\bar n_1 +1} 
\{ \B_1 , \p\B_2 \} \,, \cr 
0 & =  (-)^{(\B_1+\bar n_1 + 1) (\B_3+\bar n_3 + 1)} \{ \{ \B_1, B_2 \} , \B_3\} 
  \, + \, \hbox{Cycl}\,. \cr}\eqn\jacobin$$
These identities work as if $\B$ spaces with $\bar n$ special punctures had an
effective dimensionality equal to  dim($\B$) + $\bar n$.
The operators $\K$ and $\I$ satisfy the relations
$$\eqalign{
\K\, (\,\{ \B_1 , \B_2\}\, )\, 
&=\,(-)^{\B_2 + \bar n_2 + 1} 
\{ \K\B_1 ,\B_2\}
 \,+\,\{ \B_1 , \, \K\B_2 \} \,,\cr
[\,\partial\,,\,\K\,]\, \B &= \,(-)^{ \B + \bar n}
\{\,\V'_3 \,, \B\, \}\,,\cr
\K ~\K & = 0\,\,, \cr} \eqn\knewd$$
and,
$$\eqalign{
\I\, (\,\{ \B_1 , \B_2\}\, )\, 
&=\,(-)^{\B_2 +\bar n_2 + 1} 
\{ \I\B_1 ,\B_2\}
 \,+\,\{ \B_1 , \, \I\B_2 \} \,,\cr
[\,\partial\,,\,\I\,]\, &=\,0 \,,\cr
\I ~\I & = 0\,\,. \cr}\eqn\iinst$$
The anticommutator of $\K$ and $\I$ is given by 
$$ \K~ \I + \I ~\K 
= \{ \,\,\,  , \T^2_1\,\,\}\,\,,\eqn\import$$   
where 
$\T^2_1 = \tau^2_1(0)  - P \tau^2_1(0)$.
Here $P$ is the operator that exchanges the labels of the special punctures,
and  $\tau_1^2(0)$ is a collection of three punctured spheres 
$\tau_1^2(0) = \Bigl\{ S(t)\,  \bigl|\,  t \in [0,1]  \Bigr\}\,$ (see Figure 1,
and Ref.[\zwiebachhms] for further details).
This space satisfies 
$$\partial \T^2_1 =  \I \V'_3 \,.\eqn\boundtau$$ 

\Figure{figg2.eps}{Figure 2.~The one dimensional moduli space 
of three punctured spheres that defines the
space $\T^2_1$ having two special punctures and one ordinary puncture. 
The first space is $\tau^2_1(0)$ and the second one is $P\tau^2_1(0)$,the same
space with the labels for the special punctures exchanged. One of the special punctures travels from the point 
$w=0$, where it coincides with the other special puncture, up to the
point $w=1$.}

Defining $\M = \K - \I$ one has the following identities
$$\eqalign{
\M\, (\,\{ \B_1 , \B_2\}\, )\, &=\,(-)^{\B_2 + \bar n_2+1} 
\{ \M\B_1 ,\B_2\}
 \,+\,\{ \B_1 , \, \M\B_2 \} \,,\cr
[\,\partial\,,\,\M\,]\,\B &=\,(-)^{\B + \bar n}
\{\,\V'_3\,, \B\,  \}\,,\cr
\M ~\M & = - \, \{ \,\,\,  , \T^2_1\,\}\, .\cr}\eqn\mopiden$$

\goodbreak
\noindent
\underbar{$\V, \B^1,\, \hbox{and}\,\,\B^2$ Spaces}.~
At genus zero, the string vertices $\V$ 
include moduli spaces of punctured spheres with three or more punctures.
They satisfy the identities
$$\partial \V +  \, \half\{ \V ,\V\} =0\,. \eqn\recrel$$
$$\delta_\V^2 =0\, ,\quad \hbox{with}\quad
\delta_\V \equiv \partial + \{  \V\, \, ,\,\, \} \eqn\anuop$$
$$ \delta_\V \V = \half \{ \V \,, \, \V \} \,. \eqn\neweq$$
As defined in [\senzwiebachtwo], genus zero $\B^1$ spaces begin with a moduli
space of three punctured
spheres, one of which is a special puncture. The moduli spaces $\B^2$
at genus zero also begin with a moduli
space of three punctured
spheres, but this time two of the punctures are special.
Their recursion relations take the form [\senzwiebachtwo,\zwiebachhms]:
$$\eqalign{\delta_\V\B^1\, &= \V'_3 + \M\V
\,, \cr
 \delta_\V  \B^2  &= \T^2_1 +  \M \,\B^1  -\, \half\,
 \{ \B^1 \,,\, \B^1 \} \,. \cr} \eqn\gmallow$$
In proving the consistency of the above equations one uses the following
equalities, valid for arbitrary $\B$ spaces
$$\eqalign{
[\, \,\delta_\V ,\K\, ]\B &= \, (-)^{\B+ \bar n}
\bigl\{ \, \V'_3 + \K\V \, ,  \B\, \bigr\}\,, \cr 
[\,\,\delta_\V ,\I\, ]\B &= \, (-)^{\B+\bar n} \bigl\{  \,\I\V\,, \B\, \bigr\}
\,,    \cr
[\,\delta_\V ,\M\, ]\B &= \,  (-)^{\B+ \bar n}\bigl\{\, \V'_3 + \M\V\,,\B\, 
\bigr\}\,. \cr} \eqn\fcomb$$


The spaces $\V, \B^1,\B^2$, and the higher spaces $\B^k$ we will
introduce later have something in common.
Their dimensionality exceeds
that of the corresponding moduli space of Riemann surfaces by the
number of special punctures. As a consequence they
are effectively Grassmann even. They will all be thought eventually
as string vertices.
It follows  from the results listed earlier
that they satisfy the following identities
$$ \bigl\{ \,\B^{k_1} \,,\, \B^{k_2} \, \bigr\}
= \bigl\{ \,\B^{k_2} \,,\, \B^{k_1} \, \bigr\} \,,\eqn\nbmv$$  
$$ \M \bigl\{ \,\B^{k_1} \,,\, \B^{k_2} \, \bigr\}
= - \bigl\{ \,\M\B^{k_1} \,,\, \B^{k_2} \, \bigr\} 
+ \bigl\{ \,\B^{k_1} \,,\, \M\B^{k_2} \, \bigr\}\,, \eqn\lop$$
$$ \Bigl\{ \{ \B^{k_1}\, , \,   \B^{k_2} \} \, , \,  \B^{k_3}\Bigr\} + 
\hbox{Cyclic} = 0 \,. \eqn\newjac$$


\section{Mapping to string functionals}

Throughout this paper we 
will insert the ghost number three, Grassmann odd $F$ states at every special 
puncture. It is therefore convenient to define 
$$f(\B^k_n)   = {1\over n!} {1\over k!} \int_{\B^k_n}
\bra{\Omega} \Psi\rangle_1 \cdots \ket{\Psi}_n \ket{F}_{\bar 1}
\cdots \ket{F}_{\bar k}\, . \eqn\homdef$$
Note that we have included a symmetry factor both for the
ordinary punctures and for the special punctures.
Moreover,  for string vertices $\B^k_n$, the function
$f(\B^k_n)$ is Grassmann even, as it should be in order to 
be a candidate for a term in the string action.  The subscript on
each $F$ denotes the label of the puncture where the state is inserted.
Note that the ordering of the $F$ states, ascending from left to right,
is important since the $F$ states are Grassmann odd. 


The main homomorphism identity arises as we consider the antibracket
of two functions arising from $\B$ spaces. Using the primed
antibracket of Ref.[\zwiebachhms], we find
$$\bigl\{ \,f (\B^{k_1}) \,,\, f (\B^{k_2} )\, \bigr\} =  - 
(-)^{k_1(k_2+1)} f\Bigl( \bigl\{ \,\B^{k_1} \,,\, \B^{k_2} \, \bigr\}'
\Bigr)\,,\eqn\gtns$$ 
where the sign factor requires careful consideration. 
\foot{It arises as follows: there is one
minus sign from the sign factor in the right hand side of Eqn.(2.10) of
Ref.[\zwiebachhms]. There are ($k_1k_2 + k_1 + k_2$) minus signs
that arise from moving all the $F$ states to 
the right. Finally there are $k_2$ minus signs from moving the 
sewing ket $\ket{S}$ in between the  operator valued forms representing 
the moduli spaces, as in Ref.[\senzwiebachtwo] Eqn.(3.12).} 
The normalization works out correctly as a consequence of the inclusion
of the factor $(1/k!)$ in the definition \homdef.
As a consistency check notice that both the rhs and the lhs, are symmetric
under the exchange $k_1 \leftrightarrow k_2$. 
Recalling the relation between the primed and unprimed antibracket
$\{ \B^{k_1} ,\B^{k_2} \} \equiv (-)^{k_1 + k_1k_2} \{  \B^{k_1} ,\B^{k_2} \}'$
we find
$$\bigl\{ \,f (\B^{k_1}) \,,\, f (\B^{k_2} )\, \bigr\} =  - 
 f\Bigl( \bigl\{ \,\B^{k_1} \,,\, \B^{k_2} \, \bigr\}
\Bigr)\,.\eqn\gtnss$$
This equation is valid for arbitrary $\B$ spaces. 
Defining now 
$$B^{(2)}_{\O}\equiv \bra{\omega_{12}\,}\O\rangle_1\ket{\Psi}_2\,\,,\eqn\lham$$
we obtain another useful homomorphism identity is 
$$f(\I \B^k) = \{ f (\B^k) , B_F^{(2)} \}\,.  \eqn\iopin$$


\section{Vanishing Antibracket cohomology classes}

Starting from the master equation $\{ S, S\} =0$, 
 covariant differentiation with
a symplectic connection immediately yields $\{ S , D_\mu S \} =0$. This means
$D_\mu S$ is $S$-closed. We expect, however, that $D_\mu S$ is actually 
$S$-exact. If it were not so, $D_\mu S$ could be added to the string action
to define an inequivalent string action, something we do not expect
physically to be true. Therefore, there should be a $B_\mu$ such that
$$ D_\mu  S = \{ S\, , \, B_\mu \} \,.\eqn\one$$
Finding the explicit form of $B_\mu$ was the subject of Ref.[\senzwiebach].
This last equation can be written briefly by introducing a
covariant
derivative acting on functions on the vector bundle [\zwiebachhms]
$$\D_\mu S = 0 \,, \quad \D_\mu \equiv D_\mu  + \{ B_\mu,\,\,\} \,.\eqn\nnot$$
Note that this covariant derivative acts nicely on the antibracket:
$\D_\mu \{A , B\} = \{\D_\mu A , B\}+ \{A , \D_\mu B\}$.
Recalling that $[D_\mu , D_\nu]\, A = -\,\{ A \, , R_{\mu\nu} \}$,
we find that the commutator of two covariant derivatives gives
$$[\D_\mu , \D_\nu ]  = - \,\{ H_{\mu\nu}\, , \,\,\, \} \,, \quad
 H_{\mu\nu} \equiv  D_\mu B_\nu
 -  D_\nu B_\mu +  \{ B_\mu  ,   B_\nu \} + R_{\mu\nu} \,.\eqn\nmot$$
It follows from \nnot\ that $ [\D_\mu , \D_\nu ]\,S = 0$, and  this
together with \nmot\
implies that $H_{\mu\nu}$ is $S$-closed:
$$\bigl\{ \,\,  S\, , \, H_{\mu\nu}\bigr\}=0 \,. \eqn\six$$
Since we do not expect nontrivial antibracket 
cohomology classes we are led to write
$$\quad H_{\mu\nu}  =  
\bigl\{ \,\,  S\, , \, B_{\mu\nu} \, \bigr\} \,.\eqn\sixx$$
Much of the work in [\zwiebachhms] went into
constructing the hamiltonian $B_{\mu\nu}$ and showing that it 
was defined by moduli spaces of surfaces having two special punctures.
We now show that higher conditions arise and could be used to 
define moduli spaces of surfaces having more than two special punctures.

As a first step we prove a ``Bianchi identity" for $H_{\mu\nu}$. 
Note the trivially
satisfied identity
$$ [\D_\mu\,, \D_\nu ]  \D_\rho + \hbox{Cycl}  =  
\D_\mu\  [\D_\nu \,,  \D_\rho\, ] \,  + \hbox{Cycl}\,, \eqn\cyclc$$
where `Cycl' denotes adding the two cyclic permutations of $(\mu\,\nu\rho)$
Letting both sides of the equation act on an arbitrary function $A$, one
deduces that
$$\D_\mu H_{\nu\rho} + \D_\nu H_{\rho\mu} + \D_\rho H_{\mu\nu} =0\,.\eqn\bian$$
It follows now from \six\ and \bian\ that 
$$\bigl\{ \,\,  S\, , \,H_{\mu\nu\rho}
\, \bigr\} = 0\,, \quad 
H_{\mu\nu\rho} \equiv \D_\mu B_{\nu\rho} + \D_\nu B_{\rho\mu} 
+ \D_\rho B_{\mu\nu}\,, \eqn\serf$$
where we have introduced a three-index field strength $H_{\mu\nu\rho}$.
Again, expecting no nontrivial antibracket cohomology, we are led to
write 
$$H_{\mu\nu\rho} = \{ S \,, B_{\mu\nu\rho} \, \}\,.  \eqn\erf$$
The new hamiltonian $B_{\mu\nu\rho}$ would be expected to arise from 
moduli spaces of surfaces with three special punctures.  

The idea to go to higher orders is simple, we take a covariant derivative
$\D_{\mu_0}$ of the equation 
$H_{\mu_1\cdots \mu_k} = \{ S , B_{\mu_1\cdots \mu_k} \}$, and antisymmetrize
on the $(k+1)$ indices. The left hand side is written in the form 
$\{ S , ~\cdot~ \}$ with the help of lower order identities, and a new
identity of the form $\{ S , H_{\mu_0 \cdots \mu_k} \} =0$ follows. Rather
than introducing general notation to do this efficiently we limit
ourselves to consider the next case. Defining
$$ \D_\mu H_{\nu\rho\sigma} \pm\hbox{Cycl.} 
\equiv  \D_\mu H_{\nu\rho\sigma} - \D_\nu H_{\rho\sigma\mu} 
+ \D_\rho H_{\sigma\mu\nu }  - \D_\sigma H_{\mu\nu\rho}\,, \eqn\ngh$$ 
it then follows from \serf\ and \nmot\ that
$$\eqalign{\D_\mu H_{\nu\rho\sigma} \pm\hbox{Cycl.}  
&= -\, \{ H_{\mu\nu} \,,\, B_{\rho\sigma} \} 
-\{ H_{\mu\rho} \,,\, B_{\sigma\nu} \} 
-\{ H_{\mu\sigma} \,,\, B_{\nu\rho} \}  \cr 
& \quad  -\, \{ H_{\rho\nu} \,,\, B_{\sigma\mu} \} 
-\{ H_{\sigma\nu} \,,\, B_{\mu\rho} \} 
-\{ H_{\rho\sigma} \,,\, B_{\mu\nu} \} \,. \cr } \eqn\nexti$$
We now use \six\ and the Jacobi identity to find
$$\D_\mu H_{\nu\rho\sigma} \pm\hbox{Cycl.}  
= -\, \Bigl\{ \, S \, ,  \{ B_{\mu\nu} \,,\, B_{\rho\sigma} \} 
+ \{ B_{\mu\rho} \,,\, B_{\sigma\nu} \} 
+ \{ B_{\mu\sigma} \,,\, B_{\nu\rho} \}\, \Bigr\} \,. \eqn\nextii$$
It now follows from \erf\ that
$$\{ S \,, H_{\mu\nu\rho\sigma} \, \} = 0 \,.  \eqn\gerff$$
where the four-index antisymmetric field strength $ H_{\mu\nu\rho\sigma}$
is given by
$$ H_{\mu\nu\rho\sigma}  \equiv \D_\mu B_{\nu\rho\sigma} \pm\hbox{Cycl.}
 +\{ B_{\mu\nu} \,,\, B_{\rho\sigma} \} 
+ \{ B_{\mu\rho} \,,\, B_{\sigma\nu} \} 
+ \{ B_{\mu\sigma} \,,\, B_{\nu\rho} \} \,.\eqn\tger$$  
Equation \gerff\ suggests the existence of a four index hamiltonian
function $B_{\mu\nu\rho\sigma}$ such that 
$$H_{\mu\nu\rho\sigma} = \{ S \,, B_{\mu\nu\rho\sigma} \, \}\,.  \eqn\erff$$
The hamiltonian function $B_{\mu\nu\rho\sigma}$ is expected to be 
defined by moduli spaces of surfaces with four special punctures. 

The general structure of the set of equations is now apparent. We have
a family of hamiltonians $B_\mu, B_{\mu\nu} , \cdots $ that
can be thought of as gauge fields, and a family
of field strengths $H_{\mu\nu} , H_{\mu\nu\rho} \cdots$
built out of the gauge fields.  The typical field strength
$H_{\mu_1\cdots \mu_n}$ involves a covariant derivative $D$ acting on the
gauge field with one less index, plus all possible antibrackets of
gauge fields.  All field strengths are $S$-closed: 
$ \{ S , H_{\mu_1\cdots \mu_n}\} = 0$,  and turn out to be
$S$-exact; $H_{\mu_1\cdots \mu_n}= \{ S , B_{\mu_1\cdots \mu_n}\}$.




\chapter{Generalized BRST operator}


A string field theory formulated around an arbitrary background must
have an action linear in the fluctuating string field and 
would be expected to look like
$$S(\Psi )=  S_0 + \langle \Psi,
\F  \rangle + \half \langle \Psi , {\cal Q} \Psi \rangle + 
{1\over 3!} \langle \Psi , [\Psi , \Psi ] \rangle \cdots . \eqn\act$$
This action is expected to be invariant under  gauge 
transformations of the form
$${\delta}_\Lambda \Psi = {\cal Q} \Lambda + [\Psi , \Lambda ]
+ \cdots ,\eqn\gtrn$$
In the above equations ${\cal F}$ is a ghost number three, grassmann odd,
string field, and ${\cal Q}$ is a grassmann odd, ghost number one operator.
The first few conditions for gauge invariance of the above string action read
(Ref.[\zwiebachlong], sect.4.5)
$$  {\cal Q}\ket{{\cal F}} = 0 , \eqn\clfornzero$$
$${\cal Q}^2 \ket{A} = -  \l {\cal F} , A \r \, ,\eqn\failnilp$$
$$ {\cal Q} \l A_1 , A_2 \r  + \l {\cal Q} A_1 , A_2 \r + (-)^{A_1} \l A_1,
{\cal Q}A_2 \r  = -  \l {\cal F},A_1,A_2 \r  . \eqn\foxxfxo$$
When ${\cal F}=0$ we recover the structure arising from conformal backgrounds
and ${\cal Q}$ becomes the BRST operator of the conformal field theory. 
To first approximation (in the departure from conformality)
one expects the string product $[~ ,~ ]$ to be 
defined by the symmetric three punctured sphere that
gives rise to the three string vertex. Similarly the product $[~,~,~]$ should
be defined, to first approximation, by the collection of four punctured
spheres that comprises the four string vertex.  


The first of the above identities says that
${\cal Q}$ annihilates the special state $\ket{{\cal F}}$. This is
the analog of the Bianchi identity in Einstein's gravity, as explained
in the introduction. 
The second identity says that as an operator ${\cal Q}^2$ is an operator
roughly represented by the two punctured sphere obtained by
filling one of the punctures of the three string 
vertex with the state $\ket{{\cal F}}$. It is hard to see how the square
of an operator defined by a conventional contour integral 
could be represented by the action of a symmetric three punctured sphere. 
The last
equation is also peculiar in that the failure of ${\cal Q}$ to act like a
derivation of the string product defined (roughly) by the three-string vertex 
is given by the insertion of $F$ on roughly the four-string vertex.
A direct construction of these objects using 2-dimensional field theory
seems difficult. 

In this section we will use the above discussion to 
motivate a set of identities
that could be expected to arise in a two-dimensional field theory.
These identities will involve an operator $Q$, to be referred to as
the generalized BRST operator, and a special string field denoted as $F$.
The consistency of the postulated identities will be examined. Finally
we will examine BRST action on moduli spaces of surfaces with ordinary
and special punctures. The explicit construction of $Q$ and $F$ using
two-dimensional field theory will be discussed in [\zwiebachweyl].

\section{$(Q , F)$ - Descent Equations}


If we are to use two-dimensional field theory ingredients
to build a generalized BRST charge, we expect to build it
by integration over some closed curve $\gamma$
of an operator valued one-form on a two-dimensional surface.
This surface is equipped with a conformal structure and a Weyl factor.
Similarly we can expect $\ket{F}$ to correspond to some ghost number
three local operator $F(z, \bar z)$ of the two-dimensional field theory.

This generalized BRST charge will lose many of the properties
standard in the conformal case, but 
it will do so in a well-defined fashion. A fundamental change is
that the BRST charge will be contour dependent, and we thus write 
$Q(\gamma)$ to indicate
explicitly this dependence. We demand, however, that it should not 
depend on the parametrization of the contour, nor on the local 
coordinates used to do the line integral: the charge arises as the integral
of a well-defined (current) one-form. The failure of contour independence
for homologous contours is equivalent to lack of conservation for the current
one-form whose integral defines the BRST charge.


According to Eqn.\clfornzero\ we should expect  the BRST charge
to annihilate the local operator $F(z,\bar z)$  in some 
suitable sense.
Assume $F$ is inserted at point $P$ using a local coordinate $z$ vanishing
at $P$: $z(p) =0$. Consider then the family of contours 
$\gamma_r = \{ |z| = r \}$ that surround the point $P$ (see Figure 3). 
We demand that
$$\lim_{r\to 0} Q (\gamma_r)\, F (0) =0 \,.  \eqn\vanish$$
This is the best we can do given that the BRST operator is not
conserved. 


\Figure{figg3.eps}{Figure 3.~(a) The operators $Q(\gamma_r)$, in
the limit $r\to 0$ annihilate the operator $F$ (b) The BRST charge
is not conserved, the difference between the charge evaluated for
two homologous contours $\gamma_1$ and $\gamma_2$ 
is given by a surface integral of $F$ over the region $M$.}

The next identity we postulate has to do with the failure
of $Q$ to square to zero and is thus related to \failnilp. 
This property must again refer
to some chosen contour.
Let $F^{\,[1]}(z,\bar z)$ denote
the operator-valued one-form arising from the local operator $F (z, \bar z)$. 
We now demand
$$ [ Q (\gamma) ]^2 = \, {1\over 2\pi i}\, \int_\gamma F^{\,[1]} \,. \eqn\jkm$$
The integral in the right hand side is over the  contour that defines
the BRST charge in the left hand side. 
Note that ghost number works out, $F^{\,[1]}(z,\bar z)$
is of ghost number two, the same ghost number as
that of $Q^2$. 

Finally, we must consider Eqn.\foxxfxo. This equation addresses
the curve dependence of the BRST charge. As the right hand side 
indicates, the local operator $F(z, \bar z)$ is required to control the
contour dependence. Therefore, 
given two homologous contours $\gamma_1$ and $\gamma_2$,
namely two countours bounding a cylindrical region $M$: $\partial M =\gamma_2
-\gamma_1$ we postulate that
$$Q(\gamma_2) - Q (\gamma_1) =
 -\, {1\over 2\pi i}\, \int_M F^{\,[2]}\,, \eqn\consey$$ 
where $F^{\,[2]}(z, \bar z)$ is the two-form associated to $F$. The ghost
number of  $F^{\,[2]}$ is $+1$, and thus both sides of 
the above equation have the same ghost number. 

The three relevant equations \vanish\jkm, and \conse\ resemble
descent equations, since they involve the various forms that arise
from the local operator $F(z, \bar z)$. We will now rewrite these
equations in a language which is more suitable  for string field theory.
This language will also facilitate the
discussion of consistency checks between the various equations. 


\section{$(Q , F)$ Equations in Symplectic Notation}

We will now rewrite equations 
\vanish,\jkm, and \conse\ in the language of antibrackets and
hamiltonian functions.  For this purpose we must introduce
a symplectic structure  in the
space of local operators of the two dimensional field theory. 
This is defined, in analogy to the conformal case, by a correlator
on a special two punctured sphere.

\noindent
\underbar{Canonical Cylinder}. This is the canonical two punctured
Riemann sphere equipped with a special Weyl metric. We recall that
the canonical two punctured sphere is the sphere with  local coordinates
$z_1$ and $z_2$, satisfying $z_1 z_2 =1$, and with the punctures at
$z_1=0$ and $z_2=0$. The Weyl metric $\rho$, with 
$ds= \rho |dz|$, is given by $\rho(z_1) = 1/|z_1|$ (and $\rho(z_2) = 1/|z_2|$).
This metric makes the surface into a
flat infinite cylinder of circumference $2\pi$.


\noindent
\underbar{Symplectic Structure} Acting on two local operators of the
theory it furnishes a number. This number is  the correlator on the canonical
cylinder of the local operators,  inserted
at the punctures, and a line integral of the ghost field  producing
the $c_0^-$ insertion familiar in the conformal case. 

\noindent
\underbar{BRST operator}.
We must now define a BRST operator and the associated BRST hamiltonian function. 
We will denote both the BRST operator
and the BRST hamiltonian
by the same symbol $Q$; which one is being used should
be clear by the context. Given that we have contour dependent
BRST operators $Q(\gamma)$, defining a fixed BRST operator entails
a choice of contour in some chosen surface.   We define the BRST operator
$Q$ to be the operator $Q(\gamma)$ that arises when we choose 
$\gamma$ to be the closed geodesic $|z_1|=|z_2| =1$ in the canonical
cylinder. This will be 
{\it the} BRST operator to be used in string field theory.

We will use the notation of bras and kets. The symplectic form
will be denoted as $\bra{\omega_{12}}$, with $\bra{\omega_{12}}= 
-\bra{\omega_{12}}$, and its inverse as $\ket{S_{12}}$ with $\ket{S_{12}}
= \ket{S_{21}}$. The hamiltonian function $Q$ is given as
$Q = \half \bra{\omega_{12}} Q^{(2)} \ket{\Psi}_1 \ket{\Psi}_2$, where
the $Q$ appearing in the right is the BRST operator. All these results
are familiar in the conformal case. Most results involving
antibrackets will carry from the conformal case to the present
case, one must only make sure
the Weyl metrics of all surfaces are well defined.

We now claim that the following three equations encode in symplectic
language the content of Eqns.\vanish,\jkm, and \consey\  
$$\{ Q\, , B_F^{(2)} \} = - f ( \T^2_1 ) \,, \eqn\th$$ 
$$\half \{ Q\, , Q \} = f (\V'_3) \,,  \eqn\qg$$ 
$$\{ Q\, ,f(\Sigma)\}= f (\K \Sigma)\,.\eqn\qss$$

Let us begin from the last equation. In the conformal case the
right hand side is equal to zero, as a result of the identity
$\bra{\Sigma} \sum Q =0$ which  is proven by contour deformation. 
This time $\Sigma$ is assumed to 
be equipped with a Weyl metric such that the coordinate disks are semiinfinite
canonical cylinders. This is necessary for sewing compatibility since the BRST
operator is defined on the canonical cylinder. The right hand side of
\qss\ is intuitive, it simply indicates that we must integrate
the insertion of $F$ over the two-dimensional region outside of the
coordinate disks. This equation follows from
\consey\ rather simply. Consider the definition of the function $f(\Sigma)$
$$f(\Sigma) = {1\over n!} (-2\pi i)^{3-n}\,\bra{\Sigma}\Psi\rangle_1\cdots \ket
{\Psi}_n \,, \eqn\surfstate$$
A straightforward calculation gives
$$\{ Q \,, \, f(\Sigma)\} = -{1\over n!} (-2\pi i)^{3-n}\, 
\bra{\Sigma}\bigl( \sum Q \bigr)\ket{\Psi}_1\cdots \ket{\Psi}_n \,.
 \eqn\almt$$ 
On the other hand, \consey\ implies that $\sum Q = {1\over 2\pi i}
\int_{\Sigma- \cup D_i} F^{[2]}$ (recall the contours for $Q$ are
oriented oppositely to the boundary of the surface minus the unit disks).
We thus find 
$$\eqalign{
\{ Q \,, \, f(\Sigma)\} &= {1\over n!} (-2\pi i)^{3-(n+1)}\hskip-9pt 
\int_{\Sigma - \cup D_i}\bra{\Sigma ; p }F^{[2]}\ket{\Psi}_1
\cdots \ket{\Psi}_n \cr
&= {1\over n!}\hskip-9pt 
\int_{\Sigma - \cup D_i}\bra{\Omega^{[2]n+1} }F\rangle_{n+1}\ket{\Psi}_1
\cdots \ket{\Psi}_n = f(\K\Sigma)\,.  \cr }\eqn\almt$$ 

Let us now consider Eqn.\qg. It expresses the failure of the BRST
hamiltonian to have zero bracket with itself in terms of the insertion of
a single $F$ in the special puncture of the three punctured sphere $\V'_3$.
This three punctured sphere is taken to be the canonical cylinder with
the third punture considered special and located at $z_1=1$. 
The coordinate at that puncture
must be chosen such that the cylinder is symmetric under the exchange of
the two ordinary punctures.  To verify Eqn.\qg\ we begin with the
computation of the left hand side. One finds
$$\half \{ Q , Q \} = \half \bra{\omega_{12}}  (Q Q \ket{\Psi})_1 \ket{\Psi}_2
 = \half \,\bra{\omega_{12}} 
 \Bigl(\,{1\over 2\pi i}\oint F^{[1]} \ket{\Psi}\Bigr)_1 \ket{\Psi}_2\,,
\eqn\hlk$$
where use was made of \jkm. We now claim that
$$\Bigl(_{\hskip -13pt 1'}\,\,\,\oint F^{[1]} \Bigr)_1  = 
 2\pi i\,\bra{\V'_{123}} F\rangle_3 \ket{S_{1'2}}\,, \eqn\fclaim$$ 
where the left hand side refers to the line integral over the 
central geodesic of the canonical cylinder using the local coordinates
induced by the special puncture of $\V'_3$. The right hand side creates
this integration by inserting the state $F$ in the special puncture
and then by rotating it via the twist-sewing ket $\ket{S}$. In \fclaim\
the state $F$ is arbitrary. The only
part of \fclaim\ that needs verification is the constant of proportionality.
The right hand side can be compared to the left hand side by separating
out the $b_0^{-(2)}$ factor in the twist sewing ket and expressing
$\bra{\V'_{123}}b_0^{-(2)}$ in terms of antighost operators in the
state space of $\ket{F}$. This small calculation confims the
value of the proportionality constant in \fclaim.
We can now use \fclaim\ in \hlk\ and find
$$\eqalign{
\half \{ Q , Q \} 
 &= \half \,\bra{\omega_{1'2}} 
 \,\bra{\V'_{12'3}} F\rangle_3 \ket{S_{1'2'}} \ket{\Psi}_1 \ket{\Psi}_2\,, \cr
&= \half \,
\bra{\V'_{123}} F\rangle_3 \ket{\Psi}_1 \ket{\Psi}_2\, \cr
& = f(\V'_3)\,, \cr} \eqn\huk$$
as we wanted to show.  We now consider equation \th, which as we will see
is a consequence of \vanish\ and \consey. A short calculation shows that
$$\{ Q , B_F^{(2)} \} = \bra{\omega_{12}} \Psi\rangle_1 \, \bigl( Q \ket{F}
\bigr)_2 = - {1\over 2\pi i} \,\,\bra{\omega_{12}} \Psi\rangle_1 \, 
\Bigl(\,\,\int_D F^{[2]} \, \ket{F} \Bigr)_2 \,, \eqn\ned$$ 
where $D$ denotes the punctured disk $0<|z_2| \leq 1$
corresponding to the semiinfinite portion
of the canonical cylinder that contains puncture number two, where $\ket{F}$ is
inserted. In obtaining this we have used the contour deformation property
\consey\ to relate the BRST operator, defined on the central geodesic, to
the operator $Q(\gamma_r)$ where $\gamma_r$ is the geodesic  $|z_2| =r$
in the limit as $r\to 0$ (see Figure 4). 
In this limit $Q(\gamma_r)$ annihilates $F$ 
by virtue of \vanish\ and
we simply get the surface integral of the $F$ insertion. 

\Figure{figg4.eps}{Figure 4.~In calculating $\{Q, B_F^{(2)} \}$
we find the BRST insertion on the central geodesic. This operator
can be moved towards $z_2=0$, where $F$ is inserted, and in
the process we obtain the surface integral of $F$ over the shaded region.}


In order to 
proceed further we now claim that for arbitrary states $\ket{F}$ and $\ket{\O}$
the following equation holds
$$\Bigl(\,\int_D F^{[2]} \,\ket{\O}\,\Bigr)_{1'}  = 
\, 2\pi i \int_{\tau^2_1 (0)} 
\bra{\,\Omega^{[1]}_{1\bar 1\bar 2}\,} F\rangle_{\bar 1}
 \ket{S_{11'}} \ket{\O}_{\bar 2} \,, \eqn\sclaim$$ 
where $\tau^2_1 (u)$ is the one (real) dimension space of three punctured
spheres introduced in [\zwiebachhms] and reviewed in section two. Roughly
speaking the integration over $\tau^2_1(0)$ generates the radial part of the
integration over the disk, while the twist-sewing ket $\ket{S}$ generates
the angular part of the integration. Equation \sclaim\ can be verified 
by explicit construction of both the left hand side and the right hand
side (for the right hand side, part of the construction can be found
following Eqn.(4.24) of Ref.[\zwiebachhms]). Back in \ned\ we now obtain
$$\eqalign{
\{ Q , B_F^{(2)} \} &=  - \,\bra{\omega_{12}} \Psi\rangle_1\hskip-6pt
 \int_{\tau^2_1 (0)}\hskip-6pt 
\bra{\,\Omega^{[1]}_{0\bar 1\bar 2}\,} F\rangle_{\bar 1}
 \ket{S_{02}} \ket{F}_{\bar 2} 
 \, =\, - \hskip-6pt\int_{\tau^2_1 (0)}\hskip-6pt 
\bra{\,\Omega^{[1]}_{1\bar 1\bar 2}\,}\Psi\rangle_1 \ket{F}_{\bar 1}
 \ket{F}_{\bar 2}\cr
& = -\,\half\, \int_{\T^2_1} 
\bra{\,\Omega^{[1]}_{1\bar 1\bar 2}\,}\Psi\rangle_1 \ket{F}_{\bar 1}
 \ket{F}_{\bar 2} = - f(\T^2_1)\,. \cr } \eqn\nedd$$ 
This concludes our discussion of the basic BRST/Weyl identities
in the antibracket formalism.


\section{$Q$-Action on moduli spaces of surfaces}

We must now consider the generalization of the property  
$\{ Q\, ,f(\Sigma)\}= f (\K \Sigma)$, describing BRST action on the correlators
on a fixed surface,
to the case when we deal with  correlators integrated over moduli spaces 
of surfaces. We will consider first the case of moduli spaces
of surfaces with ordinary punctures only. We then turn to the
case of moduli spaces of surfaces with both ordinary and 
special punctures.

\noindent
\underbar{Moduli spaces with ordinary punctures}
Let $\A$ be a a moduli space of surfaces with just ordinary punctures.
Recall that surfaces now means Riemann surfaces with punctures, local
coordinates at the punctures, and a Weyl factor. We will always assume
that the coordinate disks around ordinary punctures are semiinfinite
flat cylinders of circumference $2\pi$.  We now demand that
$$\eqalign{
 \{ Q , f(\A ) \} &= - f ( \p \A ) + (-)^\A f( \K \A ) \,  \cr 
& =  - f \Bigl( \p \A  - (-)^\A  \K \A \Bigr) \,. \cr } \eqn\sp$$
This equation cannot be fully established
starting from the BRST/Weyl equations
we have postulated so far. It must be derived from an explicit construction
of $Q$ and the explicit construction of forms in the moduli space of
punctured Riemann surfaces equipped with Weyl metrics. These topics
will be discussed in [\zwiebachweyl].
In the conformal limit $F=0$  the second term in the right hand side
vanishes, and we 
recover the familiar correspondance $Q \leftrightarrow -\p$ that
establishes that BRST acts as an exterior derivative on CFT-valued
forms on moduli spaces of Riemann surfaces. The second term in the
right hand side is the natural extension of the term appearing in
\qss. Its sign factor arises from the sign factor in Eqn.(2.10) of
Ref.[\zwiebachhms]. 

The $Q/\partial$ correspondance does not hold in the
non-conformal case. Still,  $Q$ has a moduli space interpretation
as the operator $-\partial \pm \K$, where $\K$ inserts the special state
$F$.  Note that the $\K$ insertion of $F$ roughly amounts to a 
covariant derivative $D_F (\Gamma)$ along the direction $F$ with
the special connection $\Gamma$. Thus we have the
correspondance 
$Q -   D_F \,\leftrightarrow\, -\p$.




It is simple to extend \sp\ to the case when one of the ordinary punctures
has a special state $\O$ inserted in it (rather than the string field).
The operator 
$B_\O^{(2)}$ defined in \lham\ does the insertion. 
The Jacobi identity applied to
$\{ Q, \{ f(\A), B^{(2)}_\O \} \}$ yields the equation
$$ \{ Q , f_\O (\I \A ) \} =\{\,  \{ Q,  f(\A) \} , B^{(2)}_\O \, \}
 + (-)^\A f_{Q\O} (\I\A )\,, \eqn\qyp$$
and as a result we obtain
$$ \{ Q , f_\O (\I\A ) \} = - f_\O ( \I\p \A )  + (-)^\A f_{Q\O} (\I\A ) 
+ (-)^\A f_{F\O} (\I \K \A ) \,,\eqn\qsp$$
where the $\K$ inserts the $F$ state. Here $f_{Q\O}(\I\A)$ represents
the correlator where $\O$ is inserted in the special puncture created
by $\I$, and there is a BRST insertion on the boundary of the
coordinate disk. 
 



\noindent
\underbar{Moduli spaces of surfaces 
with special punctures}
Consider a general  $\B$-type space having a number of special punctures.
The case of interest in the present paper is that where
the state $F$ is inserted in all of the special punctures. 
The Weyl metric on the coordinate
disk of a special puncture taken to be arbitrary. 
In analogy to \sp\ we now find 
$$ \{ Q , f (\B ) \} = - f ( \p \B ) 
+ (-)^\B f_{F\cdots} (\K \B )\,. \eqn\qssp$$
This equation requires explanation. Recall~that $Q$ makes its way into
$f(\B)$ through the ordinary punctures, the antibracket 
introducing the sum of correlators each of which has a $Q(\partial D_i)$, with
$D_i$ the disk associated to an ordinary puncture.
Imagine now introducing a small contour $\gamma_\epsilon$ around each
of the special punctures, with $\epsilon$ chosen small enough that
all such contours are disjoint. Now add and subtract to the left hand
side of \qssp\ correlators where we have
a  $Q(\gamma_\epsilon)$ acting on each of the special punctures.
As we now do contour deformation through the surface to cancel out all
the $Q$'s we obtain the insertion of $F$ over the surface minus the
coordinate disks $D_i$ and minus the $\epsilon$-disks
around the special punctures. In addition to this, since we added and
subtracted terms,  we get a sum of correlators
each with a $Q(\gamma_\epsilon)$ around a special puncture.  We now
take the limit as $\epsilon\to 0$ and the latter terms vanish because
the BRST integrals are closing into $F$ states (recall \vanish).
The former term gives the $F$ insertion over the surface minus the
unit disks around the ordinary punctures. This is precisely the definition
of the operator $\K$ on moduli spaces with special punctures; insertion
ignoring the presence of the special punctures. This 
explains Eqn.\qssp\ except for the sign factor and the dots. By the dots
we mean that the $F$ state to be inserted by the $\K$ insertion appears
to the left of all other $F$ states. This is the reason the sign factor
has not changed relative to \sp. Since in our convention 
$\K$ uses the last label and the $F$ states are arranged in increasing
label value from left to right, we must move the last $F$ state across
the other $F$'s. Letting $k$ denote the number of special punctures, the 
sign factor in \qssp\ becomes
$$ \{ Q , f(\B ) \} = - f \Bigl( \p \B  -(-)^{k+\B}\K \B \Bigr) \,,\eqn\qaww$$
and this holds for arbitrary $\B$ spaces. If the $\B$ space is a string vertex,
then $k=\hbox{dim}~\B$(mod $2$) and we find
$$ \{ Q , f(\B ) \} = - f \Bigl( \p \B  -\K \B \Bigr) \,.\eqn\qaw$$

\section{Consistency checks}

It is useful to perform a few consistency checks with the equations
we have introduced in the last two subsections. These checks basically
use the Jacobi identity \jacobin\ for the antibracket, and the 
properties of the operators $\K$ and $\I$.
 
The state $\ket{F}$ being of ghost number three cannot couple to itself 
through the antibracket. Thus $\{ B_F^{(2)}, B_F^{(2)} \} =0$.  
This result is compatible with \th\  and  the Jacobi identity:
$$0= \Bigl\{ \{ B_F^{(2)} , B_F^{(2)} \}\, , \, Q\Bigr\} \sim 
\Bigl\{ \{ Q , B_F^{(2)} \}\, , \, B_F^{(2)} \Bigr\} \sim \{ f(\T^2_1)
\, , B_F^{(2)} \} \sim f(\I\T^2_1) =0\,, \eqn\gjd$$
where the final equality follows because of ghost number: 
the sphere needs seven units of 
ghost number, the three $F$'s provide nine.

Equation \qg\ is tested by evaluating $\{ \half \{ Q, Q\} , B_F^{(2)} \}$ in
two different ways.  Direct evaluation gives 
$$\Bigl\{ \, \half \{ Q, Q\}\, ,\, B_F^{(2)} \Bigr\} =  \{ f (\V'_3)\,,
B_F^{(2)}\, \}
=  f (\I\V'_3) \,,\eqn\rte$$
on the other hand, using the Jacobi identity 
$$\eqalign{
\Bigl\{ \, \half\{ Q, Q\} , B_F^{(2)} \Bigr\} &=  
\,\,\Bigl\{ \, Q\,, \,\{ Q , B_F^{(2)}\}  \Bigr \}\,, \cr
& = -\,  \{ Q \, , \, f(\T^2_1)\} \,, \cr
&=  f(\p \T^2_1 + \K\T^2_1) \,,\cr }\eqn\ert$$
where used was made of \qaww\ in the last step. 
Using \boundtau\ we see that the first term in the right hand
side gives the desired answer. On the other hand we expect $\K\T^2_1=0$.
As we will explain precisely in sect.5.2, 
one can think of $\T^2_1$ as 
$\K \B^1_1$, where $\B^1_1$ is a canonical cylinder with one special and
one ordinary puncture. The vanishing of $\K\T^2_1$ then follows 
from $\K^2=0$.  This implies consistency.


As a final, and more general consistency check we now evaluate 
 $\bigl\{ \half\{ Q, Q \} ,f(\B) \, \bigr\}$ in two different ways.
By direct evaluation we find
$$\Bigl\{ \half\{ Q, Q \} ,f(\B) \, \Bigr\} = \{ f(\V'_3) , f(\B)\} = 
- f\Bigl( \{ \V'_3 , \B \} \Bigr)\, . \eqn\fway$$
On the other hand, using the Jacobi identity and recalling that $f(\B)$ is
Grassmann even we get: 
$$\eqalign{
\Bigl\{ \, \half\{ Q, Q\} , f(\B) \Bigr\} &=  
\,\,\Bigl\{ \, Q\,, \,\{ Q , f(\B)\}  \Bigr \}\,, \cr
& =\,-\Bigl\{ \, Q\,, f \bigl( (\partial - \K) \B \bigr) \Bigr \}\,\,, \cr
& =\,  f \, \Bigl( (\partial +\K) (\partial - \K) \B \Bigr) \,, \cr
&=  - f\, \bigl(\, [\, \partial , \K\, ]\,  \B\,  \bigr) \,,\cr
&=  - f\, \bigl(\, \{ \V'_3 , \B\,\}     \bigr) \,,\cr }\eqn\ert$$
in agreement with \fway. In deriving \ert\ we made use of \qaww, of the
properties $\partial^2 = \K^2 =0$ and of the second equation in \knewd.




\goodbreak %
\chapter{\bf Constructing the New String Action: First Few Terms}

We will now take the first few steps in the
construction of the string field action. The construction will be
perturbative in $F$. Moreover, it will make  no reference to any conformal
theory. We will denote by $S_0$ the $F$ independent terms
in the complete action, by
$S_1$ the action including $F$ independent terms and terms linear in $F$, by 
$S_2$  the action
including all terms of order less than or equal to quadratic in $F$, and so on.


\section{The Construction to Zeroth-order}

The discussion in the previous section showed that
the new BRST operator fails to satisfy the identities of the
standard CFT BRST operator, but that the failure is through terms
linear in $F$.
We can therefore begin the construction by taking $S_0$ to have
the same form it had in the conformal case:
$$S_0 =  Q + f(\V) \,.\eqn\szero$$
It should be emphasized that this $Q$ is the one defined for
the chosen two-dimensional non conformal theory, and similarly the
correlators in $f(\V)$ are correlators in the non conformal theory.
$S_0$ has nothing to do with a conformal theory. In fact the chosen
non conformal theory need not be close to any CFT. 

We compute the antibracket of this action with itself
$$\eqalign{
\{ S_0 \,,\, S_0 \,\} &= \{ Q , Q\} 
+ 2\, \{ Q , f(\V) \} + \{ f (\V) , f(\V) \}\,,\cr
&= 2f (\V'_3) - 2 \, f\bigl(  \partial \V - \K\V \bigr) \,
 - f( \{ \V , \V \} )\,, \cr} \eqn\szeroa$$
where use was made of Eqns. \qg\ and \sp. The result is  
neatly organized as
$$\eqalign{
\{ S_0 \,,\, S_0 \,\} &= - 2\, f \Bigl( \p\V + \half \{ \V , \V \}  \Bigr)\cr
&\quad  + 2\, f \Bigl( \V'_3 + \K \V \Bigr)\,, \cr} \eqn\yy$$
where the first line in the right hand side involves moduli
spaces with no special punctures, and the second line involves
moduli spaces with one special puncture.
The geometrical recursion relations \recrel\ for the string vertices $\V$ 
imply that the first line in the above right hand side vanishes. We  find,
as expected,
that $S_0$ is correct to zeroth order in the string field $F$. We 
therefore obtain 
$$\{ S_0 \,,\, S_0 \,\} =  2\, f \Bigl( \V'_3 + \K \V \Bigr) \,. \eqn\xx$$
This nonvanishing right hand side signals that $S_0$ is not fully
consistent.
We must change the action by terms having $F$ insertions. The interpolating
$\B^1$ spaces of background independence are the natural candidates.


\section{The construction to first order}

We have emphasized earlier that the $\B^1$ spaces are natural for the
insertion of the ghost number three state $F$. This state is inserted
on the special puncture, and string fields are inserted on the ordinary
punctures. Correlators will exist when the total ghost number of the
string fields is two times the number of ordinary punctures, just
as it is the case for string vertices. We therefore write 
$$\eqalign{
S_1 &=  S_0 + \Bigl(  - B^{(2)}_F+ f_F(\B^1)\Bigr)  \, , \cr
&=   Q + f(\V) 
+ \Bigl( - B_F^{(2)}+ f_F(\B^1)\Bigr) \,. \cr} \eqn\sone$$
and claim that $S_1$ is the correct action to order $\O(F)$.
To verify this we now calculate $\{ S_1 , S_1\}$
$$\eqalign{
\{ S_1 , S_1\} &= \,\,\{ S_0 ,  S_0 \} \cr
&\quad + 2\,\{ \, S_0\, ,\, -B^{(2)}_F + f(\B^1) \}\cr
&\quad +
\Bigl\{ -B^{(2)}_F + f(\B^1)\,,\, -B^{(2)}_F + f(\B^1) \Bigr\}\,. \cr}
\eqn\sonec$$
We must calculate the various pieces in this equation. The first line
has already been computed. The second line requires the evaluation of
two terms, the first of which is  
$$\{ S_0 , B^{(2)}_F \} = \{ Q , B^{(2)}_F\} + \{f(\V) , B^{(2)}_F \}
= f(\,-\T^2_1 +\I \V\,) \,, \eqn\fpart$$
where use was made of \th\ and \iopin. Note that in the right
hand side the first contribution is
from a space with two special punctures, and the second contribution is
from a space with a single special puncture. The second term we need
in this line is
$$\eqalign{
\{ S_0 , f(\B^1)\} &= \{ Q , f(\B^1) \} + \{ f(\V) , f(\B^1) \} \cr
&= - f (\partial \B^1 - \K\B^1 + \{ \V , \B^1\} ) \,,\cr
&= - f (\delta_\V\B^1 - \K\B^1 )\,. \cr} \eqn\midcomp$$
where use was made of \qaw.  The third line gives
$$\eqalign{
\Bigl\{ -B^{(2)}_F + f(\B^1)\,,\, -B^{(2)}_F + f(\B^1) \Bigr\}& =
- 2\, \{  B^{(2)}_F \,,\, f(\B^1) \}  +  
\{  f(\B^1)\,,\, f(\B^1) \}\,, \cr
&= - 2 f(\I \B^1) - f ( \{ \B^1 , \B^1 \} ) \,, \cr} \eqn\secpart$$
given that the antibracket of $B^{(2)}_F$ with itself is zero,
and making use of  \iopin\ and \gtnss. Putting it all together
$$\eqalign{
\{ S_1,S_1\} & = ~~\, 2\, f\Bigl( \,\V'_3 +(\K -\I )\V -\delta_\V \B^1 \Bigr)\cr
&\quad +2\, f \Bigl( \, \T^2_1 + (\K - \I) \B^1 - \half \{ \B^1 , \B^1 \}
\Bigr) \, . \cr } \eqn\dlsk$$
In the right hand side we show in the first line the terms with one special
puncture. We see that as desired they cancel out by virtue of the 
recursion relations \gmallow\ for the $\B^1$ spaces. Thus we have succeded
in defining an $S_1$ that satisfies the master equation to first nontrivial
order in $F$. It is not a complete answer because we have
$$\{ S_1,S_1\}  =
\, 2\, f \Bigl( \, \T^2_1 + (\K - \I) \B^1 - \half \{ \B^1 , \B^1 \}
\Bigr) \,\not= 0 . \eqn\dlsk$$
It is clear that we must add to $S_1$ a term corresponding
to surfaces with two special punctures. 

\section{Construction to second order}

To continue to second order in $F$ we now simply include the
$\B^2$ spaces discussed in [\zwiebachhms] and reviewed in sect.2.
We now claim that 
$$S_2 = S_1 + f (\B^2)\,, \eqn\nextcorr$$ 
is the correct action to order $\O(F^2)$.
To show this we compute $\{ S_2 , S_2 \}$
$$\eqalign{
\{ S_2 , S_2 \} &= \{ S_1 , S_1 \} + 2 \{ S_1 ,f(\B^2) \}+\O (F^4)\,,\cr
&= \{ S_1 , S_1 \} + 2 \{ S_0 ,f(\B^2) \}+\O (F^3)\,,\cr 
&=\{ S_1 , S_1 \} - 2 f (\delta_\V\B^2) +\O' (F^3) \cr } \eqn\bhg$$
since the antibracket of $f(\B^2)$ with itself has four special punctures
and the antibracket of $f(\B^2)$ with $f(\B^1)$, or $B^{(2)}_F$ has three
special punctures.  We therefore
have
$$
\{ S_2,S_2\}  =
\, 2\, f \Bigl( \, \T^2_1 + (\K -\I) \B^1 - \half \{ \B^1 , \B^1 \}
- \delta_\V \B^2 \, \Bigr) \, + \O (F^3) . \eqn\dlskk$$
The recursion relation \gmallow\ for $\B^2$ spaces implies that
the part of $\{S_2 , S_2 \}$ quadratic
in $F$ vanishes. Thus $S_2$ is accurate to order $F^2$.  

\chapter{Constructing the New String Action: All orders}

In order to complete the construction of a gauge
invariant action we need moduli spaces with more than
two special punctures. We have indicated in sect.2.3 how such
spaces would arise from higher order background independence
consistency conditions. It is simpler, however, to derive 
the equations that such spaces must satisfy directly from 
gauge invariance, and,  then show that the spaces can be
consistently defined. This is how we will proceed. We will
see how string vertices and $\B$ spaces can be naturally 
grouped together into a single ``space" satisfying  simple
recursion relations.   Finally, we will introduce the
moduli space $\B^1_1$, and show how it simplifies the 
writing of recursion relations. 

\section{Construction to all orders}
Consider now  general $\B^k$ moduli spaces of surfaces with $k$ 
special punctures.
As before  we will define $\B^{k}= \sum_n \B^k_n\,$
where each of the $\B^k_n$ spaces has $k$ special labelled punctures
 $(\bar 1, \bar 2, \cdots \bar k)$, and $n$ ordinary punctures. 
When $k=0$ the  moduli spaces in
$\B^0$ are identified with the string vertices, and in this case  $n\geq 3$. 
When $k=1$ we have
the moduli spaces that appeared in the analysis of background independence
and here $n\geq 2$ (this will change in the present analysis). 
Our studies in Ref.[\zwiebachhms] show that
for $k=2$ we have $n\geq 1$. The real
dimensionality of $\B^k_n$ exceeds by $k$ that of the moduli space $\M_{k+n}$
of punctured spheres.  
It follows that all moduli spaces in $\B^k$ are odd if $k$ is
odd, and are all even if $k$ is even.  


We now claim that the complete gauge invariant action is given as
$$S= S_0 - B_F^{(2)} + \sum_{k=1}^\infty f (\B^k) \,. \eqn\sdes$$
To verify this claim we must check the master equation,
and we must therefore compute
$$\eqalign{
\{ S , S \} &= \{ S_0 , S_0\} - 2 \{ S_0 , B_F^{(2)} \}  \cr
&\quad +  2 \sum_{k=1}^\infty \{ S_0 , f(\B^k ) \} 
-  2 \sum_{k=1}^\infty \{  f(\B^k )\,,B^{(2)}_F  \}\cr
&\quad + \sum_{k_1,k_2 = 1}^\infty \{ f(\B^{k_1} \,,\, f(\B^{k_2}) \}\,.\cr}
\eqn\computea$$
We now use \xx, \fpart, \iopin\ and \gtnss\ to rewrite the above equation as
$$\eqalign{
\bigl\{\, S\, , \,S\, \bigr\} & = 
+2f \Bigl( \V'_3 + \K\V + \T^2_1 - \I\V   \Bigr)  \cr
&\quad + 2 \sum_{k = 1} f\Bigl( -\delta_\V\, \B^k + \,(\K-\I) \B^k\Bigr) \cr
& \quad - \sum_{k_1,k_2 = 1}
f \Bigl( \{ \B^{k_1} \,,\, \B^{k_2} \, \}\Bigr) \,. \cr }  \eqn\ufg$$
It is useful to separate out terms with one and two special punctures,
since such terms are not completely generic. Doing so and rearranging somewhat
the above equation we find
$$\eqalign{
\bigl\{\, S\, , \,S\, \bigr\} & = 
-2f \Bigl( \delta_\V  \B^1 - (\V'_3 + \M\V)  \Bigr)  \cr
&\quad  -2f \Bigl( \delta_\V  \B^2 - ( \T^2_1 + \M\B^1)  \Bigr)  \cr
&\quad - 2 \sum_{k=3}^\infty f\Bigl( \delta_\V\,\B^k\Bigr)    
- 2 \sum_{k = 2}^\infty f\Bigl( -\,\M \B^k\Bigr) \cr
& \quad - \sum_{k= 1}^\infty \sum_{l=1}^k
f \Bigl( \{ \B^{l} \,,\, \B^{k+1-l} \, \}\Bigr) \,, \cr }  \eqn\uffg$$
and with a final rearrangement we write
$$\eqalign{
\bigl\{\, S\, , \,S\, \bigr\} & = 
-2f \Bigl( \delta_\V  \B^1 - (\V'_3 + \M\V)  \Bigr)  \cr
&\quad  -2f \Bigl( \delta_\V  \B^2 - ( \T^2_1 + \M\B^1 - \half \{ \B^1\,,\,
\B^1 \} )  \Bigr)  \cr
&\quad - 2f \Bigl( \,\sum_{k=2}^\infty \Bigl[ \delta_\V\,\B^{k+1}    
- \M \B^k
 +\half  \sum_{l=1}^k
 \{ \B^{l} \,,\, \B^{k+1-l} \, \} \Bigr] \Bigr) \,.\cr }  \eqn\uffg$$
We recognize the familiar recursion relations for $\B^1$ and $\B^2$ spaces,
and find the required recursion relations for $\B^k$ spaces with $k\geq 3$:
$$\eqalign{
\delta_\V\B^1 &=  \V'_3 + \M\V \,, \cr
 \delta_\V  \B^2 &=  \T^2_1 + \M\B^1 - \half \{ \B^1\,,\,\B^1 \} \,, \cr
\delta_\V \B^{k+1}  &= \,
 \M \B^{k} - \half \sum_{l = 1}^k 
\, \bigl\{ \B^{l} \,,\, \B^{k+1-l} \, \bigr\}
 \,. \cr } \eqn\nvss$$
The above identities are better appreciated if we append the recursion relations
for string vertices, and we separate out the $\{ \V , \cdot \, \}$ term
in each $\delta_\V$. We find
$$\eqalign{
\partial\V &= - \half \{ \V \,,\, \V \} \,, \cr
\partial\B^1 &=  \V'_3 + \M\V  - \{ \V , \B^1 \} \,, \cr
\partial\B^2 &=  \T^2_1 + \M\B^1 - \half \{ \B^1\,,\,\B^1 \}
 - \{ \V , \B^2 \}  \,, \cr
\partial\B^{k+1}  &= \,
 \M \B^{k} - \half \sum_{l = 1}^k 
\, \bigl\{ \B^{l} \,,\, \B^{k+1-l} \, \bigr\}
 - \{ \V , \B^{k+1} \}  \,. \cr } \eqn\nvff$$
We now see that it is natural to think of the string vertices $\V$ as 
a the lowest member of the family of $\B$ spaces, a $\B$ space
with zero number of special punctures
$$\B^0 \equiv \V \,.\eqn\spbb$$
We now introduce the complete formal sum of $\B^k$ spaces
$$\B \equiv \sum_{k=0}^\infty \B^k = \V + \B^1 + \B^2 + \cdots\, . \eqn\nwb$$
The whole set of recursion relation \nvff\ is then summarized as as
a single equation for the total $\B$ space
$$\partial \B = \V'_3 + \T^2_1 + \M \B - \half  \{ \B , \B \} \,.\eqn\mnbv$$      
This is a fairly simple equation, simple enough to allow the main 
consistency check. This is the check that $\partial(\partial\B) =0$, or
that the right hand side of the above equation has zero boundary. 
If this consistency check works out one should be able to define the
$\B$ spaces recursively, as was done in [\senzwiebachtwo,\zwiebachhms].

Before starting this verification it is useful to remark
that previous equations derived for single $\B^k$ spaces now hold for the
sum $\B$.  For example,
the Jacobi identity \newjac\ implies that
$$\{ \{ \B , \B \} \, , \, \B \} = 0\, . \eqn\trto$$
Moreover, \mopiden\ implies that
$$[\partial , \M ]\, \B = \{ \V'_3\, , \,\B \} \,. \eqn\mopi$$
Let us now verify  the consistency condition. Since $\V'_3$ has no
boundary we must verify that 
$$ \partial  \T^2_1 + [ \partial , \M ] \B + 
\M (\partial \B) - \{ \partial \B \,,\, \B \} = 0 \,. \eqn\nnbb$$ 
The left  hand side equals:
$$\eqalign{
 & \qquad\, +\I\V'_3 + \{ \V'_3 , \B \} \cr
&\qquad +\M \Bigl(\V'_3 +  \T^2_1 + \M\B  
 - \half \{ \B \,,\, \B \}\Bigr)   \cr
&\qquad -  \Bigl\{ \V'_3 + \T^2_1 + \M \B - \half  \{ \B , \B \}
\,,\, \B   \Bigr\} \cr } \eqn\nmbb$$
Since $\K\V'_3 =0$ (the  unit disks around the
ordinary punctures cover the sphere)  we have $\M\V'_3 = -\I \V'_3$, and this
cancels the first term. Moreover $\M\T^2_1 = \K\T^2_1 - \I\T^2_1 =0$. The
vanishing of $\K\T^2_1$ follows from the fact that $\T^2_1=\K\B^1_1$
(to be explained below), and the vanishing of $\I\T^2_1$ follows from ghost
number, as explained after \gjd. Using the Jacobi identity, we now find
$$\eqalign{
& \qquad + \{ \V'_3 , \B \} \cr
&\qquad -\{ \B , \T^2_1 \}  
 + \{\M \B \,,\, \B \}   \cr
&\qquad -  \Bigl\{ \V'_3 + \T^2_1 + \M \B
\,,\, \B   \Bigr\} \cr } \eqn\nmbb$$
and since the space $\T^2_1$ is effectively odd (dimension one and two
special punctures) $\{ \B , \T^2_1 \} = - \{ \T^2_1 , \B \}$, and
we see that all terms cancel out. This completes our verification
of the consistency conditions. 

\section{Introducing $\B^1_1$}


Equation \sdes\ for the string action would simply read $S= Q+ f(\B)$ were
it not for the $B_F^{(2)}$ term. This term is linear in $F$ and would be
natural to try to include it as part of the $\B^1$ spaces. Since 
$B_F^{(2)}$ is also linear in the string field it must correspond 
to a $\B$-space with one special puncture and one ordinary puncture.
We will denote such space as $\B^1_1$. The reason this space was not 
introduced earlier is that being a two punctured sphere it is somewhat
peculiar. The function associated to $\B^1_1$  is not just the corresponding
surface state with an insertion of a string field and an $F$ state, one
must include a ghost insertion. We simply define
$$f(\B^1_1) \equiv - B_F^{(2)} = \bra{\omega_{12}}\Psi\rangle_1 \ket{F}_2 \,,
\eqn\newb$$
where the last equality follows from \lham.
It is consistent to declare that for an arbitrary $\B$ space
$$\{\B , \B^1_1 \}  =  \I\B\, , \eqn\decl$$
since  \iopin\ and \gtnss\ imply that
$f(\I\B) = \{ f(\B), B_F^{(2)}\} = -\{ f(\B), f(\B^1_1) \} = 
f( \{ \B, \B^1_1 \})$. Since $\I$ does not change the dimensionality
of a space, 
and the antibracket adds one unit to the dimensionality, it follows
from \decl\ that $\B^1_1$ should be thought
as a moduli space of  dimension minus one. Since the surfaces in
the moduli space have one special puncture, the space is effectively
Grassmann even, as it should be if it is to be thought as a string 
vertex.

The picture of the $\B^1_1$ space as a surface is clear, it is the canonical 
cylinder with one puncture declared special (in some sense something
as $\I\V_2$, if we had defined a space $\V_2$ with two punctures).
What happens if $\K$ acts on $\B^1_1$ ?  By our geometrical definition
of $\K$ we would expect it to add a new special puncture throughout the
unit disk of the original special puncture. Due to the conformal isometry
of the sphere this two-dimensional insertion region can be thought simply as
an insertion over a (one-dimensional) line starting from the central geodesic
and going all the way towards the special puncture. But this is nothing
else that the space $\T^2_1$ discussed earlier. We therefore claim that
$$\K\B^1_1 = \T^2_1 \,.\eqn\nnont$$
Note that given that $\T^2_1$ is of dimension one, 
and $\K$ adds two
units of dimension, we confirm that $\B^1_1$ must be thought of 
dimension minus one.  Let us now confirm \nnont\ by more explicit means.
We recall Eqn.\sclaim\ which taking $\ket{\O} = \ket{F}$ reads
$$\Bigl(\,\int_D F^{[2]} \,\ket{F}\,\Bigr)_{1'}  = 
\, 2\pi i \int_{\T^2_1} 
\bra{\,\Omega^{[1]}_{1\bar 1\bar 2}\,} F\rangle_{\bar 1}
 \ket{S_{11'}} \ket{F}_{\bar 2} \,, \eqn\laim$$ 
and readily find that 
$$\bra{\omega_{12}} \Bigl(\,\int_D F^{[2]} \,\ket{F}\,\Bigr)_{1}\,\ket{\Psi}_2
  = (- 2\pi i) f(\T^2_1)  \,. \eqn\aim$$ 
On the other hand, the operator $\K$ can be thought as $\K = {1\over -2\pi i}
\int F^{[2]}$ acting from the right, and we would then write, using \newb\ 
$$\eqalign{
f(\K\B^1_1)  &= \bra{\omega_{12}}\Psi\rangle_1 \ket{F}_2\, {1\over (-2\pi i)}
\int F^{[2]}\,,\cr
& =  {1\over (-2\pi i)} \bra{\omega_{12}}\Bigl(\int F^{[2]}\ket{F}\Bigr)_1\, 
\ket{\Psi}_2  = f (\T^2_1)\,, \cr}\eqn\newbx$$
in agreement with our claim.  One can also verify directly 
that $f(\K\T^2_1)=0$ in agreement to what we would expect given that
$\K\T^2_1 = \K^2 \B^1_1 =0$. 

\section{String action and field equation for classical backgrounds}

Having justified the introduction of the $\B^1_1$, we now include this
space into the definition of the collection $\B^1$ by taking
$\B^1 = \B^1_1 + \B^2_2 + \cdots$. In this way 
the string action given in \sdes\ takes the simple form
$$S= Q + f(\B) \,, \eqn\fac$$
and the recursion relations \mnbv\ become 
$$\partial \B = \V'_3+ \K \B - \half  \{ \B , \B \} \,,\eqn\mnbvx$$ 
where we see that  the $(-\I\B)$ term in $\M\B$ appears now in  
the antibracket because of \decl, and the space $\T^2_1$ is now included
in $\K\B$ because of \nnont.  At this stage the recursion relations have 
become quite simple.\foot{It is tempting to simplify even more the 
recursion relations by
 absorbing the $\V'_3$ term in the right hand side. This
may be possible  by setting $\V'_3 = \K \V_2$, where $\V_2$ would be 
some formal space of two punctured spheres 
of dimension minus two. We will not explore this possibility here.
} The verification of consistency is now a trivial
computation. It is also manifest that the recursion relations
guarantee that the action satisfies the BV master equation. 
This implies that the action is gauge invariant.

Let us now examine the action in order to read the explicit
expressions for $\F$ and ${\cal Q}$.
The terms in the action  linear in the string field read
$$\eqalign{
S_{lin} &= f(\B^1_1) + \sum_{k=2}^\infty f(\B^k_1)  \,,\cr
&= \bra{\omega_{1\bar 1}} \Psi\rangle_1 \ket{F}_{\bar 1}
+ \sum_{k=2}^\infty 
{1\over k!} \int_{\B^k_1} \bra{\Omega^{[k]}_{1\bar 1 \cdots \bar k}}
\Psi\rangle_1 \ket{F}_{\bar 1} \cdots \ket{F}_{\bar k} \,. \cr } \eqn\lterms$$
By definition (Eqn.\act) 
$S_{lin} = \bra{\omega_{1\bar 1}} \Psi\rangle_1 \ket{\F}_{\bar 1}~$, 
and therefore we find
$$\ket{\F}_{1'} =  \ket{F}_{1'}
+ \sum_{k=2}^\infty 
{1\over k!} \int_{\B^k_1} \bra{\Omega^{[k]}_{1\bar 1 \cdots \bar k}}
 F\rangle_{\bar 1} \cdots \ket{F}_{\bar k} \ket{S_{11'}}\,. \eqn\nonl$$
The condition that $\ket{\F}$ vanishes is the equation that
selects a classical string background. This is a complicated nonlinear
equation for the state $\ket{F}$. While $\ket{F}=0$ is clearly
a solution, there may be solutions with $\ket{F} \not= 0$. The first
$\B$-space relevant to this equation is the space $\B^2_1$. This 
space satisfies $\partial \B^2_1 =\T^2_1 - \I\B^1_2$ and was constructed, 
except for the specification of the Weyl metric,
in Ref.[\zwiebachhms] sect.7.1.

The action also has terms quadratic in the string field, such terms
define the operator ${\cal Q}$ (see Eqn.\act). We can readily read
$${\cal Q} = Q + \sum_{k=1}^\infty 
{1\over k!} \int_{\B^k_2} \bra{\Omega^{[k]}_{12\hskip2pt\bar 1 \cdots \bar k}}
 F\rangle_{\bar 1} \cdots \ket{F}_{\bar k} \ket{S_{12'}}\,, \eqn\calq$$  
as an operator from the state space $2$ to the state space $2'$. 
We have therefore confirmed that the pair $({\cal Q} , \F )$ can
be constructed using the pair $(Q, F)$ and $\B$-spaces. By construction
we are guaranteed that the ``Bianchi identity" ${\cal Q}\ket{\F}=0$ holds.


\chapter{Comments and Open Questions}

In this paper we have sketched the construction of a string field
theory formulated around backgrounds that are not represented by
two-dimensional conformal field theories. The construction is
not complete in all its details. This should not be too surprising,
passing from  conformal
to non-conformal backgrounds is a major departure, and many issues arise.  

We have not been completely explicit about Weyl metrics on the
surfaces that make up $\B$ spaces.
While the minimal area problem [\zwiebachlong] determines 
consistent Weyl metrics on the surfaces defining the string 
vertices $\V$, we have not discussed a minimal area problem for surfaces
defining $\B$ spaces.
The required
 problem may be of the type proposed in [\zwiebachos] where one creates
interpolating moduli spaces by requiring 
that curves homotopic to the special punctures be longer than or equal to
a quantity $l$ that varies from zero to $2\pi$. 

Our analysis throughout this paper 
has been at the level of classical string theory.
We have  made no attempt to include the higher genus contributions to
the closed string action. No major difficulties are expected here, but
as usual, the vacuum contributions are probably quite subtle. 
The case of open strings has not been addressed.

Certainly the most important matter that has not been addressed 
is that of an explicit construction of the pair $(Q,F)$ satisfying
the postulated descent equations. Nor we have discussed the precise
construction of operator-valued forms on the moduli spaces of Riemann 
surfaces equipped with Weyl metrics. Moreover, since the $\B$ spaces
allow the antisymmetrized collision of special punctures, the 
generality of our construction hinges on the finiteness of the
antisymmetrized collision of $F$ states. We hope to address
these issues in Ref.[\zwiebachweyl].

We have obtained the field equation that characterizes a classical string
background. Such equation involved the spaces $\B^k_1$, spaces
with one ordinary puncture and any number of special punctures.
It is certainly of interest to understand the $\B^k_0$ spaces, that is,
the $\B$ spaces that have only special punctures. These spaces  contribute 
constants to the string action, constants that are essential for background
independence. Since the constants will be background dependent they
ought to give us insight into the function on theory space that represents
the string action. 

We have indicated in the table below the various string 
vertices with $k$ denoting the number of special punctures and $n$ the
number of ordinary punctures.  

$$\matrix{n: &0 & 1 & 2 & 3 & 4 &\cdots& k\cr
{}& {} & {} & {} & {} & \B^4_0 &\cdots& 4 \cr
{}& {} & {} & {} & \B^3_0 & \B^3_1&\cdots& 3 \cr
{}& {} & {} & \B^2_0 & \B^2_1 & \B^2_2 &\cdots& 2\cr
{}& {} & \B^1_0 & \B^1_1 & \B^1_2 & \B^1_3 & \cdots& 1\cr
{}& \V_0 & \V_1 & \V_2 & \V_3 & \V_4 &\cdots& 0\cr} $$
A few of the entries in this table are somewhat unclear. Conventionally
string vertices $\V_n$ exist only for $n\geq 3$. It may be useful to
define the space $\V_2$, as we mentioned in the last section. 
Probably $\V_0$ and $\V_1$ are really zero. Similarly while $\B^1_p$ spaces 
were formerly defined for $p\geq 2$ we have seen that $\B^1_1$ is
naturally defined and useful.  The space $\B^1_0$ may be zero.
It seems likely, however, that all $\B^k_0$ with $l\geq 2$ are non-vanishing.

Much was learned in the process of discovering how to write 
string field theory around conformal backgrounds. It is 
not unreasonable to believe that as much will be learned by
exploration of string field theory around arbitrary backgrounds.


%\ack 
%I would like 

\vfill
\break

\refout
\bye
%Date: Wed, 2 Feb 94 20:48:57 -0600
%From: vadim@bolvan.ph.utexas.edu (Vadim S. Kaplunovsky)
%
%Gentlemen:
%For some strange reason your system keeps and distributes a seriously
%obsolete version of the PHYZZX macro package.  Please replace it with the
%latest version (attached).  For your (and user's) convenience, I merged all
%the PHYZZX files into a single PHYZZX.TEX file; it is the only PHYZZX file
%you should maintain and distribute from now on (until further upgrade,
%whenever that happens).
%
%Yours sincerely,
%		Vadim Kaplunovsky.
%Here is the file:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PHYZZX.TEX
% interim one-file NET version
%
% This file combines the 1987 version of PHYZZX.TEX and
%  PHYZZX.FONTS files by Vadim Kaplunovsky and the v1.23
% bug fixes and extensions by Marvin Weinstein
%
% This version of PHYZZX \inputs PHYZZX.LOCAL and MYPHYX.TEX
% files *if*they*exist*, but does not need them for papers
% on the HEP NET.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The 1987 version of PHYZZX.TEX begins here:
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\expandafter\ifx\csname TeX\endcsname\relax \input plain \fi
\expandafter\ifx\csname phyzzx\endcsname\relax \else
 \wlog{PHYZZX macros are already loaded and are not
          \string\input\space again}%
 \endinput \fi
%
\catcode`\@=11 % This allows us to modify PLAIN macros.
%
\let\rel@x=\relax
\let\n@expand=\relax
\def\pr@tect{\let\n@expand=\noexpand}
\let\protect=\pr@tect
\let\gl@bal=\global
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% First, I define fonts and basic spacing parameters
%
\newfam\cpfam
%
\newdimen\b@gheight             \b@gheight=12pt
\newcount\f@ntkey               \f@ntkey=0
\def\f@m{\afterassignment\samef@nt\f@ntkey=}
\def\samef@nt{\fam=\f@ntkey\the\textfont\f@ntkey\rel@x}
\def\setstr@t{\setbox\strutbox=\hbox{\vrule height 0.85\b@gheight
                                depth 0.35\b@gheight width\z@ }}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% PHYZZX fonts should be kept in a separate file
% in order to facilitate font substitution,
% but in this version the files are merged.
%
% The content of PHYZZX.FONTS begins here:
%
\font\seventeenrm =cmr17
\font\fourteenrm  =cmr12 scaled\magstep1
\font\twelverm    =cmr12
\font\ninerm      =cmr9
\font\sixrm       =cmr6
%
\font\seventeenbf =cmbx12 scaled\magstep2
\font\fourteenbf  =cmbx12 scaled\magstep1
\font\twelvebf    =cmbx12
\font\ninebf      =cmbx9
\font\sixbf       =cmbx6
%
\font\seventeeni  =cmmi12 scaled\magstep2    \skewchar\seventeeni='177
\font\fourteeni   =cmmi12 scaled\magstep1     \skewchar\fourteeni='177
\font\twelvei     =cmmi12                       \skewchar\twelvei='177
\font\ninei       =cmmi9                          \skewchar\ninei='177
\font\sixi        =cmmi6                           \skewchar\sixi='177
%
\font\seventeensy =cmsy10 scaled\magstep3    \skewchar\seventeensy='60
\font\fourteensy  =cmsy10 scaled\magstep2     \skewchar\fourteensy='60
\font\twelvesy    =cmsy10 scaled\magstep1       \skewchar\twelvesy='60
\font\ninesy      =cmsy9                          \skewchar\ninesy='60
\font\sixsy       =cmsy6                           \skewchar\sixsy='60
%
\font\seventeenex =cmex10 scaled\magstep3
\font\fourteenex  =cmex10 scaled\magstep2
\font\twelveex    =cmex10 scaled\magstep1
%
\font\seventeensl =cmsl12 scaled\magstep2
\font\fourteensl  =cmsl12 scaled\magstep1
\font\twelvesl    =cmsl12
\font\ninesl      =cmsl9
%
\font\seventeenit =cmti12 scaled\magstep2
\font\fourteenit  =cmti12 scaled\magstep1
\font\twelveit    =cmti12
\font\nineit      =cmti9
%
\font\fourteentt  =cmtt12 scaled\magstep1
\font\twelvett    =cmtt12
%
\font\fourteencp  =cmcsc10 scaled\magstep2
\font\twelvecp    =cmcsc10 scaled\magstep1
\font\tencp       =cmcsc10
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\fourteenf@nts{\relax
    \textfont0=\fourteenrm          \scriptfont0=\tenrm
      \scriptscriptfont0=\sevenrm
    \textfont1=\fourteeni           \scriptfont1=\teni
      \scriptscriptfont1=\seveni
    \textfont2=\fourteensy          \scriptfont2=\tensy
      \scriptscriptfont2=\sevensy
    \textfont3=\fourteenex          \scriptfont3=\twelveex
      \scriptscriptfont3=\tenex
    \textfont\itfam=\fourteenit     \scriptfont\itfam=\tenit
    \textfont\slfam=\fourteensl     \scriptfont\slfam=\tensl
    \textfont\bffam=\fourteenbf     \scriptfont\bffam=\tenbf
      \scriptscriptfont\bffam=\sevenbf
    \textfont\ttfam=\fourteentt
    \textfont\cpfam=\fourteencp }
%
\def\twelvef@nts{\relax
    \textfont0=\twelverm          \scriptfont0=\ninerm
      \scriptscriptfont0=\sixrm
    \textfont1=\twelvei           \scriptfont1=\ninei
      \scriptscriptfont1=\sixi
    \textfont2=\twelvesy           \scriptfont2=\ninesy
      \scriptscriptfont2=\sixsy
    \textfont3=\twelveex          \scriptfont3=\tenex
      \scriptscriptfont3=\tenex
    \textfont\itfam=\twelveit     \scriptfont\itfam=\nineit
    \textfont\slfam=\twelvesl     \scriptfont\slfam=\ninesl
    \textfont\bffam=\twelvebf     \scriptfont\bffam=\ninebf
      \scriptscriptfont\bffam=\sixbf
    \textfont\ttfam=\twelvett
    \textfont\cpfam=\twelvecp }
%
\def\tenf@nts{\relax
    \textfont0=\tenrm          \scriptfont0=\sevenrm
      \scriptscriptfont0=\fiverm
    \textfont1=\teni           \scriptfont1=\seveni
      \scriptscriptfont1=\fivei
    \textfont2=\tensy          \scriptfont2=\sevensy
      \scriptscriptfont2=\fivesy
    \textfont3=\tenex          \scriptfont3=\tenex
      \scriptscriptfont3=\tenex
    \textfont\itfam=\tenit     \scriptfont\itfam=\seveni  % no \sevenit
    \textfont\slfam=\tensl     \scriptfont\slfam=\sevenrm % no \sevensl
    \textfont\bffam=\tenbf     \scriptfont\bffam=\sevenbf
      \scriptscriptfont\bffam=\fivebf
    \textfont\ttfam=\tentt
    \textfont\cpfam=\tencp }
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Back to old PHYZZX.TEX
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\rm{\n@expand\f@m0 }
\def\mit{\n@expand\f@m1 }         \let\oldstyle=\mit
\def\cal{\n@expand\f@m2}
\def\it{\n@expand\f@m\itfam}
\def\sl{\n@expand\f@m\slfam}
\def\bf{\n@expand\f@m\bffam}
\def\tt{\n@expand\f@m\ttfam}
\def\caps{\n@expand\f@m\cpfam}    \let\cp=\caps
\def\em@{\rel@x\ifnum\f@ntkey=0\it\else
        \ifnum\f@ntkey=\bffam\it\else\rm\fi \fi }
\def\em{\n@expand\em@}
%
\def\fourteenpoint{\fourteenf@nts \samef@nt \b@gheight=14pt \setstr@t }
\def\twelvepoint{\twelvef@nts \samef@nt \b@gheight=12pt \setstr@t }
\def\tenpoint{\tenf@nts \samef@nt \b@gheight=10pt \setstr@t }
%
%
\normalbaselineskip = 20pt plus 0.2pt minus 0.1pt
\normallineskip = 1.5pt plus 0.1pt minus 0.1pt
\normallineskiplimit = 1.5pt
\newskip\normaldisplayskip
\normaldisplayskip = 20pt plus 5pt minus 10pt
\newskip\normaldispshortskip
\normaldispshortskip = 6pt plus 5pt
\newskip\normalparskip
\normalparskip = 6pt plus 2pt minus 1pt
\newskip\skipregister
\skipregister = 5pt plus 2pt minus 1.5pt
%
\newif\ifsingl@
\newif\ifdoubl@
\newif\iftwelv@  \twelv@true
%
\def\singlespace{\singl@true\doubl@false\spaces@t}
\def\doublespace{\singl@false\doubl@true\spaces@t}
\def\normalspace{\singl@false\doubl@false\spaces@t}
\def\Tenpoint{\tenpoint\twelv@false\spaces@t}
\def\Twelvepoint{\twelvepoint\twelv@true\spaces@t}
%
\def\spaces@t{\rel@x
      \iftwelv@ \ifsingl@\subspaces@t3:4;\else\subspaces@t1:1;\fi
       \else \ifsingl@\subspaces@t3:5;\else\subspaces@t4:5;\fi \fi
      \ifdoubl@ \multiply\baselineskip by 5
         \divide\baselineskip by 4 \fi }
%
\def\subspaces@t#1:#2;{
      \baselineskip = \normalbaselineskip
      \multiply\baselineskip by #1 \divide\baselineskip by #2
      \lineskip = \normallineskip
      \multiply\lineskip by #1 \divide\lineskip by #2
      \lineskiplimit = \normallineskiplimit
      \multiply\lineskiplimit by #1 \divide\lineskiplimit by #2
      \parskip = \normalparskip
      \multiply\parskip by #1 \divide\parskip by #2
      \abovedisplayskip = \normaldisplayskip
      \multiply\abovedisplayskip by #1 \divide\abovedisplayskip by #2
      \belowdisplayskip = \abovedisplayskip
      \abovedisplayshortskip = \normaldispshortskip
      \multiply\abovedisplayshortskip by #1
        \divide\abovedisplayshortskip by #2
      \belowdisplayshortskip = \abovedisplayshortskip
      \advance\belowdisplayshortskip by \belowdisplayskip
      \divide\belowdisplayshortskip by 2
      \smallskipamount = \skipregister
      \multiply\smallskipamount by #1 \divide\smallskipamount by #2
      \medskipamount = \smallskipamount \multiply\medskipamount by 2
      \bigskipamount = \smallskipamount \multiply\bigskipamount by 4 }
%
\def\normalbaselines{ \baselineskip=\normalbaselineskip
   \lineskip=\normallineskip \lineskiplimit=\normallineskip
   \iftwelv@\else \multiply\baselineskip by 4 \divide\baselineskip by 5
     \multiply\lineskiplimit by 4 \divide\lineskiplimit by 5
     \multiply\lineskip by 4 \divide\lineskip by 5 \fi }
%
\Twelvepoint  % That's the default
%
\interlinepenalty=50
\interfootnotelinepenalty=5000
\predisplaypenalty=9000
\postdisplaypenalty=500
\hfuzz=1pt
\vfuzz=0.2pt
\newdimen\HOFFSET  \HOFFSET=0pt
\newdimen\VOFFSET  \VOFFSET=0pt
\newdimen\HSWING   \HSWING=0pt
\dimen\footins=8in
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Next, I define output routines, footnotes & related stuff.
%
\newskip\pagebottomfiller
\pagebottomfiller=\z@ plus \z@ minus \z@
%
\def\pagecontents{
   \ifvoid\topins\else\unvbox\topins\vskip\skip\topins\fi
   \dimen@ = \dp255 \unvbox255
   \vskip\pagebottomfiller
   \ifvoid\footins\else\vskip\skip\footins\footrule\unvbox\footins\fi
   \ifr@ggedbottom \kern-\dimen@ \vfil \fi }
%
\def\makeheadline{\vbox to 0pt{ \skip@=\topskip
      \advance\skip@ by -12pt \advance\skip@ by -2\normalbaselineskip
      \vskip\skip@ \line{\vbox to 12pt{}\the\headline} \vss
      }\nointerlineskip}
\def\makefootline{\baselineskip = 1.5\normalbaselineskip
                 \line{\the\footline}}
%
\newif\iffrontpage
\newif\ifp@genum
\def\nopagenumbers{\p@genumfalse}
\def\pagenumbers{\p@genumtrue}
\pagenumbers
%
\newtoks\paperheadline
\newtoks\paperfootline
\newtoks\letterheadline
\newtoks\letterfootline
\newtoks\letterinfo
\newtoks\date
%
\paperheadline={\hfil}
\paperfootline={\hss\iffrontpage\else\ifp@genum\tenrm\folio\hss\fi\fi}
\letterheadline{\iffrontpage \hfil \else
    \rm \ifp@genum page~~\folio\fi \hfil\the\date \fi}
\letterfootline={\iffrontpage\the\letterinfo\else\hfil\fi}
\letterinfo={\hfil}
%
\def\monthname{\rel@x\ifcase\month 0/\or January\or February\or
   March\or April\or May\or June\or July\or August\or September\or
   October\or November\or December\else\number\month/\fi}
\def\today{\monthname~\number\day, \number\year}
\date={\today}
%
\headline=\paperheadline % The default is
\footline=\paperfootline % \papers
%
\countdef\pageno=1      \countdef\pagen@=0
\countdef\pagenumber=1  \pagenumber=1
\def\advancepageno{\gl@bal\advance\pagen@ by 1
   \ifnum\pagenumber<0 \gl@bal\advance\pagenumber by -1
    \else\gl@bal\advance\pagenumber by 1 \fi
    \gl@bal\frontpagefalse  \swing@ }
%
\def\folio{\ifnum\pagenumber<0 \romannumeral-\pagenumber
           \else \number\pagenumber \fi }
%
\def\swing@{\ifodd\pagenumber \gl@bal\advance\hoffset by -\HSWING
             \else \gl@bal\advance\hoffset by \HSWING \fi }
%
\def\footrule{\dimen@=\prevdepth\nointerlineskip
   \vbox to 0pt{\vskip -0.25\baselineskip \hrule width 0.35\hsize \vss}
   \prevdepth=\dimen@ }
%
\let\footnotespecial=\rel@x
\newdimen\footindent
\footindent=24pt
\def\Textindent#1{\noindent\llap{#1\enspace}\ignorespaces}
%
\def\Vfootnote#1{\insert\footins\bgroup
   \interlinepenalty=\interfootnotelinepenalty \floatingpenalty=20000
   \singl@true\doubl@false\Tenpoint
   \splittopskip=\ht\strutbox \boxmaxdepth=\dp\strutbox
   \leftskip=\footindent \rightskip=\z@skip
   \parindent=0.5\footindent \parfillskip=0pt plus 1fil
   \spaceskip=\z@skip \xspaceskip=\z@skip \footnotespecial
   \Textindent{#1}\footstrut\futurelet\next\fo@t}
%
\def\Footnote#1{\attach{${#1}$}\Vfootnote{#1}}
\def\vfootnote#1{\Vfootnote{${#1}$}}
\def\footnote#1{\attach{#1}\vfootnote{#1}}
\def\footattach{\attach\footsymbol}
\def\foot{\attach\footsymbolgen\vfootnote{\footsymbol}}
\let\footsymbol=\star
%
\newcount\lastf@@t           \lastf@@t=-1
\newcount\footsymbolcount    \footsymbolcount=0
\newif\ifPhysRev
%
\def\footsymbolgen{\bumpfootsymbolcount \generatefootsymbol \footsymbol }
%
\def\bumpfootsymbolcount{\rel@x
   \iffrontpage \bumpfootsymbolpos \else \advance\lastf@@t by 1
     \ifPhysRev \bumpfootsymbolneg \else \bumpfootsymbolpos \fi \fi
   \gl@bal\lastf@@t=\pagen@ }
\def\bumpfootsymbolpos{\ifnum\footsymbolcount <0
                            \gl@bal\footsymbolcount =0 \fi
    \ifnum\lastf@@t<\pagen@ \gl@bal\footsymbolcount=0
     \else \gl@bal\advance\footsymbolcount by 1 \fi }
\def\bumpfootsymbolneg{\ifnum\footsymbolcount >0
             \gl@bal\footsymbolcount =0 \fi
         \gl@bal\advance\footsymbolcount by -1 }
%
\def\fd@f#1 {\xdef\footsymbol{\mathchar"#1 }}
\def\generatefootsymbol{\ifcase\footsymbolcount \fd@f 13F \or \fd@f 279
        \or \fd@f 27A \or \fd@f 278 \or \fd@f 27B \else
        \ifnum\footsymbolcount <0 \fd@f{023 \number-\footsymbolcount }
         \else \fd@f 203 {\loop \ifnum\footsymbolcount >5
                \fd@f{203 \footsymbol } \advance\footsymbolcount by -1
                \repeat }\fi \fi }

%
\def\nonfrenchspacing{\sfcode`\.=3001 \sfcode`\!=3000 \sfcode`\?=3000
        \sfcode`\:=2000 \sfcode`\;=1500 \sfcode`\,=1251 }
\nonfrenchspacing
\newdimen\d@twidth
{\setbox0=\hbox{s.} \gl@bal\d@twidth=\wd0 \setbox0=\hbox{s}
        \gl@bal\advance\d@twidth by -\wd0 }
\def\removehglue{\loop \unskip \ifdim\lastskip >\z@ \repeat }
\def\roll@ver#1{\removehglue \nobreak \count255 =\spacefactor \dimen@=\z@
        \ifnum\count255 =3001 \dimen@=\d@twidth \fi
        \ifnum\count255 =1251 \dimen@=\d@twidth \fi
    \iftwelv@ \kern-\dimen@ \else \kern-0.83\dimen@ \fi
   #1\spacefactor=\count255 }
\def\step@ver#1{\rel@x \ifmmode #1\else \ifhmode
        \roll@ver{${}#1$}\else {\setbox0=\hbox{${}#1$}}\fi\fi }
\def\attach#1{\step@ver{\strut^{\mkern 2mu #1} }}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Here come chapter, section, subsection & appendix macros.
%
\newcount\chapternumber      \chapternumber=0
\newcount\sectionnumber      \sectionnumber=0
\newcount\equanumber         \equanumber=0
\let\chapterlabel=\rel@x
\let\sectionlabel=\rel@x
\newtoks\chapterstyle        \chapterstyle={\Number}
\newtoks\sectionstyle        \sectionstyle={\Number}
\newskip\chapterskip         \chapterskip=\bigskipamount
\newskip\sectionskip         \sectionskip=\medskipamount
\newskip\headskip            \headskip=8pt plus 3pt minus 3pt
\newdimen\chapterminspace    \chapterminspace=15pc
\newdimen\sectionminspace    \sectionminspace=10pc
\newdimen\referenceminspace  \referenceminspace=20pc
%
\newif\ifcn@                 \cn@true
\newif\ifcn@@                \cn@@false
\def\numberedchapters{\cn@true}
\def\unnumberedchapters{\cn@false\sequentialequations}
%
\def\chapterreset{\gl@bal\advance\chapternumber by 1
   \ifnum\equanumber<0 \else\gl@bal\equanumber=0\fi
   \sectionnumber=0 \let\sectionlabel=\rel@x
   \ifcn@ \gl@bal\cn@@true {\pr@tect
       \xdef\chapterlabel{\the\chapterstyle{\the\chapternumber}}}%
    \else \gl@bal\cn@@false \gdef\chapterlabel{\rel@x}\fi }
%
\def\@alpha#1{\count255='140 \advance\count255 by #1\char\count255}
 \def\alphabetic{\n@expand\@alpha}
\def\@Alpha#1{\count255='100 \advance\count255 by #1\char\count255}
 \def\Alphabetic{\n@expand\@Alpha}
\def\@Roman#1{\uppercase\expandafter{\romannumeral #1}}
 \def\Roman{\n@expand\@Roman}
\def\@roman#1{\romannumeral #1}    \def\roman{\n@expand\@roman}
\def\@number#1{\number #1}         \def\Number{\n@expand\@number}
\def\BLANK#1{\rel@x}               \let\BLANC=\BLANK
%
\def\titleparagraphs{\interlinepenalty=9999
     \leftskip=0.03\hsize plus 0.22\hsize minus 0.03\hsize
     \rightskip=\leftskip \parfillskip=0pt
     \hyphenpenalty=9000 \exhyphenpenalty=9000
     \tolerance=9999 \pretolerance=9000
     \spaceskip=0.333em \xspaceskip=0.5em }
\def\titlestyle#1{\par\begingroup \titleparagraphs
     \iftwelv@\fourteenpoint\else\twelvepoint\fi
   \noindent #1\par\endgroup }
%
\def\spacecheck#1{\dimen@=\pagegoal\advance\dimen@ by -\pagetotal
   \ifdim\dimen@<#1 \ifdim\dimen@>0pt \vfil\break \fi\fi}
%
\def\chapter#1{\par \penalty-300 \vskip\chapterskip
   \spacecheck\chapterminspace
   \chapterreset \titlestyle{\ifcn@@\chapterlabel.~\fi #1}
   \nobreak\vskip\headskip \penalty 30000
   {\pr@tect\wlog{\string\chapter\space \chapterlabel}} }
\let\chap=\chapter
%
\def\section#1{\par \ifnum\lastpenalty=30000\else
   \penalty-200\vskip\sectionskip \spacecheck\sectionminspace\fi
   \gl@bal\advance\sectionnumber by 1
   {\pr@tect
   \xdef\sectionlabel{\ifcn@@ \chapterlabel.\fi
       \the\sectionstyle{\the\sectionnumber}}%
   \wlog{\string\section\space \sectionlabel}}%
   \noindent {\caps\enspace\sectionlabel.~~#1}\par
   \nobreak\vskip\headskip \penalty 30000 }
%
\def\subsection#1{\par
   \ifnum\the\lastpenalty=30000\else \penalty-100\smallskip \fi
   \noindent\undertext{#1}\enspace \vadjust{\penalty5000}}
\let\subsec=\subsection
%
\def\undertext#1{\vtop{\hbox{#1}\kern 1pt \hrule}}
%
\def\ACK{\par\penalty-100\medskip \spacecheck\sectionminspace
   \line{\fourteenrm\hfil ACKNOWLEDGEMENTS\hfil}\nobreak\vskip\headskip }
\def\ack{\subsection{Acknowledgements:}}
%
\def\APPENDIX#1#2{\par\penalty-300\vskip\chapterskip
   \spacecheck\chapterminspace \chapterreset \xdef\chapterlabel{#1}
   \titlestyle{APPENDIX #2} \nobreak\vskip\headskip \penalty 30000
   \wlog{\string\Appendix~\chapterlabel} }
\def\Appendix#1{\APPENDIX{#1}{#1}}
\def\appendix{\APPENDIX{A}{}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Here come macros for equation numbering.
%
%\def\eqname#1{\rel@x {\pr@tect
%  \ifnum\equanumber<0 \xdef#1{{\rm(\number-\equanumber)}}%
%     \gl@bal\advance\equanumber by -1
%  \else \gl@bal\advance\equanumber by 1
%   \xdef#1{{\rm(\ifcn@@ \chapterlabel.\fi \number\equanumber)}}\fi
%  }#1}
%
\def\eq{\eqname\?}
\def\eqn{\eqno\eqname}
\def\leqn{\leqno\eqname}
%
\def\eqinsert#1{\noalign{\dimen@=\prevdepth \nointerlineskip
   \setbox0=\hbox to\displaywidth{\hfil #1}
   \vbox to 0pt{\kern 0.5\baselineskip\hbox{$\!\box0\!$}\vss}
   \prevdepth=\dimen@}}
%
\def\leqinsert#1{\eqinsert{#1\hfill}}
\def\mideqn#1{\eqinsert{\eqname{#1}}}
\def\midleqn#1{\leqinsert{\eqname{#1}}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Here come items and lists
%
\def\GENITEM#1;#2{\par \hangafter=0 \hangindent=#1
    \Textindent{$ #2 $}\ignorespaces}
\outer\def\newitem#1=#2;{\gdef#1{\GENITEM #2;}}
%
\let\Item=\item
\newdimen\itemsize                \itemsize=30pt
\newitem\item=1\itemsize;
\newitem\sitem=1.75\itemsize;     \let\subitem=\sitem
\newitem\ssitem=2.5\itemsize;     \let\subsubitem\ssitem
%
\outer\def\newlist#1=#2&#3&#4;{\toks0={#2}\toks1={#3}%
   \count255=\escapechar \escapechar=-1
   \alloc@0\list\countdef\insc@unt\listcount     \listcount=0
   \edef#1{\par
      \countdef\listcount=\the\allocationnumber
      \advance\listcount by 1
      \hangafter=0 \hangindent=#4
      \Textindent{\the\toks0{\listcount}\the\toks1}}
   \expandafter\expandafter\expandafter
    \edef\c@t#1{begin}{\par
      \countdef\listcount=\the\allocationnumber \listcount=1
      \hangafter=0 \hangindent=#4
      \Textindent{\the\toks0{\listcount}\the\toks1}}
   \expandafter\expandafter\expandafter
    \edef\c@t#1{con}{\par \hangafter=0 \hangindent=#4 \noindent}
   \escapechar=\count255}
\def\c@t#1#2{\csname\string#1#2\endcsname}
%
\newlist\point=\Number&.&1.0\itemsize;
\newlist\subpoint=(\alphabetic&)&1.75\itemsize;
\newlist\subsubpoint=(\roman&)&2.5\itemsize;
%
\let\spoint=\subpoint             \let\sspoint=\subsubpoint
\let\spointbegin=\subpointbegin   \let\sspointbegin=\subsubpointbegin
\let\spointcon=\subpointcon       \let\sspointcon=\subsubpointcon
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Here come macros for references, figures & tables.
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%%  First, references.
%
\newcount\referencecount     \referencecount=0
\newcount\lastrefsbegincount \lastrefsbegincount=0
\newif\ifreferenceopen       \newwrite\referencewrite
\newdimen\refindent          \refindent=30pt
%
\def\normalrefmark#1{\attach{\scriptscriptstyle [ #1 ] }}
\let\PRrefmark=\attach
\def\NPrefmark#1{\step@ver{{\;[#1]}}}
\def\refmark#1{\rel@x\ifPhysRev\PRrefmark{#1}\else\normalrefmark{#1}\fi}
%
\def\refend@{\refmark{\number\referencecount}}
\def\refend{\refend@{}\space }
\def\refsend{\refmark{\count255=\referencecount
   \advance\count255 by-\lastrefsbegincount
   \ifcase\count255 \number\referencecount
   \or \number\lastrefsbegincount,\number\referencecount
   \else \number\lastrefsbegincount-\number\referencecount \fi}\space }
%
\def\REFNUM#1{\rel@x \gl@bal\advance\referencecount by 1
    \xdef#1{\the\referencecount }}
\def\Refnum#1{\REFNUM #1\refend@ } \let\refnum=\Refnum
\def\REF#1{\REFNUM #1\R@FWRITE\ignorespaces}
\def\Ref#1{\Refnum #1\REFWRITE }
\def\ref{\Ref\?}
\def\REFS#1{\REFNUM #1\gl@bal\lastrefsbegincount=\referencecount
    \REFWRITE }
\def\refs{\REFS\?}
\def\refc{\REF\?}
\let\refscon=\refc       \let\REFSCON=\REF
%
\def\r@fitem#1{\par \hangafter=0 \hangindent=\refindent \Textindent{#1}}
\def\refitem#1{\r@fitem{#1.}}
\def\NPrefitem#1{\r@fitem{[#1]}}
\def\NPrefs{\let\refmark=\NPrefmark \let\refitem=NPrefitem}
%
%
\def\REFWRITE{\R@FWRITE\rel@x }
\def\R@FWRITE#1{\ifreferenceopen \else \gl@bal\referenceopentrue
     \immediate\openout\referencewrite=\jobname.refs
     \toks@={\begingroup \refoutspecials \catcode`\^^M=10 }%
     \immediate\write\referencewrite{\the\toks@}\fi
    \immediate\write\referencewrite{\noexpand\refitem %
                                    {\the\referencecount}}%
    \p@rse@ndwrite \referencewrite #1}
%
\begingroup
 \catcode`\^^M=\active \let^^M=\relax %
 \gdef\p@rse@ndwrite#1#2{\begingroup \catcode`\^^M=12 \newlinechar=`\^^M%
         \chardef\rw@write=#1\sc@nlines#2}%
 \gdef\sc@nlines#1#2{\sc@n@line \g@rbage #2^^M\endsc@n \endgroup #1}%
 \gdef\sc@n@line#1^^M{\expandafter\toks@\expandafter{\deg@rbage #1}%
         \immediate\write\rw@write{\the\toks@}%
         \futurelet\n@xt \sc@ntest }%
\endgroup
\def\sc@ntest{\ifx\n@xt\endsc@n \let\n@xt=\rel@x
       \else \let\n@xt=\sc@n@notherline \fi \n@xt }
\def\sc@n@notherline{\sc@n@line \g@rbage }
\def\deg@rbage#1{}
\let\g@rbage=\relax    \let\endsc@n=\relax
%
%
\def\refout{\par\penalty-400\vskip\chapterskip
   \spacecheck\referenceminspace
   \ifreferenceopen \Closeout\referencewrite \referenceopenfalse \fi
   \line{\fourteenrm\hfil REFERENCES\hfil}\vskip\headskip
   \input \jobname.refs
   }
\def\refoutspecials{\sfcode`\.=1000 \interlinepenalty=1000
         \rightskip=\z@ plus 1em minus \z@ }
%
\def\Closeout#1{\toks0={\par\endgroup}\immediate\write#1{\the\toks0}%
   \immediate\closeout#1}
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%%  Next, figure captions and table captions.
%
\newcount\figurecount     \figurecount=0
\newcount\tablecount      \tablecount=0
\newif\iffigureopen       \newwrite\figurewrite
\newif\iftableopen        \newwrite\tablewrite
%
\def\FIGNUM#1{\rel@x \gl@bal\advance\figurecount by 1
    \xdef#1{\the\figurecount}}
\def\FIGURE#1{\FIGNUM #1\F@GWRITE\ignorespaces }
\let\FIG=\FIGURE
\def\Fig{\FIGNUM\?Figure~\?\FIGWRITE }
\def\fig{\FIGNUM\?figure~\?\FIGWRITE }
\def\figitem#1{\r@fitem{#1)}}
\def\FIGWRITE{\F@GWRITE\rel@x }
%
\def\TABNUM#1{\rel@x \gl@bal\advance\tablecount by 1
    \xdef#1{\the\tablecount}}
\def\TABLE#1{\TABNUM #1\T@BWRITE\ignorespaces }
\def\Table{\TABNUM\?Table~\?\TABWRITE }
\def\tabitem#1{\r@fitem{#1:}}
\def\TABWRITE{\T@BWRITE\rel@x }
%
\def\F@GWRITE#1{\iffigureopen \else \gl@bal\figureopentrue
     \immediate\openout\figurewrite=\jobname.figs
     \toks@={\begingroup \catcode`\^^M=10 }%
     \immediate\write\figurewrite{\the\toks@}\fi
    \immediate\write\figurewrite{\noexpand\figitem %
                                 {\the\figurecount}}%
    \p@rse@ndwrite \figurewrite #1}
\def\T@BWRITE#1{\iftableopen \else \gl@bal\tableopentrue
     \immediate\openout\tablewrite=\jobname.tabs
     \toks@={\begingroup \catcode`\^^M=10 }%
     \immediate\write\tablewrite{\the\toks@}\fi
    \immediate\write\tablewrite{\noexpand\tabitem %
                                 {\the\tablecount}}%
    \p@rse@ndwrite \tablewrite #1}
%
\def\figout{\par\penalty-400
   \vskip\chapterskip\spacecheck\referenceminspace
   \iffigureopen \Closeout\figurewrite \figureopenfalse \fi
   \line{\fourteenrm\hfil FIGURE CAPTIONS\hfil}\vskip\headskip
   \input \jobname.figs
   }
\def\tabout{\par\penalty-400
   \vskip\chapterskip\spacecheck\referenceminspace
   \iftableopen \Closeout\tablewrite \tableopenfalse \fi
   \line{\fourteenrm\hfil TABLE CAPTIONS\hfil}\vskip\headskip
   \input \jobname.tabs
   }
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%%  Finally, inserted figures.
%
%
\newbox\picturebox
\def\p@cht{\ht\picturebox }
\def\p@cwd{\wd\picturebox }
\def\p@cdp{\dp\picturebox }
\newdimen\xshift
\newdimen\yshift
%
\newdimen\captionwidth
\newskip\captionskip
\captionskip=15pt plus 5pt minus 3pt
\def\fullwidth{\captionwidth=\hsize }
\newtoks\Caption
\newif\ifcaptioned
\newif\ifselfcaptioned
\def\caption{\captionedtrue \Caption }
\newcount\linesabove
%
\newif\iffileexists
\newtoks\picfilename
\def\fil@#1 {\fileexiststrue \picfilename={#1}}
\def\file#1{\if=#1\let\n@xt=\fil@ \else \def\n@xt{\fil@ #1}\fi \n@xt }
%
\def\pl@t{\begingroup \pr@tect
    \setbox\picturebox=\hbox{}\fileexistsfalse
    \let\height=\p@cht \let\width=\p@cwd \let\depth=\p@cdp
    \xshift=\z@ \yshift=\z@ \captionwidth=\z@
    \Caption={}\captionedfalse
    \linesabove =0 \picturedefault }
\def\plot{\pl@t \selfcaptionedfalse }
\def\Picture#1{\gl@bal\advance\figurecount by 1
    \xdef#1{\the\figurecount}\pl@t \selfcaptionedtrue }
\def\picture{\Picture\?}
%
\def\s@vepicture{\iffileexists \parsefilename \redopicturebox \fi
   \ifdim\captionwidth>\z@ \else \captionwidth=\p@cwd \fi
   \xdef\lastpicture{%
      \iffileexists%
         \setbox0=\hbox{\raise\the\yshift \vbox{%
              \moveright\the\xshift\hbox{\picturedefinition}}}%
      \else%
         \setbox0=\hbox{}%
      \fi
      \ht0=\the\p@cht \wd0=\the\p@cwd \dp0=\the\p@cdp
      \vbox{\hsize=\the\captionwidth%
            \line{\hss\box0 \hss }%
            \ifcaptioned%
               \vskip\the\captionskip \noexpand\Tenpoint
               \ifselfcaptioned%
                   Figure~\the\figurecount.\enspace%
               \fi%
               \the\Caption%
           \fi%
           }%
      }%
      \endgroup%
}
%
\let\endpicture=\s@vepicture
\def\savepicture#1{\s@vepicture \global\let#1=\lastpicture }
\def\displaypicture{\fullwidth \s@vepicture $$\lastpicture $${}}
\def\toppicture{\fullwidth \s@vepicture \topinsert
    \lastpicture \medskip \endinsert }
\def\midpicture{\fullwidth \s@vepicture \midinsert
    \lastpicture \endinsert }
%
%  Wraparound macros - a try.
%
\def\leftpicture{\pres@tpicture
    \dimen@i=\hsize \advance\dimen@i by -\dimen@ii
    \setbox\picturebox=\hbox to \hsize {\box0 \hss }%
    \wr@paround }
\def\rightpicture{\pres@tpicture
    \dimen@i=\z@
    \setbox\picturebox=\hbox to \hsize {\hss \box0 }%
    \wr@paround }
%
\def\pres@tpicture{\gl@bal\linesabove=\linesabove
    \s@vepicture \setbox\picturebox=\vbox{
         \kern \linesabove\baselineskip \kern 0.3\baselineskip
         \lastpicture \kern 0.3\baselineskip }%
    \dimen@=\p@cht \dimen@i=\dimen@
    \advance\dimen@i by \pagetotal
    \par \ifdim\dimen@i>\pagegoal \vfil\break \fi
    \dimen@ii=\hsize
    \advance\dimen@ii by -\parindent \advance\dimen@ii by -\p@cwd
    \setbox0=\vbox to\z@{\kern-\baselineskip \unvbox\picturebox \vss }}
%
\def\wr@paround{\Caption={}\count255=1
    \loop \ifnum \linesabove >0
         \advance\linesabove by -1 \advance\count255 by 1
         \advance\dimen@ by -\baselineskip
         \expandafter\Caption \expandafter{\the\Caption \z@ \hsize }%
      \repeat
    \loop \ifdim \dimen@ >\z@
         \advance\count255 by 1 \advance\dimen@ by -\baselineskip
         \expandafter\Caption \expandafter{%
             \the\Caption \dimen@i \dimen@ii }%
      \repeat
    \edef\n@xt{\parshape=\the\count255 \the\Caption \z@ \hsize }%
    \par\noindent \n@xt \strut \vadjust{\box\picturebox }}
%
\let\picturedefault=\relax
\let\parsefilename=\relax
\def\redopicturebox{\let\picturedefinition=\rel@x
   \errhelp=\disabledpictures
   \errmessage{This version of TeX cannot handle pictures.  Sorry.}}
\newhelp\disabledpictures
     {You will get a blank box in place of your picture.}
%
%
%
% Above definitions of \parsefilename and \redopicturebox
% are dumb defaults.  Actual definition are system dependent;
% you will probably find them in your PHYZZX.LOCAL file.
%
% The example below is used at Princeton.
%
%\def\parsefilename{\expandafter\p@rse\the\picfilename.\endp@rse }
%\def\p@rse#1.#2\endp@rse{\if"#2"\expandafter\picfilename
%        \expandafter{\the\picfilename.fig}\fi }
%
%\newread\pictureread
%\def\redopicturebox{\expandafter\openin\expandafter\pictureread
%                    \the\picfilename
%   \ifeof\pictureread \errhelp=\disabledpictures
%     \edef\n@xt{\errmessage={Cannot find file \the\picfilename}\n@xt
%     \let\pictureboxdefinition=\relax \else
%    \read\pictureread to\y@p \read\pictureread to\y@p
%    \read\pictureread to\x@p \read\pictureread to\y@m
%    \read\pictureread to\x@m \closein\pictureread
%    \p@cht=\y@p truein \advance\p@cht by -\y@m truein
%    \advance\yshift by \y@p truein
%    \p@cwd=\x@p truein \advance\p@cwd by -\x@m truein
%    \advance\xshift by \x@m truein
%    \edef\picturedefinition{\special{pos,inc=\the\picfilename}}%
%    \fi }
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Here come macros for memos & letters.
%
\def\FRONTPAGE{\ifvoid255\else\vfill\penalty-20000\fi
   \gl@bal\pagenumber=1     \gl@bal\chapternumber=0
   \gl@bal\equanumber=0     \gl@bal\sectionnumber=0
   \gl@bal\referencecount=0 \gl@bal\figurecount=0
   \gl@bal\tablecount=0     \gl@bal\frontpagetrue
   \gl@bal\lastf@@t=0       \gl@bal\footsymbolcount=0
   \gl@bal\cn@@false }
\let\Frontpage=\FRONTPAGE
%
\def\papers{\papersize\headline=\paperheadline\footline=\paperfootline}
%
\def\papersize{\hsize=35pc \vsize=50pc \hoffset=0pc \voffset=1pc
   \advance\hoffset by\HOFFSET \advance\voffset by\VOFFSET
   \pagebottomfiller=0pc
   \skip\footins=\bigskipamount \normalspace }
%
\papers  %  This is the default
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%
\newskip\lettertopskip       \lettertopskip=20pt plus 50pt
\newskip\letterbottomskip    \letterbottomskip=\z@ plus 100pt
\newskip\signatureskip       \signatureskip=40pt plus 3pt
%
\def\lettersize{\hsize=6.5in \vsize=8.5in \hoffset=0in \voffset=0.5in
   \advance\hoffset by\HOFFSET \advance\voffset by\VOFFSET
   \pagebottomfiller=\letterbottomskip
   \skip\footins=\smallskipamount \multiply\skip\footins by 3
   \singlespace }
%
\def\MEMO{\lettersize \headline=\letterheadline \footline={\hfil }%
   \let\rule=\memorule \FRONTPAGE \memohead }
\let\memo=\MEMO
\def\memodate{\afterassignment\MEMO \date }
%
\def\memit@m#1{\smallskip \hangafter=0 \hangindent=1in
    \Textindent{\caps #1}}
\def\subject{\memit@m{Subject:}}
\def\topic{\memit@m{Topic:}}
\def\from{\memit@m{From:}}
\def\to{\rel@x \ifmmode \rightarrow \else \memit@m{To:}\fi }
\def\memorule{\medskip\hrule height 1pt\bigskip}  % default definitions
\def\memohead{\centerline{\fourteenrm MEMORANDUM}}% see phyzzx.local
%
\newwrite\labelswrite
\newtoks\rw@toks
\def\letters{\lettersize
   \headline=\letterheadline \footline=\letterfootline
   \immediate\openout\labelswrite=\jobname.lab}
\def\letter{\FRONTPAGE \letterhead \addressee }
\let\letterhead=\rel@x
%
\def\addressee#1{\medskip\line{\hskip 0.75\hsize plus\z@ minus 0.25\hsize
                               \the\date \hfil }%
   \vskip \lettertopskip
   \ialign to\hsize{\strut ##\hfil\tabskip 0pt plus \hsize \crcr #1\crcr}
   \writelabel{#1}\medskip \noindent\hskip -\spaceskip \ignorespaces }
%
\def\rwl@begin#1\cr{\rw@toks={#1\crcr}\rel@x
   \immediate\write\labelswrite{\the\rw@toks}\futurelet\n@xt\rwl@next}
\def\rwl@next{\ifx\n@xt\rwl@end \let\n@xt=\rel@x
      \else \let\n@xt=\rwl@begin \fi \n@xt}
\let\rwl@end=\rel@x
\def\writelabel#1{\immediate\write\labelswrite{\noexpand\labelbegin}
     \rwl@begin #1\cr\rwl@end
     \immediate\write\labelswrite{\noexpand\labelend}}
%
\newtoks\FromAddress         \FromAddress={}
\newtoks\sendername          \sendername={}
\newbox\FromLabelBox
\newdimen\labelwidth          \labelwidth=6in
%
\def\makelabels{\afterassignment\Makelabels \sendername=}
\def\Makelabels{\FRONTPAGE \letterinfo={\hfil } \MakeFromBox
     \immediate\closeout\labelswrite  \input \jobname.lab\vfil\eject}
\let\labelend=\rel@x
\def\labelbegin#1\labelend{\setbox0=\vbox{\ialign{##\hfil\cr #1\crcr}}
     \MakeALabel }
%
\def\MakeFromBox{\gl@bal\setbox\FromLabelBox=\vbox{\Tenpoint
     \ialign{##\hfil\cr \the\sendername \the\FromAddress \crcr }}}
\def\MakeALabel{\vskip 1pt \hbox{\vrule \vbox{
        \hsize=\labelwidth \hrule\bigskip
        \leftline{\hskip 1\parindent \copy\FromLabelBox}\bigskip
        \centerline{\hfil \box0 } \bigskip \hrule
        }\vrule } \vskip 1pt plus 1fil }
%
\def\signed#1{\par \nobreak \bigskip \dt@pfalse \begingroup
  \everycr={\noalign{\nobreak
            \ifdt@p\vskip\signatureskip\gl@bal\dt@pfalse\fi }}%
  \tabskip=0.5\hsize plus \z@ minus 0.5\hsize
  \halign to\hsize {\strut ##\hfil\tabskip=\z@ plus 1fil minus \z@\crcr
          \noalign{\gl@bal\dt@ptrue}#1\crcr }%
  \endgroup \bigskip }
%
\def\copies{\par\hang\textindent{\tenrm cc:}}
\def\endletter{\par \iffrontpage \else \vfil \fi \supereject }
%
\newbox\letterb@x
\def\lettertext{\par \vskip\parskip \unvcopy\letterb@x \par }
\def\multiletter{\setbox\letterb@x=\vbox\bgroup
      \everypar{\vrule height 1\baselineskip depth 0pt width 0pt }
      \singlespace \topskip=\baselineskip }
\def\letterend{\par\egroup}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Here come macros for title pages.
%
\newskip\frontpageskip
\newtoks\Pubnum   \let\pubnum=\Pubnum
\newtoks\Pubtype  \let\pubtype=\Pubtype
\newif\ifp@bblock  \p@bblocktrue
%
\def\PH@SR@V{\doubl@true \baselineskip=24.1pt plus 0.2pt minus 0.1pt
             \parskip= 3pt plus 2pt minus 1pt }
\def\PHYSREV{\papers\PhysRevtrue\PH@SR@V}
\let\physrev=\PHYSREV
\def\titlepage{\FRONTPAGE\papers\ifPhysRev\PH@SR@V\fi
   \ifp@bblock\p@bblock \else\hrule height\z@ \rel@x \fi }
\def\nopubblock{\p@bblockfalse}
\def\endpage{\vfil\break}
%
\frontpageskip=12pt plus .5fil minus 2pt
\Pubtype={}
\Pubnum={}
%
\def\p@bblock{\begingroup \tabskip=\hsize minus \hsize
   \baselineskip=1.5\ht\strutbox \topspace-2\baselineskip
   \halign to\hsize{\strut ##\hfil\tabskip=0pt\crcr
       \the\Pubnum\crcr\the\date\crcr\the\pubtype\crcr}\endgroup}
%
\def\title#1{\vskip\frontpageskip \titlestyle{#1} \vskip\headskip }
%
\def\author#1{\vskip\frontpageskip\titlestyle{\twelvecp #1}\nobreak}
\def\andauthor{\vskip\frontpageskip\centerline{and}\author}
\def\authors{\vskip\frontpageskip\noindent}
%
\def\address#1{\par\kern 5pt\titlestyle{\twelvepoint\it #1}}
\def\andaddress{\par\kern 5pt \centerline{\sl and} \address}
\def\SLAC{\address{Stanford Linear Accelerator Center\break
      Stanford University, Stanford, California~94309}}
\def\JHL{\address{Joseph Henry Laboratories\break
      Princeton University\break Princeton, New Jersey 08544}}
%
\def\abstract{\par\dimen@=\prevdepth \hrule height\z@ \prevdepth=\dimen@
   \vskip\frontpageskip\centerline{\fourteenrm ABSTRACT}\vskip\headskip }
\def\submit#1{\par\nobreak\vfil\nobreak\medskip
   \centerline{Submitted to \sl #1}}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Miscellaneous macros
%
\def\ie{\hbox{\it i.e.}}       \def\etc{\hbox{\it etc.}}
\def\eg{\hbox{\it e.g.}}       \def\cf{\hbox{\it cf.}}
\def\etal{\hbox{\it et al.}}   \def\dash{\hbox{---}}
\def\\{\rel@x \ifmmode \backslash \else {\tt\char`\\}\fi }
%
\def\sequentialequations{\rel@x \if\equanumber<0 \else
  \gl@bal\equanumber=-\equanumber \gl@bal\advance\equanumber by -1 \fi }
%
\def\nextline{\unskip\nobreak\hfill\break}
\let\brk=\nextline
\def\subpar{\unskip\nobreak\vadjust{\allowbreak\vskip\parskip}%
   \hskip\parfillskip\break}
%
\def\journal#1&#2(#3){\begingroup \let\journal=\dummyj@urnal
    \unskip, \sl #1\unskip~\bf\ignorespaces #2\rm
    (\afterassignment\j@ur \count255=#3), \endgroup\ignorespaces }
\def\j@ur{\ifnum\count255<100 \advance\count255 by 1900 \fi
          \number\count255 }
\def\dummyj@urnal{%
    \toks@={Reference foul up: nested \journal macros}%
    \errhelp={Your forgot & or ( ) after the last \journal}%
    \errmessage{\the\toks@ }}
%
\def\cropen#1{\crcr\noalign{\vskip #1}}
\def\crr{\cropen{3\jot }}
\def\topspace{\hrule height 0pt depth 0pt \vskip}
%
\def\coeff#1#2{{\textstyle{#1\over #2}}}
\def\half{\coeff12 }
\def\partder#1#2{{\partial #1\over\partial #2}}
\def\Buildrel#1\under#2{\mathrel{\mathop{#2}\limits_{#1}}}
%
\def\becomes#1{\mathchoice{\becomes@\scriptstyle{#1}}
   {\becomes@\scriptstyle{#1}} {\becomes@\scriptscriptstyle{#1}}
   {\becomes@\scriptscriptstyle{#1}}}
\def\becomes@#1#2{\mathrel{\setbox0=\hbox{$\m@th #1{\,#2\,}$}%
        \mathop{\hbox to \wd0 {\rightarrowfill}}\limits_{#2}}}
%
\def\bra#1{\left\langle #1\right|}
\def\ket#1{\left| #1\right\rangle}
\def\braket#1#2{\VEV{#1 | #2}}
\def\VEV#1{\left\langle #1\right\rangle}
\let\vev=\VEV
%
\def\Tr{\mathop{\rm Tr}\nolimits}
\def\tr{\mathop{\rm tr}\nolimits}
\let\int=\intop         \let\oint=\ointop
%
\def\lsim{\mathrel{\mathpalette\@versim<}}
\def\gsim{\mathrel{\mathpalette\@versim>}}
\def\@versim#1#2{\vcenter{\offinterlineskip
        \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr\sim\crcr } }}
%
\def\big#1{{\hbox{$\left#1\vbox to 0.85\b@gheight{}\right.\n@space$}}}
\def\Big#1{{\hbox{$\left#1\vbox to 1.15\b@gheight{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vbox to 1.45\b@gheight{}\right.\n@space$}}}
\def\Bigg#1{{\hbox{$\left#1\vbox to 1.75\b@gheight{}\right.\n@space$}}}
%
\def\){\mskip 2mu\nobreak }
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%
%   Finally, some bug fixings.
%
\let\sec@nt=\sec
\def\sec{\rel@x\ifmmode\let\n@xt=\sec@nt\else\let\n@xt\section\fi\n@xt}
%
\def\obsolete#1{\message{Macro \string #1 is obsolete.}}
%
\def\firstsec#1{\obsolete\firstsec \section{#1}}
\def\firstsubsec#1{\obsolete\firstsubsec \subsection{#1}}
\def\thispage#1{\obsolete\thispage \gl@bal\pagenumber=#1\frontpagefalse}
\def\thischapter#1{\obsolete\thischapter \gl@bal\chapternumber=#1}
\def\splitout{\obsolete\splitout\rel@x}
\def\prop{\obsolete\prop \propto }
%
\def\nextequation#1{\obsolete\nextequation \gl@bal\equanumber=#1
   \ifnum\the\equanumber>0 \gl@bal\advance\equanumber by 1 \fi}
%
\def\BOXITEM{\afterassigment\B@XITEM\setbox0=}
\def\B@XITEM{\par\hangindent\wd0 \noindent\box0 }
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Old PHYZZX.TEX file ends here
% NEWPHYZ.TEX file follows
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%newphyz.tex -- for TeX 2.0 -- Version 1.23
%
%  Test macros for adding file tracking, forward referencing,
%  table of contents, and multicolumn output to PHYZZX
%
%%
%%
%  \unlock  makes @ and active character which can be used
%           in the names of macros
%  \lock    renders @ inactive and subsequent macros which
%           use @ will return and error message
%%
   \def\unlock{\catcode`@=11}

   \def\lock{\catcode`@=12}

%   \unlock
%%
%  Physical Review mandated changes for footnotes and
%  references.
%
%  To use PHYSREV with the old options first type
%     \PHYSREV
%     \OldPhysRevRefmark
%     \OldPhysRevRefitem
%
%%
   \def\PRrefmark#1{\unskip~[#1]}
   \def\refitem#1{\ifPhysRev\r@fitem{[#1]}\else\r@fitem{#1.}\fi}
   \def\generatefootsymbol{%
      \ifcase\footsymbolcount\fd@f 13F \or \fd@f 279 \or \fd@f 27A
          \or \fd@f 278 \or \fd@f 27B
      \else%
         \ifnum\footsymbolcount <0%
            \xdef\footsymbol{\number-\footsymbolcount}%
         \else%
            \fd@f 203
               {\loop \ifnum\footsymbolcount >5
                  \fd@f{203 \footsymbol }
                  \advance\footsymbolcount by -1
                \repeat
               }
         \fi%
      \fi%
   }
   \def\OldPhysRevRefmark{\let\PRrefmark=\attach}
   \def\OldPRRefitem#1{\r@fitem{#1.}}
   \def\OldPhysRevRefitem{\let\refitem=\OldPRRefitem}
%%
%  Fixing a typo in the PHYZZX.TEX file
%%
   \def\NPrefs{\let\refmark=\NPrefmark \let\refitem=\NPrefitem}
%%
%  New switches to be used in subsequent macros which
%  implement file checking, cpu checking, whether linked
%  input is requested, and dummy pictures are defined
%
%%
    \newif\iffileexists              \fileexistsfalse
    \newif\ifforwardrefson           \forwardrefsontrue
    \newif\ifamiga                   \amigafalse
    \newif\iflinkedinput             \linkedinputtrue
    \newif\iflinkopen                \linkopenfalse
    \newif\ifcsnameopen              \csnameopenfalse
    \newif\ifdummypictures           \dummypicturesfalse
    \newif\ifcontentson              \contentsonfalse
    \newif\ifcontentsopen            \contentsopenfalse
    \newif\ifmakename                \makenamefalse
    \newif\ifverbdone
    \newif\ifusechapterlabel         \usechapterlabelfalse
    \newif\ifstartofchapter          \startofchapterfalse
    \newif\iftableofplates           \tableofplatesfalse
    \newif\ifplatesopen              \platesopenfalse
    \newif\iftableoftables           \tableoftablesfalse
    \newif\iftableoftablesopen       \tableoftablesopenfalse
    \newif\ifwarncsname              \warncsnamefalse
%%
%  For file tracking the file (dirname)jobname.links will
%  be created
%
%  For forward referencing the file (dirname)jobname.csnames
%  will be created
%%
    \newwrite\linkwrite
    \newwrite\csnamewrite
    \newwrite\contentswrite
    \newwrite\plateswrite
    \newwrite\tableoftableswrite
%%
%  For testing if a file exists define a new input stream
%%
    \newread\testifexists
%%
%  This defines a file to be read in verbatim
%%
    \newread\verbinfile

%%
%  Some token strings for containing info pertaining to
%  directory information for use on VAXes, and micros like the
%  Amiga.
%%
    \newtoks\jobdir                  \jobdir={}
    \newtoks\tempnametoks            \tempnametoks={}
    \newtoks\oldheadline             \oldheadline={}
    \newtoks\oldfootline             \oldfootline={}
    \newtoks\subsectstyle            \subsectstyle={\Number}
    \newtoks\subsubsectstyle         \subsubsectstyle={\Number}
    \newtoks\runningheadlines        \runningheadlines={\relax}
    \newtoks\chapterformat           \chapterformat={\titlestyle}
    \newtoks\sectionformat           \sectionformat={\relax}
    \newtoks\subsectionformat        \subsectionformat={\relax}
    \newtoks\subsubsectionformat     \subsubsectionformat={\relax}
    \newtoks\chapterfontstyle        \chapterfontstyle={\bf}
    \newtoks\sectionfontstyle        \sectionfontstyle={\rm}
    \newtoks\subsectionfontstyle     \subsectionfontstyle={\rm}
    \newtoks\sectionfontstyleb       \sectionfontstyleb={\caps}
    \newtoks\subsubsectionfontstyle  \subsubsectionfontstyle={\rm}
%%
%  Some new counters need to be defined to handle table of
%  table of countents stuff for numbered subsections
%  and numbered subsubsections
%%

    \newcount\subsectnumber           \subsectnumber=0
    \newcount\subsubsectnumber        \subsubsectnumber=0

%%
%  There is a problem in PHYZZX with the picture macros which
%  occurs when \parindent is modified.  Thus we have to introduce
%  a new dimension which can be adjusted by the user to obtain
%  the desired results.  Also we need some dimensions to be
%  used with the \boxit macros
%%

   \newdimen\pictureindent           \pictureindent=15pt
   \newdimen\str
   \newdimen\squareht
   \newdimen\squarewd
   \newskip\doublecolskip
   \newskip\tableoftablesskip        \tableoftablesskip=\baselineskip

%%
%  The macro floating boxes needs to store things in a box called
%%

   \newbox\squarebox

%%
%  Some new skips have to be defined for handling the Table of
%  Contents stuff
%%

   \newskip\sectionindent            \sectionindent=0pt
   \newskip\subsectionindent         \subsectionindent=0pt
%%
%  Some macros used for running head construction
%%
  \def\thechapterhead{\relax}
  \def\thesectionhead{\relax}
  \def\thesubsecthead{\relax}
  \def\thesubsubsecthead{\relax}

%%
%  A macro which checks if a file exists and inputs it if it
%  does
%%

   \def\GetIfExists #1 {
       \immediate\openin\testifexists=#1
       \ifeof\testifexists
           \immediate\closein\testifexists
       \else
         \immediate\closein\testifexists
         \input #1
       \fi
   }

%%
%  If you use forward referencing for tables, pictures, chapters,
%  sections, equations, etc., then TeX will break when it first
%  encounters an undefined name.  This will happen when you first
%  TeX a document since then the file \jobdir\jobname.csnames
%  will either be empty or not exist.  You can simply type S (for
%  scroll) and let TeX generate the necessary file, or you can use
%  the \val{name} command, instead of \name.  This command checks
%  to see if \name is defined and if not puts a ? mark in the file
%  and writes a message to the screen (and log file) to warn you
%  that this variable is not defined.
%%

   \def\stripbackslash#1#2*{\def\strippedname{#2}}

   \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}

   \def\val#1{%
      \expandafter\stripbackslash\string#1*%
      \ifundefined{\strippedname}%
      \message{Warning! The control sequence \noexpand#1 is not defined.} ? %
      \else\csname\strippedname\endcsname\fi%
   }
%%
%
%   A macro to be used inside routines which define new control
%   sequences.  It writes a warning to the log file whenever
%   an existing sequence is about to be overwritten.  This is a
%   debugging tool which is useful when really strange things happen
%
%%
   \def\CheckForOverWrite#1{%
      \expandafter\stripbackslash\string#1*%
      \ifundefined{\strippedname}%
      \else%
         \ifwarncsname
            \message{Warning! The control sequence \noexpand#1 is being
          overwritten.}%
          \else
          \fi
      \fi%
   }%%

   \def\printwarnings{\warncsnametrue}
   \def\dontprintwarnings{\warncsnamefalse}

%  This fixes a bug in footnotes which caused equation numbers
%  to appear at the wrong size. The fix involves a change
%  to this and the \eqname macro
%%
   \def\FootNoteFonts{\Tenpoint}

   \def\Vfootnote#1{%
      \insert\footins%
      \bgroup%
         \interlinepenalty=\interfootnotelinepenalty%
         \floatingpenalty=20000%
         \singl@true\doubl@false%
         \FootNoteFonts%
         \splittopskip=\ht\strutbox%
         \boxmaxdepth=\dp\strutbox%
         \leftskip=\footindent%
         \rightskip=\z@skip%
         \parindent=0.5%
         \footindent%
         \parfillskip=0pt plus 1fil%
         \spaceskip=\z@skip%
         \xspaceskip=\z@skip%
         \footnotespecial%
         \Textindent{#1}%
         \footstrut%
         \futurelet\next\fo@t%
   }
%%
%  Various macros need to write to auxiliary files like
%  \jobname.contents, \jobname.csnames, \jobname.links
%  The following macros are used to open these files for
%  writing if the are not open
%%

   \def\csnamech@ck{%
       \ifcsnameopen%
       \else%
           \global\csnameopentrue%
           \immediate\openout\csnamewrite=\the\jobdir\jobname.csnames%
           \immediate\write\csnamewrite{\unlock}%
       \fi%
   }

   \def\linksch@ck{%
          \iflinkopen%
          \else%
              \global\linkopentrue%
              \immediate\openout\linkwrite=\the\jobdir\jobname.links%
          \fi%
   }

   \def\c@ntentscheck{%
       \ifcontentsopen%
       \else%
           \global\contentsopentrue%
           \immediate\openout\contentswrite=\the\jobdir\jobname.contents%
           \immediate\write\contentswrite{%
                \noexpand\titlestyle{Table of Contents}%
           }%
           \immediate\write\contentswrite{\noexpand\bigskip}%
       \fi%
   }

   \def\t@bleofplatescheck{%
       \ifplatesopen%
       \else%
           \global\platesopentrue%
           \immediate\openout\plateswrite=\the\jobdir\jobname.plates%
           \immediate\write\plateswrite{%
                \noexpand\titlestyle{Illustrations}%
           }%
           \immediate\write\plateswrite{%
              \unlock%
           }%
           \immediate\write\plateswrite{\noexpand\bigskip}%
       \fi%
   }

   \def\t@bleoftablescheck{%
       \iftableoftablesopen%
       \else%
           \global\tableoftablesopentrue%
          \immediate\openout\tableoftableswrite=\the\jobdir\jobname.tables%
           \immediate\write\tableoftableswrite{%
                \noexpand\titlestyle{Tables}%
           }%
           \immediate\write\tableoftableswrite{%
              \unlock%
           }%
           \immediate\write\tableoftableswrite{\noexpand\bigskip}%
       \fi%
   }

%%
%  For keeping track of the files which your main file depends upon
%  use the command \linkinput  instead of \input
%  Using this command automatically turns on linked input for
%  pictures too
%%

   \def\linkinput#1 {\input #1
       \iflinkedinput \relax \else \global\linkedinputtrue \fi
       \linksch@ck
       \immediate\write\linkwrite{#1}
   }

%%
%  To implement linked input for pictures the ordinary PHYZZX
%  macro \fil@#1 must be redefined to handle tracking
%%

   \def\fil@#1 {%
       \ifdummypictures%
          \fileexistsfalse%
          \picfilename={}%
       \else%
          \fileexiststrue%
          \picfilename={#1}%
       \fi%
       \iflinkedinput%
          \iflinkopen \relax%
          \else%
            \global\linkopentrue%
            \immediate\openout\linkwrite=\the\jobdir\jobname.links%
          \fi%
          \immediate\write\linkwrite{#1}%
       \fi%
   }
%%
%  The \s@vepicture macro needs to be redefined to take care of
%  writing to the file of figures.
%%
   \def\Picture#1{%
      \gl@bal\advance\figurecount by 1%
      \CheckForOverWrite#1%
      \csnamech@ck%
      \immediate\write\csnamewrite{\def\noexpand#1{\the\figurecount}}%
      \xdef#1{\the\figurecount}\pl@t%
      \selfcaptionedtrue%
   }

   \def\s@vepicture{%
       \iffileexists \parsefilename \redopicturebox \fi%
       \ifdim\captionwidth>\z@ \else \captionwidth=\p@cwd \fi%
       \xdef\lastpicture{%
          \iffileexists%
             \setbox0=\hbox{\raise\the\yshift \vbox{%
                \moveright\the\xshift\hbox{\picturedefinition}}%
             }%
          \else%
             \setbox0=\hbox{}%
          \fi
          \ht0=\the\p@cht \wd0=\the\p@cwd \dp0=\the\p@cdp%
          \vbox{\hsize=\the\captionwidth \line{\hss\box0 \hss }%
          \ifcaptioned%
             \vskip\the\captionskip \noexpand\Tenpoint%
             \ifselfcaptioned%
                Figure~\the\figurecount.\enspace%
             \fi%
             \the\Caption%
          \fi }%
       }%
       \iftableofplates%
          \ifplatesopen%
          \else%
             \t@bleofplatescheck%
          \fi%
          \ifselfcaptioned%
             \immediate\write\plateswrite{%
                \noexpand\platetext{%
                \noexpand\item{\rm \the\figurecount .}%
                \the\Caption}{\the\pageno}%
             }%
          \else%
             \immediate\write\plateswrite{%
                \noexpand\platetext{\the\Caption}{\the\pageno}%
             }%
          \fi%
       \fi%
       \endgroup%
   }

   \def\platesout{%
      \ifplatesopen
         \immediate\closeout\plateswrite%
         \global\platesopenfalse%
      \fi%
      \input \jobname.plates%
      \lock%
   }

   \def\tableofplateson{\global\tableofplatestrue}

   \def\platetext#1#2{%
       \hbox to \hsize{\vbox{\hsize=.9\hsize #1}\hfill#2}%
       \vskip \tableoftablesskip \vskip\parskip%
   }

%%
%  Because of the fixes to \subsubsection we need to fix
%  \ACK and \ack
%%

   \def\acksection#1{\par
      \ifnum\the\lastpenalty=30000\else \penalty-100\smallskip \fi
      \noindent\undertext{#1}\enspace \vadjust{\penalty5000}}

   \def\ACK{\par\penalty-100\medskip \spacecheck\sectionminspace
      \line{\fourteenrm\hfil ACKNOWLEDGEMENTS\hfil}\nobreak\vskip\headskip }

   \def\ack{\acksection{Acknowledgements:}}

%%
%  In phyzzx.tex \pres@tpicture uses \parindent to leave space to
%  the right hand side of the picture.  Unfortunately this causes
%  major problems if \parindent is made too small or zero.  To
%  avoid this I have introduced a new dimension \pictureindent
%  and use it in the definition of \pres@tpicture.  This has to
%  eventually make it into phyzzx.local
%%

   \def\pres@tpicture{%
       \gl@bal\linesabove=\linesabove
       \s@vepicture
       \setbox\picturebox=\vbox{
       \kern \linesabove\baselineskip \kern 0.3\baselineskip
       \lastpicture \kern 0.3\baselineskip }%
       \dimen@=\p@cht \dimen@i=\dimen@
       \advance\dimen@i by \pagetotal
       \par \ifdim\dimen@i>\pagegoal \vfil\break \fi
       \dimen@ii=\hsize
       \advance\dimen@ii by -\pictureindent \advance\dimen@ii by -\p@cwd
       \setbox0=\vbox to\z@{\kern-\baselineskip \unvbox\picturebox \vss }
   }
%%
%  While we are at it let's fix a bug in PHYZZX that introduces
%  extra spaces
%%

   \def\subspaces@t#1:#2;{%
      \baselineskip = \normalbaselineskip%
      \multiply\baselineskip by #1 \divide\baselineskip by #2%
      \lineskip = \normallineskip%
      \multiply\lineskip by #1 \divide\lineskip by #2%
      \lineskiplimit = \normallineskiplimit%
      \multiply\lineskiplimit by #1 \divide\lineskiplimit by #2%
      \parskip = \normalparskip%
      \multiply\parskip by #1 \divide\parskip by #2%
      \abovedisplayskip = \normaldisplayskip%
      \multiply\abovedisplayskip by #1 \divide\abovedisplayskip by #2%
      \belowdisplayskip = \abovedisplayskip%
      \abovedisplayshortskip = \normaldispshortskip%
      \multiply\abovedisplayshortskip by #1%
        \divide\abovedisplayshortskip by #2%
      \belowdisplayshortskip = \abovedisplayshortskip%
      \advance\belowdisplayshortskip by \belowdisplayskip%
      \divide\belowdisplayshortskip by 2%
      \smallskipamount = \skipregister%
      \multiply\smallskipamount by #1 \divide\smallskipamount by #2%
      \medskipamount = \smallskipamount \multiply\medskipamount by 2%
      \bigskipamount = \smallskipamount \multiply\bigskipamount by 4%
   }

%%
%  \chapter, \section, \subsection are used to create chapters
%  referring to chapters by some \chaptername (and in particular
%  in the forward direction) is not possible.  To do this use the
%  \makename#1 command at any time.
%  For example one can say \chapter{\makename\firstchap This is a test}
%  and it will work as usual except that the line
%    \def \firstchap {a number} will be written to the file
%  \the\jobdir\jobname.csnames
%%

   \def\makename#1{
       \global\makenametrue
       \global\tempnametoks={#1}
   }

   \let\oldmakename=\makename

   \def\nomakename#1{\relax}

%%
%  While makename is usually used inside other macros, such as
%  chapter, etc., we can also use it as a general label generating
%  mechanism by saying
%      \makename\mynewname
%      \savename{This is a test of a label}
%  This will write the line
%      \def\mynewname{This is a test of label}
%  to the file \jobdir\jobname.csnames and will be available
%  after one TeXing cycle
%%

   \def\savename#1{%
      \CheckForOverWrite{#1}%
      \csnamech@ck%
      \immediate\write\csnamewrite{\def\the\tempnametoks{#1}}%
   }

%%
%  This fixes a bug in footnotes which caused equation numbers
%  to appear at the wrong size. The fix involves a change
%  to this and the \eqname macro
%%
   \def\FootNoteFonts{\Tenpoint}

   \def\Vfootnote#1{%
      \insert\footins%
      \bgroup%
         \interlinepenalty=\interfootnotelinepenalty%
         \floatingpenalty=20000%
         \singl@true\doubl@false%
         \FootNoteFonts%
         \splittopskip=\ht\strutbox%
         \boxmaxdepth=\dp\strutbox%
         \leftskip=\footindent%
         \rightskip=\z@skip%
         \parindent=0.5%
         \footindent%
         \parfillskip=0pt plus 1fil%
         \spaceskip=\z@skip%
         \xspaceskip=\z@skip%
         \footnotespecial%
         \Textindent{#1}%
         \footstrut%
         \futurelet\next\fo@t%
   }
%%
%  In addition to using makelabel to name chapters and sections etc.
%  we want all equation names and figure names and reference names
%  etc. to be written to the file
%     \jobdir\jobname.csnames
%  which means we have to redefine some additional PHYZZX macros
%
%  We begin with the equation macro
%%

   \def\eqname#1{%
      \CheckForOverWrite{#1}%
      \rel@x{\pr@tect%
      \csnamech@ck%
      \ifnum\equanumber<0%
          \xdef#1{{\noexpand\f@m0(\number-\equanumber)}}%
          \immediate\write\csnamewrite{%
            \def\noexpand#1{\noexpand\f@m0 (\number-\equanumber)}}%
          \gl@bal\advance\equanumber by -1%
      \else%
          \gl@bal\advance\equanumber by 1%
          \ifusechapterlabel%
            \xdef#1{{\noexpand\f@m0(\ifcn@@ \chapterlabel.\fi%
               \number\equanumber)}%
            }%
          \else%
             \xdef#1{{\noexpand\f@m0(\ifcn@@%
                 {\the\chapterstyle{\the\chapternumber}}.\fi%
                 \number\equanumber)}}%
          \fi%
          \ifcn@@%
             \ifusechapterlabel
                \immediate\write\csnamewrite{\def\noexpand#1{(%
                  {\chapterlabel}.%
                  \number\equanumber)}%
                }%
             \else
                \immediate\write\csnamewrite{\def\noexpand#1{(%
                  {\the\chapterstyle{\the\chapternumber}}.%
                  \number\equanumber)}%
                }%
             \fi%
          \else%
              \immediate\write\csnamewrite{\def\noexpand#1{(%
                  \number\equanumber)}}%
          \fi%
      \fi}%
      #1%
   }

   \def\eq{\eqname\?}

   \def\eqn{\eqno\eqname}

   \def\leqn{\leqno\eqname}

   \let\eqnalign=\eqname

%%
%   To handle equations inside appendices correctly we need to redefine
%   \APPENDIX to set \usechapterlabeltrue
%%

   \def\APPENDIX#1#2{%
       \global\usechapterlabeltrue%
       \par\penalty-300\vskip\chapterskip%
       \spacecheck\chapterminspace%
       \chapterreset%
       \xdef\chapterlabel{#1}%
       \titlestyle{APPENDIX #2}%
       \nobreak\vskip\headskip \penalty 30000%
       \wlog{\string\Appendix~\chapterlabel}%
   }

%%
%  Now we do the reference macros
%%
   \def\REFNUM#1{%
      \CheckForOverWrite{#1} %
      \rel@x\gl@bal\advance\referencecount by 1%
      \xdef#1{\the\referencecount}%
      \csnamech@ck%
      \immediate\write\csnamewrite{\def\noexpand#1{\the\referencecount}}%
   }

   \let\refnum=\Refnum%
%%
%  Now we do the figure naming macros
%%

   \def\FIGNUM#1{
      \CheckForOverWrite{#1}%
      \rel@x\gl@bal\advance\figurecount by 1%
      \xdef#1{\the\figurecount}%
      \csnamech@ck%
      \immediate\write\csnamewrite{\def\noexpand#1{\the\figurecount}}%
   }

%%
%  Now the table naming macros
%%

   \def\TABNUM#1{%
      \CheckForOverWrite{#1}%
      \rel@x \gl@bal\advance\tablecount by 1%
      \xdef#1{\the\tablecount}%
      \csnamech@ck%
      \immediate\write\csnamewrite{\def\noexpand#1{\the\tablecount}}%
   }

%%
%  If the switch \iftableoftables is set to be true by saying
%  \tableoftablestrue  then redefine the \TABLE and \Table macros
%  to output to a file \jobname.tables in a form which contains page
%  numbers.  This is to be used only for reasonably short table
%  captions. In this form \TABLE and \Table has two arguments
%       \TABLE\csname{caption}
%  It looked like this before but now a very long caption will cause
%  TeX to break.
%%


   \def\tableoftableson{%
      \global\tableoftablestrue%

      \gdef\TABLE##1##2{%
         \t@bleoftablescheck%
         \TABNUM ##1%
         \immediate\write\tableoftableswrite{%
            \noexpand\tableoftablestext{%
            \noexpand\item{\rm \the\tablecount .}%
                ##2}{\the\pageno}%
             }%
      }

      \gdef\Table##1{\TABLE\?{##1}Table~\?}
   }

   \def\tableoftablestext#1#2{%
       \hbox to \hsize{\vbox{\hsize=.9\hsize #1}\hfill#2}%
       \vskip \tableoftablesskip%
   }

   \def\tableoftablesout{%
      \iftableoftablesopen
         \immediate\closeout\tableoftableswrite%
         \global\tableoftablesopenfalse%
      \fi%
      \input \jobname.tables%
      \lock%
   }



%%
%
% Making Table of Contents
% ------------------------
%
%  The macros which follow are useful to create a table of contents
%  for a paper, thesis, book, etc.
%  To use them simply put \contentson at the beginning of the file
%  and then proceed as usual.
%
%  When you wish to output the table of contents, say
%    \endpage .....
%    \pagenumber=-1
%    \contentsinput
%
%  The \pagenumber = - 1 is used so that the table of contents pages
%  will be numbered using roman numerals.
%  This seems to be the universal convention for books.
%
%  When writing out the table of contents we need to shut off fonts
%  so that stuff used in chapter headings etc don't mess up the look
%  of things.  These definitions save the old font defs and provide
%  for shutting things off and restoring them.  In this way you
%  can input a table of contents and then go back to another file
%
%%

   \def\contentsoff{\contentsonfalse}
%%
%  When using the Table of Contents Stuff PHYZZX'x \f@m#1 command
%  is written too cleverly for its own good and breaks all sorts
%  of stuff.  We use the following work around
%%

   \def\f@m#1{\f@ntkey=#1\fam=\f@ntkey\the\textfont\f@ntkey\rel@x}
   \def\em@{\rel@x%
      \ifnum\f@ntkey=0\it%
      \else%
         \ifnum\f@ntkey=\bffam\it%
         \else\rm  %
         \fi%
      \fi%
   }
%%
%  When writing out the table of contents we only use the basic
%  roman font and so want to turn off all style changing macros
%%

   \def\fontsoff{%
      \def\mit{\relax}%
      \let\oldstyle=\mit%
      \def\cal{\relax}%
      \def\it{\relax}%
      \def\sl{\relax}%
      \def\bf{\relax}%
      \def\tt{\relax}%
      \def\caps{\relax}%
      \let\cp=\caps%
   }

%%
%  This restores the definitions of \mit, \bf, etc.
%%

   \def\fontson{%
      \def\rm{\n@expand\f@m0}%
      \def\mit{\n@expand\f@m1}%
      \let\oldstyle=\mit%
      \def\cal{\n@expand\f@m2}%
      \def\it{\n@expand\f@m\itfam}%
      \def\sl{\n@expand\f@m\slfam}%
      \def\bf{\n@expand\f@m\bffam}%
      \def\tt{\n@expand\f@m\ttfam}%
      \def\caps{\n@expand\f@m\cpfam}%
      \let\cp=\caps%
   }

   \fontson
%%
%  The default setting in PHYZZX is not to generate a Table
%  of Contents.  To turn on automatic generation of the
%  table of contents we have to open the file \jobname.contents
%  etc.  We also have to redefine \chapter, \section, \subsection
%  to handle this.  The macro \contentson does all of this work
%
%%

   \def\contentson{%
       \contentsontrue%
       \numberedchapters%
   }
%%
%  Redefine some basic chapter stuff to handle contents
%  and introduce subsubsections
%%

   \def\@alpha#1{\count255='140 \advance\count255 by #1\char\count255}
   \def\alphabetic{\@alpha}
   \def\@Alpha#1{\count255='100 \advance\count255 by #1\char\count255}
   \def\Alphabetic{\@Alpha}
   \def\@Roman#1{\uppercase\expandafter{\romannumeral #1}}
   \def\Roman{\@Roman}
   \def\@roman#1{\romannumeral #1}
   \def\roman{\@roman}
   \def\@number#1{\number #1}
   \def\Number{\@number}

   \def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}


   \def\chapterinfo#1{%
      \line{%
         \ifcn@@%
            \hbox to \itemsize{\hfil\chapterlabel .\quad\ }%
         \fi%
         \noexpand{#1}\leaderfill\the\pagenumber%
      }%
   }

   \def\sectioninfo#1{%
      \line{%
         \ifcn@@%
            \hbox to 2\itemsize{\hfil\sectlabel \quad}%
          \else%
            \hbox to \itemsize{\hfil\quad}%
          \fi%
          \ \noexpand{#1}%
          \leaderfill \the\pagenumber%
      }%
   }

   \def\subsectioninfo#1{%
      \line{%
         \ifcn@@%
            \hbox to 3\itemsize{\hfil \quad\subsectlabel\quad}%
         \else%
            \hbox to 2\itemsize{\hfil\quad}%
         \fi%
          \ \noexpand{#1}%
          \leaderfill \the\pagenumber%
      }%
   }

   \def\subsubsecinfo#1{%
      \line{%
         \ifcn@@%
            \hbox to 4\itemsize{\hfil\subsubsectlabel\quad}%
         \else%
            \hbox to 3\itemsize{\hfil\quad}%
         \fi%
         \ \noexpand{#1}\leaderfill \the\pagenumber%
      }%
   }

   \def\CONTENTS#1;#2{
       {\let\makename=\nomakename
        \if#1C
            \immediate\write\contentswrite{\chapterinfo{#2}}%
        \else\if#1S
                \immediate\write\contentswrite{\sectioninfo{#2}}%
             \else\if#1s
                     \immediate\write\contentswrite{\subsectioninfo{#2}}%
                  \else\if#1x
                          \immediate\write\contentswrite{%
                              \subsubsecinfo{#2}}%
                       \fi
                  \fi
             \fi
        \fi
       }
   }

   \def\chapterreset{\gl@bal\advance\chapternumber by 1%
       \ifnum\equanumber<0 \else\gl@bal\equanumber=0 \fi%
       \gl@bal\sectionnumber=0  \gl@bal\let\sectlabel=\rel@x%
       \gl@bal\subsectnumber=0   \gl@bal\let\subsectlabel=\rel@x%
       \gl@bal\subsubsectnumber=0 \gl@bal\let\subsubsectlabel=\rel@x%
       \ifcn@%
           \gl@bal\cn@@true {\pr@tect\xdef\chapterlabel{%
           {\the\chapterstyle{\the\chapternumber}}}}%
       \else%
           \gl@bal\cn@@false \gdef\chapterlabel{\rel@x}%
       \fi%
       \gl@bal\startofchaptertrue%
   }

   \def\chapter#1{\par \penalty-300 \vskip\chapterskip%
       \spacecheck\chapterminspace%
       \gdef\thechapterhead{#1}%
       \gdef\thesectionhead{\relax}%
       \gdef\thesubsecthead{\relax}%
       \gdef\thesubsubsecthead{\relax}%
       \chapterreset \the\chapterformat{\the\chapterfontstyle%
          \ifcn@@\chapterlabel.~~\fi #1}%
       \nobreak\vskip\headskip \penalty 30000%
       {\pr@tect\wlog{\string\chapter\space \chapterlabel}}%
       \ifmakename%
           \csnamech@ck
           \ifcn@@%
              \immediate\write\csnamewrite{\def\the\tempnametoks{%
                 {\the\chapterstyle{\the\chapternumber}}}%
              }%
            \fi%
            \global\makenamefalse%
       \fi%
       \ifcontentson%
          \c@ntentscheck%
          \CONTENTS{C};{#1}%
       \fi%
       }%

       \let\chap=\chapter%

   \def\section#1{\par \ifnum\lastpenalty=30000\else%
       \penalty-200\vskip\sectionskip \spacecheck\sectionminspace\fi%
       \gl@bal\advance\sectionnumber by 1%
       \gl@bal\subsectnumber=0%
       \gl@bal\let\subsectlabel=\rel@x%
       \gl@bal\subsubsectnumber=0%
       \gl@bal\let\subsubsectlabel=\rel@x%
       \gdef\thesectionhead{#1}%
       \gdef\thesubsecthead{\relax}%
       \gdef\thesubsubsecthead{\relax}%
       {\pr@tect\xdef\sectlabel{\ifcn@@%
          {\the\chapterstyle{\the\chapternumber}}.%
          {\the\sectionstyle{\the\sectionnumber}}\fi}%
       \wlog{\string\section\space \sectlabel}}%
       \the\sectionformat{\noindent\the\sectionfontstyle%
            {\ifcn@@\unskip\hskip\sectionindent\sectlabel~~\fi%
                \the\sectionfontstyleb#1}}%
       \par%
       \nobreak\vskip\headskip \penalty 30000%
       \ifmakename%
           \csnamech@ck%
           \ifcn@@%
              \immediate\write\csnamewrite{\def\the\tempnametoks{%
                 {\the\chapterstyle{\the\chapternumber}.%
                  \the\sectionstyle{\the\sectionnumber}}}
              }%
            \fi%
            \global\makenamefalse%
       \fi%
       \ifcontentson%
          \c@ntentscheck%
          \CONTENTS{S};{#1}%
       \fi%
   }

   \def\subsection#1{\par \ifnum\lastpenalty=30000\else%
       \penalty-200\vskip\sectionskip \spacecheck\sectionminspace\fi%
       \gl@bal\advance\subsectnumber by 1%
       \gl@bal\subsubsectnumber=0%
       \gl@bal\let\subsubsectlabel=\rel@x%
       \gdef\thesubsecthead{#1}%
       \gdef\thesubsubsecthead{\relax}%
       {\pr@tect\xdef\subsectlabel{\the\subsectionfontstyle%
           \ifcn@@{\the\chapterstyle{\the\chapternumber}}.%
           {\the\sectionstyle{\the\sectionnumber}}.%
           {\the\subsectstyle{\the\subsectnumber}}\fi}%
           \wlog{\string\section\space \subsectlabel}%
       }%
       \the\subsectionformat{\noindent\the\subsectionfontstyle%
         {\ifcn@@\unskip\hskip\subsectionindent%
          \subsectlabel~~\fi#1}}%
       \par%
       \nobreak\vskip\headskip \penalty 30000%
       \ifmakename%
           \csnamech@ck%
           \ifcn@@%
              \immediate\write\csnamewrite{\def\the\tempnametoks{%
                 {\the\chapterstyle{\the\chapternumber}}.%
                 {\the\sectionstyle{\the\sectionnumber}}.%
                 {\the\subsectstyle{\the\subsectnumber}}}%
              }%
            \fi%
            \global\makenamefalse%
       \fi%
       \ifcontentson%
          \c@ntentscheck%
          \CONTENTS{s};{#1}%
       \fi%
   }

   \def\subsubsection#1{\par \ifnum\lastpenalty=30000\else%
       \penalty-200\vskip\sectionskip \spacecheck\sectionminspace\fi%
       \gl@bal\advance\subsubsectnumber by 1%
       \gdef\thesubsubsecthead{#1}%
       {\pr@tect\xdef\subsubsectlabel{\the\subsubsectionfontstyle\ifcn@@%
           {\the\chapterstyle{\the\chapternumber}}.%
           {\the\sectionstyle{\the\sectionnumber}}.%
           {\the\subsectstyle{\the\subsectnumber}}.%
           {\the\subsubsectstyle{\the\subsubsectnumber}}\fi}%
           \wlog{\string\section\space \subsubsectlabel}%
       }%
       \the\subsubsectionformat{\the\subsubsectionfontstyle%
          \noindent{\ifcn@@\unskip\hskip\subsectionindent%
            \subsubsectlabel~~\fi#1}}%
       \par%
       \nobreak\vskip\headskip \penalty 30000%
       \ifmakename%
           \csnamech@ck%
           \ifcn@@%
              \immediate\write\csnamewrite{\def\the\tempnametoks{%
                {\the\chapterstyle{\the\chapternumber}.%
                 \the\sectionstyle{\the\sectionnumber}.%
                 \the\subsectionstyle{\the\subsectnumber}.%
                 \the\subsubsectstyle{\the\subsubsectnumber}}}%
              }%
            \fi%
            \global\makenamefalse%
       \fi%
       \ifcontentson%
          \c@ntentscheck%
          \CONTENTS{x};{#1}%
       \fi%
   }%

   \def\contentsinput{%
       \ifcontentson%
           \contentsopenfalse%
           \immediate\closeout\contentswrite%
           \global\oldheadline=\headline%
           \global\headline={\hfill}%
           \global\oldfootline=\footline%
           \global\footline={\hfill}%
           \fontsoff \unlock%
           \input \the\jobdir\jobname.contents%
           \fontson%
           \lock%
           \endpage%
           \global\headline=\oldheadline%
           \global\footline=\oldfootline%
       \else%
           \relax%
       \fi%
   }


%%
%   this resets the footline for special page numbering
%%

       \def\myfootline#1{\footline={\hss #1 \hss}}

       \def\phyzzxfootline{
           \footline={\ifletterstyle\the\letterfootline%
               \else\the\paperfootline\fi}%
       }

%%
%   The following macros allow you to do:
%   \begverb{`\$}
%   verbatim stuff
%   $endverb
%
%   Tabs are still not handled correctly, and lines too long for
%   the current line are broken.  Also, the sequences ?` and !`
%   will be printed incorrectly (see TeXbook, page 381.)
%%

   {\obeyspaces\gdef\myactivespaces{\def {\ }}}

   \def\begverb#1{\begingroup%
      \def\par{\leavevmode\endgraf}%
      \catcode`\\=12\catcode`\{=12%
      \catcode`\}=12\catcode`\$=12\catcode`\&=12%
      \catcode`\#=12\catcode`\%=12\catcode`\~=12%
      \catcode`\_=12\catcode`\^=12\obeyspaces\obeylines\tt%
      \parindent=0pt\catcode#1=0%
      \myactivespaces%
   }

   \def\endverb{\par\endgroup}

%%
%   The following command allows you to go
%   \verbfile{name}
%   and it will stick the current file into the output in
%   verbatim mode.
%%
   \def\verbfile#1{
       {\catcode`\\=12\catcode`\{=12
       \catcode`\}=12\catcode`\$=12\catcode`\&=12
       \catcode`\#=12\catcode`\%=12\catcode`\~=12
       \catcode`\_=12\catcode`\^=12\obeyspaces\obeylines\tt
       \verbdonetrue\openin\verbinfile=#1
       \loop\read\verbinfile to \inline
           \ifeof\verbinfile
               \verbdonefalse
           \else
              \leftline{\inline}
           \fi
       \ifverbdone\repeat
       \closein\verbinfile}
   }

%%
%  This makes boxes around boxes
%%
   \def\boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt%
       \vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}%
   }

   \def\square{%
      \setbox\squarebox=\boxit{\hbox{\phantom{x}}}
      \squareht = 1\ht\squarebox
      \squarewd = 1\wd\squarebox
      \vbox to 0pt{
          \offinterlineskip \kern -.9\squareht
          \hbox{\copy\squarebox \vrule width .2\squarewd height .8\squareht
              depth 0pt \hfill
          }
          \hbox{\kern .2\squarewd\vbox{%
            \hrule height .2\squarewd width \squarewd}
          }
          \vss
      }
   }

   \def\xstrut#1{\dimen\str = #1
       \hbox{\vrule height .8dm\str depth .2dm\str width 0pt}
   }

   \def\fboxit#1#2{
       \vbox{\hrule height #1
           \hbox{\vrule width #1
               \kern3pt \vbox{\kern3pt#2\kern3pt}\kern3pt \vrule width #1
           }
           \hrule height #1
       }
   }
%%
% \draft causes the symbolic names of equations to be printed
%        alongside the equation numbers
%%

   \let\eqnameold=\eqname

   \def\draft{\def\eqname##1{\eqnameold##1:{\tt\string##1}}
      \let\eqnalign = \eqname
   }
%%
%  Usage: \dorunningheadlines
%
%  This changes format so that pagenumbers appear
%  alternately on the upper left and right hand corners of facing
%  pages and on the left hand page the current chapter title
%  appears whereas on the lefthand side of the page the
%  current section title appears
%
%%
   \def\runningrightheadline{%
       \hfill%
       \tenit%
       \ifstartofchapter%
          \global\startofchapterfalse%
       \else%
          \ifcn@@ \the\chapternumber.\the\sectionnumber\quad\fi%
              {\fontsoff\thesectionhead}%
       \fi%
       \qquad\twelverm\folio%
   }

   \def\runningleftheadline{%
      \twelverm\folio\qquad%
      \tenit%
      \ifstartofchapter%
          \global\startofchapterfalse%
      \else%
         \ifcn@@%
             Chapter \the\chapternumber \quad%
         \fi%
         {\fontsoff\thechapterhead}%
         \hfill%
      \fi%
   }

   \runningheadlines={%
      \ifodd\pageno%
         \runningrightheadline%
      \else%
         \runningleftheadline%
      \fi
   }

   \def\dorunningheadlines{%
       \global\headline=\runningheadlines%
       \footline={\hfill}%
   }
%%
%   Doing dropped letters
%
%
%
%  The font for dropped letters should be magstep 5 of whatever
%  font you are using in the text.
%  Here the default font used by Phyzzx is 10pt
%  The \dfont is cmr10 scaled \magstep5
%  If you are using ten point fonts the \dfont should be cmr10
%
%  The baselineskip should be a couple of points larger than the
%  size of the font for everything to look good.
%
%%

   \font\dfont=cmr10 scaled \magstep5

%%
%   When using dropped letters you have to adjust the baselineskip
%   to match since we don't have arbitrary sized fonts on the
%   mainframe.  Thus, for the \dfont defined above
%     \baselineskip 14pt
%   seems to work well
%%

   \newbox\cstrutbox
   \newbox\dlbox
   \newbox\vsk

   \setbox\cstrutbox=\hbox{\vrule height10.5pt depth3.5pt width\z@}

   \def\cstrut{\relax\ifmmode\copy\cstrutbox\else\unhcopy\cstrutbox\fi}

   \def\dl #1{\noindent\strut
       \setbox\dlbox=\hbox{\dfont #1\kern 2pt}%
       \setbox\vsk=\hbox{(}%
       \hangindent=1.1\wd\dlbox
       \hangafter=-2
       \strut\hbox to 0pt{\hss\vbox to 0pt{%
         \vskip-.75\ht\vsk\box\dlbox\vss}}%
       \noindent
   }

%%
%
% Macros for doing two-column mode output
% just say \twocols at the top of the file
%
%%

   \newdimen\fullhsize

   \fullhsize=6.5in
   \def\fullline{\hbox to\fullhsize}
   \let\l@r=L

   \newbox\leftcolumn
   \newbox\midcolumn

   \def\twocols{\hsize = 3.1in%
%%
%  Since double columns are narrow, the normal TeX spacing will produce
%  many overfull hboxes. To avoid this, the interword skip \spaceskip is
%  replaced by \doublecolskip with the default value
%
%       \doublecolskip=.3333em plus .3333em minus .1em
%
%  which gives more stretch as the default.
%  and the \hyphenpenalty is set to zero. To balance the columns, it is
%  necessary to allow some vertical stretch; for example use
%
%       \parskip=\smallskipamount
%
%  More uniform spacing can be obtained by changing \doublecolskip.
%  Reduces the number of black boxes in narrow columns
%%
%
      \doublecolskip=.3333em plus .3333em minus .1em
      \global\spaceskip=\doublecolskip%
      \global\hyphenpenalty=0
%
      \singlespace
%
      \gdef\makeheadline{%
          \vbox to 0pt{ \skip@=\topskip%
          \advance\skip@ by -12pt \advance\skip@ by -2\normalbaselineskip%
          \vskip\skip@%
          \fullline{\vbox to 12pt{}\the\headline}\vss}\nointerlineskip%
      }%
%
      \def\makefootline{\baselineskip = 1.5\normalbaselineskip
           \fullline{\the\footline}
      }
%
      \output={%
          \if L\l@r%
             \global\setbox\leftcolumn=\columnbox \global\let\l@r=R%
          \else%
              \doubleformat \global\let\l@r=L%
          \fi%
          \ifnum\outputpenalty>-20000 \else\dosupereject\fi%
      }
%
      \def\doubleformat{
          \shipout\vbox{%
             \makeheadline%
             \fullline{\box\leftcolumn\hfil\columnbox}%
             \makefootline%
          }%
          \advancepageno%
      }
%
      \def\columnbox{\leftline{\pagebody}}
%
      \outer\def\twobye{%
          \par\vfill\supereject\if R\l@r \null\vfill\eject\fi\end%
      }%
   }
%%
%  Macros for doing threecolumn output

   \def\threecols{
       \hsize = 2.0in \tenpoint

      \doublecolskip=.3333em plus .3333em minus .1em
      \global\spaceskip=\doublecolskip%
      \global\hyphenpenalty=0

       \singlespace

       \def\makeheadline{\vbox to 0pt{ \skip@=\topskip
           \advance\skip@ by -12pt \advance\skip@ by -2\normalbaselineskip
           \vskip\skip@ \fullline{\vbox to 12pt{}\the\headline} \vss
           }\nointerlineskip
       }
       \def\makefootline{\baselineskip = 1.5\normalbaselineskip
                 \fullline{\the\footline}
       }

       \output={
          \if L\l@r
             \global\setbox\leftcolumn=\columnbox \global\let\l@r=M
          \else \if M\l@r
                   \global\setbox\midcolumn=\columnbox
                   \global\let\l@r=R
                \else \tripleformat \global\let\l@r=L
                \fi
          \fi
          \ifnum\outputpenalty>-20000 \else\dosupereject\fi
       }

       \def\tripleformat{
           \shipout\vbox{
               \makeheadline
               \fullline{\box\leftcolumn\hfil\box\midcolumn\hfil\columnbox}
               \makefootline
           }
           \advancepageno
       }

       \def\columnbox{\leftline{\pagebody}}

       \outer\def\threebye{
           \par\vfill\supereject
           \if R\l@r \null\vfill\eject\fi
           \end
       }
   }

%%
%  extra font definitions
%%

%
%
%\def\ninef@nts{\relax
%    \textfont0=\ninerm          \scriptfont0=\sixrm
%      \scriptscriptfont0=\fiverm
%    \textfont1=\ninei           \scriptfont1=\sixi
%      \scriptscriptfont1=\fivei
%    \textfont2=\ninesy          \scriptfont2=\sixsy
%      \scriptscriptfont2=\fivesy
%    \textfont3=\nineexx          \scriptfont3=\nineex
%      \scriptscriptfont3=\nineex
%    \textfont\itfam=\nineit     \scriptfont\itfam=\ninei  % no \sevenit
%    \textfont\slfam=\ninesl     \scriptfont\slfam=\sixrm % no \sevensl
%    \textfont\bffam=\ninebf     \scriptfont\bffam=\sixbf
%      \scriptscriptfont\bffam=\fivebf
%    \textfont\ttfam=\ninett
%    \textfont\cpfam=\ninecp }
%


%%
%  If you are on the Amiga then check to see if the file
%  vd0:macros.tex exists, if it does load it
%  For the purpose of being able to do forwardreferencing
%  check to see if \jobname.csnames exists and if so \input it
%%

   \everyjob{%
      \xdef\today{\monthname~\number\day, \number\year}
      \GetIfExists myphyx.tex
      \ifforwardrefson%
         \GetIfExists \the\jobdir\jobname.csnames
      \fi%
   }

\contentsoff

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% About to finish
%
\def\phyzzx{PHY\setbox0=\hbox{Z}\copy0 \kern-0.5\wd0 \box0 X}
\def\fmtname{phyzzx}        \def\fmtversion{1.23}
\message{ by V.K. and M.W. }
%
\GetIfExists phyzzx.local
\lock
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Testing whether to \dump
%
\expandafter\def\expandafter\XXXX
	\expandafter{\csname\jobname\endcsname}
\def\YYYY{\phyzzx}
\ifx\XXXX\YYYY \let\next=\dump
\else \let\next=\relax \the\everyjob
\fi \next
%


