package main; local($t_affil, $t_authoraddr, $t_keywords); $SLUG = "
Astronomical Data Analysis Software and Systems VI
\n" . " ASP Conference Series, Vol. 125, 1997
\n" . "Editors: Gareth Hunt and H. E. Payne
" ; $COPYRIGHT = "© Copyright 1997 " . "Astronomical Society " . "of the Pacific," . " 390 Ashton Avenue, San Francisco, California 94112, USA" ; sub do_cmd_htmllink { &do_cmd_htmladdnormallink(@_); } # Capitalizes what follows the \sc declaration # *** POTENTIAL ERROR **** # (This is NOT the correct meaning of \sc in the cases when it # is followed by another declaration (e.g. \em). # The scope of \sc should be limited to the next occurence of a # declaration. sub do_cmd_sc { local($_) = @_; local(@words) = split(" "); # Capitalize the words which are not commands and do not contain any markers grep (do {tr/a-z/A-Z/ unless /(^\\)|(tex2html)/}, @words); # grep (do {s/([a-z]+)/\U$1\E<\/small><\/font>/g unless /(^\\)|(tex2html)/}, @words); join(" ", @words); } sub do_cmd_paper { local($_) = @_; s/$next_pair_pr_rx//eo; $TOCAUTHORLIST = $2; s/$next_pair_pr_rx//eo; $SHORTAUTHORLIST = $2; s/$next_pair_pr_rx//eom; $SHORTTITLE = $2; join(" ", $_ ); } sub do_cmd_invited { &do_cmd_paper ; } sub do_cmd_bookstufflabel { &do_cmd_label ; } # The paperref macro. # sub do_cmd_paperref { &do_cmd_pageref ; } # Only difference here is a space after $title. sub make_head_and_body { local($title) = @_; "\n" . "\n" . "\n\n$title \n\n

\n" . "\n"; } # # &ignore_commands( <<_IGNORED_CMDS_); #paper # {} # {} # {} #{} #invited # {} # {} # {} #{} keywords # {} sessiontype # {} instructions # {} firstauthor # {} authoraddress # {} authorphone # {} authoremail # {} #aindex # {} #index # {} linebreak # [] #tableofcontents #makeaindex #printaindex #makeindex #printindex cleardoublepage tablevspace # {} tableline thinspace strutbox unhcopy null admininfo \newblock _IGNORED_CMDS_ sub do_cmd_refpar{ local($_) = @_; join('',"

$_"); } sub do_cmd_copyright{ local($_) = @_; join('',"©$_"); } sub make_abstract { local($_) = @_; join('',"

Abstract:

\n$_

\n"); } # STScI: add the references environment and the figure environment. # # In both cases, just push the contents of the environment back out to # be processed as ordinary text. We rely on special text to recognize # the psfig command or the AASTeX commands for including a PostScript # figure: plotone or plottwo sub do_env_references { join('',"

References:

\n@_

\n"); } sub do_env_participants { local($_) = @_; join('',"

Participant List:

\n$_

\n"); } sub do_cmd_psfig { local($_) = @_; s/$next_pair_pr_rx//o; local($args) = $&; $args = &revert_to_raw_tex($args); $args =~ s/ //g; # psfig does not like spaces !! join('',&process_in_latex_icon("\\psfig$args"),"

$_"); } sub do_cmd_plotone { local($_) = @_; s/$next_pair_pr_rx//o; local($args) = $&; $args = &revert_to_raw_tex($args); join('',&process_in_latex_icon("\\plotone$args"),"

$_"); } sub do_cmd_plottwo { local($_) = @_; s/$next_pair_pr_rx//o; local($arg1) = $&; $arg1 = &revert_to_raw_tex("$arg1"); s/$next_pair_pr_rx//o; $arg2 = $&; $arg2 = &revert_to_raw_tex("$arg2"); join('',&process_in_latex_icon("\\plottwo$arg1$arg2"),"

$_"); } sub do_cmd_pslink { local($_) = @_; s/$next_pair_pr_rx//o; local($arg1) = $2; s/$next_pair_pr_rx//o; local($arg2) = $2; join('',"Original PostScript figure ($arg2).\n$_"); } sub do_cmd_pslinktwo { local($_) = @_; s/$next_pair_pr_rx//o; local($arg1) = $2; s/$next_pair_pr_rx//o; local($arg2) = $2; s/$next_pair_pr_rx//o; local($arg3) = $2; s/$next_pair_pr_rx//o; local($arg4) = $2; join('',"Original Postscript figures($arg2), ($arg4).\n$_"); } sub do_cmd_pslinkthree { local($_) = @_; s/$next_pair_pr_rx//o; local($arg1) = $2; s/$next_pair_pr_rx//o; local($arg2) = $2; s/$next_pair_pr_rx//o; local($arg3) = $2; s/$next_pair_pr_rx//o; local($arg4) = $2; s/$next_pair_pr_rx//o; local($arg5) = $2; s/$next_pair_pr_rx//o; local($arg6) = $2; join('',"Original Postscript figures($arg2), ($arg4), and ($arg62).\n$_"); } # STScI: Changed for AASTeX, since several \author commands is allowed. sub do_cmd_author { local($_) = @_; s/$next_pair_pr_rx//o; ($t_author) = $&; join('', "

$t_author
", $_); } # STScI: Commands for AASTeX sub do_cmd_affil { local($_) = @_; s/$next_pair_pr_rx//o; ($t_affil) = $&; # join('', "

$t_affil

\n", $_); join('', "$t_affil
", $_); } sub do_cmd_authoraddr { local($_) = @_; s/$next_pair_pr_rx//o; ($t_authoraddr) = $&; join('', "$t_authoraddr

\n", $_); } sub do_cmd_keywords { local($_) = @_; s/$next_pair_pr_rx//o; ($t_keywords) = $&; join('', "

Keywords: $t_keywords

\n", $_); } sub do_cmd_altaffiltext { local($_) = @_; s/$next_pair_pr_rx//o; local($br_id) = $2; join('', "$br_id", $_ ) ; # s/$next_pair_pr_rx//o; # ($t_altaffil) = $2; # join('', "$t_altaffil
", $_); } sub do_cmd_altaffilmark { local($_) = @_; s/$next_pair_pr_rx//o; local($br_id ) = $2; join('', "$br_id", $_) ; } sub do_cmd_adassi { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems I, ASP Conf. Ser., Vol. 25, eds. D.M. Worrall, C. Biemesderfer, & J. Barnes (San Francisco, ASP)$_"); } sub do_cmd_adassii { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems II, ASP Conf. Ser., Vol. 52, eds. R.J. Hanisch, R.J.V. Brissenden, & J. Barnes (San Francisco, ASP)$_"); } sub do_cmd_adassiii { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems III, ASP Conf. Ser., Vol.~61, eds. D.~R. Crabtree, R.~J. Hanisch, & J. Barnes (San Francisco, ASP)$_"); } sub do_cmd_adassiv { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems IV, ASP Conf. Ser., Vol.~77, eds. R.~A. Shaw, H.~E. Payne & J.~J.~E. Hayes (San Francisco, ASP)$_"); } sub do_cmd_adassv { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems V, ASP Conf. Ser., Vol.~101, eds. G.~H. Jacoby and J. Barnes (San Francisco, ASP)$_"); } sub do_cmd_adassvi { local($_) = @_; join('',"in Astronomical Data Analysis Software and Systems VI, ASP Conf. Ser., Vol.~125, eds. Gareth Hunt and H.~E. Payne (San Francisco, ASP)$_"); } sub do_cmd_adassvii { join('',"this volume@_"); # &process_ref($cross_ref_mark,$cross_ref_visible_mark); } sub do_cmd_acknowledgments { local($_) = @_; join('',"

Acknowledgments:

\n$_

\n"); } sub do_cmd_acknowledgements { &do_cmd_acknowledgments; } # A number of Journal abbreviations: sub do_cmd_aap { join('',"A&A@_"); } sub do_cmd_aapr { join('',"ARA&A@_"); } sub do_cmd_aaps { join('',"A&AS@_"); } sub do_cmd_aj { join('',"AJ@_"); } sub do_cmd_ao { join('',"Appl. Optics@_"); } sub do_cmd_apj { join('',"ApJ@_"); } sub do_cmd_apjl { join('',"ApJ@_"); } sub do_cmd_apjs { join('',"ApJS@_"); } sub do_cmd_apss { join('',"Ap&SS@_"); } sub do_cmd_araa { join('',"ARA&A@_"); } sub do_cmd_azh { local($_) = @_; join('',"AZh$_"); } sub do_cmd_baas { local($_) = @_; join('',"BAAS$_"); } sub do_cmd_jrasc { local($_) = @_; join('',"JRASC$_"); } sub do_cmd_memras { local($_) = @_; join('',"MmRAS$_"); } sub do_cmd_mnras { local($_) = @_; join('',"MNRAS$_"); } sub do_cmd_pra { local($_) = @_; join('',"Phys. Rev. A$_"); } sub do_cmd_prb { local($_) = @_; join('',"Phys. Rev. B$_"); } sub do_cmd_prc { local($_) = @_; join('',"Phys. Rev. C$_"); } sub do_cmd_prd { local($_) = @_; join('',"Phys. Rev. D$_"); } sub do_cmd_prl { local($_) = @_; join('',"Phys. Rev. Lett.$_"); } sub do_cmd_pasp { local($_) = @_; join('',"PASP$_"); } sub do_cmd_pasj { local($_) = @_; join('',"PASJ$_"); } sub do_cmd_qjras { local($_) = @_; join('',"QJRAS$_"); } sub do_cmd_skytel { local($_) = @_; join('',"S&T$_"); } sub do_cmd_solphys { local($_) = @_; join('',"Solar Phys.$_"); } sub do_cmd_sovast { local($_) = @_; join('',"Soviet Ast.$_"); } sub do_cmd_ssr { local($_) = @_; join('',"Space Sci. Rev.$_"); } sub do_cmd_zap { local($_) = @_; join('',"ZAp$_"); } sub do_cmd_astap { &do_cmd_aap ; } sub do_cmd_apjlett { &do_cmd_apjl ; } # special symbols sub do_cmd_deg { join('',"°@_"); } sub do_cmd_sun { join('',"o@_"); } sub do_cmd_la { join('',"<~@_"); } sub do_cmd_ga { join('',">~@_"); } sub do_cmd_sq { join('',"square@_"); } sub do_cmd_arcmin { join('',"´@_"); } sub do_cmd_arcsec { join('',"´´@_"); } sub do_cmd_fd { join('',".d@_"); } sub do_cmd_fh { join('',".h@_"); } sub do_cmd_fm { join('',".m@_"); } sub do_cmd_fs { join('',".s@_"); } sub do_cmd_fdg { join('', "°.", @_); } sub do_cmd_farcm { join('',"'.@_"); } sub do_cmd_farcs { join('',"'.'@_"); } sub do_cmd_fp { join('',".p@_"); } sub do_cmd_kms { join('',"km/s@_"); } sub do_cmd_micron { local($_) = @_; join('',"µm$_"); } sub do_cmd_micro { local($_) = @_; join('',"µ$_"); } sub do_cmd_onehalf { join('',"½@_"); } sub do_cmd_onethird { join('',"1/3@_"); } sub do_cmd_PM { join('',"±@_"); } sub do_cmd_twothirds { join('',"2/3@_"); } sub do_cmd_onequarter { join('',"¼@_"); } sub do_cmd_threequarters { join('',"¾@_"); } sub do_cmd_Sim { join('',"~@_"); } sub do_cmd_times { join('',"×@_") ; } sub do_cmd_ubvr { join('',"UBVR@_"); } sub do_cmd_ub { join('',"U-B@_"); } sub do_cmd_bv { join('',"B-V@_"); } sub do_cmd_vr { join('',"V-R@_"); } sub do_cmd_ur { join('',"U-R@_"); } # Added for ADASS sub do_cmd_bul { join('',"·@_"); } sub do_cmd_reference { join('',"\n

", $_[0]); } sub do_cmd_fortran { local($_) = @_; join('',"FORTRAN$_"); } sub do_cmd_us { local($_) = @_; join('',"\\_$_"); } sub do_cmd_aindex { local($_) = @_; local($br_id, $str); $str = &missing_braces unless ( (s/$next_pair_pr_rx/($br_id, $str) = ($1, $2);''/eo) ||(s/$next_pair_rx/($br_id, $str) = ($1, $2);''/eo)); join('',&make_aindex_entry($br_id,$str),$_); } sub make_aindex_entry { local($br_id,$str) = @_; $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title))); # Save the reference $str = "$str###" . ++$global{'max_id'}; # Make unique $index{$str} .= &make_half_href("$CURRENT_FILE#$br_id"); "$anchor_invisible_mark<\/A>"; } sub add_aidx { print "\nDoing the author index ..."; local($key, $str, @keys, $aindex, $level, $count, @previous, @current); @keys = keys %aindex; @keys = sort keysort @keys; $level = 0; foreach $key (@keys) { @current = split(/!/, $key); $count = 0; while ($current[$count] eq $previous[$count]) { $count++; } while ($count > $level) { $aindex .= "

\n"; $level++; } while ($count < $level) { $aindex .= "
\n"; $level--; } foreach $term (@current[$count .. $#current-1]) { # need to "step in" a little $aindex .= "
" . $term . "\n
\n"; $level++; } $str = $current[$#current]; $str =~ s/\#\#\#\d+$//o; # Remove the unique id's $aindex .= $aindex{$key} . # If it's the same string don't start a new line (&index_key_eq(join('',@current), join('',@previous)) ? ", " . $cross_ref_visible_mark . "\n" : "
" . $str . "\n"); @previous = @current; } while ($count < $level) { $aindex .= "
\n"; $level--; } s/$aidx_mark/
$aindex<\/DL>/o; } # IGNORE the contents of this environment - We construct our own aindex #sub do_env_theaindex { # ""; #} # $idx_mark will be replaced with the real index at the end sub do_cmd_tex2htmlaindex { local($_) = @_; $TITLE = "Author Index"; $aidxfile = $CURRENT_FILE; join('','

' , &make_section_heading("Author Index", "H3"), $aidx_mark, $_); } # Beware of local hack that suppresses numbering of section # headings unless the size is H3, if you feel like changing # these sizes. HP %section_headings = ('part' , 'H1' , 'chapter' , 'H2', 'section', 'H3', 'subsection', 'H3', 'subsubsection', 'H4', 'paragraph', 'H4', 'subparagraph', 'H5'); &generate_sectioning_subs; # Generates code to handle sectioning commands # Uses $after which is defined in the caller (the caller is a generated subroutine) # Also uses @curr_sec_id # #JCL(jcl-tcl) (changed almost everything) # #sub do_cmd_section_helper { # local($H,$key) = @_; # local($section_number, $titletext, $hash, @tmp, $align, $dummy); # local($anchors,$pre,$post,$_) = ('', "\n", "\n", $after); # # # if we have a $key the current section is not of the *-form, so we need # # to update the counters. # $latex_body .= "\\stepcounter{$key}\n" if $key; # local ($align, $dummy)=&get_next_optional_argument; # if ($align =~/(left|right|center)/i) { $align = "ALIGN=\"$1\""; } # s/$next_pair_rx//eo; # $titletext = &translate_environments($2); # $titletext = &translate_commands($titletext); # # RRM: collect all anchors from \label and \index commands # ($anchors,$titletext) = &extract_anchors($titletext); # $hash = &sanitize($titletext); # # This is the LaTeX section number read from the $FILE.aux file # @tmp = split(/$;/,$encoded_section_number{$hash}); # $section_number = shift(@tmp); # $section_number = "" if ($section_number eq "-1"); # $encoded_section_number{$hash} = join($;, @tmp); # #JKR: Don't prepend whitespace # # # local hack so that chapter's are not numbered. HP # if( $H eq "H3" ) { # $titletext = "$section_number " . $titletext if $section_number; # } # $titletext = &simplify($titletext); # local($after) = $_; # $_ = $titletext; &remove_anchors; # if ($_) { $TITLE = $_ } else { $TITLE = '.' }; # #RRM: no preceding \n when this is the first section-head on the page. # if (! $key || $key < $MAX_SPLIT_DEPTH) { $pre = '' }; # #RRM: no trailing \n when $after already has one, else a

results. # if ($after =~/^( |\t)*\n/) { $post = '' }; # # join('', $pre, &make_section_heading($titletext, $H, $align.$anchors), $post, $after); #} ### Navigation Panel ########################################################## # # The navigation panel is constructed out of buttons and section titles. # These can be configured in any combination with arbitrary text and # HTML tags interspersed between them. # The buttons available are: # $PREVIOUS - points to the previous section # $UP - points up to the "parent" section # $NEXT - points to the next section # $NEXT_GROUP - points to the next "group" section # $PREVIOUS_GROUP - points to the previous "group" section # $CONTENTS - points to the contents page if there is one # $INDEX - points to the index page if there is one # # If the corresponding section exists the button will contain an # active link to that section. If the corresponding section does # not exist the button will be inactive. # # Also for each of the $PREVIOUS $UP $NEXT $NEXT_GROUP and $PREVIOUS_GROUP # buttons there are equivalent $PREVIOUS_TITLE, $UP_TITLE, etc variables # which contain the titles of their corresponding sections. # Each title is empty if there is no corresponding section. # # The subroutine below constructs the navigation panel in each page. # Feel free to mix and match buttons, titles, your own text, your logos, # and arbitrary HTML (the "." is the Perl concatenation operator). #JKR: Use two panels (top and bot) instead of one. sub top_navigation_panel { $reprintfile = "$file" ; $reprintfile =~ s/.html$// ; # BOOKSTUFF CHANGE. Add the anchor for cross references between # articles. "" . "" . # If ``next'' section exists, add its title to the navigation panel ($NEXT_TITLE ? " Next: $NEXT_TITLE
" : undef) . # Similarly with the ``up'' title ... ($UP_TITLE ? " Up: $UP_TITLE
" : undef) . # ... and the ``previous'' title ($PREVIOUS_TITLE ? " Previous: $PREVIOUS_TITLE
" : undef) . "
Table of Contents --- " . "Index --- " . "PS reprint --- " . "PDF reprint " . "


" . "$SLUG" . "
" ; } sub bot_navigation_panel { $reprintfile = "$file" ; $reprintfile =~ s/.html$// ; # Start with a copyright statement. "
" . $COPYRIGHT . # Then a horizontal rule (3-d dividing line) "

" . "". # Now add a few buttons with a space between them #"$NEXT $UP $PREVIOUS $CONTENTS $INDEX $CUSTOM_BUTTONS" . "
" . # Line break # If ``next'' section exists, add its title to the navigation panel ($NEXT_TITLE ? " Next: $NEXT_TITLE
" : undef) . # Similarly with the ``up'' title ... ($UP_TITLE ? " Up: $UP_TITLE
" : undef) . # ... and the ``previous'' title ($PREVIOUS_TITLE ? " Previous: $PREVIOUS_TITLE
" : undef) . "Table of Contents --- " . "Index --- " . "PS reprint --- " . "PDF reprint " ; } # Local change, don't shorten titles in navigation links. Just have # get_first_words return it's argument. sub get_first_words { local($_, $min) = @_; return($_); } # This code is extremely inefficient. At least the subtrees should be # filtered according to $MAX_LINK_DEPTH before going into the # inner loops. # RRM: revamped parts, for $TOC_STARS, fixing some errors. # #sub add_child_links { # local($exclude, $depth, $star, $current_key, @keys) = @_; # if ((!$depth)&&($outermost_level)) { # $depth = $section_commands{$outermost_level} - 1; # } # local($_, $child_rx, @subtree, $next, %open); # local($first, $what, $pre); # $childlinks_start = ""; # $childlinks_end = "\n"; # $child_rx = $current_key; # $child_rx =~ s/( 0)*$//; # Remove trailing 0's ## ## Local change. Don't put tables of contents at lowest level of ## sectioning. ## # return if ($depth > $MAX_SPLIT_DEPTH -2); # if ((! $exclude)&&($depth < $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH -1 ) # &&($depth >= $MAX_SPLIT_DEPTH-1)) { # $what = "Subsections"; # $first = "$childlinks_start\n$what<\/A>\n"; # } elsif ($exclude) { # Table-of-Contents # $childlinks_start = "\n\n"; # $childlinks_end = ""; # $first = "$childlinks_start"; ## } elsif ($CHILD_STAR) { # } elsif ($star) { # $first = "$childlinks_start\n"; # } else { # $first = "$childlinks_start\n$anchor_mark<\/A>\n"; # } # # # collect the keys which start as $current_key # foreach $next (@keys) { # if (($next =~ /^$child_rx /) && ($next ne $current_key)) { # push(@subtree,$next); # } # } ## # @subtree now contains the subtree rooted at the current node # if (@subtree) { # local($next_depth, $file, $title, $star, $ldepth); # $ldepth = $depth; # @subtree = sort numerically @subtree; # foreach $next (@subtree) { # ($next_depth, $file, $title, $star) = split($delim,$toc_section_info{$next}); ## ($next_depth, $file, $title, $star) = split($delim,$section_info{$next}) ## unless ($title); # $title = "\n".$title if !($title =~/^\n/); # next if (($exclude)&&( # doing Table-of-Contents # (($TOC_DEPTH)&&($next_depth > $TOC_DEPTH)) # and too deep # ||(($star)&&(!$TOC_STARS)) )); # or no starred sections # $file = "" if (!$MAX_SPLIT_DEPTH); # Martin Wilck # next if ($exclude eq $title); ## ## Local change. Don't add #SECTION.... markers to URLS ## # $file = join('', $file); # if (($next_depth > $ldepth) && ( # (split('/',%open))[0] < $MAX_LINK_DEPTH + $depth)) { # # start a new