forked from Imagelibrary/rtems
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