% Begin document here % % =================================================================== % galex6.sty (Be sure to use this name when saving the file!) % % Style file for GALEX Cycle 6 Phase 1 proposals. % Version 1.10 May 1, 2009 % % developed by: % Harry Payne (payne@stsci.edu) % Space Telescope Science Institute % modified for Cycle 5 FUSE by % Mary Romelfanger (mary@pha.jhu.edu) % Johns Hopkins University % modified for GALEX Cycle 1 by % Susan Neff (susan.g.neff@nasa.gov) % Goddard Space Flight Center % and % Michael Greason % Goddard Space Flight Center % \newcounter{cycle} \setcounter{cycle}{6} % <== Current cycle goes here. \newcounter{nextcycle} \setcounter{nextcycle}{5} \addtocounter{nextcycle}{\value{cycle}} \newcounter{afternext} \setcounter{afternext}{6} \addtocounter{afternext}{\value{cycle}} \def\@thiscycle{\alph{cyclecounter}} \def\@nextcycle{\alph{nextcyclecounter}} \def\@afternext{\alph{afternextcounter}} % % INPUT OTHER STYLES % % Get started by reading in some standard LaTeX styles. We % want the text to be in 12pt fonts. But \input art12.sty % does not work in latex2e, so we changed the template. % % The PostScript Times % style should be commented out, except at sites where it % has been installed (it is part of Tomas Rokicki's dvips % package, available via anonymous ftp from labrea.stanford.edu). %\input supertabular.sty\relax %%% ==================================================================== %%% @LaTeX-style-file{ %%% author-1 = "Braams J.L.", %%% author-2 = "Jurriens, T.", %%% version = "3.7b", %%% date = "16 May 1994", %%% time = "16:11:07 MET", %%% filename = "supertabular.sty", %%% shortfilename = "supertab.sty" %%% address-1 = "PTT Research %%% St. Paulusstraat 4 %%% 2264 XZ Leidschendam %%% The Netherlands", %%% address-2 = "Rijksuniversiteit Groningen %%% P.O. Box 800 %%% 9700 AV Groningen %%% The Netherlands", %%% telephone = "(70) 3325051", %%% FAX = "(70) 3326477", %%% checksum = "53924 541 2505 23783", %%% email = "J.L.Braams@research.ptt.nl (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "", %%% supported = "yes", %%% abstract = "A style optioin that implements multi-page %%% tables. The tables have their natural %%% widths on the subsequent pages.", %%% docstring = "The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== % % ===> This file can NOT YET be run through LaTeX with the doc option <== % % supertabular sty % original idea: Theo Jurriens 1988 % jurriens@fwn.rug.nl P.O Box 800, 9700 AV Groningen % % revised by: Johannes Braams % J.L.Braams@research.ptt.nl PTT Research Leidschendam (NL) % \def\fileversion{3.7a} % \def\filename{supertabular sty} % \def\filedate{1994/05/16} % % \changes{v3.7b}{1994/05/16}{Rewrote the page break deciding % algorithm again} % \changes{v3.7b}{1994/05/16}{Started to convert to dtx format} % % 05.04.93 - Supertabular didn't work correctly in twocolumn mode. % V 3.7a Rewrote the mechanism for establishing the amount of % space that supertabular can use. This still needs further % thought. The algorithm to compute the places to break % the table is still a bit fragile, especially when p{} % columns are used. % 10.07.92 - Still a problem in the combination of supertabular with array..sty % V 3.6h I overlooked the fact that array doesn't use \@tabulacr anymore % and it behaves differently with respect to \@startparbox. % 03.07.92 - A problem in the combination of supertabular with array.sty % V 3.6g It can be solved by removing the \string from \def\tableformat % and passing \tableformat expanded to \tabular. % 11.02.92 - Bug found by Michael Heissmeier when p{...} is used. % V 3.6f A change in LaTeX.tex didn't find its way into supertabular. % 01.08.91 - Take height of tabletail into account when computing the % V 3.6e maximum tableheight; add tolerance on first (partial) page % of the supertabular. % 27.06.91 - Cured bug that made the first part of the table one line % V 3.6d shorter than the others. Appeared when supertabular was % used in a twocolumn environment. % 26.06.91 - Made \@process@tablecaption a global macro. Previous caption % V 3.6c turned up on a table without one. % 27.05.91 - Replaced \clearpage with \newpage to make supertabulars work % V 3.6b in a twocolumn environment. This also prevents all floats % from being printed. % 15.02.91 - Because of the check for the use of tablefirsthead the % V 3.6a combination of an \hline in the head and an \hline as the first % thing in the data went wrong. The \futurelet in the definition % of \hline found \fi instead of \hline, so no \doublerulesep % was added. % Also had to modify the way the environments were defined. % The blank space (from the CR after the argument of \supertabular) % has to be gobbled. This can only be done using a construction % like \def\command#1 {...}. So removed the use of \newenvironment % 04.02.91 - Added the commands \topcaption, \bottomcaption and \tablecaption % V 3.6 to include a caption within the supertabular environment. The % default behaviour is to put the caption before the actual start % of the table. % - Also added \tablefirsthead and \tablelasttail to let the % user specify a different head for the first page of the table % and for consecutive pages as well as different tails for first % pages and the last one. If these commands are not used, the % default behaviour will be to use the value of \tablehead end % \tabletail % - Removed the need for the \noalign{\global\let\\=\@stabularcr} % commands by storing and resetting \@stabularcr % % 16.10.90 Added the supertabular* environment that was in an earlier % V 3.5 version (2.0) by the original author % Reintroduced the version numbering % % revised by: Gabriele Kruljac % kruljac@ds0mpi11 Max-Planck-Institute Stuttgart % % % 06.06.89 Correction: now care is taken of probably existing onecolumn % head (title or tables ...) in twocolumn sty. % % 10.05.89 Correction: the new \\ definition has been added to the % begin of each `sub'-tabular % Added: algorithm to produce the tabulars in twocolumn style % % 06.04.89 Correction: put \global statement in \end{supertabular} % into \noalign % % 22.02.89 Correction: restore the original meaning of \\ with % \end{supertabular} % % (Feb 89) The whole algorithm has been changed, so that I can use % the most features of a normal tabular: % \\ for new line, including \\[#1] % p{...} in the preamble ... % Account is taken to \baselinestretch and \arraystretch % -I'm not counting the lines because of too much rounding errors % but instead I add the (estimated) used space in pt. % -The tablehead is taken into this algorithm of proofing, so % I really know how much space the head uses. % -When no p-arg is given I add a variable \midlineheight to % calculate the used space. To calculate \midlineheight I % take the \baselineskip, which is active when the supertabular % starts (\baselineskip includes the \value of \baselinestretch) % and multiply it with \arraystretch. % -When a p-arg is given the text will be stored in a box. So % I know the height I have to add. Also I reduce the maximum % pagesize, so that the last parbox on a page can get up to % max 4 lines without producing an overfull vbox. % -To do so I had to make some additions to LaTeX's tabular % commands. These new commands got a leading `s'. % % Weak points: % -When the material of a normal entry (not a p-arg) becomes % larger than the estimated \midlineheight, overfull vboxes % will be produced at all. % -When the last p-arg on a page gets more than 4 lines % (probably even more than 3 lines) it will result in an % overfull vbox. % Also some combinations of \baselinestretch \arraystretch and % a large font may lead to one line too much. % -if accidentally the last line of the tabular produces % a newpage, on the next page the tabletail will be written % immediately after the tablehead. Depending on the contents % this may result in an error message regarding misplaced % \noalign. % % A quick but not very elegant solution: shrink \maxsize by % \noalign{\global\maxsize=...pt} after the first \\ of the % supertabular. % %------------------------------------------------------------------------------ % \begin{macro}{\topcaption} % \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. Back to our own stuff. % % 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 some fraction of % \columnwidth wide (default is 0.95\columnwidth; use \epsscale % to pick some different fraction); 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 \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}} % % 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 0pt \topmargin -33pt \textwidth 6.5in \textheight 8.5in \raggedbottom % Here is the magic code from Chris B. 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} % % PAGE HEADINGS % % Page headings slightly altered from the myheadings page style % to allow the PI and title to be stacked in a \vbox. The first % page has it's own page style, identifying the proposal % category, and without a page number. \def\ps@fusefirst{% \let\@mkboth\@gobbletwo \def\@oddhead{\parbox[b]{\textwidth}{ \@pititle~\@pifirstname~\@pilastname,~~ % \hfill% \@title}} % \\\ \raggedleft \ GALEX Cycle \thecycle~Proposal~Number: \@nasapropno}} \let\@evenhead\@oddhead \def\@oddfoot{} \def\@evenfoot{} \def\sectionmark##1{} \def\subsectionmark##1{}} \def\ps@fuseheadings{% \let\@mkboth\@gobbletwo \def\@oddhead{\hbox to \textwidth{\hfil% \llap{\parbox[b]{\textwidth}{\@pititle~\@pifirstname~\@pilastname,~~ % \hfill% \@title }}}} % \\\ \raggedleft GALEX Cycle \thecycle~Proposal~Number: \@nasapropno}}}} \let\@evenhead\@oddhead \def\@oddfoot{\hfil\rm\thepage\hfil} \let\@evenfoot\@oddfoot \def\sectionmark##1{} \def\subsectionmark##1{}} \pagestyle{fuseheadings} \thispagestyle{fusefirst} % % 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\footins 0pt plus 4pt minus 2pt % % 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}} % % MACROS % % Define a whole bunch of string macros, that stuff their % arguments away for later use: % % \address{} Obsolete as of version 1.6 % \aperture{} IMAGE or GRISM % \brtfluxacc{} HIGH, MED, or LOW % \brtfluxlamref{} % Flux value at wavelength specified % by brtlamref{} % \brtlamref{} A reference wavelength, brightest source, % in angstroms. % \brtstarflag{} Yes or No Yes means a bright star is close % enough to possibly be dangerous % \brtstarmag{} Magnitude (NUV) of nearby bright star % \brtstardist{} Distance from field center to bright star(deg) % \coifirstname{} % \coilastname{} Note that \coilastname and % \pilastname use the same hidden string: % \@lastname. % \coititle{} % \colorexcess{} Measured E(B-V), if available % \country{} % \dec{} Declination % \elinefwhm FWHM of line in Angstroms. % \email{} E-mail address, set in \tt font % \fldfluxacc{} HIGH, MED, or LOW % \fldfluxlamref{} %Flux value at wavelength specified % by fldlamref{} % \fldlamref{} A reference wavelength, Field brightness, % in angstroms. % \fluxaccuracy{} HIGH, MED, or LOW % \fluxlambdaref{} % Flux value at wavelength specified % by \lambdaref % \institution{} Supposed to fit on one line % \instrument{} Allows building up a list of instruments % by calling repeatedly. % \lambdaref{} A reference wavelength in angstroms. % \legacyyrs{} number of years (1 or 2) requested for % programcategory{LEGACY} % \mode{} 1 subvisit (SINGLE) or many subvisits (AIS) % \nasapropno{} NASA asssigned proposal number % \numvisits{} Number of visits required for this object % \numsteps{} Number of steps (pointings) in an AIS orbit % \objectname{} Target name % \obtime{} Total time on a particular pointing, % % obtime should = numvisits x integrationtime % \phaseoneZID{} % \phone{} % \pifirstname{} % \pilastname{} % \pititle{} Title (Dr., Prof. Ms.) should go here % \programcategory{} LEGACY, STANDARD, SNAP, or ARCHIVAL % \ra{} Right ascension % \resolutionelement{} % Size of resolution element in S/N % calculation. % \scientificcategory{} % \signoisechan{} Channel assumed for S/N calc (or total) % \signoise{} Expected S/N per resolution element % \sblambdaref{} Expected surface brightness. % \sourcetype{} Two letter code, first is P (point) or % E (extended), second is C (continuum) % or E (emission-line). REQUIRED % \spectype{} MK spectral type and luminosity class % for stellar objects. For other types ?? % \totalorbits{} Total orbits needed for whole proposal % % \USstate{} Gets used only if country is "USA" % \vmag{} Johnson V magnitude. % % Many of the strings hidden under these macros have highly % visible defaults, when typeset, to remind the preparer to % supply a value. % \def\address#1{\gdef\@address{#1}} \gdef\@address{{\bf Please supply a postal address!}} \def\aperture#1{% \uppercase{\gdef\@aperture{#1}} \ifx\IMAGE\@aperture\else \ifx\GRISM\@aperture\else \gdef\@aperture{???} \fi \fi} \gdef\@aperture{} \def\IMAGE{IMAGE} \def\GRISM{GRISM} \def\brtfluxacc#1{\ifx\empty#1\else\gdef\@brtfluxacc{#1}\fi} \gdef\@brtfluxacc{???} \def\brtfluxlamref#1{\ifx\empty#1\else\gdef\@brtfluxlamref{#1}\fi} \gdef\@brtfluxlamref{???} \def\brtlamref#1{\ifx\empty#1\else\gdef\@brtlamref{#1}\fi} \gdef\@brtlamref{???} \def\brtstarflag#1{% \uppercase{\gdef\@brtstarflag{#1}} \ifx\YES\@brtstarflag\else \ifx\NO\@brtstarflag\else \gdef\@brtstarflag{???} \fi \fi} \gdef\@aperture{} \def\YES{YES} \def\NO{NO} \def\brtstarmag#1{\ifx\empty#1\else\gdef\@brtstarmag{#1}\fi} \gdef\@brtstarmag{-} \def\brtstardist#1{\ifx\empty#1\else\gdef\@brtstardist{#1}\fi} \gdef\@brtstardist{-} \def\coifirstname#1{\gdef\@firstname{#1}} \gdef\@firstname{} \def\coilastname#1{\gdef\@lastname{#1}} \gdef\@lastname{???} \def\coititle#1{% \invline\\$ % Add a line to the investigator table \gdef\@PIorCoI{CoI:}\gdef\@investigatortitle{#1}} \gdef\@investigatortitle{???} \def\colorexcess#1{\gdef\@colorexcess{#1}} \gdef\@colorexcess{} \def\country#1{\gdef\@country{#1}\xdef\@countrystate{#1}} \def\@countrystate{{\bf Please supply a country!}} \def\dec#1{\ifx\empty#1\else\gdef\@dec{#1}\fi} \gdef\@dec{???} \def\elinefwhm#1{% \ifx\empty#1\else\gdef\@elinefwhm{#1\AA}\fi} \gdef\@elinefwhm{} \def\email#1{\gdef\@email{#1}} \gdef\@email{} \def\fax#1{\gdef\@fax{#1}} \gdef\@fax{} \def\fldfluxacc#1{\ifx\empty#1\else\gdef\@fldfluxacc{#1}\fi} \gdef\@fldfluxacc{???} \def\fldfluxlamref#1{\ifx\empty#1\else\gdef\@fldfluxlamref{#1}\fi} \gdef\@fldfluxlamref{???} \def\fldlamref#1{\ifx\empty#1\else\gdef\@fldlamref{#1}\fi} \gdef\@fldlamref{???} \def\fluxaccuracy#1{\ifx\empty#1\else\gdef\@fluxaccuracy{#1}\fi} \gdef\@fluxaccuracy{???} \def\fluxlambdaref#1{\ifx\empty#1\else\gdef\@fluxlambdaref{#1}\fi} \gdef\@fluxlambdaref{???} \def\institution#1{\gdef\@institution{#1}} \gdef\@institution{{\bf Please supply an institution!}} \def\integrationtime#1{% Total integration time, in orbits \ifx\empty#1\else\global\@integrationtime=#1\fi} \newcount\@integrationtime \@integrationtime=0 \def\lambdaref#1{\ifx\empty#1\else\gdef\@lambdaref{#1}\fi} \gdef\@lambdaref{???} %\def\legacyyrs#1{% % \ifx\empty#1\global\@legacyyearsfalse % \else % \gdef\@legacyyrs{#1} % \global\@legacyyearstrue % \fi} % \gdef\@legacyyrs{} % \newif\if@legacyyears \@legacyyearsfalse \def\mode#1{ \uppercase{\gdef\@mode{#1}} \ifx\ONE\@mode\else \ifx\MULTI\@mode\else \gdef\@mode{???} \fi \fi} \gdef\@mode{} \def\ONE{ONE} \def\MULTI{MULTI} \def\nasapropno#1{\gdef\@nasapropno{#1}} \gdef\@nasapropno{???} \def\numsteps#1{\gdef\@numsteps{#1}} \gdef\@numsteps{1} \def\numvisits#1{% Defaults to 1 on empty argument \ifx\empty#1 \global\@numvisits=1 \else \global\@numvisits=#1 \fi} \newcount\@numvisits \@numvisits=1 \def\objectname#1{% First thing, flush out the object line already specified, % unless this is the first time through. In that case, % just save everything for next time. \if@firstobject% \global\@firstobjectfalse\relax% $% \else% \@objectline% \fi% \ifx\empty#1\else% \gdef\@objectname{#1}% \fi } \gdef\@objectname{???} \newif\if@firstobject \global\@firstobjecttrue \def\obtime#1{\gdef\@obtime{#1}} \gdef\@obtime{???} \def\phaseoneZID#1{\gdef\@ZID{#1}} \gdef\@ZID{} \def\phone#1{\def\@telephone{#1}} \def\@telephone{} \def\piaffiliation#1{\gdef\@piaffiliation{#1}} \gdef\@piaffiliation{???} \def\pifirstname#1{\gdef\@PIorCoI{PI:} \gdef\@firstname{#1}\gdef\@pifirstname{#1}} \def\@PIorCoI{???!} \def\@pifirstname{} \def\pilastname#1{\gdef\@lastname{#1}\gdef\@pilastname{#1}} \gdef\@pilastname{???} \def\pititle#1{\gdef\@pititle{#1}\gdef\@investigatortitle{#1}} \gdef\@pititle{???} \def\programcategory#1{\def\@progcat{#1}} \def\@progcat{{\bf Please supply a program category!}} \def\ra#1{\ifx\empty#1\else\gdef\@ra{#1}\fi} \gdef\@ra{???} %\def\resolutionelement#1{% % \ifx\empty#1\else\gdef\@resolutionelement{#1\AA}\fi} %% \gdef\@resolutionelement{} % \gdef\@resolutionelement{???} \def\scientificcategory#1{\def\@scicat{#1}} \def\@scicat{{\bf Please supply a scientific category!}} %\def\signoisechan#1{\gdef\@signoisechan{#1}} % \gdef\@signoisechan{} \def\signoise#1{\ifx\empty#1\else\gdef\@signoise{#1}\fi} \gdef\@signoise{???} \def\sblambdaref#1{\ifx\empty#1\else\gdef\@sblambdaref{#1}\fi} \gdef\@sblambdaref{???} \def\sourcetype#1{\uppercase{\gdef\@sourcetype{#1}} \global\@validsourcetypetrue \ifx\PC\@sourcetype \global\@pointsourcetrue \global\@continuumsourcetrue \else \ifx\PE\@sourcetype \global\@pointsourcetrue \global\@continuumsourcefalse \else \ifx\EC\@sourcetype \global\@pointsourcefalse \global\@continuumsourcetrue \else \ifx\EE\@sourcetype \global\@pointsourcefalse \global\@continuumsourcefalse \else \global\@validsourcetypefalse \gdef\@sourcetype{???} \fi \fi \fi \fi} \def\@sourcetype{} \def\PC{PC} % Point continuum \def\PE{PE} % Point emission-line \def\EC{EC} % Extended continuum \def\EE{EE} % Extended emission-line \newif\if@validsourcetype \@validsourcetypefalse \newif\if@pointsource \@pointsourcefalse \newif\if@continuumsource \@continuumsourcefalse \def\specialreq#1{% \if@onerequestalready \xdef\@reqtemp{\@specialreq} \uppercase{\gdef\@specialreq{\@reqtemp{} #1}} \else \global\@onerequestalreadytrue \uppercase{\gdef\@specialreq{#1}} \fi } \newif\if@onerequestalready \global\@onerequestalreadyfalse \newif\if@tworequestsalready \global\@tworequestsalreadyfalse \gdef\@specialreq{} \gdef\@specialreqtwo{} \def\spectype#1{\ifx\empty#1\else\gdef\@spectype{#1}\fi} \gdef\@spectype{???} \def\totalobstime#1{% Total observing time, in orbits \gdef\@totalobstime{#1}} \gdef\@totalobstime{???} \def\totalobjects#1{% Total number of objects \ifx\empty#1\else\global\@totalobjects=#1\fi} \newcount\@totalobjects \@totalobjects=0 \def\totalorbits#1{\ifx\empty#1\else\gdef\@totalorbits{#1}\fi} \gdef\@totalorbits{} \def\USstate#1{\gdef\@USstate{#1} \ifx\USA\@country \xdef\@countrystate{USA/#1} \fi} \def\@USstate{} \def\USA{USA} \def\vmag#1{\ifx\empty#1\else\gdef\@vmag{#1}\fi} \gdef\@vmag{???} % Let's start doing something. % THE PROPOSAL SUMMARY % The printed form starts off with some boilerplate, the % proposal title, and some general info, identifies the PI, % and makes a table of orbit requests for observing proposals. % Put the PI and title into the page header with a \markright % command. Everything else comes in a big 4 column table. This % summary might be invoked from a number of places, but make % sure it only gets done once. % % We say that the length of the abstract is limited by the % constraint that it not run over to the second page. This % is unfair unless we make some effort to insure that the % proposal summary takes the same amount of space for almost % all proposals. What we will do is to allow for a title that % runs over onto a second line, but not a third, and for a % postal address that runs over onto a third line, but not a % fourth. Put the title into a vbox to 42pt. Put everything % else into a vbox to 170pt. NO CHEATING NOW! \newif\if@didsummary \@didsummaryfalse \def\makesummary{% \@didsummarytrue \vbox to 42pt{\parbox[b]{\textwidth}{% \sloppy\raggedright\Large\bf \@title}\vfil} \vskip 12pt \hbox to \textwidth{\vbox to 170pt{\lineskip .75em \begin{tabular}[t]{@{}rl} Principal Investigator:&\@pititle~\@firstname~\@lastname\\ Institution:&\@piaffiliation\\ &\@institution\\ &\begin{tabular}{@{}l}\@address\end{tabular}\\ Country:&\@country\\ Telephone:&\@telephone\\ FAX:&\@fax\\ Electronic Mail:&\@email\\ \\ NASA Proposal Number:&\@nasapropno\\ % \if@legacyyears\ Program Category:&\@progcat~~Legacy % Years:~\@legacyyrs\\ % \else\ Program Category:&\@progcat\\ % \fi Scientific Category:&\@scicat\\ Total Time:&\@totalobstime \,ksec~~~or~~~\@totalorbits \,orbits\\ Number of Fields, or Pointings:&{\number \@totalobjects}\\ \end{tabular}\vfil}} \vskip 36pt } % THE ABSTRACT % Just make a little heading, make sure that the proposal % summary has been typeset, and provide a non-zero \parindent. \renewenvironment{abstract}{% \makesummary % \if@didsummary\relax\else\makesummary\fi \noindent{\large\bf Abstract}\par \vskip 13pt \global\parindent 2em }{% \global\parindent 0em } % THE INVESTIGATOR LIST % The data for the Investigator list table is specified as % tagged items. The trigger for actually typesetting them is % the \coititle macro, which is assumed to be the first macro % in the group of specifications for each CoI. This macro % flushes the already defined data items out to the table, in % preparation for the next line. The last line of the table % has to be flushed out by the \end{investigors} statement. % Of course, you might not have any co-investigators, in which % case it would have been nice if you were allowed to get rid % of both the \begin and \end{investigators} statements. However % both must be present. % % Notice the use of math mode. Right after the two \hline's % for the table heading is a dollar sign. So LaTeX is actually % in math mode while reading the tagged data for the table. % This allows all of the white space to be ignored, so that the % first columns can actually line up. % % In addition, the table is set within a minipage environment, in % case the preparer is moved to use footnotes within the table. % (Not to say we are encouraging the use of footnotes---we % aren't.) This keeps the footnotes close to the table. % % The table is typeset in \small, with \normalsize restored at % the end. \newenvironment{investigators}{% \newpage\small \markanswer{Investigator List} \noindent\begin{minipage}{\textwidth} \begin{tabular*}{% \textwidth}{% @{}l@{\extracolsep{\fill}}lll@{}} & Investigator& Institution& Country \\\hline\hline$ }{\finishinvlist} \newif\if@finishedinvlist \@finishedinvlistfalse \def\finishinvlist{% \invline\\\hline \end{tabular*}\par \end{minipage} \global\@finishedinvlisttrue \normalsize} % Add lines to the table of investigators. % If the columns exceed a certain width, set them in a p box % of that width. Otherwise use the natural width. % \newdimen\investwd \newdimen\investboxwd \investboxwd=2.0in % Width of the "Investigator" column \newdimen\instwd \newdimen\instboxwd \instboxwd=3.0in % Width of the "Institution" column \newdimen\countrywd \newdimen\countryboxwd \countryboxwd=1.25in % Width of the "Country" column \def\invline{% \global\setbox0=\hbox{\@investigatortitle~\@firstname~\@lastname} \global\investwd=\wd0 \global\setbox0=\hbox{\@institution} \global\instwd=\wd0 \global\setbox0=\hbox{\@countrystate} \global\countrywd=\wd0 $\@PIorCoI&% % Note transition FROM math mode. \ifdim\investwd>\investboxwd% \multicolumn{1}{@{}p{\investboxwd}}{\@investigatortitle~\@firstname{} \@lastname}% \else% \@investigatortitle~\@firstname~\@lastname% \fi% &% \ifdim\instwd>\instboxwd% \multicolumn{1}{p{\instboxwd}}{\@institution} \else \@institution% \fi& \ifdim\countrywd>\countryboxwd% \multicolumn{1}{p{\countryboxwd}}{\@countrystate} \else \@countrystate% \fi } % THE OBSERVATION SUMMARY % The observations environment produces a tabular summary of % the proposed observations. Unlike the investigators % environment, we don't start out with a line of information % already, so we have to make sure that no typesetting actually % gets done the first time through. The trigger for spitting % out a line of text is the \objectname macro. Unlike (?) the % table of investigators, we reset most of the fields after % each line, trying to make things more robust to re-arranging % lines in the table. % % The trick of getting into math mode between lines of the table % doesn't work in this case, since the first column is a p box. % The $ goes into the p box, which messes everything up. Instead, % we use the trick of a zero width p box for the always empty % dummy first column. % % The table is typeset in \small, with \normalsize restored at % the end. \tablehead{% \multicolumn{4}{@{}l}{\bf Observing Summary:}\\ \hline\hline \multicolumn{4}{@{}c}{\it --------------- Program Object --------------- }& \multicolumn{2}{@{}c}{\it -- Instrument Setup -- }& ~ & \multicolumn{3}{@{}c}{\it ------Safety Checking ----- } \\ % \hline \multicolumn{1}{@{}l@{}}{\vrule height12pt width 0pt Object name}& \multicolumn{1}{@{}c@{}}{RA}& \multicolumn{1}{@{}c@{}}{Flux$_{\lambda{\rm ref}}$}& \multicolumn{1}{@{}c@{}}{Src}& \multicolumn{1}{@{}c@{}}{Opt.Path}& \multicolumn{1}{@{}c@{}}{Special}& \multicolumn{1}{@{}c@{}}{~ }& \multicolumn{1}{@{}c@{}}{Flux$_{\rm Fld}$}& \multicolumn{1}{@{}c@{}}{Flux$_{\rm Brt}$}& \multicolumn{1}{@{}c@{}}{Brt.~Star}\\ \multicolumn{1}{@{\hspace{0.15in}}l@{}}{\vrule depth6pt width0pt Visits~$\times$~IntTime}& \multicolumn{1}{@{}c@{}}{Dec}& \multicolumn{1}{@{}c@{}}{$\lambda_{\rm ref}$}& \multicolumn{1}{@{}c@{}}{Spec}& \multicolumn{1}{@{}c@{}}{ObsMode}& \multicolumn{1}{@{}c@{}}{Req}& \multicolumn{1}{@{}c@{}}{ }& \multicolumn{1}{@{}c@{}}{$\lambda_{\rm ref}$}& \multicolumn{1}{@{}c@{}}{$\lambda_{\rm ref}$}& \multicolumn{1}{@{}c@{}}{NUV}\\ \multicolumn{1}{@{\hspace{0.15in}}l@{}}{\vrule depth6pt width0pt Total~Time}& \multicolumn{1}{@{}c@{}}{S/N}& \multicolumn{1}{@{}c@{}}{Acc.}& \multicolumn{1}{@{}c@{}}{E(B-V)}& \multicolumn{1}{@{}c@{}}{\#~legs}& \multicolumn{1}{@{}c@{}}{}& \multicolumn{1}{@{}c@{}}{}& \multicolumn{1}{@{}c@{}}{Acc.}& \multicolumn{1}{@{}c@{}}{Acc.}& \multicolumn{1}{@{}c@{}}{~Sep.}\\ \hline\hline% } \tabletail{\\\hline} \tablelasttail{\@objectline$\\} \newenvironment{observations}{% %\tracingall \newpage\small% \parindent0pt% \vskip 3em% \begin{supertabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}cccccccrccc@{}}% }{\end{supertabular*} \normalsize } \newdimen\objectwd \newdimen\objectboxwd \objectboxwd=1.25in \newdimen\specialreqwd \newdimen\specialreqboxwd \specialreqboxwd=0.85in %\@ifundefined{@@tabularcr}{\def\@@tabularcr{\org@tabularcr}}{\relax} \def\@objectline{% First thing, leave math mode! $% \global\setbox0=\hbox{\@objectname}% \global\objectwd=\wd0% \global\setbox0=\hbox{\@specialreq}% \global\specialreqwd=\wd0% \begin{tabular}[t]{@{}l@{}} \ifdim\objectwd>\objectboxwd% \multicolumn{1}{@{}p{\objectboxwd}@{}}{\@objectname} %\hbox to\objectboxwd{\@objectname}% \else \@objectname% \fi\@@tabularcr \multicolumn{1}{@{\hspace{0.15in}}l}{$\number\@numvisits \times$\number\@integrationtime\,s} \@@tabularcr {\hspace{0.15in}}{\@obtime\,s} \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@ra\@@tabularcr \@dec\@@tabularcr \@signoise \end{tabular}& % \begin{tabular}[t]{@{}r@{}} % \@vmag\@@tabularcr % \@colorexcess % \end{tabular}& % \begin{tabular}[t]{@{}r@{}} % \@spectype\@@tabularcr % \@sourcetype % \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@fluxlambdaref\@@tabularcr \@lambdaref\@@tabularcr \@fluxaccuracy \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@sourcetype\@@tabularcr \@spectype\@@tabularcr \@colorexcess \end{tabular}& % \begin{tabular}[t]{@{}r@{}} % \if@continuumsource\else\@elinefwhm\fi\@@tabularcr % \if@pointsource\else % \@sblambdaref % \fi % \end{tabular}& % \begin{tabular}[t]{@{}r@{}} % \@aperture\@@tabularcr % \@signoise\@@tabularcr % \@fluxaccuracy % \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@aperture\@@tabularcr \@mode\@@tabularcr \@numsteps \end{tabular}& \ifdim\specialreqwd>\specialreqboxwd% \multicolumn{1}{p{\specialreqboxwd}}{\@specialreq} \else \@specialreq% \fi % \end{tabular}& & & \begin{tabular}[t]{@{}r@{}} \@fldfluxlamref\@@tabularcr \@fldlamref\@@tabularcr \@fldfluxacc \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@brtfluxlamref\@@tabularcr \@brtlamref\@@tabularcr \@brtfluxacc \end{tabular}& \begin{tabular}[t]{@{}r@{}} \@brtstarflag\@@tabularcr \@brtstarmag\@@tabularcr \@brtstardist \end{tabular}& % % TEST % \objectlinetest % \objectlinecheck % % Reset strings back to visible defaults % \gdef\@ra{???}% \gdef\@dec{???}% \gdef\@vmag{???}% \gdef\@spectype{???}% \gdef\@colorexcess{???}% \gdef\@sourcetype{???}% \gdef\@lambdaref{???}% \gdef\@fluxlambdaref{???}% \gdef\@fluxaccuracy{???}% \gdef\@elinefwhm{???}% \gdef\@sblambdaref{???}% \gdef\@resolutionelement{???}% \gdef\@signoisechan{???}% \gdef\@signoise{???}% \gdef\@aperture{???}% \gdef\@mode{???}% \gdef\@specialreq{}% \gdef\@specialreqtwo{}% \gdef\@fldlamref{???}% \gdef\@fldfluxlamref{???}% \gdef\@fldfluxacc{???}% \gdef\@brtlamref{???}% \gdef\@brtfluxlamref{???}% \gdef\@brtfluxacc{???}% \gdef\@brtstarflag{???}% \gdef\@brtstarmag={???}% \gdef\@brtstardist={???}% \gdef\@numsteps={???}% \gdef\@obtime={???}% \global\@numvisits=1% \global\@integrationtime=0% \global\@onerequestalreadyfalse% \global\@tworequestsalreadyfalse% \\[26pt] \hline $ % Return to math mode! } \def\objectlinetest { % TEST \\ & objectname & \@objectname \\ & ra & \@ra \\ & dec & \@dec \\ & vmag & \@vmag \\ & spectype & \@spectype\\ & colorexcess & \@colorexcess \\ \if@validsourcetype & sourcetype & \@sourcetype \\ & continuum source & \if@continuumsource TRUE\else FALSE\fi \\ & point source & \if@pointsource TRUE\else FALSE\fi \\ \else & sourcetype & \@sourcetype not a valid source type \\ \fi & lambdaref & \@lambdaref \\ & fluxlambdaref & \@fluxlambdaref \\ & fluxaccuracy & \@fluxaccuracy \\ & elinefwhm & \@elinefwhm \\ & sblambdaref & \@sblambdaref \\ & resolutionelement & \@resolutionelement \\ & signoisechan & \@signoisechan \\ & signoise & \@signoise \\ & aperture & \@aperture \\ & special req & \@specialreq \\ & fldlamref & \@fldlamref \\ & fldfluxlamref & \@fldfluxlamref \\ & fldfluxacc & \@fldfluxacc \\ & brtlamref & \@brtlamref \\ & brtfluxlamref & \@brtfluxlamref \\ & brtfluxacc & \@brtfluxacc \\ & brtstarflag & \@brtstarflag \\ & brtstarmag & \@brtstarmag \\ & brtstardist & \@brtstardist \\ & num visits & \number\@numvisits \\ & num legs & \number\@numsteps \\ & integration time & \number\@integrationtime } \def\objectlinecheck{ \if@continuumsource \ifx\empty\vmag {\\ & \multicolumn{2}{l}{Please specify \verb+\vmag+} \\}\fi \fi } % 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. \def\markanswer#1{% \vskip 12pt \global\parindent 2em {\noindent%\kern -24pt\vrule width10pt height10pt depth0pt %\hskip 12pt \large\bf #1}\vskip 12pt \setcounter{section}{0}} \def\additionalinfo{% \markanswer{Additional Information}} \def\describeobservations{% \markanswer{Description of the Observations}} \def\feasibility{% \markanswer{Feasibility and Safety Considerations}} \def\justification{% \markanswer{Scientific Justification}} \def\previousfuseprograms{% \markanswer{Previous FUSE Observing Programs}} \def\vita{% \markanswer{Vita}} % 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}} \let\la=\lesssim % For Springer A&A compliance... \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 % 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 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip 10pt} % % end document here