% bookstuff.sty % % Macro definitions for making a book from a set of articles. % PAGE DIMENSIONS % % First, the dimensions. Out of a desire to work at a size closer to % that of the actual volume, try printing in a 10pt font rather than % an 11pt font, scaling down all of the absolute dimensions by that % ratio. When producing the printout, ask dvips to scale the output % up by the corresponding factor, so that what we send to the % publisher has the same size as the proofs we have been making all % along. The magic number is magstephalf (1095). \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{\hbox{}\hfil\sl\rightmark\hskip .913in\rm\thepage}% \def\@oddfoot{}% \def\@evenhead{\rm\thepage\hskip .913in\sl\leftmark\hfil\hbox{}}% \def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} \textwidth=4.795in % 5.25in/1.095 \textheight=7.580in % 8.3in/1.095 \headheight=16.438pt % 18pt/1.095 \headsep=16.438pt % 18pt/1.095 \topmargin=0in \footskip=0.228in % .25in/1.095 \oddsidemargin=1.251in % 1.37in/1.095 \evensidemargin=1.251in % 1.37in/1.095 \def\paspconf@frontindent{.411in} % .45in/1.095 \setcounter{secnumdepth}{2} % % Table width from aspconf.sty. Was set to wider textwidth \pt@width\textwidth % % Need these settings to squeeze two figures/tables onto a page. \def\topfraction{0.95} \def\bottomfraction{0.05} \def\textfraction{0.05} \def\floatpagefraction{0.95} % Need a little stretchable space on the line containing the % Acknowledgments header. % \def\abstract{\vspace*{1.3\baselineskip}\bgroup\leftskip\paspconf@frontindent \noindent{\bf\sec@upcase{Abstract.}}\hskip 1em plus 0.5em minus 0.5em} \def\acknowledgments{\@startsection{paragraph}{4}{1em} {1ex plus .5ex minus .5ex}{-1em plus 0.5em minus 0.5em}{\bf}{\sec@upcase{Acknowledgments.}}} % Why are short captions not centered in the normal style? % I dunno. Let's fix that here. % \long\def\@makecaption#1#2{ \vskip 10pt \setbox\@tempboxa\hbox{#1\hskip 1.5em plus 0.5em minus 0.5em #2} \let\@tempdima=\hsize \advance\@tempdima by -2em \ifdim \wd\@tempboxa >\@tempdima {\leftskip 2em #1\hskip 1.5em #2\par} \else \hbox to\hsize{\hfil\hskip 2em\box\@tempboxa\hfil} \fi} % Here is the magic code from Chris Biemesderfer allowing % p boxes in tables NOT be right justified. The difference from the % definition of @arrayparboxrestore in latex.tex is changing % \rightskip and \@rightskip from zero to \@flushglue. %\def\@arrayparboxrestore{\let\par\@@par % \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii % \parindent\z@ \parskip\z@ \everypar{}\linewidth\hsize % \@totalleftmargin\z@ \leftskip\z@ % \rightskip\@flushglue \@rightskip\@flushglue % \parfillskip\@flushglue \lineskip\normallineskip % \baselineskip\normalbaselineskip\sloppy} % Define a \paper macro, whose arguments are the file name root, % authorlist for table of contents, short authorlist for page % header, and short title for page header. It creates a label % on the first page of the paper, with the name equal to the file % name root. So if the paper is in the file payneh.ltx, you % would use % % \paper{payneh}{H.~E. Payne and D.~J. Asson}{Payne and % Asson}{Electronic Submission of HST Proposals} % % and could refer to the first page of the article with % \pageref{payneh}. \invited is just like \paper, except that % \invitedtitle puts the words "(invited talk)" after the title % in the table of contents. \def\paper#1#2#3{\gdef\@tocauthorlist{#1}\clearpage \markboth{#2}{#3} } \def\invited#1#2#3{\gdef\@tocauthorlist{#1}\clearpage \markboth{#2}{#3} } \def\bookstufflabel#1{\label{bookstuff_#1}} % The \paperref macro is just a wrapper for \pageref that prepends % the bookstuff identifier to the reference name. \def\paperref#1{\pageref{bookstuff_#1}} % Hardwire \epsfbox and \plotfiddle to look in a particular % directory (../papers). The \psfigurepath accomplishes the same thing % for \psfig. (\psfigurepath was only introduced in version 1.10 of % the psfig macros, so get the latest version from % whitechapel.media.mit.edu if this doesn't work.) \psfigurepath{/data/doright2/proceedings/adass96/papers} \def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}% \global\def\epsfurx{540}\global\def\epsfury{720}% \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi \next{/data/doright2/proceedings/adass96/papers/#1}}% \def\plotfiddle#1#2#3#4#5#6#7{\centering \leavevmode \vbox to#2{\rule{0pt}{#2}} \special{psfile=/data/doright2/proceedings/adass96/papers/#1 voffset=#7 hoffset=#6 vscale=#5 hscale=#4 angle=#3}} % Macros for typesetting references to earlier volumes in the series. \def\adassI#1{in Astronomical Data Analysis Software and Systems I, ASP Conf. Ser., Vol.~25, eds. D.~M. Worrall, C. Biemesderfer, \&{} J. Barnes (San Francisco, ASP), p. #1} \def\adassII#1{in Astronomical Data Analysis Software and Systems II, ASP Conf. Ser., Vol.~52, eds. R.~J. Hanisch, R.~J.~V. Brissenden, \&{} J. Barnes (San Francisco, ASP), p. #1} \def\adassIII#1{in Astronomical Data Analysis Software and Systems III, ASP Conf. Ser., Vol.~61, eds. D.~R. Crabtree, R.~J. Hanisch, \&{} J. Barnes (San Francisco, ASP), p. #1} % Macro for typesetting references to the current volume. The argument % is the file name root. \def\adassIV#1{this volume, p. \pageref{#1}} % Make the \title commands double as sectioning commands: % % Reset footnote, figure, equation, table numbering. % Make table of contents entry. Much of the rigamarole that follows % is for formatting the table of contents entry. Each title and % authorlist is in a \minipage, to prevent them from being split % across a page break. \newcounter{paper} \@addtoreset{footnote}{paper} \@addtoreset{figure}{paper} \@addtoreset{equation}{paper} \@addtoreset{table}{paper} \@addtoreset{section}{paper} % % I wanted to add a copyright notice to each paper, for a version of % the book that I would then slice up into reprints. Define a newif % to say whether you want this special feature. The copyright goes % in as a PostScript special. \newif\if@forpreprints % \@forpreprintsfalse % normal state \@forpreprintstrue % for special case \def\copynotice{% \special{ps:: save initgraphics aspcopynotice restore}} \def\chapter{\thispagestyle{plain} \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\invitedchapter{\thispagestyle{plain} \global\@topnum\z@ \@afterindentfalse \secdef\@invitedchapter\@schapter} \def\@chapter[#1]#2{\vspace*{1.0\baselineskip} \if@forpreprints\copynotice\fi \@tempdima\textwidth \advance\@tempdima by-\paspconf@frontindent \hfill \parbox{\@tempdima} {\pretolerance=10000\raggedright\large\bf\sec@upcase{#2}}\par \vspace*{1\baselineskip}\thispagestyle{title} \refstepcounter{paper} \addtocontents{toc}{\protect\begin{tocentry}} \addcontentsline{toc}{section}{\strut #2} \addtocontents{toc}{\protect\smallskip} \addtocontents{toc}{\protect\@authortocline{1}{0.4in}{\strut\@tocauthorlist}} \addtocontents{toc}{\protect\end{tocentry}} } \def\title#1{\vspace*{1.0\baselineskip} \@tempdima\textwidth \advance\@tempdima by-\paspconf@frontindent \hfill \parbox{\@tempdima} {\pretolerance=10000\raggedright\large\bf\sec@upcase{#1}}\par \vspace*{1\baselineskip}\thispagestyle{title} \refstepcounter{paper} \addtocontents{toc}{\protect\begin{tocentry}} \addcontentsline{toc}{section}{#1} \addtocontents{toc}{\protect\smallskip} \addtocontents{toc}{\protect\@authortocline{1}{0.4in}{\@tocauthorlist}} \addtocontents{toc}{\protect\end{tocentry}} } \def\@invitedchapter[#1]#2{\vspace*{1.0\baselineskip} \if@forpreprints\copynotice\fi \@tempdima\textwidth \advance\@tempdima by-\paspconf@frontindent \hfill \parbox{\@tempdima} {\pretolerance=10000\raggedright\large\bf\sec@upcase{#2}}\par \vspace*{1\baselineskip}\thispagestyle{title} \refstepcounter{paper} \addtocontents{toc}{\protect\begin{tocentry}} \addcontentsline{toc}{section}{#2 (invited talk)} \addtocontents{toc}{\protect\smallskip} \addtocontents{toc}{\protect\@authortocline{1}{0.4in}{\@tocauthorlist}} \addtocontents{toc}{\protect\end{tocentry}} } \newenvironment{tocentry}{\noindent\begin{minipage}{\textwidth}}{\end{minipage}\medskip} \def\@authortocline#1#2#3{\vskip \z@ plus .2pt {\leftskip #2\relax \rightskip \@tocrmarg \parindent\z@\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdimb\textwidth \advance\@tempdimb by-#2 \advance\@tempdimb by-\@tocrmarg \parbox{\@tempdimb}{\pretolerance=10000\raggedright\small\sl#3}\par}} \def\l@section{\@dottedtocline{1}{\z@}{0.5in}} \def\l@author{\@authortocline{1}{0.4in}} % I've got some big roman numerals in the toc. Leave a little more % room for them. \def\@pnumwidth{1.85em} %\def\@tocrmarg{0.25in} \def\@tocrmarg{\@pnumwidth} % Redefine the tableofcontents macro to make the heading be larger % (so that it doesn't come out smaller than the part titles in % the toc). \def\tableofcontents{\section*{\large\bf Contents\@mkboth{CONTENTS}{CONTENTS}} \@starttoc{toc}} % Make sure that the ordinary sectioning commands don't add anything % to the table of contents. \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \def\@svsec{}\else \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em }\fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M \sec@upcase{#8}\par}% \endgroup \csname #1mark\endcsname{#7} %\addcontentsline %{toc}{#1}{\ifnum #2>\c@secnumdepth \else %\protect\numberline{\csname the#1\endcsname}\fi %#7} \else \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname {#7}%\addcontentsline %{toc}{#1}{\ifnum #2>\c@secnumdepth \else %\protect\numberline{\csname the#1\endcsname}\fi %#7} }\fi \@xsect{#5}} % Adjust the format of the \part command. \def\thepart{\arabic{part}} \def\l@part#1#2{\addpenalty{\@secpenalty} \addvspace{2.25em plus 1pt} \begingroup \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth {\large\bf \raggedright #1\hfil\par}\par \nobreak \endgroup} \def\part{\clearpage\null\par \addvspace{1in}\addvspace{4ex} \@afterindentfalse \secdef\@part\@spart} \def\@part[#1]#2{\refstepcounter{part} \addtocontents{toc}{\protect\vskip 5.5ex} \addtocontents{toc}{\protect\begin{tocentry}} \addcontentsline{toc}{part}{Part \thepart. #2} \addtocontents{toc}{\protect\end{tocentry}} {\flushright\Large\noindent Part \thepart. #2\markboth{}{}\thispagestyle{empty}\par} } %\ifnum \c@secnumdepth >\m@ne \refstepcounter{part} %\addcontentsline{toc}{part}{\thepart \hspace{1em}#1}\else %\addcontentsline{toc}{part}{#1}\fi { \parindent 0pt \raggedright %\ifnum \c@secnumdepth >\m@ne \Large\bf Part \thepart. \fi %#2\markboth{}{}\thispagestyle{empty}\par } \nobreak \vskip 3ex \@afterheading } \def\@spart#1{{\parindent 0pt \raggedright \huge #1\par} \nobreak \vskip 3ex \@afterheading } % Modify the cleardoublepage command so that if a blank page is % required, it has an empty header. \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else \thispagestyle{plain}\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} % When you use \altaffiltext, have it count as a footnote by % incrementing the footnote counter. This allows footnotes to % be used without duplicate footnote numbers. \def\altaffiltext#1#2{\footnotetext[#1]{#2}\refstepcounter{footnote}} % Stuff for making an author index. Just copy all of the index making % stuff, changing "index" => "aindex". The output file has a .aidx % extension. \def\makeaindex{\if@filesw \newwrite\@aindexfile \immediate\openout\@aindexfile=\jobname.aidx \def\aindex{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \@wraindex}\typeout {Writing author index file \jobname.aidx }\fi} \def\@wraindex#1{\let\thepage\relax \xdef\@gtempa{\write\@aindexfile{\string \indexentry{#1}{\thepage}}}\endgroup\@gtempa \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\aindex{\@bsphack\begingroup \@sanitize\@aindex} \def\@aindex#1{\endgroup\@esphack} \def\printaindex{\@input{\jobname.aind}} \def\theaindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35pt\twocolumn[\section*{Author Index}] \addtocontents{toc}{\protect\medskip} \addcontentsline{toc}{section}{Author index} \markboth{Author Index}{Author Index}\thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem} \def\endtheaindex{\onecolumn} \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35pt\twocolumn[\section*{Index}] % \addtocontents{toc}{\protect\medskip} \addcontentsline{toc}{section}{Index} \markboth{Index}{Index}\thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem} \def\endtheindex{\onecolumn} % \bb is used when making the (author) index, to set the page number in % bold (indicates first author). \def\bb#1{{\bf #1}} % Make slight modifications of the references environment to create % a participants environment. \def\participants{\noindent{\bf Participant List}\bigskip \markboth{Participant List}{Participant List}%\thispagestyle{title} \addcontentsline{toc}{section}{Conference participants} \bgroup\parindent=0pt\parskip=.5ex \def\refpar{\par\hangindent=3em\hangafter=1} \raggedright} \def\endparticipants{\refpar\egroup} % For those papers that want \tt font in \scriptsize %\font\sevtt = cmtt10 \@ptscale7 % typewriter \def\viipt{\textfont\z@\sevrm \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm \textfont\@ne\sevmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi \textfont\tw@\sevsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\sevrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath \unboldmath\@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\fam\itfam\sevit}\textfont\itfam\sevit \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit \def\psl{\@subfont\sl\it}% \def\pbf{\@getfont\pbf\bffam\@viipt{cmbx7}}% \def\ptt{\fam\ttfam\sevtt}\textfont\ttfam\sevtt \scriptfont\ttfam\sevtt \scriptscriptfont\ttfam\sevtt \def\psf{\@subfont\sf\rm}% \def\psc{\@subfont\sc\rm}% \def\ly{\fam\lyfam\sevly}\textfont\lyfam\sevly \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly \@setstrut \rm} % Kill the extra footnote rule for tablenotes, since we have gone % to the trouble of making sure that there are rules at the bottom % of each table. \def\spewtablenotes{ \ifx\tblnote@list\@empty \else \let\@temptokena=\tblnote@list %\gdef\tblnote@list{\@empty} \xdef\tblnote@list{\@empty} %\vspace{4.5ex} %\footnoterule %\vspace{.5ex} {\footnotesize\@temptokena} \fi} % Add an underscore character, for use with \tt font \def\us{\char '137} % Standard printing of FORTRAN \def\fortran{{\sc fortran}} \def\micro{\hbox{$\mu$}} \def\kms{km\,s$^{-1}$} \def\Sim{\hbox{$\sim$}} \def\PM{\hbox{$\pm$}} % The \htmladdnormallink command has some unwanted white space in it. \renewcommand{\htmladdnormallinkfoot}[2]{#1\footnote{#2}} \renewcommand{\htmladdnormallink}[2]{#1} \def\epsscale#1{\def\eps@scaling{#1}} % was \gdef \def\plotone#1{\centering \leavevmode \epsfxsize=\eps@scaling\textwidth \hbox{\epsfbox{#1}}} \let\pslink\@gobbletwo \def\pslinktwo#1#2#3#4{} \def\pslinkthree#1#2#3#4#5#6{} % change the appendix command to put in the puctuation, as in % the apsconf.sty. \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{Appendix \Alph{section}.}}