# LaTeX2HTML support base for use with Python documentation. package main; use L2hos; $HTML_VERSION = 4.0; $MAX_LINK_DEPTH = 2; $ADDRESS = ''; $NO_FOOTNODE = 1; $NUMBERED_FOOTNOTES = 1; # Python documentation uses section numbers to support references to match # in the printed and online versions. # $SHOW_SECTION_NUMBERS = 1; $ICONSERVER = '.'; $IMAGE_TYPE = 'gif'; # Control where the navigation bars should show up: $TOP_NAVIGATION = 1; $BOTTOM_NAVIGATION = 1; $AUTO_NAVIGATION = 0; $BODYTEXT = ''; $CHILDLINE = "\n
' . make_section_heading($idx_module_title, 'h2') . $idx_module_mark . $_); return $_; } # The bibliography and the index should be treated as separate # sections in their own HTML files. The \bibliography{} command acts # as a sectioning command that has the desired effect. But when the # bibliography is constructed manually using the thebibliography # environment, or when using the theindex environment it is not # possible to use the normal sectioning mechanism. This subroutine # inserts a \bibliography{} or a dummy \textohtmlindex command just # before the appropriate environments to force sectioning. # XXX This *assumes* that if there are two {theindex} environments, # the first is the module index and the second is the standard # index. This is sufficient for the current Python documentation, # but that's about it. sub add_bbl_and_idx_dummy_commands { my $id = $global{'max_id'}; if (/[\\]tableofcontents/) { $HAVE_TABLE_OF_CONTENTS = 1; } s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; 1ドル/eg; s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C 1ドル"/geo; my(@parts) = split(/\\begin\s*$O\d+$C\s*theindex/); if (scalar(@parts) == 3) { # Be careful to re-write the string in place, since $_ is *not* # returned explicity; *** nasty side-effect dependency! *** print "\nadd_bbl_and_idx_dummy_commands ==> adding general index"; print "\nadd_bbl_and_idx_dummy_commands ==> adding module index"; my $rx = "([\\\\]begin\\s*$O\\d+$C\\s*theindex[\\s\\S]*)" . "([\\\\]begin\\s*$O\\d+$C\\s*theindex)"; s/$rx/\\textohtmlmoduleindex 1ドル \\textohtmlindex 2ドル/o; # Add a button to the navigation areas: $CUSTOM_BUTTONS .= ('' . get_my_icon('modules') . ''); $HAVE_MODULE_INDEX = 1; $HAVE_GENERAL_INDEX = 1; } elsif (scalar(@parts) == 2) { print "\nadd_bbl_and_idx_dummy_commands ==> adding general index"; my $rx = "([\\\\]begin\\s*$O\\d+$C\\s*theindex)"; s/$rx/\\textohtmlindex 1ドル/o; $HAVE_GENERAL_INDEX = 1; } elsif (scalar(@parts) == 1) { print "\nadd_bbl_and_idx_dummy_commands ==> no index found"; $CUSTOM_BUTTONS .= get_my_icon('blank'); $global{'max_id'} = $id; # not sure why.... s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex 1ドル/o; s/[\\]printindex/\\textohtmlindex /o; } else { die "\n\nBad number of index environments!\n\n"; } #---------------------------------------------------------------------- lib_add_bbl_and_idx_dummy_commands() if defined(&lib_add_bbl_and_idx_dummy_commands); } # The bibliographic references, the appendices, the lists of figures # and tables etc. must appear in the contents table at the same level # as the outermost sectioning command. This subroutine finds what is # the outermost level and sets the above to the same level; sub set_depth_levels { # Sets $outermost_level my $level; #RRM: do not alter user-set value for $MAX_SPLIT_DEPTH foreach $level ("part", "chapter", "section", "subsection", "subsubsection", "paragraph") { last if (($outermost_level) = /\\($level)$delimiter_rx/); } $level = ($outermost_level ? $section_commands{$outermost_level} : do {$outermost_level = 'section'; 3;}); #RRM: but calculate value for $MAX_SPLIT_DEPTH when a $REL_DEPTH was given if ($REL_DEPTH && $MAX_SPLIT_DEPTH) { $MAX_SPLIT_DEPTH = $level + $MAX_SPLIT_DEPTH; } elsif (!($MAX_SPLIT_DEPTH)) { $MAX_SPLIT_DEPTH = 1 }; %unnumbered_section_commands = ('tableofcontents' => $level, 'listoffigures' => $level, 'listoftables' => $level, 'bibliography' => $level, 'textohtmlindex' => $level, 'textohtmlmoduleindex' => $level); $section_headings{'textohtmlmoduleindex'} = 'h1'; %section_commands = (%unnumbered_section_commands, %section_commands); make_sections_rx(); } # This changes the markup used for {verbatim} environments, and is the # best way I've found that ensures the
.... # # Note that this *must* be done in the init file, not the python.perl # style support file. The %declarations must be set before # initialize() is called in the main LaTeX2HTML script (which happens # before style files are loaded). # %declarations = ('preform' => '', %declarations); # This is used to map the link rel attributes LaTeX2HTML uses to those # currently recommended by the W3C. sub custom_REL_hook { my($rel,$junk) = @_; return 'parent' if $rel eq 'up'; return 'prev' if $rel eq 'previous'; return $rel; } # This is added to get rid of the long comment that follows the # doctype declaration; MSIE5 on NT4 SP4 barfs on it and drops the # content of the page. $MY_PARTIAL_HEADER = ''; sub make_head_and_body($$) { my($title, $body) = @_; $body = " $body" unless ($body eq ''); my $DTDcomment = ''; my($version, $isolanguage) = ($HTML_VERSION, 'EN'); my %isolanguages = ( 'english', 'EN' , 'USenglish', 'EN.US' , 'original', 'EN' , 'german' , 'DE' , 'austrian', 'DE.AT', 'french' , 'FR' , 'spanish', 'ES'); $isolanguage = $isolanguages{$default_language}; $isolanguage = 'EN' unless $isolanguage; $title = &purify($title,1); eval("\$title = ". $default_title ) unless ($title); # allow user-modification of the