📄 texi2html
字号:
$NETSCAPE_HTML = 1;# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0"# Paper sizes has no effect other than in the time it takes to create inlined# images and in whether large images can be created at all ie# - larger paper sizes *MAY* help with large image problems # - smaller paper sizes are quicker to handle$PAPERSIZE = "a4";# Replace "english" with another language in order to tell LaTeX2HTML that you # want some generated section titles (eg "Table of Contents" or "References")# to appear in a different language. Currently only "english" and "french"# is supported but it is very easy to add your own. See the example in the# file "latex2html.config" $TITLES_LANGUAGE = "english";1; # This must be the last non-comment line# End File texi2html.init######################################################################require "$ENV{T2H_HOME}/texi2html.init" if ($0 =~ /\.pl$/ && -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");#+++############################################################################# ## Initialization ## Pasted content of File $(srcdir)/MySimple.pm: Command-line processing ## ##---############################################################################# leave this within comments, and keep the require statement# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init# exists.# package Getopt::MySimple;# Name:# Getopt::MySimple.## Documentation:# POD-style (incomplete) documentation is in file MySimple.pod## Tabs:# 4 spaces || die.## Author:# Ron Savage rpsavage@ozemail.com.au.# 1.00 19-Aug-97 Initial version.# 1.10 13-Oct-97 Add arrays of switches (eg '=s@').# 1.20 3-Dec-97 Add 'Help' on a per-switch basis.# 1.30 11-Dec-97 Change 'Help' to 'verbose'. Make all hash keys lowercase.# 1.40 10-Nov-98 Change width of help report. Restructure tests.# 1-Jul-00 Modifications for Texi2html# --------------------------------------------------------------------------# Locally modified by obachman (Display type instead of env, order by cmp)# $Id: MySimple.pm,v 1.1 2000/07/03 08:44:13 obachman Exp $# use strict;# no strict 'refs';use vars qw(@EXPORT @EXPORT_OK @ISA);use vars qw($fieldWidth $opt $VERSION);use Exporter();use Getopt::Long;@ISA = qw(Exporter);@EXPORT = qw();@EXPORT_OK = qw($opt); # An alias for $self -> {'opt'}.# --------------------------------------------------------------------------$fieldWidth = 20;$VERSION = '1.41';# --------------------------------------------------------------------------sub byOrder{ my($self) = @_; return uc($a) cmp (uc($b));}# --------------------------------------------------------------------------sub dumpOptions{ my($self) = @_; print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n"; for (sort byOrder keys(%{$self -> {'opt'} }) ) { print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n"; } print "\n";} # End of dumpOptions.# --------------------------------------------------------------------------# Return:# 0 -> Error.# 1 -> Ok.sub getOptions{ push(@_, 0) if ($#_ == 2); # Default for $ignoreCase is 0. push(@_, 1) if ($#_ == 3); # Default for $helpThenExit is 1. my($self, $default, $helpText, $versionText, $helpThenExit, $versionThenExit, $ignoreCase) = @_; $helpThenExit = 1 unless (defined($helpThenExit)); $versionThenExit = 1 unless (defined($versionThenExit)); $ignoreCase = 0 unless (defined($ignoreCase)); $self -> {'default'} = $default; $self -> {'helpText'} = $helpText; $self -> {'versionText'} = $versionText; $Getopt::Long::ignorecase = $ignoreCase; unless (defined($self -> {'default'}{'help'})) { $self -> {'default'}{'help'} = { type => ':i', default => '', linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;}, verbose => "print help and exit" }; } unless (defined($self -> {'default'}{'version'})) { $self -> {'default'}{'version'} = { type => '', default => '', linkage => sub {print $self->{'versionText'}; exit (0) if versionTheExit;}, verbose => "print version and exit" }; } for (keys(%{$self -> {'default'} }) ) { my $type = ${$self -> {'default'} }{$_}{'type'}; push(@{$self -> {'type'} }, "$_$type"); $self->{'opt'}->{$_} = ${$self -> {'default'} }{$_}{'linkage'} if ${$self -> {'default'} }{$_}{'linkage'}; } my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} }); return $result unless $result; for (keys(%{$self -> {'default'} }) ) { if (! defined(${$self -> {'opt'} }{$_})) #{ { ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'}; } } $result;} # End of getOptions.# --------------------------------------------------------------------------sub helpOptions{ my($self) = shift; my($noHelp) = shift; $noHelp = 0 unless $noHelp; my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth) = (10, 5, 9, 78, 4, 11); print "$self->{'helpText'}" if ($self -> {'helpText'}); print ' Option', ' ' x ($optwidth - length('Option') -1 ), 'Type', ' ' x ($typewidth - length('Type') + 1), 'Default', ' ' x ($defaultwidth - length('Default') ), "Description\n"; for (sort byOrder keys(%{$self -> {'default'} }) ) { my($line, $help, $option, $val); $option = $_; next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp; $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) . "${$self->{'default'} }{$_}{'type'} ". ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) )); $val = ${$self->{'default'} }{$_}{'linkage'}; if ($val) { if (ref($val) eq 'SCALAR') { $val = $$val; } else { $val = ''; } } else { $val = ${$self->{'default'} }{$_}{'default'}; } $line .= "$val "; $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line)); if (defined(${$self -> {'default'} }{$_}{'verbose'}) && ${$self -> {'default'} }{$_}{'verbose'} ne '') { $help = "${$self->{'default'} }{$_}{'verbose'}"; } else { $help = ' '; } if ((length("$line") + length($help)) < $maxlinewidth) { print $line , $help, "\n"; } else { print $line, "\n", ' ' x $valind, $help, "\n"; } for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}})) { print ' ' x ($valind + 2); print $val, ' ', ' ' x ($valwidth - length($val) - 2); print ${$self->{'default'}}{$option}{'values'}{$val}, "\n"; } } print <<EOT;Note: 'Options' may be abbreviated. 'Type' specifications mean: <none>| ! no argument: variable is set to 1 on -foo (or, to 0 on -nofoo) =s | :s mandatory (or, optional) string argument =i | :i mandatory (or, optional) integer argumentEOT} # End of helpOptions.#-------------------------------------------------------------------sub new{ my($class) = @_; my($self) = {}; $self -> {'default'} = {}; $self -> {'helpText'} = ''; $self -> {'opt'} = {}; $opt = $self -> {'opt'}; # An alias for $self -> {'opt'}. $self -> {'type'} = (); return bless $self, $class;} # End of new.# --------------------------------------------------------------------------1;# End MySimple.pmrequire "$ENV{T2H_HOME}/MySimple.pm" if ($0 =~ /\.pl$/ && -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");package main;#+++############################################################################# ## Constants ## ##---############################################################################$DEBUG_TOC = 1;$DEBUG_INDEX = 2;$DEBUG_BIB = 4;$DEBUG_GLOSS = 8;$DEBUG_DEF = 16;$DEBUG_HTML = 32;$DEBUG_USER = 64;$DEBUG_L2H = 128;$BIBRE = '\[[\w\/-]+\]'; # RE for a bibliography reference$FILERE = '[\/\w.+-]+'; # RE for a file name$VARRE = '[^\s\{\}]+'; # RE for a variable name$NODERE = '[^,:]+'; # RE for a node name$NODESRE = '[^:]+'; # RE for a list of node names$ERROR = "***"; # prefix for errors $WARN = "**"; # prefix for warnings # program home page$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections$CHAPTEREND = "<!-- End chapter -->\n"; # to know where a chpater ends$SECTIONEND = "<!-- End section -->\n"; # to know where section ends$TOPEND = "<!-- End top -->\n"; # to know where top ends ## pre-defined indices#$index_properties ={ 'c' => { name => 'cp'}, 'f' => { name => 'fn', code => 1}, 'v' => { name => 'vr', code => 1}, 'k' => { name => 'ky', code => 1}, 'p' => { name => 'pg', code => 1}, 't' => { name => 'tp', code => 1}};%predefined_index = ( 'cp', 'c', 'fn', 'f', 'vr', 'v', 'ky', 'k', 'pg', 'p', 'tp', 't', );## valid indices#%valid_index = ( 'c', 1, 'f', 1, 'v', 1, 'k', 1, 'p', 1, 't', 1, );## texinfo section names to level#%sec2level = ( 'top', 0, 'chapter', 1, 'unnumbered', 1, 'majorheading', 1, 'chapheading', 1, 'appendix', 1, 'section', 2, 'unnumberedsec', 2, 'heading', 2, 'appendixsec', 2, 'appendixsection', 2, 'subsection', 3, 'unnumberedsubsec', 3, 'subheading', 3, 'appendixsubsec', 3, 'subsubsection', 4, 'unnumberedsubsubsec', 4, 'subsubheading', 4, 'appendixsubsubsec', 4, );## accent map, TeX command to ISO name#%accent_map = ( '"', 'uml', '~', 'tilde', '^', 'circ', '`', 'grave', '\'', 'acute', );## texinfo "simple things" (@foo) to HTML ones#%simple_map = ( # cf. makeinfo.c "*", "<BR>", # HTML+ " ", " ", "\t", " ", "-", "­", # soft hyphen "\n", "\n", "|", "", 'tab', '<\/TD><TD>', # spacing commands ":", "", "!", "!", "?", "?", ".", ".", "-", "", );## texinfo "things" (@foo{}) to HTML ones#%things_map = ( 'TeX', 'TeX', 'br', '<P>', # paragraph break 'bullet', '*', 'copyright', '(C)', 'dots', '<small>...<\/small>', 'enddots', '<small>....<\/small>', 'equiv', '==', 'error', 'error-->', 'expansion', '==>', 'minus', '-', 'point', '-!-', 'print', '-|', 'result', '=>', 'today', $T2H_TODAY, 'aa', 'å', 'AA', 'Å', 'ae', 'æ', 'oe', 'œ', 'AE', 'Æ', 'OE', 'Œ', 'o', 'ø', 'O', 'Ø', 'ss', 'ß', 'l', '\/l', 'L', '\/L', 'exclamdown', '¡', 'questiondown', '¿', 'pounds', '£' );## texinfo styles (@foo{bar}) to HTML ones#%style_map = ( 'acronym', '&do_acronym', 'asis', '', 'b', 'B', 'cite', 'CITE', 'code', 'CODE', 'command', 'CODE', 'ctrl', '&do_ctrl', # special case 'dfn', 'EM', # DFN tag is illegal in the standard 'dmn', '', # useless 'email', '&do_email', # insert a clickable email address 'emph', 'EM', 'env', 'CODE', 'file', '"TT', # will put quotes, cf. &apply_style 'i', 'I', 'kbd', 'KBD', 'key', 'KBD', 'math', '&do_math', 'option', '"SAMP', # will put quotes, cf. &apply_style 'r', '', # unsupported 'samp', '"SAMP', # will put quotes, cf. &apply_style 'sc', '&do_sc', # special case 'strong', 'STRONG', 't', 'TT', 'titlefont', '', # useless 'uref', '&do_uref', # insert a clickable URL 'url', '&do_url', # insert a clickable URL 'var', 'VAR', 'w', '', # unsupported 'H', '&do_accent', 'dotaccent', '&do_accent', 'ringaccent','&do_accent', 'tieaccent', '&do_accent', 'u','&do_accent', 'ubaraccent','&do_accent', 'udotaccent','&do_accent', 'v', '&do_accent', ',', '&do_accent', 'dotless', '&do_accent' );## texinfo format (@foo/@end foo) to HTML ones
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -