#LaTeX2HTML Version 96.1 : dot.latex2html-init -*- perl -*-
#
$INFO = 1; # 0 = do not make a "About this document..." section
$MAX_LINK_DEPTH = 3;
# Python documentation uses section numbers to support references to match
# in the printed and online versions.
#
$SHOW_SECTION_NUMBERS = 1;
$HTML_VERSION = '3.0';
$ICONSERVER = '../icons';
# This replacement adds the "BORDER=0" attribute to the generated icon
# markup. This is done for no better reason than that it looks better.
#
sub img_tag {
local($icon) = @_;
( ($icon =~ /(gif)/) ?
do {
$icon =~ /(up|next|previous|next_page|previous_page|change_begin|change_end|change_delete|contents|index)/;
join('','')
} :
$icon);
}
# This replacement for process_command() is needed to add the case for
# "\,"; it is unfortunate we need to do it this way.
#
sub process_command {
local ($cmd_rx, *ref_contents) = @_;
local($ref_before, $cmd, $after);
local($cmd_sub, $cmd_msub, $cmd_trans, $mathentity);
local (@open_font_tags,@open_size_tags);
$ref_contents = &convert_iso_latin_chars($ref_contents);
for (;;) { # Do NOT use the o option
last unless ($ref_contents =~ /$cmd_rx/ );
($ref_before, $cmd, $after) = ($`, $1, "$2$'");
print(".");
# $after =~ s/^[ ]+/ /o; Collapse all spaces that follow a command
if ($cmd =~ /[a-zA-Z]$/) { # Eat redundant spaces that follow a command
$after =~ s/^[ \t]+//o; }
else {
$after =~ s/^[ \t]+/ /o; }
if ( $cmd = &normalize($cmd) ) {
($cmd_sub, $cmd_msub, $cmd_trans, $mathentity) =
("do_cmd_$cmd", "do_math_cmd_$cmd",
$declarations{$cmd}, $mathentities{$cmd});
if (defined &$cmd_sub) {
# $ref_before may also be modified ...
if ($cmd =~ /$sizechange_rx/o) {
$after = &$cmd_sub($after, @open_size_tags);
} else {
$after = &$cmd_sub($after, @open_font_tags);
};
}
elsif (defined &$cmd_msub) {
# $ref_before may also be modified ...
$after = &$cmd_msub($after, @open_font_tags);
if ( !$math_mode ) {
$after = "";
++$commands_outside_math{$cmd};
};
}
elsif ($cmd_trans) { # One to one transform
$cmd_trans =~ m|&$mathentity;" . $after;
++$commands_outside_math{$cmd};
}; }
# Here's the hack:
elsif ($cmd == ',' && ! $AUX_FILE) {
$ref_before = $ref_before . ",";
}
elsif ($ignore{$cmd}) { # Ignored command
print "."}
elsif ($cmd =~ /^the(.+)$/) { # Counter
$counter = $1;
$after = &do_cmd_thecounter($after);}
else {
# Do not add if reading an auxiliary file
++$unknown_commands{$cmd} unless $AUX_FILE;
}
}
$ref_contents = join('', $ref_before, $after);
}
$ref_contents;
}
sub top_navigation_panel {
# Now add a few buttons with a space between them
"
";
@keys = keys %Modules;
@keys = sort keysort @keys;
foreach $key (@keys) {
$index .= "$Modules{$key}$key
\n"
}
s/$idx_module_mark/$index
/o; } sub remove_general_markers { s/$lof_mark/
' , &make_section_heading($idx_module_title, "h2"), $idx_module_mark, $_); } # 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 { local($id); s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; $1/eg; #print STDERR "\nthebibliography: $bbl_cnt\n"; #if ($bbl_cnt == 1) { s/([\\]begin\s*$O\d+$C\s*thebibliography)/do { $id = ++$global{'max_id'}; "\\bibliography$O$id$C$O$id$C $1"}/geo; #} local(@parts) = split(/\\begin\s*$O\d+$C\s*theindex/); if (scalar(@parts) == 3) { print "\n&add_bbl_and_idx_dummy_commands ==> adding module index"; s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlmoduleindex $1/o; } s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex $1/o; s/[\\]printindex/\\textohtmlindex /o; &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 { $section_headings['textohtmlmoduleindex'] = 'h1'; # Sets $outermost_level local($level); 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;}); $MAX_SPLIT_DEPTH = $MAX_SPLIT_DEPTH + $level; %section_commands = ('tableofcontents', $level, 'listoffigures', $level, 'listoftables', $level, 'bibliography', $level, 'textohtmlindex', $level, 'textohtmlmoduleindex', $level, %section_commands); } 1; # This must be the last line