| version 1.1, 2001/10/02 11:16:58 |
version 1.2, 2002/09/11 07:26:41 |
|
|
| # GPDOCDIR: where is manual (by default, where make install will put it). |
# GPDOCDIR: where is manual (by default, where make install will put it). |
| # GPXDVI: which 'xdvi' program to call (xdvi by default) |
# GPXDVI: which 'xdvi' program to call (xdvi by default) |
| # |
# |
| $version= "2.2.1"; |
$version= "2.2.4"; |
| $miscdir= "/usr/local/lib/pari"; |
$miscdir= "/usr/local/lib/pari"; |
| # no expanded material (@key@) below |
# no expanded material (@key@) below |
| $wwwsite= "http://www.parigp-home.de/"; |
$wwwsite= "http://www.parigp-home.de/"; |
| $docdir = $ENV{GPDOCDIR} || $ENV{GPHELP_DOCDIR} || "$miscdir/doc"; |
$docdir = $ENV{GPDOCDIR} || $ENV{GPHELP_DOCDIR}; |
| |
|
| |
if (!defined $docdir) { |
| |
# work from TOPDIR/Oarch or TOPDIR too: may be uninstalled yet; |
| |
for ("$miscdir/doc", './doc', '../doc') { |
| |
if (-r "$_/translations") { |
| |
$docdir = $_; |
| |
last; |
| |
} |
| |
} |
| |
$docdir ||= "$miscdir/doc"; # Last resort |
| |
} |
| |
|
| |
if ($docdir =~ /^\./) { |
| |
require Cwd; |
| |
$docdir = Cwd::cwd() . "/$docdir"; |
| |
} |
| |
|
| $xdvi = $ENV{GPXDVI} || "xdvi"; |
$xdvi = $ENV{GPXDVI} || "xdvi"; |
| $xdviref = $ENV{GPXDVIREF} || "$xdvi -paper 29.7x21cm"; |
$xdviref = $ENV{GPXDVIREF} || "$xdvi -paper 29.7x21cm"; |
| $gzip = "gzip"; |
$gzip = "gzip"; |
| Line 166 use POSIX 'setsid'; |
|
| Line 182 use POSIX 'setsid'; |
|
| sub open_dvi_then_quit |
sub open_dvi_then_quit |
| { |
{ |
| local($dvifile, $viewer)= @_; |
local($dvifile, $viewer)= @_; |
| $dvifile = "$docdir/$dvifile" if (! -f "$dvifile"); |
local($f) = "$dvifile"; |
| die "could not find $dvifile" if (! -f "$dvifile"); |
$f = "$dvifile.gz" if (! -f "$f"); |
| |
$f = "$docdir/$dvifile" if (! -f "$f"); |
| |
$f = "$docdir/$dvifile.gz" if (! -f "$f"); |
| |
die "could not find $f" if (! -f "$f"); |
| (!$ENV{DISPLAY} && !$ENV{GPXDVI}) && die "xdvi needs X-Windows"; |
(!$ENV{DISPLAY} && !$ENV{GPXDVI}) && die "xdvi needs X-Windows"; |
| print "displaying \'$docdir/$dvifile\'."; |
if ($f =~ /\//) { $dvifile = "$f"; } else { $dvifile = "$docdir/$f"; } |
| |
print "displaying \'$dvifile\'."; |
| setsid; # detach from terminal (^C will not kill xdvi) |
setsid; # detach from terminal (^C will not kill xdvi) |
| system("$viewer $dvifile 2>/dev/null >/dev/null&"); |
system("$viewer $f 2>/dev/null >/dev/null&"); |
| cleanexit(); |
cleanexit(); |
| } |
} |
| |
|
|
|
| |
|
| sub posttex |
sub posttex |
| { |
{ |
| print TEX "\\vfill\\eject\\bye"; close(TEX); |
print TEX "\\vfill\\eject\\bye"; |
| |
close(TEX) || die "Error closing '$texfile.tex': $!"; |
| |
|
| chdir($tmpdir); |
chdir($tmpdir); |
| system("tex $texfile.tex 2>/dev/null > /dev/null < /dev/null") == 0 |
$out = `tex $texfile.tex 2>&1 < /dev/null`; |
| || die "could not process $texfile.dvi" if (! -f "$texfile.dvi"); |
$? == 0 && -f "$texfile.dvi" |
| |
|| die "could not create '$texfile.dvi': status=$?, $out"; |
| setsid; # detach from terminal (^C will not kill xdvi) |
setsid; # detach from terminal (^C will not kill xdvi) |
| system("($xdvi $texfile.dvi 2>/dev/null >/dev/null; rm -f $texfile.tex $texfile.dvi $texfile.log)&"); |
system("($xdvi $texfile.dvi 2>/dev/null >/dev/null; rm -f $texfile.tex $texfile.dvi $texfile.log)&"); |
| } |
} |
|
|
| s/(\\string)?\\_/_/g; |
s/(\\string)?\\_/_/g; |
| s/\\([#\$&%|])/$1/g; |
s/\\([#\$&%|])/$1/g; |
| s/\\(hat(?![a-zA-Z])|\^)({\\?\s*})?/^/g; |
s/\\(hat(?![a-zA-Z])|\^)({\\?\s*})?/^/g; |
| |
s/^(\@\[podleader\]head\d *)\\pow(?![a-zA-z])( *)/$1^$2/gm; |
| s/ *\\pow(?![a-zA-z]) */^/g; |
s/ *\\pow(?![a-zA-z]) */^/g; |
| |
|
| s/\\neq?(?![a-zA-Z])/ != /g; |
s/\\neq?(?![a-zA-Z])/ != /g; |
|
|
| s/\\kbd\s*\{((?:[^{}]|\{[^{}]*\})*)\}/$tr{startcode}$1$tr{endcode}/g; |
s/\\kbd\s*\{((?:[^{}]|\{[^{}]*\})*)\}/$tr{startcode}$1$tr{endcode}/g; |
| |
|
| s/\\key\{((?:[^{}]|\{[^{}]*\})*)\}/$tr{startbold}$1$tr{endbold}/g unless $refcard; |
s/\\key\{((?:[^{}]|\{[^{}]*\})*)\}/$tr{startbold}$1$tr{endbold}/g unless $refcard; |
| |
s/\\goth\{((?:[^{}]|\{[^{}]*\})*)\}/$tr{startbold}$1$tr{endbold}/g; |
| |
|
| if ($refcard) { |
if ($refcard) { |
| s/\\(?:key|li)\{((?:[^{}]+(?=[{}])|\{[^{}]*\})*)\}\s*\{\}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/g; |
s/\\(?:key|li)\{((?:[^{}]+(?=[{}])|\{[^{}]*\})*)\}\s*\{\}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/g; |