mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-08 16:43:25 +00:00
Base files from texi2www-960103
This commit is contained in:
BIN
doc/tools/texi2www/archive/texi2www-960103.tgz
Normal file
BIN
doc/tools/texi2www/archive/texi2www-960103.tgz
Normal file
Binary file not shown.
213
doc/tools/texi2www/texi2dvi
Normal file
213
doc/tools/texi2www/texi2dvi
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
$version = <<END_VERSION;
|
||||||
|
Jan 2 1996
|
||||||
|
END_VERSION
|
||||||
|
|
||||||
|
$copyright = <<END_COPYRIGHT;
|
||||||
|
texi2dvi - converts texinfo to dvi
|
||||||
|
Copyright (C) 1996 Tim Singletary
|
||||||
|
|
||||||
|
This program is freely distributable under the terms of the GNU
|
||||||
|
GENERAL PUBLIC LICENSE. In particular, modified versions of this
|
||||||
|
program must retain this copyright notice and must remain freely
|
||||||
|
distributable.
|
||||||
|
END_COPYRIGHT
|
||||||
|
|
||||||
|
$usage = <<END_USAGE;
|
||||||
|
Usage: texi2dvi [option ...] texinfo_file ...
|
||||||
|
-k (-nocleanup) -- don't ``rm -f'' the intermediate files.
|
||||||
|
-v (-verbose) -- print additional output.
|
||||||
|
-copyright -- print the copyright and die.
|
||||||
|
-version -- print the version and die.
|
||||||
|
Generates a .dvi file from each texinfo (.texi or .texinfo) file.
|
||||||
|
Understands texi2www extensions (\@gif, etc.).
|
||||||
|
END_USAGE
|
||||||
|
|
||||||
|
unless ($tex = $ENV{TEX}) {$tex = tex;}
|
||||||
|
unless ($texindex = $ENV{TEXINDEX}) {$texindex = texindex;}
|
||||||
|
$texinputs = $ENV{TEXINPUTS};
|
||||||
|
|
||||||
|
$cleanup = 1;
|
||||||
|
while ($ARGV[0] =~ /^-/) {
|
||||||
|
$_ = shift;
|
||||||
|
if (/-k$/ || /-nocleanup/) {$cleanup = 0; next;}
|
||||||
|
if (/-v$/ || /-verbose/) {$verbose = 1; next;}
|
||||||
|
if (/-d$/ || /-vv$/ || /-debug/) {$verbose = 2; next;}
|
||||||
|
if (/-copyright/) {die $copyright;}
|
||||||
|
if (/-version/) {die $version;}
|
||||||
|
die $usage;
|
||||||
|
}
|
||||||
|
|
||||||
|
$font_prefix = "xx";
|
||||||
|
while (&prefix_in_use($font_prefix)) {
|
||||||
|
++$font_prefix;
|
||||||
|
if (length($font_prefix) > 2) {
|
||||||
|
$font_prefix = "aa";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$unique_base = "_" . $$ . "a-";
|
||||||
|
while (&prefix_in_use($unique_base)) {++$unique_base;}
|
||||||
|
|
||||||
|
print "Generated files will begin with \`$unique_base\'\n" if $verbose;
|
||||||
|
|
||||||
|
$arg_index = 'a';
|
||||||
|
foreach $raw_texi (@ARGV) {
|
||||||
|
$base = $unique_base . $arg_index;
|
||||||
|
++$arg_index;
|
||||||
|
|
||||||
|
# $tawtexifile is a texinfo file; suffix must be either `.texi' or
|
||||||
|
# `.texinfo'. If arg is in a different directory, adjust
|
||||||
|
# TEXINPUTS environment variable to include that (and the current)
|
||||||
|
# directory.
|
||||||
|
unless ($raw_texi =~ /(.*).texi(nfo)?$/) {
|
||||||
|
print "skipping $raw_texi -- has unknown extension!\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
$raw_texi_base = $1;
|
||||||
|
if ($raw_texi_base =~ m|^(.*)/([^/]*)$|) {
|
||||||
|
$raw_texi_base = $2;
|
||||||
|
$ENV{TEXINPUTS} = ".:$1:$texinputs";
|
||||||
|
} else {
|
||||||
|
$ENV{TEXINPUTS} = ".:$texinputs";
|
||||||
|
}
|
||||||
|
|
||||||
|
unless (-r $raw_texi) {
|
||||||
|
print "skipping $raw_texi -- not readable or doesn't exist!\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Preprocesses the $rawtexifile (because of @gif{} and other extensions)
|
||||||
|
$processed_texi = "$base.texi";
|
||||||
|
print "Preprocessing $raw_texi into $processed_texi:\n" if $verbose;
|
||||||
|
&preprocess_texinfo($raw_texi,$processed_texi,$base);
|
||||||
|
|
||||||
|
print "$tex $processed_texi\n" if $verbose;
|
||||||
|
if (system("$tex $processed_texi") == 0) {
|
||||||
|
|
||||||
|
# @possible_index_file = <$base.??>; only works for the
|
||||||
|
# first value of $base ... so,
|
||||||
|
opendir(DIR,".") || die "Couldn't read current directory -- $!\n";
|
||||||
|
@possible_index_files = ();
|
||||||
|
while ($_ = readdir(DIR)) {
|
||||||
|
push(@possible_index_files,$_) if (/^$base\...$/);
|
||||||
|
}
|
||||||
|
closedir(DIR);
|
||||||
|
|
||||||
|
@index_files = ();
|
||||||
|
foreach $possible_index_file (@possible_index_files) {
|
||||||
|
print "DEBUG: possible_index_file $possible_index_file\n"
|
||||||
|
if ($verbose > 1);
|
||||||
|
next unless (-s $possible_index_file);
|
||||||
|
push(@index_files,$possible_index_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (@index_files > 0) {
|
||||||
|
$texindex_cmd = "$texindex " . join(' ',@index_files);
|
||||||
|
print "$texindex_cmd\n" if $verbose;
|
||||||
|
if (system($texindex_cmd) == 0) {
|
||||||
|
print "$tex $processed_texi\n" if $verbose;
|
||||||
|
system("$tex $processed_texi");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# At this point, $base.dvi should exist -- rename it
|
||||||
|
# to $raw_texi_base.dvi
|
||||||
|
if (-e "$base.dvi") {
|
||||||
|
rename("$base.dvi","$raw_texi_base.dvi")
|
||||||
|
|| die "rename $base.dvi $raw_texi_base.dvi -- $!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($cleanup) {unlink(<$base*>);}
|
||||||
|
|
||||||
|
sub preprocess_texinfo
|
||||||
|
{
|
||||||
|
local ($infile,$outfile,$b) = @_;
|
||||||
|
|
||||||
|
open(IN,"<$infile") || die "Couldn't open $infile -- $!\n";
|
||||||
|
open(OUT,">$outfile") || die "Couldn't open $outfile -- $!\n";
|
||||||
|
|
||||||
|
$gif_index = 'a';
|
||||||
|
while (<IN>) {
|
||||||
|
|
||||||
|
# @gif{gif} or @gif{html_gif, tex_gif}
|
||||||
|
if (/(.*)\@gif\{([^{]*)\}(.*)/) {
|
||||||
|
$prefix = $1;
|
||||||
|
$arg = $2;
|
||||||
|
$suffix = $3;
|
||||||
|
print OUT "$prefix\n" if $prefix;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
$gif_base = $b . $gif_index;
|
||||||
|
last unless (-e $gif_base . ".gif");
|
||||||
|
++$gif_index;
|
||||||
|
}
|
||||||
|
|
||||||
|
$gif_file = '';
|
||||||
|
if ($arg =~ /.*,(..*\.gif)/) {
|
||||||
|
$gif_file = $1;
|
||||||
|
$font_base = $gif_file;
|
||||||
|
} else {
|
||||||
|
$font_base = $arg;
|
||||||
|
$gif_file = $gif_base . ".gif";
|
||||||
|
print "Scaling $arg into $gif_file:\n" if $verbose;
|
||||||
|
$scale_cmd = "giftopnm $arg | pnmscale 2 | pnmnlfilt 2 1 "
|
||||||
|
. "| ppmquant 255 | ppmtogif > $gif_file";
|
||||||
|
print "$scale_cmd\n" if $verbose;
|
||||||
|
if (system($scale_cmd) != 0) {
|
||||||
|
print "$scale_cmd failed\n";
|
||||||
|
$gif_file = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($gif_file =~ /.*\.gif/) {
|
||||||
|
|
||||||
|
|
||||||
|
$font_base =~ s|.*/||;
|
||||||
|
$font_base =~ s|\..*||;
|
||||||
|
|
||||||
|
# $font_base, due to bm2font requirements, can't be more
|
||||||
|
# than six characters long and must consist entirely of
|
||||||
|
# lower case letters.
|
||||||
|
$font_base =~ s/[^a-z]//g;
|
||||||
|
$font_base = $font_prefix . substr($font_base,0,5);
|
||||||
|
while (&prefix_in_use($font_base)) {++$font_base;}
|
||||||
|
|
||||||
|
$bm2font_cmd = "bm2font -f$font_base $gif_file";
|
||||||
|
print "$bm2font_cmd\n" if $verbose;
|
||||||
|
if (system($bm2font_cmd) != 0) {
|
||||||
|
print "$bm2font_cmd failed\n";
|
||||||
|
} else {
|
||||||
|
print OUT "\@tex\n";
|
||||||
|
print OUT "\\input $font_base.tex\n";
|
||||||
|
print OUT "\\set$font_base\n";
|
||||||
|
print OUT "\@end tex\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print OUT "$suffix \n" if $suffix;
|
||||||
|
} else {
|
||||||
|
print OUT "$_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close OUT;
|
||||||
|
close IN;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub prefix_in_use
|
||||||
|
{
|
||||||
|
local ($p) = @_;
|
||||||
|
|
||||||
|
# Returns true or false; returns true if any file in the current
|
||||||
|
# directory begins with $p. This function is here because
|
||||||
|
# `<$p*>' only works for the first value of $p!
|
||||||
|
|
||||||
|
opendir(DIR,".") || die "Couldn't read current directory -- $!\n";
|
||||||
|
while ($_ = readdir(DIR)) {
|
||||||
|
last if /^$p/;
|
||||||
|
}
|
||||||
|
closedir(DIR);
|
||||||
|
$rc = /^$p/;
|
||||||
|
}
|
||||||
1202
doc/tools/texi2www/texi2www
Executable file
1202
doc/tools/texi2www/texi2www
Executable file
File diff suppressed because it is too large
Load Diff
707
doc/tools/texi2www/texi2wwwdoc.texi
Normal file
707
doc/tools/texi2www/texi2wwwdoc.texi
Normal file
@@ -0,0 +1,707 @@
|
|||||||
|
\input texinfo @c -*-texinfo-*-
|
||||||
|
|
||||||
|
@comment %**start of header
|
||||||
|
@setfilename texi2wwwdoc.info
|
||||||
|
@settitle texi2www user's guide
|
||||||
|
@comment %**end of header
|
||||||
|
|
||||||
|
@finalout
|
||||||
|
|
||||||
|
@titlepage
|
||||||
|
@title texi2www
|
||||||
|
@author Tim Singletary
|
||||||
|
@end titlepage
|
||||||
|
|
||||||
|
@iftex
|
||||||
|
@everyfooting @| Jan 2 1996
|
||||||
|
@end iftex
|
||||||
|
|
||||||
|
@comment ******************************************************** TOP
|
||||||
|
@node Top,,,(dir)
|
||||||
|
@ifhtml
|
||||||
|
This document describes @var{texi2www}, a utility for converting
|
||||||
|
texinfo to HTML.
|
||||||
|
|
||||||
|
This document provides a pretty good example of @var{texi2www}'s texinfo
|
||||||
|
to HTML conversion. @href{Click here,,,texi2wwwdoc.texi.txt} to view
|
||||||
|
the texinfo source to this document.
|
||||||
|
@end ifhtml
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Overview:: What is texi2www? texinfo? HTML? mosaic? WWW?
|
||||||
|
* Real life:: A real-life example using texi2www
|
||||||
|
* Invocation:: Command line args, etc.
|
||||||
|
* Extensions:: @@ commands not in GNU texinfo
|
||||||
|
* Known Bugs:: Oops!
|
||||||
|
* Demo:: What various things look like
|
||||||
|
|
||||||
|
* texi2dvi::
|
||||||
|
|
||||||
|
* Index::
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@ifhtml
|
||||||
|
@today{}.
|
||||||
|
@end ifhtml
|
||||||
|
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Overview
|
||||||
|
@unnumbered Overview
|
||||||
|
@cindex What is HTML
|
||||||
|
@cindex What is texinfo
|
||||||
|
@cindex What is mosaic
|
||||||
|
@cindex texi2html
|
||||||
|
@cindex info2html
|
||||||
|
@cindex Other texinfo to HTML converters
|
||||||
|
|
||||||
|
@var{Texi2www} converts texinfo to HTML:
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item
|
||||||
|
@table @asis
|
||||||
|
@item texinfo
|
||||||
|
A documentation system that uses a single source file to produce both
|
||||||
|
on-line documentation and printed output. For details see
|
||||||
|
@ref{Top,the Texinfo User's Guide,Overview,texinfo,The Texinfo User's Guide}.
|
||||||
|
@item HTML
|
||||||
|
@href{HyperText Markup Language,,,
|
||||||
|
http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html}
|
||||||
|
used in World Wide Web documents. Programs like mosaic
|
||||||
|
understand HTML.
|
||||||
|
@end table
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Texinfo's on-line documentation viewers (emacs, info, xinfo, etc.) are
|
||||||
|
quite limited when compared to mosaic. Mosaic supports multiple fonts,
|
||||||
|
variable width fonts, embedded images, and hypertext links to anywhere
|
||||||
|
(not just to other texinfo documents). In addition, mosaic keeps a
|
||||||
|
history of nodes visited and can easily go back to previously visited
|
||||||
|
nodes.
|
||||||
|
|
||||||
|
@var{Texinfo} converts @var{texinfo} directly to @var{HTML} without
|
||||||
|
going through an intermediate @var{info} conversion.
|
||||||
|
|
||||||
|
Other @var{texinfo} to @var{HTML} converters include:
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item
|
||||||
|
@href{@var{http://wwwcn.cern.ch/dci/texi2html/},,,
|
||||||
|
http://wwwcn.cern.ch/dci/texi2html/}; and
|
||||||
|
@item
|
||||||
|
@href{@var{http://www.ericsson.nl/info2www/info2www.html},,,
|
||||||
|
http://www.ericsson.nl/info2www/info2www.html}
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Texi2html is very good, but is different from texi2www in several respects,
|
||||||
|
including:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Texi2www processes @@ifinfo blocks, whereas texi2html processes
|
||||||
|
@@iftex blocks.
|
||||||
|
@item Texi2www always generates menus, whereas menu generation is
|
||||||
|
optional in texi2html.
|
||||||
|
@item Texi2www generates a seperate document for each node, wherease
|
||||||
|
texi2html can combine several nodes into one document.
|
||||||
|
@item Texi2www adds @href{@code{@@ifhtml} blocks,ifhtml blocks},
|
||||||
|
@href{@code{@@html} blocks,html blocks}, and @href{@code{@@href@{@}},
|
||||||
|
href}. Texi2html has @code{@@ifhtml} blocks, but they work like
|
||||||
|
texi2www's @code{@@html} blocks.
|
||||||
|
@item Texi2www uses icons for the prev, up, and next links; texi2html
|
||||||
|
doesn't.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Texi2www is written in perl and may be used and distributed under the
|
||||||
|
terms of the @href{GNU General Public License,Copying,emacs}.
|
||||||
|
|
||||||
|
Texi2www was written by
|
||||||
|
@href{Tim Singletary,,,
|
||||||
|
http://sunland.gsfc.nasa.gov/personnel/aam/singletary.html}
|
||||||
|
(@cite{tsingle@@sunland.gsfc.nasa.gov}) and is available at
|
||||||
|
@href{@var{ftp://sunland.gsfc.nasa.gov/pub/tarfiles/texi2www.tgz},,,
|
||||||
|
ftp://sunland.gsfc.nasa.gov/pub/tarfiles/texi2www.tgz}.
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Real life
|
||||||
|
@chapter A Real Life Example
|
||||||
|
|
||||||
|
Here's how I used texi2www to set up a
|
||||||
|
@href{directory of texinfo documents,,,
|
||||||
|
http://sunland.gsfc.nasa.gov/info/dir.html}.
|
||||||
|
This discussion is the minimum I had to do to set up
|
||||||
|
@href{texinfo,,,http://sunland.gsfc.nasa.gov/info/texinfo/Top.html} and
|
||||||
|
texi2www.
|
||||||
|
First, I created the directory ``@var{$HTDOCS/info}'' (@var{$HTDOCS} is
|
||||||
|
the root directory of my web server).
|
||||||
|
|
||||||
|
Then, I copied arrow icons ``@var{missing-arrow.gif}'',
|
||||||
|
``@var{next-arrow.gif}'', ``@var{prev-arrow.gif}'', and
|
||||||
|
``@var{up-arrow.gif}'' into ``@var{$HTDOCS/info}''.
|
||||||
|
(I obtained my icons from
|
||||||
|
@cite{Rutgers University Network Services} at
|
||||||
|
@href{http://ns2.rutgers.edu/doc-images/buttons,,,
|
||||||
|
http://ns2.rutgers.edu/doc-images/buttons}.)
|
||||||
|
|
||||||
|
Next, I created subdirectories ``@var{$HTDOCS/info/texinfo}'' and
|
||||||
|
``@var{$HTDOCS/info/texi2wwwdoc}''.
|
||||||
|
(I determined the names of these subdirectories by examining the
|
||||||
|
``@var{@@setfilename}'' line in the texinfo files.
|
||||||
|
files; @var{texi2wwwdoc.texi} contains the line
|
||||||
|
``@var{@@setfilename texi2wwwdoc.info}'' and @var{texinfo.texi} contains
|
||||||
|
``@var{@@setfilename texinfo.info}''.
|
||||||
|
|
||||||
|
Next, I copied the texinfo files into the appropriate directories. This
|
||||||
|
step isn't strictly required, but I think its a good idea since it makes
|
||||||
|
it simple to keep track of which texinfo files generated which set of
|
||||||
|
html documents.
|
||||||
|
|
||||||
|
Then I generated the html documents. I used the commands:
|
||||||
|
@example
|
||||||
|
> cd $HTDOCS/info/texinfo
|
||||||
|
> texi2www texinfo.texi
|
||||||
|
Normal completion.
|
||||||
|
> cd ../texi2wwwdoc
|
||||||
|
> texi2www texi2wwwdoc.texi
|
||||||
|
Normal completion.
|
||||||
|
@end example
|
||||||
|
Examing these directories shows that a bunch of @var{.html} files got
|
||||||
|
generated, including, in each directory, ``@var{Top.html}''.
|
||||||
|
|
||||||
|
Finally, I created a table of contents file
|
||||||
|
``@var{$HTDOCS/info/dir.html}''. The first version of that file looked
|
||||||
|
like:
|
||||||
|
|
||||||
|
@example
|
||||||
|
<HTML>
|
||||||
|
<HEAD><TITLE>info directory table of contents</TITLE></HEAD>
|
||||||
|
<BODY>
|
||||||
|
<MENU>
|
||||||
|
<LI><A HREF="texinfo/Top.html">texinfo</A>
|
||||||
|
GNU texinfo version 3.1
|
||||||
|
<LI><A HREF="texi2wwwdoc/Top.html">texi2www</A>
|
||||||
|
Converts texinfo to html
|
||||||
|
</MENU>
|
||||||
|
</BODY></HTML>
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Invocation
|
||||||
|
@chapter Invocation
|
||||||
|
@cindex Command line options
|
||||||
|
@cindex Obtaining gif files
|
||||||
|
|
||||||
|
@unnumberedsec Synopsys
|
||||||
|
|
||||||
|
@code{texi2www [options] texinfo-file}
|
||||||
|
|
||||||
|
@unnumberedsec Options
|
||||||
|
@table @asis
|
||||||
|
|
||||||
|
@item @code{-dir} @var{path}
|
||||||
|
Specifies the path to the directory where the
|
||||||
|
generated files get placed. If not specified, the current
|
||||||
|
directory is assumed.
|
||||||
|
|
||||||
|
@item @code{-footer} @var{file}
|
||||||
|
Specifies a file whose contents get
|
||||||
|
appended at the bottom of each generated HTML file. Typically
|
||||||
|
looks something like:
|
||||||
|
|
||||||
|
@example
|
||||||
|
<HR>
|
||||||
|
<P>Back to our <A HREF="../../homepage.html">home page</A>.</P>
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item @code{-icons} @var{path}
|
||||||
|
Specifies the path (relative to the directory where the generated
|
||||||
|
files get placed) to the arrow files. If not specified, @file{..}
|
||||||
|
is assumed. The names of the arrow
|
||||||
|
files are @file{up_arrow.gif}, @file{left_arrow.gif},
|
||||||
|
@file{right_arrow.gif}, and @file{missing_arrow.gif}
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@unnumberedsec Directory structure
|
||||||
|
|
||||||
|
Texi2www will generate a set of HTML files from each texinfo document;
|
||||||
|
each set of HTML files must go in a seperate directory (why? one reason
|
||||||
|
is because each set includes a file named @code{Top.html}!).
|
||||||
|
|
||||||
|
These directories should be subdirectories of the same base directory.
|
||||||
|
Assume the base directory is @code{$TEXIBASE}. Then HTML files for
|
||||||
|
emacs go in directory @code{$TEXIBASE/emacs}, HTML files for texinfo go
|
||||||
|
in @code{$TEXIBASE/texinfo}, etc, where the name of the subdirectory is
|
||||||
|
the same as the name of the info file (so cross references between
|
||||||
|
documents will work).
|
||||||
|
|
||||||
|
In addition to the subdirectories of HTML files, @code{$TEXIBASE}
|
||||||
|
contains a file @code{dir.html} and the four arrow gif files
|
||||||
|
@code{up_arrow.gif}, @code{left_arrow.gif}, @code{right_arrow.gif}, and
|
||||||
|
@code{missing_arrow.gif}.
|
||||||
|
|
||||||
|
@code{$TEXIBASE/dir.html} is typically just a menu of links to the
|
||||||
|
subdirectories and can be as simple as
|
||||||
|
|
||||||
|
@example
|
||||||
|
<HTML><HEAD><TITLE>dir</TITLE></HEAD>
|
||||||
|
<BODY>
|
||||||
|
<MENU>
|
||||||
|
<LI><A HREF="emacs/Top.html">emacs</A>
|
||||||
|
<LI><A HREF="texinfo/Top.html">texinfo</A>
|
||||||
|
</MENU>
|
||||||
|
</BODY></HTML>
|
||||||
|
@end example
|
||||||
|
|
||||||
|
(@code{$TEXIBASE/dir.html} is not generated via texi2www and must be
|
||||||
|
created by hand).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Extensions
|
||||||
|
@chapter Extensions
|
||||||
|
@ifhtml
|
||||||
|
Texi2www understands the following extensions to pure texinfo:
|
||||||
|
@end ifhtml
|
||||||
|
@menu
|
||||||
|
* ifhtml blocks:: @code{@@ifhtml} and @code{@@end ifhtml}
|
||||||
|
* html blocks:: @code{@@html} and @code{@@end html}
|
||||||
|
* href:: @code{@@href@{text,node,file,URL@}}
|
||||||
|
* gif:: @code{@@gif@{gif-file@}}
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@comment ******************************************************* NODE
|
||||||
|
@comment Top -> Extensions ->
|
||||||
|
@node ifhtml blocks
|
||||||
|
@section @code{@@ifhtml} and @code{@@end ifhtml}
|
||||||
|
@cindex Conditional HTML blocks
|
||||||
|
|
||||||
|
@var{@@ifhtml} blocks are similar to @var{@@ifinfo} and @var{@@iftex}
|
||||||
|
blocks. Lines between @var{@@ifhtml} and @var{@@end ifhtml} get
|
||||||
|
processed when generating the hypertext manual but get ignored when
|
||||||
|
generating the printed manual.
|
||||||
|
|
||||||
|
@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
|
||||||
|
needs to be modified in order to use @@ifhtml. I inserted
|
||||||
|
@example
|
||||||
|
\def\ifhtml@{\doignore@{ifhtml@}@}
|
||||||
|
@end example
|
||||||
|
after the @code{\def\ifinfo@{\doignore@{ifinfo@}@}} line (line
|
||||||
|
596 ???).
|
||||||
|
|
||||||
|
In most cases, it is better to use @var{@@ifinfo} than @var{@@ifhtml}.
|
||||||
|
|
||||||
|
@comment ******************************************************* NODE
|
||||||
|
@node html blocks
|
||||||
|
@section @code{@@html} and @code{@@end html}
|
||||||
|
@cindex Pure HTML blocks
|
||||||
|
|
||||||
|
@var{@@html} blocks are similar to @var{@@tex} blocks; @var{@@html}
|
||||||
|
blocks only get processed when generating HTML and lines within
|
||||||
|
@var{@@html} blocks may contain HTML commands.
|
||||||
|
|
||||||
|
@ifhtml
|
||||||
|
For example,
|
||||||
|
|
||||||
|
@example
|
||||||
|
@@html
|
||||||
|
produces <EM><EM></EM> in HTML is like @@var@{@@@@var@} in texinfo.
|
||||||
|
@@end html
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@html
|
||||||
|
produces <EM><EM></EM> in HTML is like @var{@@var} in texinfo.
|
||||||
|
@end html
|
||||||
|
@end ifhtml
|
||||||
|
|
||||||
|
@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
|
||||||
|
needs to be modified in order to use @@ifhtml. I inserted
|
||||||
|
@example
|
||||||
|
\def\html@{\doignore@{html@}@}
|
||||||
|
@end example
|
||||||
|
after the @code{\def\ifinfo@{\doignore@{ifinfo@}@}} line (line
|
||||||
|
596 ???).
|
||||||
|
|
||||||
|
@comment ******************************************************* NODE
|
||||||
|
@node href
|
||||||
|
@section @code{@@href@{text,node,file,URL@}}
|
||||||
|
|
||||||
|
Use @code{@@href@{text,node,file,URL@}} when you want a hypertext link in an
|
||||||
|
HTML document and plain text everywhere else.
|
||||||
|
|
||||||
|
@var{Text} is the text you want displayed in the document.
|
||||||
|
@var{Node},@var{file}, and @var{URL} indicate what @var{text} is linked to.
|
||||||
|
@var{Node} and @var{file} are a normal texinfo style node reference;
|
||||||
|
@var{URL} is a HTML URL.
|
||||||
|
One of @var{node} or @var{URL} must be specified (if both are specified,
|
||||||
|
@var{URL} is used).
|
||||||
|
|
||||||
|
The @href{texinfo source used to create this
|
||||||
|
document,,,texi2wwwdoc.texi.txt} contains numerous examples of how
|
||||||
|
@@href might be used.
|
||||||
|
|
||||||
|
@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
|
||||||
|
needs to be modified in order to use @@href@{@}. All I did was insert
|
||||||
|
@example
|
||||||
|
\def\href#1{\hrefX[#1,,,]}
|
||||||
|
\def\hrefX[#1,#2,#3,#4]{#1}
|
||||||
|
@end example
|
||||||
|
before the @code{\def\pxref} line (line 3497 ???).
|
||||||
|
|
||||||
|
@comment ******************************************************* NODE
|
||||||
|
@node gif
|
||||||
|
@section @code{@@gif@{@var{pict.gif}@}}
|
||||||
|
|
||||||
|
This extension provides a method for inserting a gif file in both the
|
||||||
|
html and printed document. For example, here are my arrow icons:
|
||||||
|
@*
|
||||||
|
prev: @gif{prev-arrow.gif},
|
||||||
|
up: @gif{up-arrow.gif},
|
||||||
|
and next: @gif{next-arrow.gif}
|
||||||
|
|
||||||
|
@subsection @code{@@gif@{@}} and @var{texi2www}
|
||||||
|
|
||||||
|
@var{texi2www} copies @var{pict.gif} to the destination directory.
|
||||||
|
|
||||||
|
@subsection @code{@@gif@{@}} and @var{texi2dvi}
|
||||||
|
|
||||||
|
@href{@var{texi2dvi},texi2dvi} converts @var{pict.gif} to a font and
|
||||||
|
uses this font to insert the picture in the document. This conversion
|
||||||
|
to a font requires that the pbmplus and bm2font utilities be installed on
|
||||||
|
your system:
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item pbmplus
|
||||||
|
A suite of utilities for manipulating images. @var{texi2dvi} uses
|
||||||
|
@var{giftopnm}, @var{pnmscale}, @var{pnmnlfilt}, @var{ppmquant},
|
||||||
|
and @var{ppmtogif}. These utilities can be obtained from
|
||||||
|
@href{@code{
|
||||||
|
<ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.tar.gz>},,,
|
||||||
|
ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.tar.gz}.
|
||||||
|
|
||||||
|
|
||||||
|
@item bm2font
|
||||||
|
@var{bm2font} converts a bitmap images (including ``@code{.gif}''
|
||||||
|
images) to a font that can be used in a @TeX{} document.
|
||||||
|
@var{bm2font} can be obtained from
|
||||||
|
@href{@code{<ftp://ftp.shsu.edu/tex-archive/graphics/bm2font.tar.gz>},,,
|
||||||
|
ftp://ftp.shsu.edu/tex-archive/graphics/bm2font.tar.gz}.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Known Bugs
|
||||||
|
@chapter Known Bugs
|
||||||
|
|
||||||
|
@enumerate
|
||||||
|
|
||||||
|
@item The @href{@code{@@center},titlefont center sp,texinfo} command
|
||||||
|
doesn't work since HTML doesn't support centering yet.
|
||||||
|
|
||||||
|
@item The @href{@code{@@noindent},noindent,texinfo} and
|
||||||
|
@href{@code{@@exdent},exdent,texinfo} commands don't work since
|
||||||
|
HTML doesn't include any facility to control indentation.
|
||||||
|
|
||||||
|
@item Mark specifications in the @href{@code{@@itemize},itemize,texinfo}
|
||||||
|
command are ignored since HTML doesn't include any facility to
|
||||||
|
specify the tag in itemized lists.
|
||||||
|
|
||||||
|
@item The @href{emacs texinfo files need to be tweaked,
|
||||||
|
problems with emacs} to work with @var{texi2www}.
|
||||||
|
|
||||||
|
@item One @href{@code{@@gif},gif} command is allowed per line.
|
||||||
|
|
||||||
|
@end enumerate
|
||||||
|
|
||||||
|
@unnumberedsec Fixed Bugs
|
||||||
|
|
||||||
|
@enumerate
|
||||||
|
|
||||||
|
@item Previous versions didn't handle nested tables correctly. The
|
||||||
|
@@item following an inner @@table would be drawn in the wrong
|
||||||
|
font. @var{(tsingle, Jan 2 1996)}
|
||||||
|
|
||||||
|
@item Previous versions didn't capitalize
|
||||||
|
@href{@code{@@sc@{@}},Smallcaps,texinfo} text. (There's still
|
||||||
|
the problem of HTML not supporting true smallcaps, however).
|
||||||
|
@var{(tsingle, Sep 6 1995)}
|
||||||
|
|
||||||
|
@item Previous versions of @var{texi2www} didn't correctly index
|
||||||
|
@href{@code{@@ftable} and @code{@@vtable},ftable vtable,texinfo}
|
||||||
|
items; this bug has been fixed! @var{(tsingle, Aug 17 1995)}
|
||||||
|
|
||||||
|
@end enumerate
|
||||||
|
|
||||||
|
@node problems with emacs
|
||||||
|
@section emacs.texi @result{} HTML problems
|
||||||
|
|
||||||
|
The file @var{man/commands.texi} distributed with GNU Emacs version
|
||||||
|
version 19.25 contains, near the top of the file:
|
||||||
|
|
||||||
|
@example
|
||||||
|
@@c See file emacs.texi for copying conditions.
|
||||||
|
@@iftex
|
||||||
|
@@chapter Characters, Keys and Commands
|
||||||
|
|
||||||
|
This chapter explains the character set used by Emacs for input commands
|
||||||
|
and for the contents of files, and also explains the concepts of
|
||||||
|
@@dfn@{keys@} and @@dfn@{commands@} which are necessary for understanding how
|
||||||
|
your keyboard input is understood by Emacs.
|
||||||
|
@@end iftex
|
||||||
|
@@node User Input, Keys, Screen, Top
|
||||||
|
@@section Keyboard Input
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Texi2www doesn't see the @@chapter since it's inside an @@iftex block;
|
||||||
|
this confuses texi2www's chapter numbering. My fix was to change this
|
||||||
|
section to:
|
||||||
|
|
||||||
|
@example
|
||||||
|
@@c See file emacs.texi for copying conditions.
|
||||||
|
@@node User Input, Keys, Screen, Top
|
||||||
|
@@chapter Characters, Keys and Commands
|
||||||
|
@@iftex
|
||||||
|
|
||||||
|
This chapter explains the character set used by Emacs for input commands
|
||||||
|
and for the contents of files, and also explains the concepts of
|
||||||
|
@@dfn@{keys@} and @@dfn@{commands@} which are necessary for understanding how
|
||||||
|
your keyboard input is understood by Emacs.
|
||||||
|
@@end iftex
|
||||||
|
@@section Keyboard Input
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@var{killing.texi}, @var{misc.texi}, and @var{trouble.texi} have similar
|
||||||
|
problems.
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Demo
|
||||||
|
@appendix Sample output
|
||||||
|
|
||||||
|
This document itself is a pretty good example of what texi2www supports
|
||||||
|
and produces. Following are some examples to really make things clear;
|
||||||
|
to fully appreciate these examples compare the source and printed output
|
||||||
|
to your html viewer.
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Fonts:: @@var@{@}, etc.
|
||||||
|
* Glyphs:: @@result@{@}, etc.
|
||||||
|
* Blocks:: @@example ... @@end example, etc.
|
||||||
|
* Tables and Lists:: @@table .. @@end table, etc.
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@comment **************************************************** SECTION
|
||||||
|
@node Fonts
|
||||||
|
@unnumberedsec Text markup
|
||||||
|
|
||||||
|
Texi2www supports:
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
|
||||||
|
@item @@b@{@var{bold text}@} @result{} @b{bold text}
|
||||||
|
Here is @b{some text} in the @@b font.
|
||||||
|
|
||||||
|
@item @@cite@{@var{reference}@} @result{} @cite{reference}
|
||||||
|
Indicate the name of a book.
|
||||||
|
Here is @cite{some text} in the @@cite font.
|
||||||
|
|
||||||
|
@item @@code@{@var{sample-code}@} @result{} @code{sample-code}
|
||||||
|
Indicate text that is a literal example of a piece of a program.
|
||||||
|
Here is @code{some text} in the @@code font.
|
||||||
|
|
||||||
|
@item @@dfn@{@var{term}@} @result{} @dfn{term}
|
||||||
|
Indicate the introductory or defining use of a term.
|
||||||
|
Here is @dfn{some text} in the @@dfn font.
|
||||||
|
|
||||||
|
@item @@dmn@{@var{text}@} @result{} @dmn{text}
|
||||||
|
Here is @dmn{some text} in the @@dmn font.
|
||||||
|
|
||||||
|
@item @@emph@{@var{text}@} @result{} @emph{text}
|
||||||
|
Here is @emph{some text} in the @@emph font.
|
||||||
|
|
||||||
|
@item @@file@{@var{file-name}@} @result{} @file{file-name}
|
||||||
|
Indicate the name of a file.
|
||||||
|
Here is @file{some text} in the @@file font.
|
||||||
|
|
||||||
|
@item @@i@{@var{italic text}@} @result{} @i{italic text}
|
||||||
|
Here is @i{some text} in the @@i font.
|
||||||
|
|
||||||
|
@item @@kbd@{@var{keyboard-characters}@} @result{} @kbd{keyboard-characters}
|
||||||
|
Indicate keyboard input.
|
||||||
|
Here is @kbd{some text} in the @@kbd font.
|
||||||
|
|
||||||
|
@item @@key@{@var{key-name}@} @result{} @key{key-name}
|
||||||
|
Indicate the conventional name for a key on a keyboard.
|
||||||
|
Here is @key{some text} in the @@key font.
|
||||||
|
|
||||||
|
@item @@math@{@var{ax^2+b}@} @result{} @math{ax^2+b}
|
||||||
|
Here is @r{some text} in the @@math font.
|
||||||
|
|
||||||
|
@item @@r@{@var{roman font text}@} @result{} @r{roman font text}
|
||||||
|
Here is @r{some text} in the @@r font.
|
||||||
|
|
||||||
|
@item @@samp@{@var{text}@} @result{} @samp{text}
|
||||||
|
Indicate text that is a literal example of a sequence of characters.
|
||||||
|
Here is @samp{some text} in the @@samp font.
|
||||||
|
|
||||||
|
@item @@sc@{@var{text}@} @result{} @sc{text}
|
||||||
|
Here is @sc{some text} in the @@sc font.
|
||||||
|
|
||||||
|
@item @@strong@{@var{text}@} @result{} @strong{text}
|
||||||
|
Here is @strong{some text} in the @@strong font.
|
||||||
|
|
||||||
|
@item @@t@{@var{fixed-width text}@} @result{} @t{fixed-width text}
|
||||||
|
Here is @t{some text} in the @@t font.
|
||||||
|
|
||||||
|
@item @@titlefont@{@var{text}@} @result{} @titlefont{text}
|
||||||
|
Here is @titlefont{some text} in the @@titlefont font.
|
||||||
|
|
||||||
|
@item @@var@{@var{metasyntactic-variable}@} @result{} @var{metasyntactic-variable}
|
||||||
|
Indicate a metasyntactic variable.
|
||||||
|
Here is @var{some text} in the @@var font.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@comment **************************************************** SECTION
|
||||||
|
@node Glyphs
|
||||||
|
@unnumberedsec Glyphs
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
|
||||||
|
@item @@TeX@{@} @result{} @TeX{}
|
||||||
|
@item @@bullet@{@} @result{} @bullet{}
|
||||||
|
@item @@copyright@{@} @result{} @copyright{}
|
||||||
|
@item @@dots@{@} @result{} @dots{}
|
||||||
|
@item @@equiv@{@} @result{} @equiv{}
|
||||||
|
@item @@error@{@} @result{} @error{}
|
||||||
|
@item @@expansion@{@} @result{} @expansion{}
|
||||||
|
@item @@minus@{@} @result{} @minus{}
|
||||||
|
@item @@point@{@} @result{} @point{}
|
||||||
|
@item @@print@{@} @result{} @print{}
|
||||||
|
@item @@result@{@} @result{} @result{}
|
||||||
|
@item @@today@{@} @result{} @today{}
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@comment **************************************************** SECTION
|
||||||
|
@node Blocks
|
||||||
|
@unnumberedsec Blocks
|
||||||
|
|
||||||
|
@example
|
||||||
|
@cartouche
|
||||||
|
@@example
|
||||||
|
@@cartouche
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end cartouche
|
||||||
|
@@end example
|
||||||
|
@end cartouche
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@display
|
||||||
|
@@display
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end display
|
||||||
|
@end display
|
||||||
|
|
||||||
|
@example
|
||||||
|
@@example
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end example
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@format
|
||||||
|
@@format
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end format
|
||||||
|
@end format
|
||||||
|
|
||||||
|
@lisp
|
||||||
|
@@lisp
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end lisp
|
||||||
|
@end lisp
|
||||||
|
|
||||||
|
@quotation
|
||||||
|
@@quotation
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end quotation
|
||||||
|
@end quotation
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
@@smallexample
|
||||||
|
Here's two lines
|
||||||
|
of text
|
||||||
|
@@end smallexample
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
@comment **************************************************** SECTION
|
||||||
|
@node Tables and Lists
|
||||||
|
@unnumberedsec Tables and Lists
|
||||||
|
|
||||||
|
@example
|
||||||
|
@@table @@code
|
||||||
|
@@item code-one
|
||||||
|
@@table @@var
|
||||||
|
@@item var-one
|
||||||
|
@@table @@samp
|
||||||
|
@@item samp-one
|
||||||
|
Hmmm.
|
||||||
|
@@item samp-two
|
||||||
|
Mmmmh.
|
||||||
|
@@end table
|
||||||
|
@@item var-two
|
||||||
|
Huh?
|
||||||
|
@@end table
|
||||||
|
@@item code-two
|
||||||
|
Duh?
|
||||||
|
@@end table
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item code-one
|
||||||
|
@table @var
|
||||||
|
@item var-one
|
||||||
|
@table @samp
|
||||||
|
@item samp-one
|
||||||
|
Hmmm.
|
||||||
|
@item samp-two
|
||||||
|
Mmmmh.
|
||||||
|
@end table
|
||||||
|
@item var-two
|
||||||
|
Huh?
|
||||||
|
@end table
|
||||||
|
@item code-two
|
||||||
|
Duh?
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node texi2dvi
|
||||||
|
@appendix texi2dvi & texinfo.tex
|
||||||
|
|
||||||
|
Versions of ``@code{texi2dvi}'' and ``@code{texinfo.tex}'' are included
|
||||||
|
with this package. These are compatible with the
|
||||||
|
@href{texi2www extensions,Extensions}.
|
||||||
|
|
||||||
|
@appendixsec texi2dvi
|
||||||
|
|
||||||
|
@appendixsec texinfo.tex
|
||||||
|
|
||||||
|
``@code{texinfo.tex}'' is a @TeX{} macro used during the @var{texinfo}
|
||||||
|
@result{} @var{dvi} conversion.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@comment **************************************************** CHAPTER
|
||||||
|
@node Index
|
||||||
|
@unnumbered Index
|
||||||
|
@printindex cp
|
||||||
|
|
||||||
|
@contents
|
||||||
|
@bye
|
||||||
Reference in New Issue
Block a user