# -*-perl-*- ###################################################################### # # File: t2h_singular.init init file for singular t2h # use strict; use vars qw($node_file_name); my $T2H_BLUE_BUTTONS = 0; # we only redefine things which ar of relevance to singular # all the others we simply "include" # -prefix # Set the output file prefix, prepended to all .html, .png and .pl files. set_from_init_file('setfilename', 'sing'); # -expand # if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections # else, neither expand @iftex, @tex, nor @ifinfo sections set_from_init_file('EXPANDED_FORMATS', ['html', 'tex']); # if set, creates one html file per node set_from_init_file('SPLIT', 'node'); #if set cross-references use the xref node name argument set_from_init_file('XREF_USE_NODE_NAME_ARG', 1); # if set, chatter about what we are doing set_from_init_file('VERBOSE', 1); my $T2H_SING_base_images = '../singular_images/'; # inside set_from_init_file('BODYTEXT','lang="en" background="'.${T2H_SING_base_images}.'Mybg.png"'); # after set_from_init_file('AFTER_BODY_OPEN', "\n"); # before set_from_init_file('PRE_BODY_CLOSE', "\n"); # if using tex4ht, must be in latex mode due to \textbf $Texinfo::TeX4HT::STYLE='latex'; # title is already in the manual #$print_title = \&T2H_DEFAULT_print_title; set_from_init_file('SHOW_TITLE', 0); # footer texinfo_register_formatting_function('format_element_footer' , \&singular_format_footer); sub singular_format_footer($$$$) { my $self = shift; my $type = shift; my $element = shift; my $content = shift; my $end_page = (!$element->{'element_next'} or (defined($element->{'filename'}) and $element->{'filename'} ne $element->{'element_next'}->{'filename'} and $self->{'file_counters'}->{$element->{'filename'}} == 1)); if ($self->element_is_top($element)) { my $buttons = $self->get_conf('TOP_BUTTONS'); my $content_href = $self->_element_direction($element, 'Contents', 'href'); my $about_href = $self->_element_direction($element, 'About', 'href'); my $result = ''; if ($content_href or $about_href) { $result .= "
\n"; $result .= "Table of Contents\n
\n" if ($content_href); $result .= "About this document" if ($about_href); $result .= "
"; } $result .= " " if ($self->get_conf('VERTICAL_HEAD_NAVIGATION')); $result .= $self->get_conf('DEFAULT_RULE')."\n" if (defined($self->get_conf('DEFAULT_RULE'))); if ($end_page) { $result .= join('', $self->close_registered_sections_level(0)); $result .= &{$self->{'format_navigation_header_panel'}}($self, $buttons, undef, $element); } return $result; } return &{$self->default_formatting_function('format_element_footer')}($self, $type, $element, $content); } texinfo_register_formatting_function('format_end_file' , \&singular_format_end_file); # footer of page sub singular_format_end_file($) { my $self = shift; my $pre_body_close = $self->get_conf('PRE_BODY_CLOSE'); my $program_homepage = $self->get_conf('PACKAGE_URL'); my $program_and_version = $self->get_conf('PACKAGE_AND_VERSION'); my $version = $self->get_value('VERSION'); my $version_date = $self->get_value('VERSION_DATE'); $version = 'NO VERSION' if (!defined($version)); $version_date = 'NO VERSION DATE' if (!defined($version_date)); my $result = '             User manual for Singular version '."$version, $version_date, generated by $program_and_version. $pre_body_close "; } sub singular_banner { my $result = ''; $result .= <Top EOT return ($result, 0); } # always use bottom navigation set_from_init_file('WORDS_IN_PAGE', 0); set_from_init_file('VERTICAL_HEAD_NAVIGATION', 1); my @SECTION_BUTTONS = ( \&singular_banner, 'Back', 'Forward', 'FastBack', 'FastForward', 'Up', 'Top', 'Contents', 'Index', 'About' ); set_from_init_file ('SECTION_BUTTONS', \@SECTION_BUTTONS); my @NODE_FOOTER_BUTTONS = @SECTION_BUTTONS; set_from_init_file ('NODE_FOOTER_BUTTONS', \@SECTION_BUTTONS); # buttons for misc stuff my @MISC_BUTTONS = (\&singular_banner, 'Top', 'Contents', 'Index', 'About'); my @TOP_BUTTONS = (\&singular_banner, 'Top', 'Contents', 'Index', 'About'); set_from_init_file ('MISC_BUTTONS', \@MISC_BUTTONS); set_from_init_file ('TOP_BUTTONS', \@TOP_BUTTONS); set_from_init_file('ICONS', 1); my %ACTIVE_ICONS; my %PASSIVE_ICONS; if ($T2H_BLUE_BUTTONS) { %ACTIVE_ICONS = ( 'Top', 'blue_top.png', 'Contents', 'blue_dir.png', 'Overview', '', 'Index', 'blue_readme.png', 'Back', 'blue_prev.png', 'FastBack', 'blue_pprev.png', 'Prev', 'blue_pprev.png', 'Up', 'blue_up.png', 'Next', 'blue_nnext.png', 'Forward', 'blue_next.png', 'FastForward', 'blue_nnext.png', 'About' , 'blue_help.png', ' ', '' ); %PASSIVE_ICONS = ( 'Top', 'blue_top.png', 'Contents', 'blue_dir.png', 'Overview', '', 'Index', 'blue_readme.png', 'Back', 'blue_prev.png', 'FastBack', 'blue_pprev.png', 'Prev', 'blue_pprev.png', 'Up', 'blue_up.png', 'Next', 'blue_nnext.png', 'Forward', 'blue_next.png', 'FastForward', 'blue_nnext.png', 'About' , 'blue_help.png', ); } else { %ACTIVE_ICONS = ( 'Top', 'a_top.png', 'Contents', 'a_tableofcon.png', 'Overview', '', 'Index', 'a_index.png', 'Back', 'a_left.png', 'FastBack', 'a_leftdouble.png', 'Prev', 'a_leftdouble.png', 'Up', 'a_up.png', 'Next', 'a_rightdouble.png', 'Forward', 'a_right.png', 'FastForward', 'a_rightdouble.png', 'About' , 'a_help.png', ' ', 'a_empty.png' ); %PASSIVE_ICONS = ( 'Top', 'a_top_na.png', 'Contents', 'a_tableofcon_na.png', 'Overview', '', 'Index', 'a_index_na.png', 'Back', 'a_left_na.png', 'FastBack', 'a_leftdouble_na.png', 'Prev', 'a_leftdouble_na.png', 'Up', 'a_up_na.png', 'Next', 'a_rightdouble_na.png', 'Forward', 'a_right_na.png', 'FastForward', 'a_rightdouble_na.png', 'About' , 'a_help_na.png', ); } foreach my $hash_ref((\%ACTIVE_ICONS, \%PASSIVE_ICONS)) { foreach my $key (keys(%$hash_ref)) { next if ($hash_ref->{$key} eq ''); $hash_ref->{$key} = $T2H_SING_base_images.$hash_ref->{$key}; } } set_from_init_file ('ACTIVE_ICONS', \%ACTIVE_ICONS); set_from_init_file ('PASSIVE_ICONS', \%PASSIVE_ICONS); sub T2H_SING_pre_about($$) { my $self = shift; my $element = shift; my $version = $self->get_value('VERSION'); my $version_date = $self->get_value('VERSION_DATE'); $version = 'NO VERSION' if (!defined($version)); $version_date = 'NO VERSION DATE' if (!defined($version_date)); my $program_homepage = $self->get_conf('PACKAGE_URL'); my $program_and_version = $self->get_conf('PACKAGE_AND_VERSION'); my $result = ''; $result .= <Singular version $version, $version_date.
For questions and comments about Singular, send email to singular\@mathematik.uni-kl.de.

This document was generated by $program_and_version and LaTeX2HTML and is best viewed with a 16 or 18 point screen font.

EOT return $result; } set_from_init_file ('PRE_ABOUT', \&T2H_SING_pre_about); # a whole menu texinfo_register_command_formatting('menu', \&t2h_sing_menu); sub t2h_sing_menu($) { my $self = shift; my $cmdname = shift; my $command = shift; my $content = shift; if ($content =~ /\S/) { return "
\n" . $content. "
\n"; } return ''; } # We want to use EXTENSION for non node files only sub t2h_node_file_name($$$) { my $self = shift; my $element = shift; my $filename = shift; my $external_file_extension = '.html'; my $orig_filename = $filename; my $extension = ''; $extension = '.'.$self->get_conf('EXTENSION') if (defined($self->get_conf('EXTENSION')) and $self->get_conf('EXTENSION') ne ''); if ($extension eq '') { $filename .= $external_file_extension; } else { my $quoted_extension = quotemeta($extension); $filename =~ s/${quoted_extension}$/${external_file_extension}/; } return $filename; } $node_file_name = \&t2h_node_file_name; 1; # This must be the last line