% phase16.sty (Be sure to use this name when saving the file!) % % Style file for HST Phase One proposals. % % This version is for Cycle 16. % % 10/05/06 % % There are two main types of proposals: observing proposals % and archival research proposals. This style file is for % both types since there is a large amount of overlap between % the two. % % Pages 1-X. The "General Questions" responses. Scientific % justification and so on. Allowed to spill over onto % a further pages. % % % \begin{macro}{\bottomcaption} % The user-commands |\topcaption| and |\bottomcaption| set the % boolean |@topcaption| to determine where to put the % tablecaption. The default is to put the caption on the top of % the table % \begin{macrocode} % \begin{macrocode} \newif\if@topcaption \@topcaptiontrue \def\topcaption{\@topcaptiontrue\tablecaption} \def\bottomcaption{\@topcaptionfalse\tablecaption} % \end{macrocode} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\tablecaption} % This command has to function exactly like |\caption| does except % it has to store its argument (and the optional argument) for % later processing \emph{within} the supertabular environment. % % \begin{macrocode} \long\def\tablecaption{% \refstepcounter{table} \@dblarg{\@xtablecaption}} \long\def\@xtablecaption[#1]#2{% \long\gdef\@process@tablecaption{\@stcaption{table}[#1]{#2}}} \global\let\@process@tablecaption\relax % \end{macrocode} % \end{macro} % % This is a redefinition of LaTeX's \@caption, \@makecaption is % called within a group so as not to return to \normalsize globally. % also a fix is made for the `feature' of the \@makecaption of % article.sty and friends that a caption ALWAYS gets a \vskip 10pt % at the top and NONE at the bottom. If a user wants to precede his % table with a caption this results in a collision. % % \begin{macrocode} \long\def\@stcaption#1[#2]#3{\par% \addcontentsline{\csname ext@#1\endcsname}{#1}% {\protect\numberline{% \csname the#1\endcsname}{\ignorespaces #2}} \begingroup \@parboxrestore \normalsize \if@topcaption \vskip -10pt \fi \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par \if@topcaption \vskip 10pt \fi \endgroup} % \end{macrocode} % % |\tablehead| activates the new tabular |\cr| commands. % \begin{macrocode} \newcommand\tablehead[1]{\gdef\@tablehead{#1}} \tablehead{} \newcommand\tablefirsthead[1]{\gdef\@table@first@head{#1}} % \end{macrocode} % % % If the user uses an extra amount of tabular-data (like % \|multicolumn|) in |\tabletail| \TeX\ starts looping because of % the definition of |\nextline|. So make |\\| act like just a |\cr| % inside this tail to prevent the loop. Save and restore the value % of |\\| % % \begin{macrocode} \newcommand\tabletail[1]{% \gdef\@tabletail{% \noalign{% \global\let\@savcr=\\ \global\let\\=\cr}% #1% \noalign{\global\let\\=\@savcr}}} \tabletail{} \newcommand\tablelasttail[1]{\gdef\@table@last@tail{#1}} % \end{macrocode} % % \begin{macro}{\sttraceon} % \changes{v3.7b}{1994/05/16}{Added macro} % \begin{macro}{\sttraceoff} % \changes{v3.7b}{1994/05/16}{Added macro} % There now is a possiblity to follow the decisions supertabular % makes about breaking the tabular. This has to be enabled when % converting this file with \texttt{docstrip} to a \texttt{.sty} % file. % \begin{macrocode} %\newif\if@st@trace %\newcommand\sttraceon{\@st@tracetrue} %\newcommand\sttraceoff{\@st@tracefalse} %\newif\if@st@trace % \end{macrocode} % The default is to turn tracing off % \begin{macrocode} %\sttraceoff % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@sttrace} % A macro that gets the trace message as its argument % \begin{macrocode} %\newcommand\@sttrace[1]{\if@st@trace\typeout{ST trace: #1}\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\page@left} % \changes{v3.7b}{1994/05/16}{Renamed from \cmd\maxsize} % This register holds the estimate of the amount of space left over % on the current page. This is used in the decision when to start a % new page. % \begin{macrocode} \newdimen\page@left % \end{macrocode} % \end{macro} % % \begin{macrocode} \newdimen\actsize % actual pagesize \newdimen\@tailht % height of table tail (if any) \newdimen\parboxheight % height plus depth of a parbox-argument \newdimen\addspace % stores the value of \\[#1] \newdimen\midlineheight % estimated size of a normal line \newdimen\pargcorrection % to set page height tolerance if p-arg \newdimen\computedimens % computation variable \newbox\tabparbox % \end{macrocode} % % \begin{macro}{\@stabularcr} % \begin{macro}{\@sxtabularcr} % These are redefinitions of |\@tabularcr| and |\@xtabularcr|. This % is needed to include |\nextline| in the definition of % |\@xtabularcr|. % % All redefined macros have names that are similar to the original % names, except with a leading 's' % \begin{macrocode} \def\@stabularcr{{\ifnum0=`}\fi\@ifstar{\@sxtabularcr}{\@sxtabularcr}} \def\@sxtabularcr{% \@ifnextchar[{\@sargtabularcr}{\ifnum0=`{\fi}\cr\nextline}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macrocode} \def\@sargtabularcr[#1]{% \ifnum0=`{\fi}% \ifdim #1>\z@ \unskip\@sxargarraycr{#1} \else \@syargarraycr{#1}% \fi} % \end{macrocode} % % In this case we need to copy the value of the optional argument % of |\\| in our private register |\addspace|. % \begin{macrocode} \def\@sxargarraycr#1{% \@tempdima #1\advance\@tempdima \dp \@arstrutbox \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr \noalign{\global\addspace=#1}\nextline} % \end{macrocode} % % Here we need to insert |\nextline| % \begin{macrocode} \def\@syargarraycr#1{\cr\noalign{\vskip #1\global\addspace=#1}\nextline} % \end{macrocode} % % The macros that deal with parbox columns need to be redefined, % because we need to know the size of the parbox. Also the maximum % size of the tabular on this page is shrunk somewhat. % \begin{macrocode} \def\@sstartpbox#1{% \global\advance\page@left by -\pargcorrection \global\pargcorrection=0pt % \end{macrocode} % To achieve our goal we need to save the text in box. % \begin{macrocode} \setbox\tabparbox\vtop\bgroup\hsize#1\@arrayparboxrestore} % \end{macrocode} % % \begin{macrocode} \def\@sastartpbox#1{% \bgroup\hsize#1% \global\advance\page@left by -\pargcorrection \global\pargcorrection=0pt \setbox\tabparbox\vtop\bgroup\hsize#1\@arrayparboxrestore} % \end{macrocode} % % 11/03/92 JB: The following change didn't find its way into the % \@sendpbox command. This caused a difference in % linespacing between a supertabular and a normal % tabular. % \def\@endpbox{\unskip\strut\par\egroup\hfil} % % 14 Jan 89: Def of \@endpbox changed from % % \def\@endpbox{\par\vskip\dp\@arstrutbox\egroup\hfil} % % so vertical spacing works out right if the last line of a `p' % % entry has a descender. % \begin{macrocode} \def\@sendpbox{% \unskip\strut\par\egroup \computedimens=\ht\tabparbox \advance\computedimens by \dp\tabparbox \ifnum\parboxheight<\computedimens \global\parboxheight=\computedimens \fi \computedimens=\z@ \box\tabparbox\hfil} \def\@saendpbox{% \unskip\strut\par\egroup \computedimens=\ht\tabparbox \advance\computedimens by \dp\tabparbox \ifnum\parboxheight<\computedimens \global\parboxheight=\computedimens \fi \computedimens=\z@ \unvbox\tabparbox\egroup} % \end{macrocode} % % %%%% Here start really new supertabular commands %%%% % % \begin{macro}{\calmidlineheight} % Estimates the height of normal line taking |\arraystretch| into % account. % \begin{macrocode} \def\calmidlineheight{% \midlineheight=\arraystretch \baslineskp \global\advance\midlineheight by 1\p@ % \@sttrace{Average line height:\the\midlineheight}% \global\pargcorrection=4\midlineheight % \@sttrace{Correction for p columns: \the\pargcorrection}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\@calfirstpageht} % \changes{v3.7a}{1993/04/05}{Renamed from \cmd\calpage} % Estimates the space left on the current page and decides whether % the tabular can be started on this page or on a new page. % \begin{macrocode} \def\@calfirstpageht{% % \@sttrace{Calculating height of tabular on first page} % \end{macrocode} % The \TeX\ register |\pagetotal| contains the height of the page % sofar, the \LaTeX\ register |\@colroom| contains the height of % the column. % \begin{macrocode} \global\actsize\pagetotal \global\page@left\@colroom % \@sttrace{pagetotal = \the\pagetotal; % page@left = \the\page@left}% % \end{macrocode} % When we are in twocolumn mode \TeX\ may still be collecting % material for the first column although there seems to be no space % left. In this case we have to check against two times |\page@left|. % \begin{macrocode} \if@twocolumn % \@sttrace{two column mode}% \if@firstcolumn % \@sttrace{First column}% \ifnum\actsize > \page@left \global\maxsize=2\page@left \ifnum\actsize > \page@left \newpage\@calnextpageht % \@sttrace{starting new page}% \else % \end{macrocode} % In this case we're in the second column, so we have to compensate % for the material in the first column. % \begin{macrocode} % \@sttrace{Second column}% \global\advance\page@left -\actsize \global\advance\page@left -\@colroom \fi \fi \fi \else % \end{macrocode} % In one column mode there is a simple decision. % \begin{macrocode} % \@sttrace{one column mode}% \ifnum\actsize > \page@left % \@sttrace{starting new page}% \newpage\@calnextpageht % \end{macrocode} % When we are not starting a new page subtract the size of the % material already on it from the available space. % \begin{macrocode} \else \global\advance\page@left by -\actsize \global\actsize\z@ \fi \fi % \end{macrocode} % To decide when to start a new page, we need to know the vertical % size of the tail of the table. % \begin{macrocode} \ifx\empty\@tabletail \@tailht=\z@ \else \setbox\@tempboxa=\vbox{\@arrayparboxrestore% \expandafter\tabular\expandafter{\tableformat} \@tabletail\endtabular} \@tailht=\ht\@tempboxa\advance\@tailht\dp\@tempboxa \fi % \end{macrocode} % We add the average height of a line to this because when we % decide to continue the tabular we need to have enough space left % for one line an the tail. % \begin{macrocode} \advance\@tailht by \midlineheight % \@sttrace{Height of tail: \the\@tailht} % \@sttrace{Maximum height of tabular: \the\page@left} } % Here is the definition of supertabular % \end{macrocode} % \end{macro} % % \begin{macro}{\@calnextpageht} % \changes{v3.7a}{1993/04/05}{Macro added} % This calculates the maximum height of the tabular on all % subsequent pages of the supertabular environment. The correction % for parbox columns is somewhat smaller then on the first page of % the environment % \begin{macrocode} \def\@calnextpageht{% % \@sttrace{Calculating height of tabular on next page} \global\page@left\@colroom \global\pargcorrection=2\midlineheight % \@sttrace{Correction for p columns: \the\pargcorrection}% \global\actsize=\z@ % \@sttrace{Maximum height of tabular: \the\page@left} } % \end{macrocode} % \end{macro} % % \begin{macro}{\supertabular} % We start by saving the preamble of the tabular in a macro. % \begin{macrocode} \def\supertabular#1 {% \def\tableformat{#1} % \@sttrace{Starting a new supertabular} % \end{macrocode} % Then remember that this is not a \textsf{supertabular*} % environment. % \begin{macrocode} \global\starfalse % \end{macrocode} % If the caption should come at the top we insert it here. % \begin{macrocode} \if@topcaption \@process@tablecaption \fi % \end{macrocode} % Save the original definition of |\\|. % \begin{macrocode} \global\let\@oldcr=\\ % \end{macrocode} % Save the current value of |\baselineskip|, as we need it in the % calculation of the average height of a line. % \begin{macrocode} \def\baslineskp{\baselineskip}% \calmidlineheight \@calfirstpageht % \end{macrocode} % We have to check whether \texttt{array.sty} was loaded, because % some of the internal macros have different names. % \begin{macrocode} \ifx\undefined\@classix % \end{macrocode} % Save old |\@tabularcr| and insert the definition of % |\@stabularcr|. % \begin{macrocode} \let\@@tabularcr\@tabularcr \let\@tabularcr\@stabularcr % \end{macrocode} % Activate the new parbox algorithm. % \begin{macrocode} \let\@@startpbox=\@sstartpbox \let\@@endpbox=\@sendpbox \else % \end{macrocode} % When \texttt{array.sty} was loaded things are a bit different. % \begin{macrocode} \let\@@tabularcr\@arraycr \let\@arraycr\@stabularcr \let\org@startpbox=\@startpbox \let\org@endpbox=\@endpbox \let\@startpbox=\@sastartpbox \let\@endpbox=\@saendpbox \fi % \end{macrocode} % % Moved the check for the use of \tablefirsthead to befor the % start of the tabular environment in order to make the \futurelet % inside \hline do its work correctly (15.02.91) % % Check if the head of the table should be different for the first % and subsequent pages. % \begin{macrocode} \ifx\@table@first@head\undefined \let\@@tablehead=\@tablehead \else \let\@@tablehead=\@table@first@head \fi % \end{macrocode} % Finally start a normal \textsf{tabular} environment. % \begin{macrocode} \expandafter\tabular\expandafter{\tableformat} \@@tablehead} % \end{macrocode} % \end{macro} % % \begin{macro}{\endsupertabular} % This closes the environment. % \begin{macrocode} \def\endsupertabular{% \ifx\@table@last@tail\undefined \@tabletail \else \@table@last@tail \fi \endtabular % \end{macrocode} % Restore the original definition of |\@tabularcr| % \begin{macrocode} \ifx\undefined\@classix \let\@tabularcr\@@tabularcr \else \let\@arraycr\@@tabularcr \let\@startpbox=\org@startpbox \let\@endpbox=\org@endpbox \fi % \end{macrocode} % Check if we have to insert a caption and restore to default % behaviour of putting captions at the top. % \begin{macrocode} \if@topcaption \else \@process@tablecaption \@topcaptiontrue \fi % \end{macrocode} % % Restore the meaning of |\\| to the one it had before the start % of this environment. Also re-initialize some control-sequences % % \begin{macrocode} \global\let\\=\@oldcr \let\@table@first@head\undefined \let\@table@last@tail\undefined \global\let\@process@tablecaption\relax % \@sttrace{Ended a supertabular} } % \end{macrocode} % \end{macro} % % \begin{macro}{\ifstar} % This switch is used in the internal macros to remember which % kind of environment was started. % \begin{macrocode} \newif\ifstar % \end{macrocode} % \end{macro} % % \begin{macro}{\tabularwidth} % For the \textsf{supertabular*} environment it is necessary to % store the intended width of the tabular. % \begin{macrocode} \newdimen\tabularwidth % \end{macrocode} % \end{macro} % % \begin{macro}{\supertabular*} % We start by saving the intended width and the preamble of the % \textsf{tabular*}. % \begin{macrocode} \@namedef{supertabular*}#1#2 {% % \@sttrace{Starting a new supertabular*} \def\tableformat{#2} \tabularwidth=#1 \global\startrue % \end{macrocode} % If the caption should come at the top we insert it here. % \begin{macrocode} \if@topcaption\@process@tablecaption\fi % \end{macrocode} % Save the original definition of |\\|. % \begin{macrocode} \global\let\@oldcr=\\ % \end{macrocode} % Save the current value of |\baselineskip|, as we need it in the % calculation of the average height of a line. % \begin{macrocode} \def\baslineskp{\baselineskip}% \calmidlineheight \@calfirstpageht % \end{macrocode} % We have to check whether \texttt{array.sty} was loaded, because % some of the internal macros have different names. % \begin{macrocode} \ifx\undefined\@classix % \end{macrocode} % Save old |\@tabularcr| and insert the definition of % |\@stabularcr|. % \begin{macrocode} \let\@@tabularcr\@tabularcr \let\@tabularcr\@stabularcr % \end{macrocode} % Activate the new parbox algorithm % \begin{macrocode} \let\@@startpbox=\@sstartpbox \let\@@endpbox=\@sendpbox \else % \end{macrocode} % When \texttt{array.sty} was loaded things are a bit different. % \begin{macrocode} \let\@@tabularcr\@arraycr \let\@arraycr\@stabularcr \let\org@startpbox=\@startpbox \let\org@endpbox=\@endpbox \let\@startpbox=\@sastartpbox \let\@endpbox=\@saendpbox \fi % \end{macrocode} % % Check if the head of the table should be different for the first % and subsequent pages. % \begin{macrocode} \ifx\@table@first@head\undefined \let\@@tablehead\@tablehead \else \let\@@tablehead\@table@first@head \fi % \end{macrocode} % Finally start a normal \textsf{tabular*} environment. % \begin{macrocode} \expandafter\csname tabular*\expandafter\endcsname \expandafter{\expandafter\tabularwidth\expandafter}% \expandafter{\tableformat}% \@@tablehead}% % \end{macrocode} % \end{macro} % % \begin{macro}{\endsupertabular*} % This closes the environment. % \begin{macrocode} \@namedef{endsupertabular*}{% \ifx\@table@last@tail\undefined \@tabletail \else \@table@last@tail \fi \csname endtabular*\endcsname % \end{macrocode} % Restore the old definition of |\@tabularcr|. % \begin{macrocode} \ifx\undefined\@classix \let\@tabularcr\@@tabularcr \else \let\@arraycr\@@tabularcr \let\@startpbox=\org@startpbox \let\@endpbox=\org@endpbox \fi % \end{macrocode} % Check if we have to insert a caption and restore to default % behaviour of putting captions at the top. % \begin{macrocode} \if@topcaption \else \@process@tablecaption \@topcaptiontrue \fi % \end{macrocode} % % Restore the meaning of |\\| to the one it had before the start % of this environment. Also re-initialize some control-sequences % % \begin{macrocode} \global\let\\=\@oldcr \let\@table@first@head\undefined \let\@table@last@tail\undefined \global\let\@process@tablecaption\relax % \@sttrace{Ended a supertabular*} } % \end{macrocode} % \end{macro} % % \begin{macro}{\nextline} % This macro is called by each |\\| inside the tabular environment. % It updates the estimate of the amount of space left on the % current page and starts a new page if necessary. % \begin{macrocode} \def\nextline{% \noalign{% \ifnum\parboxheight<\midlineheight % \end{macrocode} % If there is a non-empty line, but an empty parbox, then % |\parboxheight| might be non-zero, but too small thereby breaking % the algorithm. Therefore we estimate the height of the line to be % |\midlineheight| in this case. % \begin{macrocode} \global\advance\page@left -\midlineheight % \end{macrocode} % |\addspace| is the value of the optional argument of |\\|. % \begin{macrocode} \global\advance\page@left -\addspace \else % \end{macrocode} % When the parbox was not empty we take into account its height % (plus a bit extra). % \begin{macrocode} % \@sttrace{Added par box with height \the\parboxheight}% \global\advance\page@left -\parboxheight \global\advance\page@left -0.1\parboxheight \global\parboxheight\z@ \fi \global\addspace=\z@ % \@sttrace{Space left for tabular: \the\page@left} } % \end{macrocode} % When there is not enough space left we start a new page. % \begin{macrocode} \ifnum\page@left<\@tailht \st@newpage \else % \end{macrocode} % % This line is necessary because the tablehead has to be inserted % *after* the |\if\else\fi|-clause. For this purpose |\st@next| is % used. In the middle of tableprocessing it shoud be an *empty* % macro (*not* |\relax|). (15.2.91) % \begin{macrocode} \noalign{\global\let\st@next\@empty}% \fi\st@next} % \end{macrocode} % \end{macro} % % \begin{macro}{\st@newpage} % \changes{v3.7b}{1994/05/16}{Added macro, split off from % \cmd\nextline} % This macro performs the actions necessary to start a new page. % \begin{macrocode} \def\st@newpage{% % \noalign{\@sttrace{Starting new page, writing tail}} % \end{macrocode} % Output |\tabletail|, close the tabular environment, output all % material and start a fresh new page. % \begin{macrocode} \@tabletail \ifstar \csname endtabular*\endcsname \else \endtabular \fi % \if@twocolumn % \if@firstcolumn % \newpage\@calnextpageht % \global\actsize=\z@ % \else % \newpage\@calnextpageht % \fi % \else \newpage\@calnextpageht % \fi \let\st@next\@tablehead % \@sttrace{writing head} \ifstar \expandafter\csname tabular*\expandafter\endcsname \expandafter{\expandafter\tabularwidth\expandafter}% \expandafter{\tableformat}% \else \expandafter\tabular\expandafter{\tableformat}% \fi} % \end{macrocode} % % end of supertabular.sty % EPS FIGURE SUPPORT % % We will support the incorporation of PostScript figures in % the manner of AASTeX. This means we will assume the presence % of the Rokicki dvips package, and use specials with that % syntax. So, taken from aaspp.sty: % % Include Rokicki's epsf.sty file explicitly. % \@ifundefined{epsfbox}{\input{epsf.sty}}{\relax} % % Simplified EPS inclusion macros so we can see how % this goes... These are layered on Rokicki's dvips % material, and are dependent on the author's use of % that DVI driver. % % \plotone{EPSFILE} \plottwo{EPSFILE}{EPSFILE} % \plotfiddle{EPSFILE}{VSIZE}{ROT}{HSF}{VSF}{HTRANS}{VTRANS} % % \plotone inserts the plot in a space that is % \columnwidth wide; the plot is scaled so the % horizontal dimension fits in the text width, and the % vertical dimension is scaled to maintain the aspect % ratio. \plottwo inserts two plots next to each other % in one \columnwidth, sort of like "two-up" mode. % % EPSFILE name of file with EPS % % The following arguments are for the \plotfiddle macro % which formats the \special itself, prepares vspace, % etc. This completely bypasses Rokicki's macros that % attempt to rationalize the EPS BoundingBox with the % LaTeX page dimensions. % % % VSIZE vertical white space to allow for plot % ROT rotation angle % HSF horiz scale factor % VSF vert scale factor % HTRANS horiz translation % VTRANS vert translation % %\epsfverbosetrue % % From Jeannette, to be in AASTeX version 4.0 % \def\eps@scaling{.95} \def\epsscale#1{\gdef\eps@scaling{#1}} \def\plotone#1{\centering \leavevmode \epsfxsize=\eps@scaling\columnwidth \epsfbox{#1}} \def\plottwo#1#2{\centering \leavevmode \epsfxsize=.45\columnwidth \hbox{\epsfbox{#1}} \hfil \epsfxsize=.45\columnwidth \epsfbox{#2}} \def\plotfiddle#1#2#3#4#5#6#7{\centering \leavevmode \vbox to#2{\rule{0pt}{#2}} \special{psfile=#1 voffset=#7 hoffset=#6 vscale=#5 hscale=#4 angle=#3}} % PAGE LAYOUT % % Hopefully, everything will fit on an A4 % page, although the right margin may be a bit cramped. % \headheight 40pt \headsep 30pt \oddsidemargin 0pt \parindent 2em \topmargin -33pt \textwidth 6.5in \textheight 8.5in \raggedbottom % TABLE JUSTIFICATION % % 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} % FOOTNOTES % % Changes for footnotes. The observation summary and % investigator list tables are set within minipages to keep % the footnotes close to the table, if they are used. Set % \footins to 0pt to keep them REALLY close. % \def\thefootnote{\arabic{footnote}} \def\thempfootnote{\arabic{mpfootnote}} \let\footnotesize\small \let\footnoterule\relax \skip\@mpfootins 0pt plus 4pt minus 2pt % CAPTIONS % % There was a request that captions be in a smaller size than % the running text. Here, it is set to \small. % \long\def\@makecaption#1#2{% \vskip 10pt \sbox\@tempboxa{\small #1: #2}% \ifdim \wd\@tempboxa >\hsize \small #1: #2\par \else \global \@minipagefalse \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip 10pt} % SECTIONING COMMANDS % % It would be nice to allow proposers to use sectioning commands % when composing long replies---in the scientific justification, % for example. Make sure they are less conspicuous than the % headers for each question. % \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\normalsize\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\normalsize\it}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\normalsize}} % GENERAL FORM % % Define macros to print out little section headers for % each of the questions that appear in this part of the % form. Each calls \markanswer, which puts a big black % box in the left margin. Reset the section counter, % so that if the proposer used sectioning commands in % an answer, they start at 1 again in the next answer. % As in LaTeX, suppress the indentation of the first % paragraph following a header. % \def\markanswer#1{% \vskip 12pt \setcounter{section}{0} {\noindent\kern -24pt\vrule width10pt height10pt \hskip 12pt\large\bf #1} \par\nobreak\vskip 12pt\@afterindentfalse \@afterheading} % \def\budgetnarrative{% \markanswer{Budget Narrative}} \def\justification{\newpage \markanswer{Scientific Justification}} \def\describeobservations{% \markanswer{Description of the Observations and Immediate Objective}} \def\describetwogyro{% \markanswer{Strategy for Two-Gyro Observations}} \def\describearchival{% \markanswer{Analysis Plan}} \def\technicaldescription{% \markanswer{Technical Description}} \def\specialreq{% \markanswer{Special Requirements}} \def\coordinatedobs{% \markanswer{Coordinated Observations}} \def\previousprograms{% \markanswer{Previous Related HST Programs}} \def\duplications{% \markanswer{Justify Duplications}} \def\rationaletime{\newpage \markanswer{Rationale for DD Time}} \def\justifyscience{% \markanswer{Science Justification}} \def\describeobservations{% \markanswer{Description of the Observations and Immediate Objective}} \def\technicaldescription{% \markanswer{Technical Description}} \def\schedulingreqs{% \markanswer{Scheduling Requirements}} \def\relatedprops{% \markanswer{Related Proposals}} % ABBREVIATIONS % % Special symbols of astronomical interest. % % These came from Howard Bond, I think, by way % of the STScI preprint style: % \def\ang{\AA} %Angstrom unit \def\degpoint{\mbox{$^\circ\mskip-7.0mu.\,$}} \def\halpha{\mbox{H$\alpha$}} \def\hbeta{\mbox{H$\beta$}} \def\hgamma{\mbox{H$\gamma$}} \def\kms{\,km~s$^{-1}$} % note leading thinspace \def\lya{\mbox{Ly$\alpha$}} \def\lyb{\mbox{Ly$\beta$}} \def\minpoint{\mbox{$'\mskip-4.7mu.\mskip0.8mu$}} \def\mv{\mbox{$m_{_V}$}} \def\Mv{\mbox{$M_{_V}$}} \def\peryr{\mbox{$\>\rm yr^{-1}$}} \def\secpoint{\mbox{$''\mskip-7.6mu.\,$}} \def\sqdeg{\mbox{${\rm deg}^2$}} \def\squig{\sim\!\!} %\def\subsun{\mbox{$_{\twelvesy\odot}$}} \def\subsun{\mbox{$_{\normalsize\odot}$}} % % These are from AASTeX, with notes: % % Handy little things everybody works out for themselves % anyway. Many of these come from Springer's A&A % package, and some were contributed by Francois % Schweizer at DTM. You can go berserk making these % up, especially when you start getting into the % composite ones. We have tried to select a tractable % number that were useful, and somewhat difficult to get % right because fussy kerning or some such is required. % Most can be used in or out of math mode with impunity; % \alt and \agt are relations and can only be used in % math mode. % \def\deg{\hbox{$^\circ$}} \def\sun{\hbox{$\odot$}} \def\earth{\hbox{$\oplus$}} \def\lesssim{\mathrel{\hbox{\rlap{\hbox{% \lower4pt\hbox{$\sim$}}}\hbox{$<$}}}} \def\gtrsim{\mathrel{\hbox{\rlap{\hbox{% \lower4pt\hbox{$\sim$}}}\hbox{$>$}}}} \def\sq{\hbox{\rlap{$\sqcap$}$\sqcup$}} \def\arcmin{\hbox{$^\prime$}} \def\arcsec{\hbox{$^{\prime\prime}$}} \def\fd{\hbox{$.\!\!^{\rm d}$}} \def\fh{\hbox{$.\!\!^{\rm h}$}} \def\fm{\hbox{$.\!\!^{\rm m}$}} \def\fs{\hbox{$.\!\!^{\rm s}$}} \def\fdg{\hbox{$.\!\!^\circ$}} \def\farcm{\hbox{$.\mkern-4mu^\prime$}} \def\farcs{\hbox{$.\!\!^{\prime\prime}$}} \def\fp{\hbox{$.\!\!^{\scriptscriptstyle\rm p}$}} \def\micron{\hbox{$\mu$m}} % % For Springer A&A compliance... \let\la=\lesssim \let\ga=\gtrsim % % % Permit author to typeset "case" fractions. This is % sometimes wanted in displayed equations, during which % LaTeX will set fractions specified as \frac{x}{y} % as "built-up" fractions (numerator and denominator % at body text size). % \def\case#1#2{\hbox{$\frac{#1}{#2}$}} % % Permit author to typeset fractions set with solidus % where the size is reduced and the numerals are % oriented diagonally. Note that this is different from % a "shilled" fraction, which the author can produce % without any special formatting markup. Define markup % shorthands for several common fractions using solidus. % \def\slantfrac#1#2{\hbox{$\,^#1\!/_#2$}} \def\onehalf{\slantfrac{1}{2}} \def\onethird{\slantfrac{1}{3}} \def\twothirds{\slantfrac{2}{3}} \def\onequarter{\slantfrac{1}{4}} \def\threequarters{\slantfrac{3}{4}} % \def\ubvr{\hbox{$U\!BV\!R$}} % UBVR system \def\ub{\hbox{$U\!-\!B$}} % U-B \def\bv{\hbox{$B\!-\!V$}} % B-V \def\vr{\hbox{$V\!-\!R$}} % V-R \def\ur{\hbox{$U\!-\!R$}} % U-R % % Notation for atomic species (ionization levels). The % ionization state is specified as the second argument, % and should be given as a numeral. The macro has to % expand the numeric state into the proper notation % for the publication (roman, numeric, plus signs, etc.) % % \ion{ELEMENT}{IONIZATION STATE} % \def\ion#1#2{#1$\;${\small\rm\@Roman{#2}}\relax} % % Centered ellipsis for use in tables (for unknown % values). \nodata is generalized markup for this % notion: format of null-valued entries in tables is % style-specific. % %\def\cellipsis{\hfill$\cdots$\hfill} \def\nodata{\multicolumn{1}{c}{$\cdots$}} % % End of stuff from AASTeX % soprop.cls (New LaTeX2e class file for Steward Observatory proposals) % % ***** DO NOT EDIT OR RENAME THIS FILE ***** % % Revision history: % v0.9 -- R.A. Jansen 06/05/2006 Initial LaTeX2e version, submitted to TAC; % complete rewrite of 'sodefs06.sty' % v1.0 -- R.A. Jansen 06/18/2006 Initial LaTeX2e version, as shipped out for % the 2006C Call for Proposals. % v1.1 -- P. Smith 09/25/2006 Removed "past/present/future" table on % cover page; added "time request" narrative. % v1.2 -- R.A. Jansen 10/06/2006 Fixed bugs of missing '\obs[G-L]@*', of % 'sopwarningu' (6-->12), and of missing % 'altruns' (3); corrected page limit check. %% Basic declarations \NeedsTeXFormat{LaTeX2e}[1995/12/01]% \ProvidesClass{soprop}[2006/10/06 v1.2 Steward Observatory proposals class]% \ClassInfo{soprop}{Initial version, ported to \protect\LaTeXe\space from `sodefs06.sty'\MessageBreak by R.A. Jansen (Rolf.Jansen@asu.edu) \MessageBreak}% %% Required standard LaTeX2e packages \RequirePackage{ifthen} \RequirePackage{latexsym} \RequirePackage{epsf} \RequirePackage{epsfig} \RequirePackage{graphicx} %\RequirePackage{psfig} \RequirePackage{bm} % Should the 'times' package not be installed on the proposer's system, then % the following line may be commented out. This will result in a reduction of % the amount of text the proposer can fit into the available space (~10-15%). \RequirePackage{times} %% Revtex information \def\revtex@ver{1.0} % Version number of this file. \def\revtex@date{2009 Oct 12} % Revision date. \def\revtex@author{LBT STC} % This file's author. \def\revtex@genre{\LaTeXe\ LUCIFER SDT Proposal,} % The font size shall remain fixed to 11pt %\LoadClass[11pt]{article} % Ensure that the format of the proposal is identical on both Letter and A4 % size paper; adjust the margins accordingly. \DeclareOption{letter}{ %\renewcommand{\normalsize}{\fontsize{11pt}{12pt}\selectfont} \setlength{\paperwidth}{8.5in} \setlength{\paperheight}{11in} \setlength{\textwidth}{6.5in} \setlength{\textheight}{9.0in} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{\oddsidemargin} \setlength{\topmargin}{0.0in} \setlength{\headsep}{0.2in} \addtolength{\topmargin}{-\headsep} \setlength{\headheight}{0.2in} \setlength{\parindent}{0pt} \def\SO@pagewidth{6.5} \def\SO@pagelength{9.0} } \DeclareOption{a4paper}{ %\renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont} \setlength{\paperwidth}{21.0cm} \setlength{\paperheight}{29.7cm} \setlength{\textwidth}{16.51cm} \setlength{\textheight}{22.86cm} \setlength{\oddsidemargin}{-0.295cm} \setlength{\evensidemargin}{\oddsidemargin} \setlength{\topmargin}{-0.88cm} \setlength{\headsep}{0.2in} \addtolength{\topmargin}{-\headsep} \setlength{\headheight}{0.2in} \setlength{\parindent}{0pt} \def\SO@pagewidth{16.51} \def\SO@pagelength{22.86} } \newboolean{borderbox} \DeclareOption{final}{ \setboolean{borderbox}{false} } \DeclareOption{draft}{ \setboolean{borderbox}{true} } % Ignore any unknown options \DeclareOption*{\ClassWarningNoLine{soprop}{Ignoring option '\CurrentOption'}} \ExecuteOptions{11pt,letter,final} \ProcessOptions* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% GENERATE THE TWO PROPOSAL COVER PAGES (unnumbered) %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareRobustCommand{\makecoverpages}{ \addtocounter{page}{-1} \thispagestyle{empty} \ifthenelse{\boolean{borderbox}}{ \noindent \begin{picture}(\SO@pagewidth,\SO@pagelength) \put(-0.025,-0.025){ \rule{0.425\textwidth}{0.05pt} \raisebox{-2pt}{\itshape\tiny \space do not write past this line\space} \rule{0.425\textwidth}{0.05pt} } \put(-0.025,-0.025){\rule{0.05pt}{4pt}} \put(\SO@pagewidth,-0.025){\rule{0.05pt}{4pt}} \framebox(\SO@pagewidth,\SO@pagelength)[tl]{ \vbox{ \MakeHeader \MakeObsTerm \MakeTitle \MakeInvestigators \MakeAbstract \MakeObsrunTable % \MakeConstraints % %\MakeAllocInfo } } \end{picture} \vfill\pagebreak \thispagestyle{empty} \noindent \begin{picture}(\SO@pagewidth,\SO@pagelength) \framebox(\SO@pagewidth,\SO@pagelength)[tl]{ \vbox{ % \MakeTargetList % \MakePiApproval % \MakeGradInfo } } \end{picture} \vfill\pagebreak }{ \noindent \begin{picture}(\SO@pagewidth,\SO@pagelength) \put(-0.050,-0.025){ \rule{0.440\textwidth}{0.05pt} \raisebox{-2pt}{\itshape\tiny \space no text past this line\space} \rule{0.440\textwidth}{0.05pt} } \put(-0.025,-0.050){\rule{0.05pt}{4pt}} \put(\SO@pagewidth,-0.050){\rule{0.05pt}{4pt}} \makebox(\SO@pagewidth,\SO@pagelength)[tl]{ \vbox{ \MakeHeader \MakeObsTerm \MakeTitle \MakeInvestigators \MakeAbstract \MakeObsrunTable % \MakeConstraints % %\MakeAllocInfo } } \end{picture} % \vfill\pagebreak % \thispagestyle{empty} % \noindent % \begin{picture}(\SO@pagewidth,\SO@pagelength) % \makebox(\SO@pagewidth,\SO@pagelength)[tl]{ % \vbox{ % \MakeTargetList % \MakePiApproval % \MakeGradInfo % } % } % \end{picture} % \vfill\pagebreak } } %%%%%%%%%%%%%%%%%%%%%%%%%%% MACROS DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%% %% Most of the macros that will print information at their designated place in %% the proposal will have to accept a blank or only partially filled out latex %% proposal template (and even mistakenly deleted obligatory section commands) %% and still produce a proposal that has the correct layout so that a blank %% proposal can be compiled and printed. %% This means that most macros will explicitly test whether a value (either a %% boolean, numerical or plain text) was provided, and provide warnings/hints %% on the screen about what might be missing or wrong. % Tighten up the text somewhat \renewcommand{\baselinestretch}{0.9} \setlength{\unitlength}{1.0in} \setlength{\parskip}{1ex} \voffset=-0.25in \hoffset=-0.12in %% Macro: fixmbox %% Draw a box of fixed width #1 and height #2 with contents #4 aligned inter- %% nally on #3 (=c,l,r). Note that argument #2 MUST be an integer length (5mm %% will work, 0.2in will not)! \DeclareRobustCommand*{\fixmbox}[4]{% \fboxsep=0pt\makebox[#1][#3]{\rule[-0.8#2]{0pt}{#2}\ #4\ }\hspace{-2mm} } %% End Macro %% Macro: fixfbox %% Draw a framebox of fixed width #1 and height #2 with contents #4 aligned %% internally on #3 (=c,l,r). Note that argument #2 MUST be integer length %% (5mm will work, 0.2in will not)! \DeclareRobustCommand*{\fixfbox}[4]{% \fboxsep=0pt\framebox[#1][#3]{\rule[-0.8#2]{0pt}{#2}\ #4\ }\hspace{-2mm} } %% End Macro %% Macro: MakeHeader %% This macro creates a centerbox for the header on the proposal cover page %% of fixed width, height and position \DeclareRobustCommand{\MakeHeader}{% %\typeout{MakeHeader ... entering} \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \parbox[t][7mm][t]{\textwidth}{ \centerline{\large\bf LBT OBSERVING REQUEST} % \centerline{\large\bf LBTO} } }\par %\typeout{MakeHeader ... done} } %% End Macro %% Macro: MakeObsTerm %% This macro creates the line with observing cycle and proposal type info \DeclareRobustCommand{\MakeObsTerm}{% \typeout{MakeObsTerm ... entering} % Test whether a year was provided and if so whether in a valid format \ifthenelse{\equal{\@proptermyear}{}}{ \@sopwarninga \gdef\propyearbox{\sopheadu\space } }{ \ifthenelse{ \@proptermyear < 2006 \or \@proptermyear > 2016 }{ \@sopwarningb \gdef\propyearbox{\sopheadu\space } }{ % a correctly formatted 4-digit year was provided \gdef\propyearbox{\sopheadu\space \@proptermyear} } } % Test whether a term (trimester/semester) was provided and if so whether % a valid one. Translate the term ID to the standard text string. \ifthenelse{\equal{\@proptermterm}{}}{ \@sopwarningc \gdef\proptermbox{\sopheadv\space$\qquad$--$\qquad$} }{ \ifthenelse{\equal{\@proptermterm}{1}}{ \gdef\proptermbox{\sopheadv\space Jan--Apr} }{ \ifthenelse{\equal{\@proptermterm}{2}}{ \gdef\proptermbox{\sopheadv\space May--Jul} }{ \ifthenelse{\equal{\@proptermterm}{3}}{ \gdef\proptermbox{\sopheadv\space Sep--Dec} }{ \ifthenelse{\equal{\@proptermterm}{A} \or \equal{\@proptermterm}{a}}{ \gdef\proptermbox{\sopheadv\space Jan--Jun} }{ \ifthenelse{\equal{\@proptermterm}{B} \or \equal{\@proptermterm}{b}}{ \gdef\proptermbox{\sopheadv\space Jul--Dec} }{ % not a valid term identifier \@sopwarningd \gdef\proptermbox{\sopheadv\space$\qquad$--$\qquad$} } } } } } } % Test whether the proposal is a continuation of a program that was % previously awarded time. The default is 'false'. \newboolean{ptcont}\setboolean{ptcont}{false} \ifthenelse{\equal{\@proptermcont}{}}{ \@sopwarninge }{ \ifthenelse{\equal{\@proptermcont}{true} \or \equal{\@proptermcont}{yes}}{ \setboolean{ptcont}{true} }{ \ifthenelse{\equal{\@proptermcont}{false} \or \equal{\@proptermcont}{no}}{ \relax }{ % invalid entry: ptcont -> false (default) \@sopwarningf } } } % Test whether this is an education/public outreach proposal ('true') % and translate the switch to the standard text string. The default is % 'false'. If 'true', then the 'proplong' switch is ignored. \newboolean{pteduc}\setboolean{pteduc}{false} \ifthenelse{\equal{\@proptermeduc}{true} \or \equal{\@proptermeduc}{yes}}{ \setboolean{pteduc}{true} \gdef\proptypebox{education/outreach} }{ \relax } % Test whether this is an engineering proposal ('true') and translate % the switch to the standard text string. The default is 'false'. If % 'true', then the 'proplong' and 'propeduc' switches are ignored. \newboolean{ptengr}\setboolean{ptengr}{false} \ifthenelse{\equal{\@proptermengr}{true} \or \equal{\@proptermengr}{yes}}{ \setboolean{ptengr}{true} \gdef\proptypebox{engineering} }{ \relax } % Test whether this is a long-term program ('true') and translate the % switch to the standard text string. The default is 'false'. \newboolean{ptlong}\setboolean{ptlong}{false} \ifthenelse{ \not\boolean{ptengr} \and \not\boolean{pteduc} }{ \ifthenelse{\equal{\@proptermlong}{}}{ \@sopwarningg \gdef\proptypebox{short-term} }{ \ifthenelse{\equal{\@proptermlong}{true} \or \equal{\@proptermlong}{yes}}{ \setboolean{ptlong}{true} \gdef\proptypebox{long-term} }{ \ifthenelse{\equal{\@proptermlong}{false} \or \equal{\@proptermlong}{no}}{ \gdef\proptypebox{short-term} }{ % invalid entry -> default = false \@sopwarningh \gdef\proptypebox{short-term} } } } }{ \relax } \let\@proptypebox=\proptypebox \ifthenelse{\boolean{ptcont}}{ \gdef\proptypebox{\sopheadw\space \fbox{\@proptypebox$^{\star}$}} }{ \gdef\proptypebox{\sopheadw\space \fbox{\@proptypebox}} } % If both long-term and continuation flags are true, test whether a % program ID number was specified \ifthenelse{\boolean{ptcont} \and \boolean{ptlong}}{ \ifthenelse{\equal{\@proptermltnr}{}}{ \@sopwarningi \gdef\propltnrbox{\sopheadx\space L$\qquad$} }{ % following line causes a latex 'Missing number' error if value % is non-numeric \ifthenelse{ \@proptermltnr < 0 }{ \@sopwarningj \gdef\propltnrbox{\sopheadx\space L$\qquad$} }{ % a correctly formatted number was provided \gdef\propltnrbox{\sopheadx\space L\@proptermltnr} } } }{ % either not a long-term program or not a continuation. Ignore any % entry provided in \propltnr \gdef\propltnrbox{} } % Now generate the terminfo line on the proposal cover page % \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ % \parbox[t][\totalheight][t]{0.995\textwidth}{ % \hspace*{-5pt} % \propyearbox\hfill % \proptermbox\hfill % \proptypebox % \ifthenelse{\boolean{ptcont} \and \boolean{ptlong}}{ % \hfill\propltnrbox\par % }{ % \par % } % } % }\par \typeout{MakeObsTerm ... done} } %% End Macro %% Environment: proposalterminfo %% Dummy environment, used merely as a logical container to collect the info %% to appear on the proposal term and type info line. \newenvironment{proposalterminfo}{ \gdef\sopheadu{\mbox{\bfseries Year:}} \gdef\sopheadv{\mbox{\bfseries Term:}} \gdef\sopheadw{\mbox{\bfseries Proposal type:}} \gdef\sopheadx{\mbox{\bfseries Proposal ID:}} }{ \relax } % the actual containers for the propoposal term info items \gdef\@proptermyear{} \gdef\@proptermterm{} \gdef\@proptermcont{} \gdef\@proptermlong{} \gdef\@proptermeduc{} \gdef\@proptermengr{} \gdef\@proptermltnr{} \gdef\propyear#1{\gdef\@proptermyear{#1}} \gdef\propterm#1{\gdef\@proptermterm{#1}} \gdef\propcont#1{\gdef\@proptermcont{#1}} \gdef\proplong#1{\gdef\@proptermlong{#1}} \gdef\propltnr#1{\gdef\@proptermltnr{#1}} \gdef\propeduc#1{\gdef\@proptermeduc{#1}} \gdef\propengr#1{\gdef\@proptermengr{#1}} %% Macro: MakeTitle %% This macro creates a box of up to two lines containing the proposal title \DeclareRobustCommand{\MakeTitle}{% \typeout{MakeTitle ... entering} %\typeout{ setting all font sizes to \protect\LARGE\protect\bf\space...} \let\ltx@hbadness =\hbadness \hbadness=1000000 \let\ltx@normalsize=\normalsize \def\normalsize{\LARGE} \let\ltx@large =\large \def\large{\LARGE} \let\ltx@Large =\Large \def\Large{\LARGE} \let\ltx@huge =\huge \def\huge{\LARGE} \let\ltx@rm =\rm \def\rm{\bf} \let\ltx@it =\it \def\it{\bf} \ifthenelse{\equal{\@proptitle}{}}{ \@sopwarningk \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \hspace*{-2.2pt}\parbox[t][36pt][t]{0.999\textwidth}{ \bfseries\LARGE Title: \hrulefill \hspace{5pt}\makebox[0.998\textwidth][t]{\hrulefill} } } }{ \noindent\hspace*{-3pt}\parbox[t][36pt][t]{\textwidth}{ \sloppy\bfseries\LARGE\@proptitle } }\par \vspace{2mm} %\typeout{ resetting font sizes to proper size...} \hbadness =\ltx@hbadness \let\normalsize=\ltx@normalsize \let\large =\ltx@large \let\Large =\ltx@Large \let\huge =\ltx@huge \let\rm =\ltx@rm \let\it =\ltx@it \typeout{MakeTitle ... done} } %% End Macro % the actual container for the title text. \gdef\@proptitle{} \gdef\proptitle#1{\gdef\@proptitle{#1}} %% Macro: MakeInvestigators %% This macro creates the box with the principal investigator line and the %% box of up to three lines listing the co-investigators. \DeclareRobustCommand{\MakeInvestigators}{% \typeout{MakeInvestigators ... entering} \ifthenelse{ \value{nPI} < 1 }{ \@sopwarningl \gdef\sopheady{\mbox{\bfseries P.I.:}} \gdef\@proppiname{$\qquad$} }{ \ifthenelse{ \value{nPI} > 1 }{ \@sopwarningm \gdef\@proppiname{$\qquad$} }{ \ifthenelse{\equal{\@proppiname}{}\and\equal{\@proppiinst}{}\and \equal{\@proppiaddr}{}\and\equal{\@proppiphon}{}}{ \fixmbox{6.5in}{1mm}{l}{\tiny\itshape \hspace*{1.00in}first+last name\hspace*{0.65in}inst. \hspace*{0.50in}e-mail address\hspace*{0.70in}phone number }\\[-18pt] }{\relax} \ifthenelse{\equal{\@proppiname}{}}{ \@sopwarningn \gdef\@proppiname{\hspace*{1.5in}} }{ \relax } \ifthenelse{\equal{\@proppiinst}{}}{ \@sopwarningo \ifthenelse{\equal{\@proppiname}{\hspace*{1.5in}}}{ \gdef\@proppiinst{$\qquad$} }{ \gdef\@proppiinst{Arizona} } }{ \relax } \ifthenelse{\equal{\@proppiaddr}{}}{ \@sopwarningp \gdef\@proppiaddr{\hspace*{1.3in}} }{ \relax } \ifthenelse{\equal{\@proppiphon}{}}{ \@sopwarningq \gdef\@proppiphon{\hspace*{1.0in}} }{ \relax } \ifthenelse{\equal{\@proppicert}{true} \or \equal{\@proppicert}{yes}}{ \let\sonproppi=\@proppiname \gdef\@proppiname{\underline{\sonproppi}} }{ \relax } \ifthenelse{\equal{\@proppigrad}{true} \or \equal{\@proppigrad}{yes}}{ \let\sosproppi=\@proppiname \gdef\@proppiname{\sosproppi$^{\star}$} }{ \relax } } } \typeout{ number of co-investigators is \arabic{nCoI}} % Now generate the PI and CoI info line(s) on the proposal cover page \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \hspace*{-5pt}\parbox[t][0.75in][t]{0.995\textwidth}{ \fixmbox{0.50in}{3mm}{l}{\parbox[t]{0.5in}{\sopheady\space\space}} \fixmbox{5.98in}{3mm}{l}{ \parbox[t]{5.98in}{\raggedright\@proppiname\space\space (\@proppiinst;\space{\itshape\@proppiaddr};\space \@proppiphon)} } \ifthenelse{ \value{nCoI} = 0 }{ \fixmbox{0.50in}{5mm}{l}{\parbox[t]{0.5in}{\sopheadz\space\space}} \fixmbox{5.98in}{5mm}{l}{ \parbox[t]{5.96in}{\hrulefill \hspace{3pt}\makebox[5.96in]{\hrulefill} \hspace{3pt}\makebox[5.96in]{\hrulefill} } } }{ \ifthenelse{\equal{\@propcoinameA}{}}{ \@sopwarningr \fixmbox{0.50in}{5mm}{l}{\parbox[t]{0.5in}{\sopheadz\space\space}} \fixmbox{5.98in}{5mm}{l}{ \parbox[t]{5.96in}{\hrulefill \hspace{3pt}\makebox[5.96in]{\hrulefill} \hspace{3pt}\makebox[5.96in]{\hrulefill} } } }{ \fixmbox{0.50in}{5mm}{l}{\parbox[t]{0.5in}{\sopheadz\space\space}} \fixmbox{5.98in}{5mm}{l}{ \parbox[t]{5.98in}{\raggedright\propcoibox\hfill} } } } } }\par \typeout{MakeInvestigators ... done} } %% End Macro %% Environment: PrincipalInvestigator %% Dummy environment, used merely as a logical container to collect the info %% to appear on the proposal principal investigator line \newcounter{nPI} \newenvironment{PrincipalInvestigator}{ \stepcounter{nPI} }{ \relax } % the actual containers for the propoposal investigator items \gdef\sopheady{\mbox{\bfseries P.I.:}} \gdef\@proppiname{} \gdef\@proppiinst{} \gdef\@proppiaddr{} \gdef\@proppiphon{} \gdef\@proppicert{} \gdef\@proppigrad{} \gdef\PIname#1 {\gdef\@proppiname{#1}} \gdef\PIinstitution#1{\gdef\@proppiinst{#1}} \gdef\PIemail#1 {\gdef\@proppiaddr{#1}} \gdef\PIphone#1 {\gdef\@proppiphon{#1}} \gdef\PIcertified#1 {\gdef\@proppicert{#1}} \gdef\PIstudent#1 {\gdef\@proppigrad{#1}} %% Environment: CoInvestigator %% This environment is used both as a logical container to collect the info %% to appear on the proposal co-investigator line(s) and to underline the %% co-I name when certified and append an asterisk when a (graduate) student \newcounter{nCoI} \newenvironment{CoInvestigator}{ \stepcounter{nCoI} }{ \ifthenelse{ \equal{\propcoibox}{} }{ \chkcertn{\@propcoicertA}{\@propcoinameA} \chkgrada{\@propcoigradA}{\@propcoiinstA} }{ \let\@propcoibox=\propcoibox \ifthenelse{ \value{nCoI} = 2 }{ \chkcertn{\@propcoicertB}{\@propcoinameB} \chkgradn{\@propcoigradB}{\@propcoiinstB} }{\relax} \ifthenelse{ \value{nCoI} = 3 }{ \chkcertn{\@propcoicertC}{\@propcoinameC} \chkgradn{\@propcoigradC}{\@propcoiinstC} }{\relax} \ifthenelse{ \value{nCoI} = 4 }{ \chkcertn{\@propcoicertD}{\@propcoinameD} \chkgradn{\@propcoigradD}{\@propcoiinstD} }{\relax} \ifthenelse{ \value{nCoI} = 5 }{ \chkcertn{\@propcoicertE}{\@propcoinameE} \chkgradn{\@propcoigradE}{\@propcoiinstE} }{\relax} \ifthenelse{ \value{nCoI} = 6 }{ \chkcertn{\@propcoicertF}{\@propcoinameF} \chkgradn{\@propcoigradF}{\@propcoiinstF} }{\relax} \ifthenelse{ \value{nCoI} = 7 }{ \chkcertn{\@propcoicertG}{\@propcoinameG} \chkgradn{\@propcoigradG}{\@propcoiinstG} }{\relax} \ifthenelse{ \value{nCoI} = 8 }{ \chkcertn{\@propcoicertH}{\@propcoinameH} \chkgradn{\@propcoigradH}{\@propcoiinstH} }{\relax} \ifthenelse{ \value{nCoI} = 9 }{ \chkcertn{\@propcoicertI}{\@propcoinameI} \chkgradn{\@propcoigradI}{\@propcoiinstI} }{\relax} \ifthenelse{ \value{nCoI} = 10 }{ \chkcertn{\@propcoicertJ}{\@propcoinameJ} \chkgradn{\@propcoigradJ}{\@propcoiinstJ} }{\relax} \ifthenelse{ \value{nCoI} = 11 }{ \chkcertn{\@propcoicertK}{\@propcoinameK} \chkgradn{\@propcoigradK}{\@propcoiinstK} }{\relax} \ifthenelse{ \value{nCoI} = 12 }{ \chkcertn{\@propcoicertL}{\@propcoinameL} \chkgradn{\@propcoigradL}{\@propcoiinstL} }{\relax} \ifthenelse{ \value{nCoI} = 13 }{ \chkcertn{\@propcoicertM}{\@propcoinameM} \chkgradn{\@propcoigradM}{\@propcoiinstM} }{\relax} \ifthenelse{ \value{nCoI} = 14 }{ \chkcertn{\@propcoicertN}{\@propcoinameN} \chkgradn{\@propcoigradN}{\@propcoiinstN} }{\relax} \ifthenelse{ \value{nCoI} = 15 }{ \chkcertn{\@propcoicertO}{\@propcoinameO} \chkgradn{\@propcoigradO}{\@propcoiinstO} }{\relax} \ifthenelse{ \value{nCoI} = 16 }{ \chkcertn{\@propcoicertP}{\@propcoinameP} \chkgradn{\@propcoigradP}{\@propcoiinstP} }{\relax} \ifthenelse{ \value{nCoI} = 17 }{ \chkcertn{\@propcoicertQ}{\@propcoinameQ} \chkgradn{\@propcoigradQ}{\@propcoiinstQ} }{\relax} \ifthenelse{ \value{nCoI} = 18 }{ \chkcertn{\@propcoicertR}{\@propcoinameR} \chkgradn{\@propcoigradR}{\@propcoiinstR} }{\relax} \ifthenelse{ \value{nCoI} = 19 }{ \chkcertn{\@propcoicertS}{\@propcoinameS} \chkgradn{\@propcoigradS}{\@propcoiinstS} }{\relax} \ifthenelse{ \value{nCoI} = 20 }{ \chkcertn{\@propcoicertT}{\@propcoinameT} \chkgradn{\@propcoigradT}{\@propcoiinstT} }{\relax} \ifthenelse{ \value{nCoI} = 21 }{ \chkcertn{\@propcoicertU}{\@propcoinameU} \chkgradn{\@propcoigradU}{\@propcoiinstU} }{\relax} \ifthenelse{ \value{nCoI} = 22 }{ \chkcertn{\@propcoicertV}{\@propcoinameV} \chkgradn{\@propcoigradV}{\@propcoiinstV} }{\relax} \ifthenelse{ \value{nCoI} = 23 }{ \chkcertn{\@propcoicertW}{\@propcoinameW} \chkgradn{\@propcoigradW}{\@propcoiinstW} }{\relax} \ifthenelse{ \value{nCoI} = 24 }{ \chkcertn{\@propcoicertX}{\@propcoinameX} \chkgradn{\@propcoigradX}{\@propcoiinstX} }{\relax} \ifthenelse{ \value{nCoI} = 25 }{ \chkcertn{\@propcoicertY}{\@propcoinameY} \chkgradn{\@propcoigradY}{\@propcoiinstY} }{\relax} \ifthenelse{ \value{nCoI} = 26 }{ \chkcertn{\@propcoicertZ}{\@propcoinameZ} \chkgradn{\@propcoigradZ}{\@propcoiinstZ} }{\relax} \ifthenelse{ \value{nCoI} > 26 }{ \let\@propcoibox=\propcoibox \typeout{ WARNING: nCoI>26! Ignoring CoI number \arabic{nCoI} ...} }{\relax} } } % Auxilliary macro \chkcertn to underline the current CoIname if the % 'CoIcertified' flag is set. Output is '\prop@coiname'. \DeclareRobustCommand*{\chkcertn}[2]{% \ifthenelse{\equal{#1}{true} \or \equal{#1}{yes}}{ \xdef\prop@coiname{\underline{#2}}% }{ \xdef\prop@coiname{#2}% } }% % Auxilliary macros \chkgrada and \chkgradn to mark the current Co-I name if % the 'CoIstudent' flag is set. The 2nd command concatenates to previously % defined Co-I text strings. Output is '\propcoibox' (may be long, hence no % * to the command). Variable \prop@coiname is assumed to exist already. \DeclareRobustCommand{\chkgrada}[2]{% \ifthenelse{\equal{#2}{}}{\def\coi@inst{SO}}{\def\coi@inst{#2}} \ifthenelse{\equal{#1}{true} \or \equal{#1}{yes}}{ \xdef\propcoibox{\mbox{\prop@coiname$^{\star}$\space (\coi@inst)}}% }{ \xdef\propcoibox{\mbox{\prop@coiname\space (\coi@inst)}}% } }% \DeclareRobustCommand{\chkgradn}[2]{% \ifthenelse{\equal{#2}{}}{\def\coi@inst{SO}}{\def\coi@inst{#2}} \ifthenelse{\equal{#1}{true} \or \equal{#1}{yes}}{ \xdef\propcoibox{\@propcoibox,\space \mbox{\prop@coiname$^{\star}$\space (\coi@inst)}}% }{ \xdef\propcoibox{\@propcoibox,\space \mbox{\prop@coiname\space (\coi@inst)}}% } }% % the actual containers (up to 26) for the propoposal investigator items \gdef\sopheadz{\mbox{\bfseries CoI(s):}} \gdef\propcoibox{} \gdef\@propcoibox{} \gdef\prop@coiname{} \gdef\@propcoinameA{} \gdef\@propcoiinstA{} \gdef\@propcoicertA{} \gdef\@propcoinameB{} \gdef\@propcoiinstB{} \gdef\@propcoicertB{} \gdef\@propcoinameC{} \gdef\@propcoiinstC{} \gdef\@propcoicertC{} \gdef\@propcoinameD{} \gdef\@propcoiinstD{} \gdef\@propcoicertD{} \gdef\@propcoinameE{} \gdef\@propcoiinstE{} \gdef\@propcoicertE{} \gdef\@propcoinameF{} \gdef\@propcoiinstF{} \gdef\@propcoicertF{} \gdef\@propcoinameG{} \gdef\@propcoiinstG{} \gdef\@propcoicertG{} \gdef\@propcoinameH{} \gdef\@propcoiinstH{} \gdef\@propcoicertH{} \gdef\@propcoinameI{} \gdef\@propcoiinstI{} \gdef\@propcoicertI{} \gdef\@propcoinameJ{} \gdef\@propcoiinstJ{} \gdef\@propcoicertJ{} \gdef\@propcoinameK{} \gdef\@propcoiinstK{} \gdef\@propcoicertK{} \gdef\@propcoinameL{} \gdef\@propcoiinstL{} \gdef\@propcoicertL{} \gdef\@propcoinameM{} \gdef\@propcoiinstM{} \gdef\@propcoicertM{} \gdef\@propcoinameN{} \gdef\@propcoiinstN{} \gdef\@propcoicertN{} \gdef\@propcoinameO{} \gdef\@propcoiinstO{} \gdef\@propcoicertO{} \gdef\@propcoinameP{} \gdef\@propcoiinstP{} \gdef\@propcoicertP{} \gdef\@propcoinameQ{} \gdef\@propcoiinstQ{} \gdef\@propcoicertQ{} \gdef\@propcoinameR{} \gdef\@propcoiinstR{} \gdef\@propcoicertR{} \gdef\@propcoinameS{} \gdef\@propcoiinstS{} \gdef\@propcoicertS{} \gdef\@propcoinameT{} \gdef\@propcoiinstT{} \gdef\@propcoicertT{} \gdef\@propcoinameU{} \gdef\@propcoiinstU{} \gdef\@propcoicertU{} \gdef\@propcoinameV{} \gdef\@propcoiinstV{} \gdef\@propcoicertV{} \gdef\@propcoinameW{} \gdef\@propcoiinstW{} \gdef\@propcoicertW{} \gdef\@propcoinameX{} \gdef\@propcoiinstX{} \gdef\@propcoicertX{} \gdef\@propcoinameY{} \gdef\@propcoiinstY{} \gdef\@propcoicertY{} \gdef\@propcoinameZ{} \gdef\@propcoiinstZ{} \gdef\@propcoicertZ{} \gdef\@propcoigradA{} \gdef\@propcoigradN{} \gdef\@propcoigradB{} \gdef\@propcoigradO{} \gdef\@propcoigradC{} \gdef\@propcoigradP{} \gdef\@propcoigradD{} \gdef\@propcoigradQ{} \gdef\@propcoigradE{} \gdef\@propcoigradR{} \gdef\@propcoigradF{} \gdef\@propcoigradS{} \gdef\@propcoigradG{} \gdef\@propcoigradT{} \gdef\@propcoigradH{} \gdef\@propcoigradU{} \gdef\@propcoigradI{} \gdef\@propcoigradV{} \gdef\@propcoigradJ{} \gdef\@propcoigradW{} \gdef\@propcoigradK{} \gdef\@propcoigradX{} \gdef\@propcoigradL{} \gdef\@propcoigradY{} \gdef\@propcoigradM{} \gdef\@propcoigradZ{} \gdef\CoIname#1 {\global\@namedef{@propcoiname\@Alph{\c@nCoI}}{#1}} \gdef\CoIinstitution#1 {\global\@namedef{@propcoiinst\@Alph{\c@nCoI}}{#1}} \gdef\CoIcertified#1 {\global\@namedef{@propcoicert\@Alph{\c@nCoI}}{#1}} \gdef\CoIstudent#1 {\global\@namedef{@propcoigrad\@Alph{\c@nCoI}}{#1}} %% Macro: MakeAbstract %% This macro creates the box with the abstract of the science justification \DeclareRobustCommand{\MakeAbstract}{% \typeout{MakeAbstract ... entering} %\typeout{ setting all font sizes to \protect\normalsize\space...} \let\ltx@large =\large \def\large{\normalsize} \let\ltx@small =\small \def\small{\normalsize} \let\ltx@footnotesize=\footnotesize \def\footnotesize{\normalsize} \let\ltx@scriptsize =\scriptsize \def\scriptsize{\normalsize} \renewcommand{\abstractname}{Abstract of Scientific Justification} %\typeout{ creating abstract box...} \ifthenelse{\equal{\@propabstract}{}}{ \noindent\hspace*{-3pt}\framebox[\textwidth][t]{ \hspace*{-1pt}\parbox[t][21em][t]{0.98\textwidth}{ \centerline{\bfseries\abstractname} \@sopwarnings } } }{ \noindent\hspace*{-3pt}\framebox[\textwidth][t]{ \hspace*{-1pt}\parbox[t][21em][t]{0.98\textwidth}{ \centerline{\bfseries\abstractname} \@propabstract } } }\par %\typeout{ resetting font sizes to proper size...} \let\large =\ltx@large \let\small =\ltx@small \let\footnotesize=\ltx@footnotesize \let\scriptsize =\ltx@scriptsize \typeout{MakeAbstract ... done} } %% End Macro % the actual container for the abstract text. \gdef\@propabstract{} \gdef\propabstract#1 {\gdef\@propabstract{#1}} %% Macro: MakeObsrunTable %% This macro creates the box with the observation run summary table \DeclareRobustCommand{\MakeObsrunTable}{% \typeout{MakeObsrunTable ... entering} \typeout{ number of observing runs specified is \arabic{obsrun}} \typeout{ number of alternate runs specified is \arabic{altrun}} \ifthenelse{ \value{obsrun} < 1 }{ \@sopwarningt % draw an empty box where the table should have appeared \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \parbox[t][2.5in][t]{0.995\textwidth}{ \noindent\hspace*{-5pt}\sopheado\hfill\par \noindent\hspace*{-5pt} \fixmbox{0.25in}{4mm}{c}{\ltx@obsheadsize Run}\hspace{2pt} \fixmbox{0.90in}{4mm}{c}{\ltx@obsheadsize Telescope} \fixmbox{0.55in}{4mm}{c}{\ltx@obsheadsize Mirror} \fixmbox{1.44in}{4mm}{c}{\ltx@obsheadsize Instrument} % \fixmbox{0.25in}{4mm}{c}{\ltx@obsheadsize PI$^{*}$} \fixmbox{0.50in}{4mm}{c}{\ltx@obsheadsize Hours} \fixmbox{1.00in}{4mm}{c}{\ltx@obsheadsize Mode} % \fixmbox{0.75in}{4mm}{c}{\ltx@obsheadsize Optimal} % \fixmbox{0.75in}{4mm}{c}{\ltx@obsheadsize Acceptable} % \fixmbox{0.30in}{4mm}{c}{\ltx@obsheadsize Adv.}\par \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{1}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{} \fixfbox{0.55in}{4mm}{c}{} \fixfbox{1.44in}{4mm}{l}{} % \fixfbox{0.25in}{4mm}{c}{} \fixfbox{0.50in}{4mm}{c}{} \fixfbox{0.50in}{4mm}{c}{} \fixfbox{0.75in}{4mm}{c}{} \fixfbox{0.75in}{4mm}{c}{} % \fixfbox{0.30in}{4mm}{c}{} % \fixfbox{0.30in}{4mm}{c}{} }\par } }\par }{ % generate the observing runs summary table \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \parbox[t][2.5in][t]{0.995\textwidth}{ \noindent\hspace*{-5pt}\sopheado\hfill\\[-10pt] \rightline{\ltx@obsheadsize \hspace{0.50in} \space\space\space}\\[-4pt] \noindent\hspace*{-5pt} \fixmbox{0.25in}{4mm}{c}{\ltx@obsheadsize Run}\hspace{2pt} \fixmbox{0.90in}{4mm}{c}{\ltx@obsheadsize Telescope} \fixmbox{0.55in}{4mm}{c}{\ltx@obsheadsize Cage} \fixmbox{1.44in}{4mm}{c}{\ltx@obsheadsize Instrument} % \fixmbox{0.25in}{4mm}{c}{\ltx@obsheadsize PI$^{*}$} \fixmbox{0.50in}{4mm}{c}{\ltx@obsheadsize Hours} \fixmbox{1.00in}{4mm}{c}{\ltx@obsheadsize Mode} % \fixmbox{0.75in}{4mm}{c}{\ltx@obsheadsize Optimal} % \fixmbox{0.75in}{4mm}{c}{\ltx@obsheadsize Acceptable} % \fixmbox{0.30in}{4mm}{c}{\ltx@obsheadsize Poss.} % \fixmbox{0.30in}{4mm}{c}{\ltx@obsheadsize Adv.}\par \ifthenelse{\equal{\obsA@scope}{}}{ \@sopwarningN }{\relax} \ifthenelse{\equal{\obsA@cage}{}}{ \@sopwarningO }{\relax} \ifthenelse{\equal{\obsA@instr}{}}{ \@sopwarningP }{\relax} \ifthenelse{\equal{\obsA@piflg}{}}{ \@sopwarningQ }{\relax} \ifthenelse{\equal{\obsA@nights}{}}{ \@sopwarningR }{\relax} \ifthenelse{\equal{\obsA@mode}{}}{ \@sopwarningS }{\relax} % \ifthenelse{\equal{\obsA@optimal}{}}{ % \@sopwarningT % }{\relax} % \ifthenelse{\equal{\obsA@acceptbl}{}}{ % \@sopwarningU % }{\relax} \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{1}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsA@scope} \fixfbox{0.55in}{4mm}{c}{\obsA@cage} \fixfbox{1.44in}{4mm}{l}{\obsA@instr} % \ifthenelse{\equal{\obsA@piflg}{true} \or % \equal{\obsA@piflg}{yes}}{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} % }{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} % } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsA@nights} \fixfbox{1.00in}{4mm}{c}{\obsA@mode} % \fixfbox{0.75in}{4mm}{c}{\obsA@optimal} % \fixfbox{0.75in}{4mm}{c}{\obsA@acceptbl} % \ifthenelse{\equal{\obsA@shareok}{true} \or % \equal{\obsA@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no}\hspace*{3pt}} % \ifthenelse{\equal{\obsA@shareOK}{true} \or % \equal{\obsA@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no}} }\par \ifthenelse{ \value{obsrun} > 1 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{2}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsB@scope} \fixfbox{0.55in}{4mm}{c}{\obsB@cage} \fixfbox{1.44in}{4mm}{l}{\obsB@instr} % \ifthenelse{\equal{\obsB@piflg}{true} \or % \equal{\obsB@piflg}{yes}}{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} % }{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} % } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsB@nights} \fixfbox{1.00in}{4mm}{c}{\obsB@mode} % \fixfbox{0.75in}{4mm}{c}{\obsB@optimal} % \fixfbox{0.75in}{4mm}{c}{\obsB@acceptbl} % \ifthenelse{\equal{\obsB@shareok}{true} \or % \equal{\obsB@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} % } % \ifthenelse{\equal{\obsB@shareOK}{true} \or % \equal{\obsB@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} % } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 2 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{3}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsC@scope} \fixfbox{0.55in}{4mm}{c}{\obsC@cage} \fixfbox{1.44in}{4mm}{l}{\obsC@instr} % \ifthenelse{\equal{\obsC@piflg}{true} \or % \equal{\obsC@piflg}{yes}}{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} % }{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} % } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsC@nights} \fixfbox{0.50in}{4mm}{c}{\obsC@mode} % \fixfbox{0.75in}{4mm}{c}{\obsC@optimal} % \fixfbox{0.75in}{4mm}{c}{\obsC@acceptbl} % \ifthenelse{\equal{\obsC@shareok}{true} \or % \equal{\obsC@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} % } % \ifthenelse{\equal{\obsC@shareOK}{true} \or % \equal{\obsC@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} % } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 3 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{4}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsD@scope} \fixfbox{0.55in}{4mm}{c}{\obsD@cage} \fixfbox{1.44in}{4mm}{l}{\obsD@instr} % \ifthenelse{\equal{\obsD@piflg}{true} \or % \equal{\obsD@piflg}{yes}}{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} % }{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} % } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsD@nights} % \fixfbox{0.50in}{4mm}{c}{\obsD@moon} % \fixfbox{0.75in}{4mm}{c}{\obsD@optimal} % \fixfbox{0.75in}{4mm}{c}{\obsD@acceptbl} % \ifthenelse{\equal{\obsD@shareok}{true} \or % \equal{\obsD@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} % } % \ifthenelse{\equal{\obsD@shareOK}{true} \or % \equal{\obsD@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} % } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 4 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{5}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsE@scope} \fixfbox{0.55in}{4mm}{c}{\obsE@cage} \fixfbox{1.44in}{4mm}{l}{\obsE@instr} % \ifthenelse{\equal{\obsE@piflg}{true} \or % \equal{\obsE@piflg}{yes}}{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} % }{ % \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} % } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsE@nights} \fixfbox{0.50in}{4mm}{c}{\obsE@moon} \fixfbox{0.75in}{4mm}{c}{\obsE@optimal} \fixfbox{0.75in}{4mm}{c}{\obsE@acceptbl} % \ifthenelse{\equal{\obsE@shareok}{true} \or % \equal{\obsE@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} % } % \ifthenelse{\equal{\obsE@shareOK}{true} \or % \equal{\obsE@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} % } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 5 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{6}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsF@scope} \fixfbox{0.55in}{4mm}{c}{\obsF@cage} \fixfbox{1.44in}{4mm}{l}{\obsF@instr} \ifthenelse{\equal{\obsF@piflg}{true} \or \equal{\obsF@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsF@nights} \fixfbox{0.50in}{4mm}{c}{\obsF@moon} \fixfbox{0.75in}{4mm}{c}{\obsF@optimal} \fixfbox{0.75in}{4mm}{c}{\obsF@acceptbl} % \ifthenelse{\equal{\obsF@shareok}{true} \or % \equal{\obsF@shareok}{yes}}{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} % } % \ifthenelse{\equal{\obsF@shareOK}{true} \or % \equal{\obsF@shareOK}{yes}}{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} % }{ % \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} % } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 6 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{7}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsG@scope} \fixfbox{0.55in}{4mm}{c}{\obsG@cage} \fixfbox{1.44in}{4mm}{l}{\obsG@instr} \ifthenelse{\equal{\obsG@piflg}{true} \or \equal{\obsG@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsG@nights} \fixfbox{0.50in}{4mm}{c}{\obsG@moon} \fixfbox{0.75in}{4mm}{c}{\obsG@optimal} \fixfbox{0.75in}{4mm}{c}{\obsG@acceptbl} \ifthenelse{\equal{\obsG@shareok}{true} \or \equal{\obsG@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsG@shareOK}{true} \or \equal{\obsG@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 7 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{8}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsH@scope} \fixfbox{0.55in}{4mm}{c}{\obsH@cage} \fixfbox{1.44in}{4mm}{l}{\obsH@instr} \ifthenelse{\equal{\obsH@piflg}{true} \or \equal{\obsH@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsH@nights} \fixfbox{0.50in}{4mm}{c}{\obsH@moon} \fixfbox{0.75in}{4mm}{c}{\obsH@optimal} \fixfbox{0.75in}{4mm}{c}{\obsH@acceptbl} \ifthenelse{\equal{\obsH@shareok}{true} \or \equal{\obsH@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsH@shareOK}{true} \or \equal{\obsH@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 8 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{9}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsI@scope} \fixfbox{0.55in}{4mm}{c}{\obsI@cage} \fixfbox{1.44in}{4mm}{l}{\obsI@instr} \ifthenelse{\equal{\obsI@piflg}{true} \or \equal{\obsI@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsI@nights} \fixfbox{0.50in}{4mm}{c}{\obsI@moon} \fixfbox{0.75in}{4mm}{c}{\obsI@optimal} \fixfbox{0.75in}{4mm}{c}{\obsI@acceptbl} \ifthenelse{\equal{\obsI@shareok}{true} \or \equal{\obsI@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsI@shareOK}{true} \or \equal{\obsI@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 9 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{10}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsJ@scope} \fixfbox{0.55in}{4mm}{c}{\obsJ@cage} \fixfbox{1.44in}{4mm}{l}{\obsJ@instr} \ifthenelse{\equal{\obsJ@piflg}{true} \or \equal{\obsJ@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsJ@nights} \fixfbox{0.50in}{4mm}{c}{\obsJ@moon} \fixfbox{0.75in}{4mm}{c}{\obsJ@optimal} \fixfbox{0.75in}{4mm}{c}{\obsJ@acceptbl} \ifthenelse{\equal{\obsJ@shareok}{true} \or \equal{\obsJ@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsJ@shareOK}{true} \or \equal{\obsJ@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 10 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{11}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsK@scope} \fixfbox{0.55in}{4mm}{c}{\obsK@cage} \fixfbox{1.44in}{4mm}{l}{\obsK@instr} \ifthenelse{\equal{\obsK@piflg}{true} \or \equal{\obsK@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsK@nights} \fixfbox{0.50in}{4mm}{c}{\obsK@moon} \fixfbox{0.75in}{4mm}{c}{\obsK@optimal} \fixfbox{0.75in}{4mm}{c}{\obsK@acceptbl} \ifthenelse{\equal{\obsK@shareok}{true} \or \equal{\obsK@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsK@shareOK}{true} \or \equal{\obsK@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 11 }{ \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{12}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\obsL@scope} \fixfbox{0.55in}{4mm}{c}{\obsL@cage} \fixfbox{1.44in}{4mm}{l}{\obsL@instr} \ifthenelse{\equal{\obsL@piflg}{true} \or \equal{\obsL@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\obsL@nights} \fixfbox{0.50in}{4mm}{c}{\obsL@moon} \fixfbox{0.75in}{4mm}{c}{\obsL@optimal} \fixfbox{0.75in}{4mm}{c}{\obsL@acceptbl} \ifthenelse{\equal{\obsL@shareok}{true} \or \equal{\obsL@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\obsL@shareOK}{true} \or \equal{\obsL@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{obsrun} > 12 }{ \@sopwarningu }{ \relax } % generate alternate runs table (if any are requested) \ifthenelse{ \value{altrun} > 0 }{ \ifthenelse{\equal{\altA@run}{}}{\def\altA@run{1}}{\relax} \ifthenelse{\altA@run>\value{obsrun}}{\@sopwarningv}{\relax} \ifthenelse{\equal{\altA@scope}{}}{\@sopwarningZ}{\relax} \noindent\hspace*{-2pt}\sopheadp\par \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{\altA@run a}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\altA@scope} \fixfbox{0.55in}{4mm}{c}{\altA@cage} \fixfbox{1.44in}{4mm}{l}{\altA@instr} \ifthenelse{\equal{\altA@piflg}{true} \or \equal{\altA@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\altA@nights} \fixfbox{0.50in}{4mm}{c}{\altA@moon} \fixfbox{0.75in}{4mm}{c}{\altA@optimal} \fixfbox{0.75in}{4mm}{c}{\altA@acceptbl} \ifthenelse{\equal{\altA@shareok}{true} \or \equal{\altA@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\altA@shareOK}{true} \or \equal{\altA@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par % \ifthenelse{ \value{altrun} > 1 }{\relax}{\relax} }{ \relax } \ifthenelse{ \value{altrun} > 1 }{ \ifthenelse{\equal{\altB@run}{}}{\def\altB@run{2}}{\relax} \ifthenelse{\altB@run>\value{obsrun}}{\@sopwarningv}{\relax} \ifthenelse{\equal{\altB@scope}{}}{\@sopwarningZ}{\relax} %\noindent\hspace*{-2pt}\sopheadp\par \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{\altB@run a}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\altB@scope} \fixfbox{0.55in}{4mm}{c}{\altB@cage} \fixfbox{1.44in}{4mm}{l}{\altB@instr} \ifthenelse{\equal{\altB@piflg}{true} \or \equal{\altB@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\altB@nights} \fixfbox{0.50in}{4mm}{c}{\altB@moon} \fixfbox{0.75in}{4mm}{c}{\altB@optimal} \fixfbox{0.75in}{4mm}{c}{\altB@acceptbl} \ifthenelse{\equal{\altB@shareok}{true} \or \equal{\altB@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\altB@shareOK}{true} \or \equal{\altB@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par }{ \relax } \ifthenelse{ \value{altrun} > 2 }{ \ifthenelse{\equal{\altC@run}{}}{\def\altC@run{3}}{\relax} \ifthenelse{\altC@run>\value{obsrun}}{\@sopwarningv}{\relax} \ifthenelse{\equal{\altC@scope}{}}{\@sopwarningZ}{\relax} %\noindent\hspace*{-2pt}\sopheadp\par \noindent\hspace*{-5pt}\mbox{ \fixfbox{0.25in}{4mm}{c}{\altC@run a}\hspace{2pt} \fixfbox{0.90in}{4mm}{l}{\altC@scope} \fixfbox{0.55in}{4mm}{c}{\altC@cage} \fixfbox{1.44in}{4mm}{l}{\altC@instr} \ifthenelse{\equal{\altC@piflg}{true} \or \equal{\altC@piflg}{yes}}{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{*} }{ \hspace*{-3pt}\fixfbox{0.25in}{4mm}{c}{\null} } \hspace*{-3pt}\fixfbox{0.50in}{4mm}{c}{\altC@nights} \fixfbox{0.50in}{4mm}{c}{\altC@moon} \fixfbox{0.75in}{4mm}{c}{\altC@optimal} \fixfbox{0.75in}{4mm}{c}{\altC@acceptbl} \ifthenelse{\equal{\altC@shareok}{true} \or \equal{\altC@shareok}{yes}}{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-3pt}\fixfbox{0.30in}{4mm}{c}{no} } \ifthenelse{\equal{\altC@shareOK}{true} \or \equal{\altC@shareOK}{yes}}{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{yes} }{ \hspace*{-5.5pt}\fixfbox{0.30in}{4mm}{c}{no} } }\par \ifthenelse{ \value{altrun} > 3 }{ \@sopwarningw }{ \relax } } } }{ \relax }\par \vspace{-4mm} } \typeout{MakeObsrunTable ... done} } %% End Macro %% Environments: ObsRun and AltRun %% Dummy environments, used merely as a logical container to collect the info %% associated with a single run to appear in the observing run summary table. \newcounter{obsrun} \newenvironment{ObservingRun}{ \stepcounter{obsrun} }{ \relax%\typeout{Collected info for summary of observing run \arabic{obsrun}} } % the actual containers for the observing run variables \gdef\sopheado{ \mbox{\bfseries Summary of observing runs requested for this project} } \gdef\obsA@scope{} \gdef\obsA@cage{} \gdef\obsA@instr{} \gdef\obsA@piflg{} \gdef\obsB@scope{} \gdef\obsB@cage{} \gdef\obsB@instr{} \gdef\obsB@piflg{} \gdef\obsC@scope{} \gdef\obsC@cage{} \gdef\obsC@instr{} \gdef\obsC@piflg{} \gdef\obsD@scope{} \gdef\obsD@cage{} \gdef\obsD@instr{} \gdef\obsD@piflg{} \gdef\obsE@scope{} \gdef\obsE@cage{} \gdef\obsE@instr{} \gdef\obsE@piflg{} \gdef\obsF@scope{} \gdef\obsF@cage{} \gdef\obsF@instr{} \gdef\obsF@piflg{} \gdef\obsG@scope{} \gdef\obsG@cage{} \gdef\obsG@instr{} \gdef\obsG@piflg{} \gdef\obsH@scope{} \gdef\obsH@cage{} \gdef\obsH@instr{} \gdef\obsH@piflg{} \gdef\obsI@scope{} \gdef\obsI@cage{} \gdef\obsI@instr{} \gdef\obsI@piflg{} \gdef\obsJ@scope{} \gdef\obsJ@cage{} \gdef\obsJ@instr{} \gdef\obsJ@piflg{} \gdef\obsK@scope{} \gdef\obsK@cage{} \gdef\obsK@instr{} \gdef\obsK@piflg{} \gdef\obsL@scope{} \gdef\obsL@cage{} \gdef\obsL@instr{} \gdef\obsL@piflg{} \gdef\obsA@nights{} \gdef\obsA@mode{} \gdef\obsA@optimal{} \gdef\obsB@nights{} \gdef\obsB@mode{} \gdef\obsB@optimal{} \gdef\obsC@nights{} \gdef\obsC@mode{} \gdef\obsC@optimal{} \gdef\obsD@nights{} \gdef\obsD@mode{} \gdef\obsD@optimal{} \gdef\obsE@nights{} \gdef\obsE@moon{} \gdef\obsE@optimal{} \gdef\obsF@nights{} \gdef\obsF@moon{} \gdef\obsF@optimal{} \gdef\obsG@nights{} \gdef\obsG@moon{} \gdef\obsG@optimal{} \gdef\obsH@nights{} \gdef\obsH@moon{} \gdef\obsH@optimal{} \gdef\obsI@nights{} \gdef\obsI@moon{} \gdef\obsI@optimal{} \gdef\obsJ@nights{} \gdef\obsJ@moon{} \gdef\obsJ@optimal{} \gdef\obsK@nights{} \gdef\obsK@moon{} \gdef\obsK@optimal{} \gdef\obsL@nights{} \gdef\obsL@moon{} \gdef\obsL@optimal{} \gdef\obsA@acceptbl{} \gdef\obsA@shareok{} \gdef\obsA@shareOK{} \gdef\obsB@acceptbl{} \gdef\obsB@shareok{} \gdef\obsB@shareOK{} \gdef\obsC@acceptbl{} \gdef\obsC@shareok{} \gdef\obsC@shareOK{} \gdef\obsD@acceptbl{} \gdef\obsD@shareok{} \gdef\obsD@shareOK{} \gdef\obsE@acceptbl{} \gdef\obsE@shareok{} \gdef\obsE@shareOK{} \gdef\obsF@acceptbl{} \gdef\obsF@shareok{} \gdef\obsF@shareOK{} \gdef\obsG@acceptbl{} \gdef\obsG@shareok{} \gdef\obsG@shareOK{} \gdef\obsH@acceptbl{} \gdef\obsH@shareok{} \gdef\obsH@shareOK{} \gdef\obsI@acceptbl{} \gdef\obsI@shareok{} \gdef\obsI@shareOK{} \gdef\obsJ@acceptbl{} \gdef\obsJ@shareok{} \gdef\obsJ@shareOK{} \gdef\obsK@acceptbl{} \gdef\obsK@shareok{} \gdef\obsK@shareOK{} \gdef\obsL@acceptbl{} \gdef\obsL@shareok{} \gdef\obsL@shareOK{} \def\telescope#1 {\global\@namedef{obs\@Alph{\c@obsrun}@scope}{#1}} \def\secondary#1 {\global\@namedef{obs\@Alph{\c@obsrun}@cage}{#1}} \def\instrument#1 {\global\@namedef{obs\@Alph{\c@obsrun}@instr}{#1}} \def\piflag#1 {\global\@namedef{obs\@Alph{\c@obsrun}@piflg}{#1}} \def\numhours#1 {\global\@namedef{obs\@Alph{\c@obsrun}@nights}{#1}} \def\mode#1 {\global\@namedef{obs\@Alph{\c@obsrun}@mode}{#1}} \def\optimalmonths#1 {\global\@namedef{obs\@Alph{\c@obsrun}@optimal}{#1}} \def\acceptablemonths#1{\global\@namedef{obs\@Alph{\c@obsrun}@acceptbl}{#1}} \def\sharingpossible#1 {\global\@namedef{obs\@Alph{\c@obsrun}@shareok}{#1}} \def\sharingadvisable#1{\global\@namedef{obs\@Alph{\c@obsrun}@shareOK}{#1}} \newcounter{altrun} \newenvironment{AlternateRun}{ \stepcounter{altrun} }{ \relax%\typeout{ Writing summary of alternate run \arabic{altrun} ...} } % the actual containers for the observing run variables \gdef\sopheadp{\mbox{\bfseries or:}} \gdef\altA@scope{} \gdef\altA@cage{} \gdef\altA@instr{} \gdef\altA@piflg{} \gdef\altB@scope{} \gdef\altB@cage{} \gdef\altB@instr{} \gdef\altB@piflg{} \gdef\altC@scope{} \gdef\altC@cage{} \gdef\altC@instr{} \gdef\altC@piflg{} \gdef\altA@nights{} \gdef\altA@moon{} \gdef\altA@optimal{} \gdef\altA@run{} \gdef\altB@nights{} \gdef\altB@moon{} \gdef\altB@optimal{} \gdef\altB@run{} \gdef\altC@nights{} \gdef\altC@moon{} \gdef\altC@optimal{} \gdef\altC@run{} \gdef\altA@acceptbl{} \gdef\altA@shareok{} \gdef\altA@shareOK{} \gdef\altB@acceptbl{} \gdef\altB@shareok{} \gdef\altB@shareOK{} \gdef\altC@acceptbl{} \gdef\altC@shareok{} \gdef\altC@shareOK{} \def\alttorunnumber#1 {\global\@namedef{alt\@Alph{\c@altrun}@run}{#1}} \def\alttelescope#1 {\global\@namedef{alt\@Alph{\c@altrun}@scope}{#1}} \def\altsecondary#1 {\global\@namedef{alt\@Alph{\c@altrun}@cage}{#1}} \def\altinstrument#1 {\global\@namedef{alt\@Alph{\c@altrun}@instr}{#1}} \def\altpiflag#1 {\global\@namedef{alt\@Alph{\c@altrun}@piflg}{#1}} \def\altnumnights#1 {\global\@namedef{alt\@Alph{\c@altrun}@nights}{#1}} \def\altnightsky#1 {\global\@namedef{alt\@Alph{\c@altrun}@moon}{#1}} \def\altoptimalmonths#1 {\global\@namedef{alt\@Alph{\c@altrun}@optimal}{#1}} \def\altacceptablemonths#1{\global\@namedef{alt\@Alph{\c@altrun}@acceptbl}{#1}} \def\altsharingpossible#1 {\global\@namedef{alt\@Alph{\c@altrun}@shareok}{#1}} \def\altsharingadvisable#1{\global\@namedef{alt\@Alph{\c@altrun}@shareOK}{#1}} %% Macro: MakeConstraints %% This macro creates the box with the scheduling constraints and/or unusable %% dates, constraints on coordination with other facilities, and constraints %% on sharing of nights. %\DeclareRobustCommand{\MakeConstraints}{% % \typeout{MakeConstraints ... entering} % \vspace*{4mm}\ifthenelse{\equal{\@constraints}{}}{ % \@sopwarningV % \noindent\hspace{-3pt}\makebox[\textwidth][t]{ % \hspace{-5pt}\parbox[t][5em][t]{\textwidth}{ % \makebox[\textwidth]{\sopheadq\space\space\hrulefill}\par % \hspace{3pt}\makebox[0.993\textwidth]{\hrulefill}\par % \hspace{3pt}\makebox[0.993\textwidth]{\hrulefill}\par % \hspace{3pt}\makebox[0.993\textwidth]{\hrulefill}\par % \hspace{3pt}\makebox[0.993\textwidth]{\hrulefill}\par % %\hspace{3pt}\makebox[0.993\textwidth]{\hrulefill}\par % }\par % } % }{ % \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ % \hspace*{-2pt}\parbox[t][5em][t]{\textwidth}{ % \sopheadq\space\space\@constraints % }\par % % } % }\par % %\vspace*{3mm} % \typeout{MakeConstraints ... done} %} %% End Macro % the actual containers for the scheduling constraints variables %\gdef\sopheadq{ % \mbox{{\bfseries Scheduling constraints and unusable dates}% % \space{\itshape (up to 4 lines)}{\bfseries :}\space\space}% %} %\gdef\@constraints{} %\gdef\schedulingconstraints#1{\gdef\@constraints{#1}} %% Macro: MakeAllocInfo %% This macro creates the box with the summary of time requested and awarded %% for this project and additional comment/justification lines. \DeclareRobustCommand{\MakeAllocInfo}{% \typeout{MakeAllocInfo ... entering} \ifthenelse{\equal{\@totalnights}{}}{\@sopwarningW}{\relax} \ifthenelse{\equal{\@totalchanged}{}}{\@sopwarningx}{\relax} \ifthenelse{\equal{\@totalUAO}{}}{\@sopwarningX}{\relax} \ifthenelse{\equal{\@currentrequest}{}}{\@sopwarningY}{\relax} % generate the summary of time requested and awarded \noindent\hspace{-3pt}\makebox[\textwidth][t]{ \hspace{-3pt}\parbox[t][5em][t]{\textwidth}{ \makebox[\textwidth]{\sopheadt}\par %*%\fixfbox{1.00in}{5mm}{s}{% \fixfbox{1.35in}{5mm}{s}{% \mbox{\bfseries Total: \@totalnights} \chflgbox% }\hspace*{3pt} %*%\fixfbox{2.25in}{5mm}{s}{% \fixfbox{3.30in}{5mm}{s}{\mbox{UAO: \@totalUAO} \mbox{CfA: \@totalCfA} \mbox{Other: \@totalOther}% }\hspace*{3pt} %*%\fixfbox{1.75in}{5mm}{s}{% %*% Past: \@totalpast\ Anticipated: \@totalfuture% %*%}\hspace*{3pt} %*%\fixfbox{1.40in}{5mm}{s}{Current~request: \@currentrequest% \fixfbox{1.75in}{5mm}{s}{% \mbox{\bfseries Current~request:} \mbox{\bfseries \@currentrequest}% }\\[-8pt] \ifthenelse{\equal{\@totalchanged}{}}{ \par\sopheadc\hrulefill\par \hrulefill\par\hrulefill\par\hrulefill\par }{ \ifthenelse{\equal{\@totalchanged}{true} \or \equal{\@totalchanged}{yes}}{ \ifthenelse{\equal{\@reasonforchange}{}}{ \@sopwarningy }{ \parbox[t][2em][t]{0.995\textwidth}{ \sopheadc\@reasonforchange\par } } }{ \ifthenelse{\equal{\@reasonforchange}{}}{ \def\@reasonforchange{N/A}\par }{\relax} \parbox[t][2em][t]{0.995\textwidth}{ \sopheadc\@reasonforchange\par } } } } } \typeout{MakeAllocInfo ... done} } %% End Macro %% Environment: TimeSummary %% Dummy environments, used merely as a logical container to collect the info %% associated with a single run to appear in the observing run summary table. \newcounter{nTsum} \newenvironment{TimeSummary}{ \stepcounter{nTsum} }{ \relax } % actual containers for the time request/allocation variables \gdef\sopheadt{ \mbox{\bfseries Summary of time requested and awarded for this project}% } \gdef\sopheadc{ \mbox{\bfseries Justify why current total differs from that on previous proposal {\normalfont\itshape (up to 3 lines)}:\space\space} } \gdef\@totalnights{} \gdef\@totalchanged{} \gdef\@reasonforchange{} \gdef\@totalUAO{} \gdef\@totalCfA{} \gdef\@totalOther{} \gdef\@totalpast{} \gdef\@totalfuture{} \gdef\@currentrequest{} \gdef\totalnights#1 {\gdef\@totalnights{#1}} \gdef\totalchanged#1 {\gdef\@totalchanged{#1}} \gdef\reasonforchange#1 {\gdef\@reasonforchange{#1}} \gdef\totalUAO#1 {\gdef\@totalUAO{#1}} \gdef\totalCfA#1 {\gdef\@totalCfA{#1}} \gdef\totalOther#1 {\gdef\@totalOther{#1}} \gdef\totalpast#1 {\gdef\@totalpast{#1}} \gdef\totalfuture#1 {\gdef\@totalfuture{#1}} \gdef\currentrequest#1 {\gdef\@currentrequest{#1}} \gdef\chflgbox{ \ifthenelse{\equal{\@totalchanged}{true} \or \equal{\@totalchanged}{yes}}{ \mbox{\bfseries\rlap{\ *}\Large$\Box\!\!$}% }{ \mbox{\Large$\Box\!\!$}% } } %% Macro: MakePiApproval %% This macro creates the box for the instrument PI signature, to indicate %% approval of the use of that instrument for the proposed observations. \DeclareRobustCommand{\MakePiApproval}{% \typeout{MakePiApproval ... entering} \vspace*{7mm} \parbox[t][1.5em][t]{0.994\textwidth}{ \sopheadr\space\space \ifthenelse{\equal{\@piapproval}{}}{ {\hrulefill\\[-6pt] \rightline{\tiny\itshape (have instrument PI signature appear on, or attach PI e-mail to, {\bfseries all} copies)}} }{ \@piapproval } }\par \vspace*{-1mm} \typeout{MakePiApproval ... done} } %% End Macro % the actual containers for the instrument PI approval variables \gdef\sopheadr{ \mbox{\bfseries Approval for Instrument Use from PI:}% } \gdef\@piapproval{} \gdef\piapproval#1{\gdef\@piapproval{#1}} %% Macro: MakeGradInfo %% This macro generates the target list on the reverse of the cover page \DeclareRobustCommand{\MakeGradInfo}{% \typeout{MakeGradInfo ... entering} \typeout{ number of graduate students identified is \arabic{graduate}} \null\vspace*{4pt} \ifthenelse{ \value{graduate} < 1 }{ % draw an empty box where the graduate student table should appear \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \parbox[t][2.0in][t]{0.995\textwidth}{ \noindent\parbox[t]{0.995\textwidth}{\sopheadg}\\[4pt] \noindent\hspace*{-2pt} \fixmbox{1.75in}{4mm}{c}{\small Student's Name} \fixmbox{1.75in}{4mm}{c}{\small Advisor's Name} \fixmbox{2.00in}{4mm}{c}{\small Advisor's Signature} \fixmbox{0.49in}{4mm}{c}{\small 2nd-yr} \fixmbox{0.48in}{4mm}{c}{\small Thesis} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\null} \fixfbox{1.75in}{8mm}{l}{\null} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\null} \fixfbox{0.48in}{8mm}{c}{\null} }\par } }\par \vfill }{ % generate the graduate student table \noindent\hspace*{-3pt}\makebox[\textwidth][t]{ \parbox[t][2.0in][t]{0.995\textwidth}{ \noindent\parbox[t]{0.995\textwidth}{\sopheadg}\\[4pt] \noindent\hspace*{-2pt} \fixmbox{1.75in}{4mm}{c}{\small Student's Name} \fixmbox{1.75in}{4mm}{c}{\small Advisor's Name} \fixmbox{2.00in}{4mm}{c}{\small Advisor's Signature} \fixmbox{0.49in}{4mm}{c}{\small 2nd-yr} \fixmbox{0.48in}{4mm}{c}{\small thesis}%\\[-8pt] %\fixmbox{6.48in}{4mm}{c}{\rule{6.45in}{0.1pt}} \ifthenelse{\equal{\gradA@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradA@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradA@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradA@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradA@thesis}} }\par \ifthenelse{ \value{graduate} > 1 }{ \ifthenelse{\equal{\gradB@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradB@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradB@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradB@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradB@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 2 }{ \ifthenelse{\equal{\gradC@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradC@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradC@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradC@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradC@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 3 }{ \ifthenelse{\equal{\gradD@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradD@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradD@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradD@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradD@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 4 }{ \ifthenelse{\equal{\gradE@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradE@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradE@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradE@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradE@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 5 }{ \ifthenelse{\equal{\gradF@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradF@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradF@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradF@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradF@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 6 }{ \ifthenelse{\equal{\gradG@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradG@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradG@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradG@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradG@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 7 }{ \ifthenelse{\equal{\gradH@name}{}}{ \@sopwarningL }{\relax} \noindent\hspace*{-2pt}\mbox{ \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradH@name}} \fixfbox{1.75in}{8mm}{l}{\raisebox{4pt}{\gradH@advisor}} \fixfbox{2.00in}{8mm}{c}{\null} \fixfbox{0.49in}{8mm}{c}{\raisebox{4pt}{\gradH@secyr}} \fixfbox{0.48in}{8mm}{c}{\raisebox{4pt}{\gradH@thesis}} }\par }{\relax} \ifthenelse{ \value{graduate} > 8 }{ \@sopwarningM }{\relax} } } } \typeout{MakeGradInfo ... done} } %% End Macro %% Environment: graduatestudent %% Dummy environment, used merely as a logical container to collect the %% names of the graduate students and their advisors \newcounter{graduate} \newenvironment{graduatestudent}{ \stepcounter{graduate} }{ \ifthenelse{ \value{graduate} = 1 }{ \ifthenelse{\equal{\gradA@secyr}{true}\or\equal{\gradA@secyr}{yes}}{ \gdef\gradA@secyr{yes} }{ \gdef\gradA@secyr{no}} \ifthenelse{\equal{\gradA@thesis}{true}\or\equal{\gradA@thesis}{yes}}{ \gdef\gradA@thesis{yes} }{ \gdef\gradA@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 2 }{ \ifthenelse{\equal{\gradB@secyr}{true}\or\equal{\gradB@secyr}{yes}}{ \gdef\gradB@secyr{yes} }{ \gdef\gradB@secyr{no}} \ifthenelse{\equal{\gradB@thesis}{true}\or\equal{\gradB@thesis}{yes}}{ \gdef\gradB@thesis{yes} }{ \gdef\gradB@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 3 }{ \ifthenelse{\equal{\gradC@secyr}{true}\or\equal{\gradC@secyr}{yes}}{ \gdef\gradC@secyr{yes} }{ \gdef\gradC@secyr{no}} \ifthenelse{\equal{\gradC@thesis}{true}\or\equal{\gradC@thesis}{yes}}{ \gdef\gradC@thesis{yes} }{ \gdef\gradC@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 4 }{ \ifthenelse{\equal{\gradD@secyr}{true}\or\equal{\gradD@secyr}{yes}}{ \gdef\gradD@secyr{yes} }{ \gdef\gradD@secyr{no}} \ifthenelse{\equal{\gradD@thesis}{true}\or\equal{\gradD@thesis}{yes}}{ \gdef\gradD@thesis{yes} }{ \gdef\gradD@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 5 }{ \ifthenelse{\equal{\gradE@secyr}{true}\or\equal{\gradE@secyr}{yes}}{ \gdef\gradE@secyr{yes} }{ \gdef\gradE@secyr{no}} \ifthenelse{\equal{\gradE@thesis}{true}\or\equal{\gradE@thesis}{yes}}{ \gdef\gradE@thesis{yes} }{ \gdef\gradE@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 6 }{ \ifthenelse{\equal{\gradF@secyr}{true}\or\equal{\gradF@secyr}{yes}}{ \gdef\gradF@secyr{yes} }{ \gdef\gradF@secyr{no}} \ifthenelse{\equal{\gradF@thesis}{true}\or\equal{\gradF@thesis}{yes}}{ \gdef\gradF@thesis{yes} }{ \gdef\gradF@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 7 }{ \ifthenelse{\equal{\gradG@secyr}{true}\or\equal{\gradG@secyr}{yes}}{ \gdef\gradG@secyr{yes} }{ \gdef\gradG@secyr{no}} \ifthenelse{\equal{\gradG@thesis}{true}\or\equal{\gradG@thesis}{yes}}{ \gdef\gradG@thesis{yes} }{ \gdef\gradG@thesis{no}} }{\relax} \ifthenelse{ \value{graduate} = 8 }{ \ifthenelse{\equal{\gradH@secyr}{true}\or\equal{\gradH@secyr}{yes}}{ \gdef\gradH@secyr{yes} }{ \gdef\gradH@secyr{no}} \ifthenelse{\equal{\gradH@thesis}{true}\or\equal{\gradH@thesis}{yes}}{ \gdef\gradH@thesis{yes} }{ \gdef\gradH@thesis{no}} }{\relax} } % actual containers for the graduate student and advisor variables \gdef\sopheadg{ \mbox{\bfseries Graduate students} {\itshape (provide the following information for {\bfseries each} student named as PI or CoI on the cover page. Have the advisor's signature(s) appear on {\bfseries all} submitted copies) } } \gdef\gradA@name{} \gdef\gradA@advisor{} \gdef\gradB@name{} \gdef\gradB@advisor{} \gdef\gradC@name{} \gdef\gradC@advisor{} \gdef\gradD@name{} \gdef\gradD@advisor{} \gdef\gradE@name{} \gdef\gradE@advisor{} \gdef\gradF@name{} \gdef\gradF@advisor{} \gdef\gradG@name{} \gdef\gradG@advisor{} \gdef\gradH@name{} \gdef\gradH@advisor{} \gdef\gradA@secyr{} \gdef\gradA@thesis{} \gdef\gradB@secyr{} \gdef\gradB@thesis{} \gdef\gradC@secyr{} \gdef\gradC@thesis{} \gdef\gradD@secyr{} \gdef\gradD@thesis{} \gdef\gradE@secyr{} \gdef\gradE@thesis{} \gdef\gradF@secyr{} \gdef\gradF@thesis{} \gdef\gradG@secyr{} \gdef\gradG@thesis{} \gdef\gradH@secyr{} \gdef\gradH@thesis{} \def\student#1{\global\@namedef{grad\@Alph{\c@graduate}@name}{#1}} \def\advisor#1{\global\@namedef{grad\@Alph{\c@graduate}@advisor}{#1}} \def\secondyr#1{\global\@namedef{grad\@Alph{\c@graduate}@secyr}{#1}} \def\thesis#1{\global\@namedef{grad\@Alph{\c@graduate}@thesis}{#1}} %% Warning Messages -- at present, 56 (a-zA-Z) error conditions are caught %% and hopefully meaningfull hints of how to resolve the issue are returned. \gdef\@errindent{\space\space\space\space\space\space\space\space\space} % \DeclareRobustCommand{\@sopwarninga}{% \typeout{ } \typeout{ WARNING: \protect\propyear{}\space is empty. Please edit the proposal template file and} \typeout{ \@errindent provide the 4-digit year [2006--2016] of the proposed observations.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningb}{% \typeout{ } \typeout{ WARNING: the year specified in \protect\propyear{}\space is either out of range or has} \typeout{ \@errindent an invalid format. Please specify a 4-digit year [2006--2016].} \typeout{ } }% \DeclareRobustCommand{\@sopwarningc}{% \typeout{ } \typeout{ WARNING: \protect\propterm{}\space is empty. Please edit the proposal template file and} \typeout{ \@errindent specify a trimester [1,2,3] or semester [A,B].} \typeout{ } }% \DeclareRobustCommand{\@sopwarningd}{% \typeout{ } \typeout{ WARNING: the term identifier in \protect\propterm{}\space is invalid! Please} \typeout{ \@errindent specify a trimester [1,2,3] or semester [A,B].} \typeout{ } }% \DeclareRobustCommand{\@sopwarninge}{% \typeout{ } \typeout{ WARNING: \protect\propcont{}\space is empty; assuming default value: 'false'.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningf}{% \typeout{ } \typeout{ WARNING: the program continuation flag value in \protect\propcont{}\space is invalid!} \typeout{ \@errindent Assuming default value: 'false'.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningg}{% %*%\typeout{ } %*%\typeout{ WARNING: \protect\proplong{}\space is empty; assuming default %*% value: 'false'.} %*%\typeout{ } }% \DeclareRobustCommand{\@sopwarningh}{% \typeout{ } \typeout{ WARNING: the long-term program flag value in \protect\propcont{}\space is invalid!} \typeout{ \@errindent Assuming default value: 'false'.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningi}{% \typeout{ } \typeout{ WARNING: \protect\propltnr{}\space is empty. Please edit the proposal template file and} \typeout{ \@errindent provide the assigned long-term program number.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningj}{% \typeout{ } \typeout{ WARNING: the program number specified in \protect\propltnr{}\space appears to be negative!} \typeout{ \@errindent Please specify your assigned program number.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningk}{% \typeout{ } \typeout{ WARNING: \protect\proptitle{}\space is empty. Please edit the proposal template file and} \typeout{ \@errindent provide a descriptive, but concise proposal title.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningl}{% \typeout{ } \typeout{ WARNING: \protect\begin{PrincipalInvestigator}} \typeout{ \@errindent \space\space ..} \typeout{ \@errindent \protect\end{PrincipalInvestigator}} \typeout{ \@errindent block is missing in the proposal template file! Check whether} \typeout{ \@errindent it was inadvertently commented out or deleted.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningm}{% \typeout{ } \typeout{ WARNING: there appears to be more than one} \typeout{ \@errindent \space\space \protect\begin{PrincipalInvestigator}} \typeout{ \@errindent \space\space\space\space ..} \typeout{ \@errindent \space\space \protect\end{PrincipalInvestigator}} \typeout{ \@errindent block in the proposal template file! Please identify a single PI.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningn}{% \typeout{ } \typeout{ WARNING: \protect\PIname{}\space is empty. Please identify a principal investigator.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningo}{% \typeout{ } \typeout{ WARNING: \protect\PIinstitution{}\space is empty. Assuming default SO (Steward Observatory).} \typeout{ } }% \DeclareRobustCommand{\@sopwarningp}{% \typeout{ } \typeout{ WARNING: \protect\PIemail{}\space is empty. Please provide an e-mail address via which} \typeout{ \@errindent the PI (or actual observer) can be contacted.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningq}{% \typeout{ } \typeout{ WARNING: \protect\PIphone{}\space is empty. Please provide a telephone number via which} \typeout{ \@errindent the PI (or actual observer) can be contacted.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningr}{% \typeout{ } \typeout{ WARNING: empty \protect\begin{CoInvestigator} .. \protect\end{CoInvestigator} block!} \typeout{ \@errindent Please enter CoI information, or comment out this block.} \typeout{ } }% \DeclareRobustCommand{\@sopwarnings}{% \typeout{ } \typeout{ WARNING: \protect\propabstract{}\space is empty. Please edit the proposal template file} \typeout{ \@errindent and provide a concise abstract of the scientific justification.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningt}{% \typeout{ } \typeout{ WARNING: there should be at least one} \typeout{ \@errindent \space\space\protect\begin{ObservingRun}} \typeout{ \@errindent \space\space\space\space ..} \typeout{ \@errindent \space\space\protect\end{ObservingRun}} \typeout{ \@errindent block in the proposal template file! Check whether} \typeout{ \@errindent it was inadvertently commented out or deleted.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningu}{% \typeout{ } \typeout{ WARNING: too many observing runs specified! Please limit the total number of} \typeout{ \@errindent requested runs to 12 or less.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningv}{% \typeout{ } \typeout{ WARNING: alternate run number \altA@run , specified in \protect\alttorunnumber{}, is larger} \typeout{ \@errindent than the number of primary runs defined (\arabic{obsrun})!} \typeout{ } }% \DeclareRobustCommand{\@sopwarningw}{% \typeout{ } \typeout{ WARNING: too many alternate runs specified! Please limit the total number of} \typeout{ \@errindent requested alternate runs to 3 or less.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningx}{% \typeout{ } \typeout{ WARNING: \protect\totalchanged{} is empty! Please enter either 'true' or 'false'} \typeout{ \@errindent (without the quotes)} \typeout{ } }% \DeclareRobustCommand{\@sopwarningy}{% \typeout{ } \typeout{ WARNING: \protect\totalchanged{true}, but \protect\reasonforchange{} is empty!} \typeout{ \@errindent Please justify why the total time for this project estimated here} \typeout{ \@errindent differs from that on the most recent previous proposal.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningz}{% \typeout{ } \typeout{ WARNING: there should be at least one} \typeout{ \@errindent \space\space\protect\begin{Target}} \typeout{ \@errindent \space\space\space\space ..} \typeout{ \@errindent \space\space\protect\end{Target}} \typeout{ \@errindent block in the proposal template file! Check whether} \typeout{ \@errindent it was inadvertently commented out or deleted.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningA}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 1! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningB}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 2! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningC}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 3! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningD}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 4! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningE}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 5! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningF}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 6! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningG}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 7! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningH}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 8! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningI}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 9! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningJ}{% \typeout{ } \typeout{ WARNING: \protect\targname{} is empty for target nr. 10! Please enter object name,} \typeout{ \@errindent RA, Dec, and any other relevant target properties.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningK}{% \typeout{ } \typeout{ WARNING: too many targets specified (\arabic{starget})! Please limit the total number} \addtocounter{starget}{-1} \typeout{ \@errindent of targets to 26 or less. Targets 26-\arabic{starget} have been ignored.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningL}{% \typeout{ } \typeout{ WARNING: empty \protect\begin{graduatestudent} .. \protect\end{graduatestudent} block!} \typeout{ \@errindent Please enter student information, or comment out this block.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningM}{% \typeout{ } \typeout{ WARNING: too many graduate students specified (\arabic{graduate})! Please limit the total} \typeout{ \@errindent number of students to 8 or less.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningN}{% \typeout{ } \typeout{ WARNING: \protect\telescope{} for observing run nr. 1 is empty! Please enter a} \typeout{ \@errindent valid telescope identifier.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningO}{% \typeout{ } \typeout{ WARNING: \protect\secondary{} for observing run nr. 1 is empty! Please enter a} \typeout{ \@errindent valid secondary cage identifier.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningP}{% \typeout{ } \typeout{ WARNING: \protect\instrument{} for observing run nr. 1 is empty! Please enter a} \typeout{ \@errindent valid instrument identifier.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningQ}{% \typeout{ } \typeout{ WARNING: \protect\piflag{} for observing run nr. 1 is empty! Assuming default} \typeout{ \@errindent value: 'false'.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningR}{% \typeout{ } \typeout{ WARNING: \protect\numhours{} for observing run nr. 1 is empty! Please enter the} \typeout{ \@errindent number of nights you are requesting.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningS}{% \typeout{ } \typeout{ WARNING: \protect\mode{} for observing run nr. 1 is empty! Please enter one} \typeout{ \@errindent of 'bright', 'grey' or 'dark'.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningT}{% \typeout{ } \typeout{ WARNING: \protect\optimalmonths{} for observing run nr. 1 is empty! Please enter} \typeout{ \@errindent the optimal month-range for the proposed observations using} \typeout{ \@errindent three-letter abbreviations for the months, seperated by a} \typeout{ \@errindent double-dash. E.g., Sep--Nov, Jan--Jan, etc..} \typeout{ } }% \DeclareRobustCommand{\@sopwarningU}{% \typeout{ } \typeout{ WARNING: \protect\acceptablemonths{} for observing run nr. 1 is empty! Please} \typeout{ \@errindent enter the acceptable month-range for the proposed observations} \typeout{ \@errindent using three-letter abbreviations for the months, seperated} \typeout{ \@errindent by a double-dash. E.g., Sep--Nov, Jan--Jan, etc..} \typeout{ } }% %\DeclareRobustCommand{\@sopwarningV}{% % \typeout{ } % \typeout{ WARNING: \protect\schedulingconstraints{} is empty! Please % enter any unusable} % \typeout{ \@errindent dates and/or scheduling constraints. If there are % no constraints,} % \typeout{ \@errindent please enter 'None' (without the quotes).} % \typeout{ } %}% \DeclareRobustCommand{\@sopwarningW}{% \typeout{ } \typeout{ WARNING: \protect\totalnights{} is empty! Please enter the current estimate of the} \typeout{ \@errindent total number of nights from start to finish that this project} \typeout{ \@errindent will likely require, i.e., the sum of any past allocations, the} \typeout{ \@errindent presently requested nights, and the time anticipated in future} \typeout{ \@errindent requests. Please enter digits (integer number of nights.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningX}{% \typeout{ } \typeout{ WARNING: \protect\totalUAO{} is empty! Please enter how many nights out of the} \typeout{ \@errindent total in \protect\totalnights are to be from UAO.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningY}{% \typeout{ } \typeout{ WARNING: \protect\currentrequest{} is empty! Please enter the number of nights} \typeout{ \@errindent requested in the current proposal (sum of requested observing runs.} \typeout{ } }% \DeclareRobustCommand{\@sopwarningZ}{% \typeout{ } \typeout{ WARNING: \protect\alttelescope{} for alternate run nr. 1 is empty! Please enter a} \typeout{ \@errindent valid telescope identifier, or comment out the possibly empty} \typeout{ \@errindent \space\space\protect\begin{AlternateRun}} \typeout{ \@errindent \space\space\space\space ..} \typeout{ \@errindent \space\space\protect\end{AlternateRun}} \typeout{ \@errindent block.} \typeout{ } }% %% End Warning Messages %% The scientific justification and the proposed observing program are typeset %% (printed) as they are specified by the author. The observing run request(s) %% are summarized in the "ObservingRun/AlternateRun" environment (above) and %% collected in the table on the cover page. The target information is listed %% in the table on the second cover page. \DeclareRobustCommand{\propsection}{\@startsection{section}{1}{\z@} {7pt plus 4pt minus 2pt}{-1em}{\normalsize\bf}} \DeclareRobustCommand{\subsection}{\@startsection{subsection}{2}{\z@} {-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\normalsize\bf}} \renewcommand{\refname}{\normalsize References\vspace*{-8pt}} \newenvironment{references}{% \subsubsection*{References} \setlength{\parskip}{0pt} \ltx@small }{\relax} \let\reference=\par \DeclareRobustCommand{\instruct@font}{\small\sl $\!\!$} \DeclareRobustCommand{\justif@head}{{\instruct@font \ \par}} \DeclareRobustCommand{\feas@head}{{\instruct@font Describe your overall observational program. How will these observations contribute toward the accomplishment of the goals outlined in the science justification? If you've requested long-term status, justify why this is necessary for successful completion of the science. ({\bfseries\itshape up to one page})\par}} \DeclareRobustCommand{\ofac@head}{{\instruct@font List any time from partner institutions, going toward this {MMT/}\-{Magellan} project; who is the lead investigator on that time; list any time being asked from other facilities (e.g., Keck, NOAO, HST, Spitzer, etc..)\ for this project and whether there is need for any specific coordination; does the project's success depend on such capabilities not covered by UAO telescopes.\par}} %*%; list how many nights have been granted from {\bfseries all} sources, %*%and how many were weathered out; justify the number of remaining nights %*%toward completion of the project.\par}} %\DeclareRobustCommand{\time@head}{{\instruct@font The TAC needs to understand % the scope of this project. First, tell us how many UAO nights you've % already had for this project, how many you're asking for this time, and % give a good guess for how many you'll need to complete the project. % Second, if substantial amounts of the observing for this project are % coming from non-UAO telescopes, tell us about that observing, and tell us % how the UAO part fits in. Third, if you are collaborating with people who % have telescopes, and especially if you are part of a very large % collaboration, tell us who is leading the project, and how UAO time and % your participation fit into the large project. ({\bfseries\itshape up to % one page})\par}} \DeclareRobustCommand{\time@head}{{\instruct@font The TAC needs to understand the scope of this project ---\\ (1) tell us how many UAO nights you've already had for this project, how many you request this time, and (a good guess of) how many you need to complete the project; (2) if a substantial amount of observing for this project comes from non-UAO telescopes, tell us about that observing, and how the UAO part fits in; (3) if you are collaborating with people who have telescopes, especially if you are part of a large collaboration, tell us who is leading the project, and how UAO time and your participation fit in. ({\bfseries\itshape up to one page})\par}} \DeclareRobustCommand{\past@head}{{\instruct@font List {\bfseries all} allocations of telescope time for the present project and allocations for other projects on facilities available through UAO during the past 2 years, together with the current status of the data (cite publications where appropriate). Mark those allocations related to the present proposal {(i.e, precede text with } \texttt{$\tt\backslash\!$related} command). ({\bfseries\itshape up to one page})\par}} %*%{\itshape This section does not count toward the page limit}. \DeclareRobustCommand{\sciencejustification}{ \newpage\propsection{ \hspace*{-2pt}\fixfbox{1.50in}{4mm}{c}{Scientific Justification} } \justif@head } \DeclareRobustCommand{\experimentaldesige}{ \ifthenelse{\equal{\@proptermlong}{true}\or\equal{\@proptermlong}{yes}}{ \ifthenelse{\value{page} > 5}{ \typeout{ } \typeout{ WARNING: Scientific Justification page limit of 4 pages exceeded!} \typeout{ } }{\relax} }{ \ifthenelse{\value{page} > 4}{ \typeout{ } \typeout{ WARNING: Science Justification page limit of 3 pages exceeded!} \typeout{ } }{\relax} } \newpage\propsection{ \hspace*{-2pt}\fixfbox{3.07in}{4mm}{c}{Experimental Design \& Technical Description} } \feas@head } \DeclareRobustCommand{\collaborations}{ \vfill\propsection{ \hspace*{-2pt}\fixfbox{1.05in}{4mm}{c}{Collaborations} } \ofac@head } \DeclareRobustCommand{\timerequest}{ \vfill\propsection{ \hspace*{-2pt}\fixfbox{2.90in}{4mm}{c}{Summary of Time Requested and Awarded} } \time@head } \DeclareRobustCommand{\pastuse}{ \gdef\related{\mbox{$\!\!\!\!\star\,$}} \vfill\propsection{ \hspace*{-2pt}\fixfbox{2.30in}{4mm}{c}{Previous Use of Steward Facilities} } \past@head } %% We only want page numbers at the top of each page and we turn off major %% section numbering (subsection numbers will still work) \DeclareRobustCommand{\ps@soprophead}{ \def\@oddfoot{} \def\@evenfoot{} \def\@oddhead{\hbox to\textwidth{\small\sl\hfill Page \thepage\hfill}} \let\@evenhead\@oddhead % don't number major sections \setcounter{secnumdepth}{0} % don't complain about underfull \hbox \hbadness=100000 % attempt to disable resizing of fonts \let\ltx@small =\small \gdef\small{\normalsize} \let\ltx@footnotesize=\footnotesize \let\ltx@obsheadsize =\footnotesize \gdef\footnotesize{\normalsize} } %% Redefine the \end{document} command \DeclareRobustCommand{\revtex@pageid}{ \def\@thefnmark{\null} \@footnotetext{\ltx@footnotesize\revtex@genre\space v\revtex@ver\space (\revtex@date\space[\revtex@author]).} } \let\ltx@enddoc=\enddocument \DeclareRobustCommand{\enddocument}{ \typeout{EndDocument ... entering} \ifthenelse{\equal{\@proptermlong}{true}\or\equal{\@proptermlong}{yes}}{ \typeout{ total number of pages is 2 cover pages + \arabic{page} and long-term is 'true'.} \ifthenelse{\value{page} > 7}{ \typeout{ } \typeout{ WARNING: Nominal proposal page limit of 7 pages exceeded!} %\typeout{ \@errindent This may be OK if this is due to the % "Time Summary" and/or} %\typeout{ \@errindent "Collaborations" section(s) and no page % limit warning} %\typeout{ \@errindent was issued for the "Scientific % Justification" section.} \typeout{ } }{ \typeout{ your proposal obeys the page limit.} \relax } }{ \typeout{ total number of pages is 2 cover pages + \arabic{page} and long-term is 'false'.} \ifthenelse{\value{page} > 6}{ \typeout{ } \typeout{ WARNING: Nominal proposal page limit of 6 pages exceeded!} %\typeout{ \@errindent This may be OK if this is due to the % "Time Summary" and/or} %\typeout{ \@errindent "Collaborations" section(s) and no page % limit warning} %\typeout{ \@errindent was issued for the "Scientific % Justification" section.} \typeout{ } }{ \typeout{ your proposal obeys the page limit.} \relax } } \vfill \typeout{EndDocument ... done} \revtex@pageid\ltx@enddoc }% %% Set headers after the cover and target pages \ps@soprophead %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Simplified EPS inclusion macros, layered on Rokicki's dvips material, %% that provide commands \plotone{EPSFILE}, \plottwo{EPSFILE}{EPSFILE}, and %% \plotfiddle{EPSFILE}{VSIZE}{ANGLE}{HSIZ}{VSIZ}{HTRANS}{VTRANS}, where %% \plotone inserts the plot in a space that is \columnwidth wide; the %% plot is scaled so the horizontal dimension fits in the text width, %% and the vertical dimension is scaled to maintain the aspect ratio. %% \plottwo inserts two plots next to each other in one \columnwidth, %% sort of like "two-up" mode. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \ifundefined sequence \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} % Include Rokicki's epsf.sty file explicitly. \@ifundefined{epsfbox}{\input{epsf.sty}}{\relax} %\epsfverbosetrue \def\eps@scaling{.95} \def\epsscale#1{\gdef\eps@scaling{#1}} \def\plotone#1{\centering \leavevmode \epsfxsize=\eps@scaling\columnwidth \epsfbox{#1}} \def\plottwo#1#2{\centering \leavevmode \epsfxsize=.45\columnwidth \epsfbox{#1} \hfil \epsfxsize=.45\columnwidth \epsfbox{#2}} \def\plotfiddle#1#2#3#4#5#6#7{\centering \leavevmode \vbox to#2{\rule{0pt}{#2}} \special{psfile=#1 voffset=#7 hoffset=#6 vscale=#5 hscale=#4 angle=#3}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Convenient shorthand notations - compatible with AASTeX v4.0. %\newcommand{\lesssim} {\mbox{\rlap{\hbox{\lower3pt\hbox{\ensuremath{\sim}}}}\raise1.5pt\hbox{\ensuremath{<}}}}% \newcommand{\lsim} {\lesssim}% %\newcommand{\la} {\lesssim}% For Springer A&A compliance... %\newcommand{\gtrsim} {\mbox{\rlap{\hbox{\lower3pt\hbox{\ensuremath{\sim}}}}\raise1.5pt\hbox{\ensuremath{>}}}}% \newcommand{\gsim} {\gtrsim}% %\newcommand{\ga} {\gtrsim}% %\newcommand{\sq} {\mbox{\rlap{\ensuremath{\sqcap}}\ensuremath{\sqcup}}}% %\newcommand{\arcdeg} {\mbox{\ensuremath{{}^\circ}}}% %\newcommand{\arcmin} {\mbox{\ensuremath{{}^\prime}}}% %\newcommand{\arcsec} {\mbox{\ensuremath{{}^{\prime\prime}}}}% %\newcommand{\fd} {\mbox{\ensuremath{.\mkern-4mu^{\rm d}}}}% %\newcommand{\fh} {\mbox{\ensuremath{.\mkern-5mu^{\rm h}}}}% %\newcommand{\fm} {\mbox{\ensuremath{.\mkern-6mu^{\rm m}}}}% %\newcommand{\fs} {\mbox{\ensuremath{.\mkern-4mu^{\rm s}}}}% %\newcommand{\fdg} {\mbox{\ensuremath{.\mkern-5mu^{\circ}}}}% %\newcommand{\farcd} {\mbox{\ensuremath{.\mkern-5mu^{\circ}}}}% %\newcommand{\farcm} {\mbox{\ensuremath{.\mkern-4mu^{\prime}}}}% %\newcommand{\farcs} {\mbox{\ensuremath{.\mkern-5mu^{\prime\prime}}}}% %\newcommand{\fp} {\mbox{\ensuremath{.\mkern-4mu^{\rm p}}}}% %\newcommand{\micron} {\ensuremath{\mu\mbox{m}}}% %\newcommand{\kms} {\ensuremath{\mbox{km\,s}^{-1}}}% %\newcommand{\kmsMpc} {\ensuremath{\mbox{km\,s}^{-1}\,\mbox{Mpc}^{-1}}}% %\newcommand{\magarc} {\ensuremath{\mbox{mag\,arcsec}^{-2}}}% %\newcommand{\fluxdens} {\ensuremath{\mbox{ergs\,s}^{-1}\,\mbox{cm}^{-2}\,\mbox{\AA}{\!}^{-1}}}% %\newcommand{\case}[2] {\mbox{\ensuremath{\frac{#1}{#2}}}}% %\newcommand{\slantfrac}[2]{\mbox{\ensuremath{\,^#1\!/_#2}}}% %\newcommand{\onehalf} {\slantfrac{1}{2}}% %\newcommand{\onethird} {\slantfrac{1}{3}}% %\newcommand{\twothirds} {\slantfrac{2}{3}}% %\newcommand{\onequarter} {\slantfrac{1}{4}}% %\newcommand{\threequarters}{\slantfrac{3}{4}}% %\newcommand{\ubv} {\mbox{\ensuremath{U\!BV}}}% %\newcommand{\ubvr} {\mbox{\ensuremath{U\!BV\!R}}}% %\newcommand{\ub} {\mbox{\ensuremath{U\!-\!B}}}% %\newcommand{\uv} {\mbox{\ensuremath{U\!-\!V}}}% %\newcommand{\ur} {\mbox{\ensuremath{U\!-\!R}}}% %\newcommand{\bv} {\mbox{\ensuremath{B\!-\!V}}}% %\newcommand{\br} {\mbox{\ensuremath{B\!-\!R}}}% %\newcommand{\bh} {\mbox{\ensuremath{B\!-\!H}}}% %\newcommand{\bk} {\mbox{\ensuremath{B\!-\!K}}}% %\newcommand{\vr} {\mbox{\ensuremath{V\!-\!R}}}% %\newcommand{\vi} {\mbox{\ensuremath{V\!-\!I}}}% %\newcommand{\ri} {\mbox{\ensuremath{R\!-\!I}}}% %\newcommand{\jhk} {\mbox{\ensuremath{J\!H\!K}}}% %\newcommand{\jk} {\mbox{\ensuremath{J\!-\!K}}}% %\newcommand{\hk} {\mbox{\ensuremath{H\!-\!K}}}% %\newcommand{\ebv} {\mbox{\ensuremath{E(B\!-\!\V)}}}% %\newcommand{\Lya} {\ensuremath{\mbox{Ly}\alpha}}% %\newcommand{\Lyb} {\ensuremath{\mbox{Ly}\beta}}% %\newcommand{\Ha} {\ensuremath{\mbox{H}\alpha}}% %\newcommand{\Hb} {\ensuremath{\mbox{H}\beta}}% %\newcommand{\Hg} {\ensuremath{\mbox{H}\gamma}}% %\newcommand{\Hd} {\ensuremath{\mbox{H}\delta}}% %\newcommand{\Paa} {\ensuremath{\mbox{Pa}\alpha}}% %\newcommand{\Pab} {\ensuremath{\mbox{Pa}\beta}}% %\newcommand{\Pag} {\ensuremath{\mbox{Pa}\gamma}}% %\newcommand{\Bra} {\ensuremath{\mbox{Br}\alpha}}% %\newcommand{\Brb} {\ensuremath{\mbox{Br}\beta}}% %\newcommand{\Brg} {\ensuremath{\mbox{Br}\gamma}}% %\newcounter{ion} %\newcommand{\ion}[2] {\setcounter{ion}{#2}\mbox{#1\,{\fontsize{9pt}{9}\selectfont\@\Roman{ion}}}}% %\newcommand{\HI} {\mbox{\ion{H}{1}}}% %\newcommand{\HII} {\mbox{\ion{H}{2}}}% %\newcommand{\HeI} {\mbox{\ion{He}{1}}}% %\newcommand{\HeII} {\mbox{\ion{He}{2}}}% %\newcommand{\HeIII} {\mbox{\ion{He}{3}}}% %\newcommand{\nodata} { ~\ensuremath{\cdots}~ }% %\newcommand{\sun} {\mbox{\ensuremath{\odot}}}% %\newcommand{\Sun} {\sun}% %\newcommand{\Sol} {\sun}% %\newcommand{\earth} {\mbox{\ensuremath{\oplus}}}% %\newcommand{\Earth} {\earth}% %\newcommand{\Terra} {\earth}% % % Journal abbreviations \def\aj{\rmfamily{AJ~}} % Astronomical Journal \def\apj{\rmfamily{ApJ~}} % Astrophysical Journal \def\apjl{\rmfamily{ApJ~}} % Astrophysical Journal, Letters \def\apjs{\rmfamily{ApJS~}} % Astrophysical Journal, Supplement \let\apjlett=\apjl \let\apjsupp=\apjs \def\aap{\rmfamily{A\&A~}} % Astronomy and Astrophysics \let\astap=\aap \def\araa{\rmfamily{ARA\&A~}} % Annual Review of Astronomy and Astrophysics \def\aapr{\rmfamily{A\&A~Rev.~}} % Astronomy and Astrophysics Reviews \def\aaps{\rmfamily{A\&AS~}} % Astronomy and Astrophysics, Supplement \def\mnras{\rmfamily{MNRAS~}} % Monthly Notices of the Royal Astron. Soc. \def\pasp{\rmfamily{PASP~}} % Publications of the Astron. Soc. o/t Pacific \def\apss{\rmfamily{Ap\&SS~}} % Astrophysics and Space Science \def\pasj{\rmfamily{PASJ~}} % Publications of the Astron. Soc. of Japan \def\pra{\rmfamily{Phys.~Rev.~A~}}% Physical Review A: Atomic, Molecular, and % Optical Physics \def\prb{\rmfamily{Phys.~Rev.~B~}}% Physical Review B: Condensed Matter and % Materials Physics \def\prc{\rmfamily{Phys.~Rev.~C~}}% Physical Review C: Nuclear Physics \def\prd{\rmfamily{Phys.~Rev.~D~}}% Physical Review D: Particles, Fields, % Gravitation and Cosmology \def\pre{\rmfamily{Phys.~Rev.~E~}}% Physical Review E: Statistical, Nonlinear, % and Soft Matter Physics \def\rmp{\rmfamily{Rev.~Mod.~Phys.~}}% Reviews of Modern Physics \def\prl{\rmfamily{Phys.~Rev.~Lett.~}}% Physical Review Letters \def\nat{\rmfamily{Nature~}} % Nature \def\sci{\rmfamily{Science~}} % Science \def\skytel{\rmfamily{S\&T~}} % Sky and Telescope \def\ao{\rmfamily{Appl.~Opt.~}} % Applied Optics \let\applopt=\ao \def\azh{\rmfamily{AZh~}} % Astronomicheskii Zhurnal \def\baas{\rmfamily{BAAS~}} % Bulletin of the AAS \def\jrasc{\rmfamily{JRASC~}} % Journal of the Royal Astron. Soc. of Canada \def\memras{\rmfamily{MmRAS~}} % Memoirs of the Royal Astron. Soc. \def\qjras{\rmfamily{QJRAS~}} % Quarterly Journal of the Royal Astron. Soc. \def\solphys{\rmfamily{Sol.~Phys.~}}% Solar Physics \def\sovast{\rmfamily{Soviet~Ast.~}}% Soviet Astronomy \def\ssr{\rmfamily{Space~Sci.~Rev.~}}% Space Science Reviews \def\zap{\rmfamily{ZAp~}} % Zeitschrift fuer Astrophysik \def\iauc{\rmfamily{IAU~Circ.~}} % IAU Cirulars \let\iaucirc=\iauc \def\aplett{\rmfamily{Astrophys.~Lett.~}}% Astrophysics Letters \def\apspr{\rmfamily{Astrophys.~Space~Phys.~Res.~}}% Astrophysics Space Physics % Research \def\bain{\rmfamily{Bull.~Astron.~Inst.~Netherlands~}}% Bulletin of the % Astronomical Institute of the Netherlands \def\fcp{\rmfamily{Fund.~Cosmic~Phys.~}}% Fundamental Cosmic Physics \def\gca{\rmfamily{Geochim.~Cosmochim.~Acta~}}% Geochimica Cosmochimica Acta \def\grl{\rmfamily{Geophys.~Res.~Lett.~}}% Geophysics Research Letters \def\jcp{\rmfamily{J.~Chem.~Phys.~}}% Journal of Chemical Physics \def\jgr{\rmfamily{J.~Geophys.~Res.~}}% Journal of Geophysics Research \def\jqsrt{\rmfamily{J.~Quant.~Spec.~Radiat.~Transf.~}} % Journal of Quantitative % Spectroscopy and Radiative Transfer \def\memsai{\rmfamily{Mem.~Soc.~Astron.~Italiana~}} % Mem. Societa Astronomica Italiana \def\nphysa{\rmfamily{Nucl.~Phys.~A~}}% Nuclear Physics A \def\physrep{\rmfamily{Phys.~Rep.~}}% Physics Reports \def\physscr{\rmfamily{Phys.~Scr~}}% Physica Scripta \def\planss{\rmfamily{Planet.~Space~Sci.~}}% Planetary Space Science \def\procspie{\rmfamily{Proc.~SPIE~}}% Proceedings of the SPIE \def\aipconf{\rmfamily{AIP~Conf.~Proc.~}}% AIP Conference Proceedings \def\aspconf{\rmfamily{ASP~Conf.~Ser.~}}% ASP Conference Series \def\asslconf{\rmfamily{Ap\&SSL~Conf.~Ser.~}}% ASSL Conference Series} \def\maps{\rmfamily{MAPS~}} % Meteoritics and Planetary Science %%%%%%%%%%%%%%%%%%%%%%%%%%%% RAJ - Oct 6 2006 %%%%%%%%%%%%%%%%%%%%%%%%%%%%