summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2006-07-24 10:49:00 +0200
committerHans Hagen <pragma@wxs.nl>2006-07-24 10:49:00 +0200
commit72646ab6a6f3cd139beecd0407480b03ab49ff10 (patch)
treeb7e979566c0aeda535d7a2f0c8e8cfa6bf51b2df
parent4bcfa86615a3095169831cf25639faa89b34468f (diff)
downloadcontext-72646ab6a6f3cd139beecd0407480b03ab49ff10.tar.gz
stable 2006.07.24 10:49
-rw-r--r--doc/scripts/context/perl/texshow.133
-rw-r--r--doc/scripts/context/perl/texshow.html56
-rw-r--r--metapost/context/base/mp-tool.mp5
-rw-r--r--scripts/context/perl/texshow.pl14
-rw-r--r--scripts/context/ruby/base/file.rb10
-rw-r--r--scripts/context/ruby/base/mp.rb4
-rw-r--r--scripts/context/ruby/base/tex.rb89
-rw-r--r--scripts/context/ruby/ctxtools.rb6
-rw-r--r--scripts/context/ruby/www/admin.rb2
-rw-r--r--scripts/context/ruby/wwwserver.rb15
-rw-r--r--scripts/context/ruby/wwwwatch.rb46
-rw-r--r--scripts/context/ruby/xmltools.rb2
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-buf.tex7
-rw-r--r--tex/context/base/core-fil.tex6
-rw-r--r--tex/context/base/core-job.tex2
-rw-r--r--tex/context/base/core-new.tex4
-rw-r--r--tex/context/base/core-ntb.tex1
-rw-r--r--tex/context/base/core-sys.tex3
-rw-r--r--tex/context/base/core-tab.tex7
-rw-r--r--tex/context/base/core-uti.tex2
-rw-r--r--tex/context/base/enco-pfr.tex27
-rw-r--r--tex/context/base/font-ini.tex8
-rw-r--r--tex/context/base/m-steps.tex171
-rw-r--r--tex/context/base/math-ext.tex70
-rw-r--r--tex/context/base/meta-ini.tex4
-rw-r--r--tex/context/base/meta-tex.tex2
-rw-r--r--tex/context/base/supp-mps.tex50
-rw-r--r--tex/context/base/symb-cow.tex11
-rw-r--r--tex/context/base/x-set-11.tex35
-rw-r--r--tex/context/bib/t-bib.tex53
-rw-r--r--tex/context/interface/cont-cz.xml12
-rw-r--r--tex/context/interface/cont-de.xml12
-rw-r--r--tex/context/interface/cont-en.xml12
-rw-r--r--tex/context/interface/cont-fr.xml12
-rw-r--r--tex/context/interface/cont-it.xml12
-rw-r--r--tex/context/interface/cont-nl.xml12
-rw-r--r--tex/context/interface/cont-ro.xml12
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-fr.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
-rw-r--r--tpm/t-bib.tpm8
-rw-r--r--tpm/u-texshow.tpm10
-rw-r--r--web2c/context.cnf58
49 files changed, 593 insertions, 330 deletions
diff --git a/doc/scripts/context/perl/texshow.1 b/doc/scripts/context/perl/texshow.1
index 1fda1f952..618928b8f 100644
--- a/doc/scripts/context/perl/texshow.1
+++ b/doc/scripts/context/perl/texshow.1
@@ -1,4 +1,4 @@
-.TH "texshow" "1" "Oct 2000" "ConTeXt" "CONTEXT"
+.TH "texshow" "1" "Jul 2006" "ConTeXt" "CONTEXT"
.PP
.SH "NAME"
texshow \- ConTeXt command and parameter reference
@@ -20,11 +20,18 @@ although they can be used in \fBConTeXt\fP source files\&.
.PP
\fILANGUAGE\fP can be one of \fBcz\fP (Czech), \fBde\fP
(German), \fBen\fP (US-English) or \fBnl\fP (Dutch)\&. The default
-language is Dutch\&.
+language is English\&.
.PP
You can also set the interface language with the
\fB--interface\fP switch\&.
.PP
+.SH "BINDINGS"
+.PP
+Most keyboard events are bound to the search widget, with the
+exception of \fB<Page Up>\fP (aka \fB<Prior>\fP) and \fB<Page Down>\fP
+(aka \fB<Next>\fP). \fB<Control-q>\fP, \fB<Control-x>\fP, and
+\fB<Alt-F4>\fP quit the application\&.
+.PP
.SH "OPTIONS"
.PP
.IP "\fB--help\fP"
@@ -35,35 +42,29 @@ See DESCRIPTION for \fILANGUAGE\fP options\&.
.PP
.SH "FILES"
.PP
-.IP "\fITEXMF/context/perltk/cont_mis\&.pm\fP"
-Perl module for
-formatting data
-.IP "\fITEXMF/context/perltk/cont_set\&.pm\fP"
-Perl module for
-defining and constructing Tk interface
-.IP "\fITEXMF/context/data/cont-\fIXX\fP\&.tws\fP"
+.IP "\fITEXMF/tex/context/interface/cont-\fIXX\fP\&.xml\fP"
The database
file\&. At this writing, \fIXX\fP can be one of \fBcz\fP (Czech),
-\fBde\fP (German), \fBen\fP (English), \fBit\fP (Italian), or
-\fBnl\fP (Dutch)\&. Which file is used is determined by the
+\fBde\fP (German), \fBen\fP (English), \fBfr\fP (French),
+\fBit\fP (Italian), \fBnl\fP (Dutch), or \fBro\fP (Romanian)\&.
+Which file is used is determined by the
\fILANGUAGE\fP specified on the command line\&.
.PP
.SH "SEE ALSO"
.PP
-\fBtexexec\fP(1), \fBtexutil\fP(1), \fBpdfetex\fP(1),
-\fBpdftex\fP(1)\&.
+\fBtexexec\fP(1), \fBpdfetex\fP(1), \fBpdftex\fP(1)\&.
.PP
Web page: <http://www\&.pragma-ade\&.com/>
.PP
.SH "AUTHOR"
.PP
-\fBtexshow\fP was written by Hans Hagen
-<pragma@wxs\&.nl>\&.
+This version of \fBtexshow\fP was written by Taco Hoekwater
+<taco@elvenkind\&.com>\&.
.PP
This manpage was written by Tobias Burnus
<burnus@gmx\&.de> and C\&.M\&. Connelly
<c@eskimo\&.com>\&.
.PP
-\fBtexshow\fP is part of \fBTeXWork\fP and \fBConTeXt\fP and is available
+\fBtexshow\fP is part of \fBConTeXt\fP and is available
from <http://www\&.pragma-ade\&.com/pragma-ade/>\&.
.PP
diff --git a/doc/scripts/context/perl/texshow.html b/doc/scripts/context/perl/texshow.html
index c3c549326..a9af24284 100644
--- a/doc/scripts/context/perl/texshow.html
+++ b/doc/scripts/context/perl/texshow.html
@@ -1,9 +1,7 @@
-Content-type: text/html
-
<HTML><HEAD><TITLE>Manpage of texshow</TITLE>
</HEAD><BODY>
<H1>texshow</H1>
-Section: CONTEXT (1)<BR>Updated: Oct 2000<BR><A HREF="#index">Index</A>
+Section: CONTEXT (1)<BR>Updated: Jul 2006<BR><A HREF="#index">Index</A>
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<P>
@@ -39,7 +37,7 @@ although they can be used in <B>ConTeXt</B> source files.
<I>LANGUAGE</I> can be one of <B>cz</B> (Czech), <B>de</B>
(German), <B>en</B> (US-English) or <B>nl</B> (Dutch). The default
-language is Dutch.
+language is English.
<P>
You can also set the interface language with the
@@ -47,6 +45,17 @@ You can also set the interface language with the
<P>
<A NAME="lbAE">&nbsp;</A>
+<H2>BINDINGS </H2>
+
+<P>
+
+Most keyboard events are bound to the search widget, with the
+exception of <B>&lt;Page Up&gt;</B> (aka <B>&lt;Prior&gt;</B>) and <B>&lt;Page Down&gt;</B>
+(aka <B>&lt;Next&gt;</B>). <B>&lt;Control-q&gt;</B>, <B>&lt;Control-x&gt;</B>, and
+<B>&lt;Alt-F4&gt;</B> quit the application.
+<P>
+
+<A NAME="lbAF">&nbsp;</A>
<H2>OPTIONS </H2>
<P>
@@ -60,46 +69,40 @@ See DESCRIPTION for <I>LANGUAGE</I> options.
</DL>
<P>
-<A NAME="lbAF">&nbsp;</A>
+<A NAME="lbAG">&nbsp;</A>
<H2>FILES </H2>
<P>
<DL COMPACT>
-<DT><I>TEXMF/context/perltk/cont_mis.pm</I><DD>
-Perl module for
-formatting data
-<DT><I>TEXMF/context/perltk/cont_set.pm</I><DD>
-Perl module for
-defining and constructing Tk interface
-<DT><I>TEXMF/context/data/cont-XX</I>.tws<DD>
+<DT><I>TEXMF/tex/context/interface/cont-XX</I>.xml<DD>
The database
file. At this writing, <I>XX</I> can be one of <B>cz</B> (Czech),
-<B>de</B> (German), <B>en</B> (English), <B>it</B> (Italian), or
-<B>nl</B> (Dutch). Which file is used is determined by the
+<B>de</B> (German), <B>en</B> (English), <B>fr</B> (French),
+<B>it</B> (Italian), <B>nl</B> (Dutch), or <B>ro</B> (Romanian).
+Which file is used is determined by the
<I>LANGUAGE</I> specified on the command line.
</DL>
<P>
-<A NAME="lbAG">&nbsp;</A>
+<A NAME="lbAH">&nbsp;</A>
<H2>SEE ALSO </H2>
<P>
-<B><A HREF="http://localhost/cgi-bin/man/man2html?1+texexec">texexec</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+texutil">texutil</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdfetex">pdfetex</A></B>(1),
-<B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdftex">pdftex</A></B>(1).
+<B><A HREF="http://localhost/cgi-bin/man/man2html?1+texexec">texexec</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdfetex">pdfetex</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdftex">pdftex</A></B>(1).
<P>
Web page: &lt;<A HREF="http://www.pragma-ade.com/">http://www.pragma-ade.com/</A>&gt;
<P>
-<A NAME="lbAH">&nbsp;</A>
+<A NAME="lbAI">&nbsp;</A>
<H2>AUTHOR </H2>
<P>
-<B>texshow</B> was written by Hans Hagen
-&lt;<A HREF="mailto:pragma@wxs.nl">pragma@wxs.nl</A>&gt;.
+This version of <B>texshow</B> was written by Taco Hoekwater
+&lt;<A HREF="mailto:taco@elvenkind.com">taco@elvenkind.com</A>&gt;.
<P>
This manpage was written by Tobias Burnus
@@ -107,7 +110,7 @@ This manpage was written by Tobias Burnus
&lt;c@eskimo.com&gt;.
<P>
-<B>texshow</B> is part of <B>TeXWork</B> and <B>ConTeXt</B> and is available
+<B>texshow</B> is part of <B>ConTeXt</B> and is available
from &lt;<A HREF="http://www.pragma-ade.com/pragma-ade/">http://www.pragma-ade.com/pragma-ade/</A>&gt;.
<P>
@@ -119,15 +122,16 @@ from &lt;<A HREF="http://www.pragma-ade.com/pragma-ade/">http://www.pragma-ade.c
<DT><A HREF="#lbAB">NAME </A><DD>
<DT><A HREF="#lbAC">SYNOPSIS </A><DD>
<DT><A HREF="#lbAD">DESCRIPTION </A><DD>
-<DT><A HREF="#lbAE">OPTIONS </A><DD>
-<DT><A HREF="#lbAF">FILES </A><DD>
-<DT><A HREF="#lbAG">SEE ALSO </A><DD>
-<DT><A HREF="#lbAH">AUTHOR </A><DD>
+<DT><A HREF="#lbAE">BINDINGS </A><DD>
+<DT><A HREF="#lbAF">OPTIONS </A><DD>
+<DT><A HREF="#lbAG">FILES </A><DD>
+<DT><A HREF="#lbAH">SEE ALSO </A><DD>
+<DT><A HREF="#lbAI">AUTHOR </A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
-Time: 08:17:36 GMT, April 06, 2006
+Time: 09:31:15 GMT, July 19, 2006
</BODY>
</HTML>
diff --git a/metapost/context/base/mp-tool.mp b/metapost/context/base/mp-tool.mp
index 530793145..3b52b9d5d 100644
--- a/metapost/context/base/mp-tool.mp
+++ b/metapost/context/base/mp-tool.mp
@@ -1175,7 +1175,10 @@ boolean autoarrows ; autoarrows := false ;
numeric ahfactor ; ahfactor := 2.5 ;
def set_ahlength (text t) =
- ahlength := (ahfactor*pen_size(_op_ t)) ; % _op_ added
+% ahlength := (ahfactor*pen_size(_op_ t)) ; % _op_ added
+% problem: _op_ can contain color so a no-go, we could apply the transform
+% but i need to figure out the best way (fakepicture and take components).
+ ahlength := (ahfactor*pen_size(t)) ;
enddef ;
vardef pen_size (text t) =
diff --git a/scripts/context/perl/texshow.pl b/scripts/context/perl/texshow.pl
index 79222c9f0..772d4db84 100644
--- a/scripts/context/perl/texshow.pl
+++ b/scripts/context/perl/texshow.pl
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#D \module
#D [ file=texshow.pl,
-#D version=2005.01.06,
+#D version=2006.07.19,
#D title=TeXShow,
#D subtitle=showing \CONTEXT\ commands,
#D author=Taco Hoekwater,
@@ -23,6 +23,11 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#D one to be used.
#D
#D Hans Hagen - Januari 2005
+#D
+#D ChangeLog:
+#D \startitemize
+#D \item Add keyboard bindings for quitting the app: Ctrl-q,Ctrl-x,Alt-F4 (2006/07/19)
+#D \stopitemize
use strict;
use Getopt::Long ;
@@ -63,7 +68,7 @@ my %crosslinks;
print "\n";
-show('TeXShow-XML 0.2 beta','Taco Hoekwater 2004',"/");
+show('TeXShow-XML 0.21 beta','Taco Hoekwater 2006',"/");
print "\n";
@@ -220,6 +225,11 @@ sub initialize_display {
$mainwindow -> bind ( "<BackSpace>", sub { delete_request() } ) ;
$mainwindow -> bind ( "<Prior>", sub { prev_command() } ) ;
$mainwindow -> bind ( "<Next>", sub { next_command() } ) ;
+ $mainwindow -> bind ( "<Control-x>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-X>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-q>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-Q>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Alt-F4>", sub { exit(0) } ) ;
}
sub show {
diff --git a/scripts/context/ruby/base/file.rb b/scripts/context/ruby/base/file.rb
index 42fb346c4..39bb7d467 100644
--- a/scripts/context/ruby/base/file.rb
+++ b/scripts/context/ruby/base/file.rb
@@ -105,12 +105,13 @@ class File
end
def File.silentdelete(filename)
- begin File.delete(filename) ; rescue ; end
+ File.delete(filename) rescue false
end
def File.silentcopy(oldname,newname)
return if File.expand_path(oldname) == File.expand_path(newname)
- begin File.copy(oldname,newname) ; rescue ; end
+ File.makedirs(File.dirname(newname)) rescue false
+ File.copy(oldname,newname) rescue false
end
def File.silentrename(oldname,newname)
@@ -118,11 +119,12 @@ class File
# maybe working over multiple file systems or
# apps may have mildly locked files (like gs does)
return if File.expand_path(oldname) == File.expand_path(newname)
- begin File.delete(newname) ; rescue ; end
+ File.delete(newname) rescue false
begin
File.rename(oldname,newname)
rescue
- begin File.copy(oldname,newname) ; rescue ; end
+ File.makedirs(File.dirname(newname)) rescue false
+ File.copy(oldname,newname) rescue false
end
end
diff --git a/scripts/context/ruby/base/mp.rb b/scripts/context/ruby/base/mp.rb
index d26882456..b30be1110 100644
--- a/scripts/context/ruby/base/mp.rb
+++ b/scripts/context/ruby/base/mp.rb
@@ -12,6 +12,7 @@ module MPTools
@@definitions, @@start, @@stop, @@before, @@after = Hash.new, Hash.new, Hash.new, Hash.new, Hash.new
+
@@definitions['plain'] = <<EOT
\\gdef\\mpxshipout{\\shipout\\hbox\\bgroup
\\setbox0=\\hbox\\bgroup}
@@ -34,6 +35,8 @@ EOT
@@definitions['context'] = <<EOT
\\ifx\\startMPXpage\\undefined
+ \\ifx\\loadallfontmapfiles\\undefined \\let\\loadallfontmapfiles\\relax \\fi
+
\\gdef\\startMPXpage
{\\shipout\\hbox
\\bgroup
@@ -56,6 +59,7 @@ EOT
\\egroup
\\ht0=0pt
\\dp0=0pt
+ \\loadallfontmapfiles
\\box0
\\egroup}
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 29e0de44f..04dc4541a 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -319,11 +319,14 @@ class TEX
begin
Dir.glob("#{@@temprunfile}*").each do |name|
if File.file?(name) && (File.splitname(name)[1] !~ /(pdf|dvi)/o) then
- begin File.delete(name) ; rescue ; end
+ File.delete(name) rescue false
end
end
rescue
end
+ ['mpgraph.mp'].each do |file|
+ (File.delete(file) if (FileTest.size?(file) rescue 10) < 10) rescue false
+ end
end
def backends() @@backends.keys.sort end
@@ -389,18 +392,24 @@ class TEX
if str.class == String then str.split(',') else str.flatten end
end
- def validtexformat(str) validsomething(str,@@texformats) end
- def validmpsformat(str) validsomething(str,@@mpsformats) end
- def validtexengine(str) validsomething(str,@@texengines) end
- def validmpsengine(str) validsomething(str,@@mpsengines) end
+ def validtexformat(str) validsomething(str,@@texformats,'tex') end
+ def validmpsformat(str) validsomething(str,@@mpsformats,'mp' ) end
+ def validtexengine(str) validsomething(str,@@texengines,'pdfetex') end
+ def validmpsengine(str) validsomething(str,@@mpsengines,'mpost' ) end
def validtexmethod(str) [validsomething(str,@@texmethods)].flatten.first end
def validmpsmethod(str) [validsomething(str,@@mpsmethods)].flatten.first end
- def validsomething(str,something)
+ def validsomething(str,something,type=nil)
if str then
list = [str].flatten.collect do |s|
- something[s]
+ if something[s] then
+ something[s]
+ elsif type && s =~ /\.#{type}$/ then
+ s
+ else
+ nil
+ end
end .compact.uniq
if list.length>0 then
if str.class == String then list.first else list end
@@ -538,6 +547,9 @@ class TEX
# save current path
savedpath = Dir.getwd
# generate tex formats
+ unless texformats || mpsformats then
+ report('provide valid format (name.tex, name.mp, ...) or format id (metafun, en, nl, ...)')
+ end
if texformats && texengine && (progname = validprogname(getvariable('progname'),texengine)) then
report("using tex engine #{texengine}")
texformatpath = if getvariable('local') then '.' else Kpse.formatpath(texengine,true) end
@@ -1004,11 +1016,36 @@ class TEX
reportruntime
end
+ private
+
+ def load_map_files(filename) # tui basename
+ # c \usedmapfile{=}{lm-texnansi}
+ begin
+ str = ""
+ IO.read(filename).scan(/^c\s+\\usedmapfile\{(.*?)\}\{(.*?)\}\s*$/o) do
+ str << "\\loadmapfile[#{$2}.map]\n"
+ end
+ rescue
+ return ""
+ else
+ return str
+ end
+ end
+
+ public
+
def processmpgraphic
getarrayvariable('files').each do |filename|
setvariable('filename',filename)
report("processing graphic '#{filename}'")
- runtexmp(filename)
+ runtexmp(filename,'',false) # no purge
+ mapspecs = load_map_files(File.suffixed(filename,'temp','tui'))
+ unless getvariable('keep') then
+ # not enough: purge_mpx_files(filename)
+ Dir.glob(File.suffixed(filename,'temp*','*')).each do |fname|
+ File.delete(fname) unless File.basename(filename) == File.basename(fname)
+ end
+ end
begin
data = IO.read(File.suffixed(filename,'log'))
basename = filename.sub(/\.mp$/, '')
@@ -1038,6 +1075,7 @@ class TEX
File.open("texexec.tex",'w') do |f|
f << "\\setupoutput[pdftex]\n"
f << "\\setupcolors[state=start]\n"
+ f << mapspecs
f << "\\starttext\n"
list.each do |number|
f << "\\startTEXpage\n"
@@ -1058,9 +1096,12 @@ class TEX
File.open("texexec.tex",'w') do |f|
f << "\\setupoutput[pdftex]\n"
f << "\\setupcolors[state=start]\n"
- f << "\\starttext \\startTEXpage\n"
+ f << mapspecs
+ f << "\\starttext\n"
+ f << "\\startTEXpage\n"
f << "\\convertMPtoPDF{#{fullname}}{1}{1}"
- f << "\\stopTEXpage \\stoptext\n"
+ f << "\\stopTEXpage\n"
+ f << "\\stoptext\n"
end
report("converting graphic '#{fullname}'")
runtex("texexec.tex")
@@ -1089,7 +1130,7 @@ class TEX
getarrayvariable('files').each do |filename|
setvariable('filename',filename)
report("processing text of graphic '#{filename}'")
- processmpx(filename,false,true)
+ processmpx(filename,false,true,true)
end
reportruntime
end
@@ -1353,18 +1394,18 @@ class TEX
end
end
- def runtexmp(filename,filetype='')
+ def runtexmp(filename,filetype='',purge=true)
checktestversion
mpname = File.suffixed(filename,filetype,'mp')
if File.atleast?(mpname,25) then
# first run needed
File.silentdelete(File.suffixed(mpname,'mpt'))
- doruntexmp(mpname)
+ doruntexmp(mpname,nil,true,purge)
mpgraphics = checkmpgraphics(mpname)
mplabels = checkmplabels(mpname)
if mpgraphics || mplabels then
# second run needed
- doruntexmp(mpname,mplabels)
+ doruntexmp(mpname,mplabels,true,purge)
else
# no labels
end
@@ -1445,7 +1486,7 @@ class TEX
report("fixing backend map path for #{backend}") if getvariable('verbose')
ENV['backend'] = backend ;
ENV['progname'] = backend unless validtexengine(backend)
- ENV['TEXFONTMAPS'] = ['.',"\$TEXMF/fonts/map/{#{backend},pdftex,dvips,}//"].join_path
+ ENV['TEXFONTMAPS'] = ['.',"\$TEXMF/fonts/map/{#{backend},pdftex,dvips,}//",'./fonts//'].join_path
else
report("unable to fix backend map path") if getvariable('verbose')
end
@@ -1720,7 +1761,7 @@ class TEX
# into beginfig/endfig. We could as well do this in metafun itself. Maybe some
# day ... (it may cost a bit of string space but that is cheap nowadays).
- def doruntexmp(mpname,mergebe=nil,context=true)
+ def doruntexmp(mpname,mergebe=nil,context=true,purge=true)
texfound = false
mpname = File.suffixed(mpname,'mp')
mpcopy = File.suffixed(mpname,'mp.copy')
@@ -1752,7 +1793,7 @@ class TEX
mp << "\n"
mp.close
end
- processmpx(mpname,true) if texfound
+ processmpx(mpname,true,true,purge) if texfound
if getvariable('batchmode') then
options = ' --interaction=batch'
elsif getvariable('nonstopmode') then
@@ -1779,7 +1820,7 @@ class TEX
# todo: use internal mptotext function and/or turn all btex/etex into textexts
- def processmpx(mpname,force=false,context=true)
+ def processmpx(mpname,force=false,context=true,purge=true)
unless force then
mpname = File.suffixed(mpname,'mp')
if File.atleast?(mpname,10) && (data = File.silentread(mpname)) then
@@ -1828,9 +1869,7 @@ class TEX
command = "dvitomp #{mpdvi} #{mpmpx}"
report(command) if getvariable('verbose')
ok = ok && FileTest.file?(mpdvi) && system(command)
- [mptex,mpdvi,mplog].each do |mpfil|
- File.silentdelete(mpfil)
- end
+ purge_mpx_files(mpname) if purge
end
rescue
# error in processing mpx file
@@ -1838,6 +1877,14 @@ class TEX
end
end
+ def purge_mpx_files(mpname)
+ unless getvariable('keep') then
+ ['tex', 'log', 'tui', 'tuo', 'top'].each do |suffix|
+ File.silentdelete(File.suffixed(mpname,'temp',suffix))
+ end
+ end
+ end
+
def checkmpgraphics(mpname)
mpoptions = ''
if getvariable('makempy') then
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
index 420145db0..d04688890 100644
--- a/scripts/context/ruby/ctxtools.rb
+++ b/scripts/context/ruby/ctxtools.rb
@@ -476,6 +476,9 @@ class Commands
end
end
end
+ $dummyfiles.each do |file|
+ (File.delete(file) if (FileTest.size?(file) rescue 10) < 10) rescue false
+ end
$texnonesuffixes.each do |suffix|
files.each do |file|
if file =~ /(.*)\.#{suffix}$/i then
@@ -540,6 +543,9 @@ class Commands
$texnonesuffixes = [
"tuo", "tub", "top"
]
+ $dummyfiles = [
+ "mpgraph"
+ ]
def removecontextfile (filename)
if filename && FileTest.file?(filename) then
diff --git a/scripts/context/ruby/www/admin.rb b/scripts/context/ruby/www/admin.rb
index 4e85fd830..8983ca2b7 100644
--- a/scripts/context/ruby/www/admin.rb
+++ b/scripts/context/ruby/www/admin.rb
@@ -30,7 +30,7 @@ class WWW
message('Status', "option '#{option}' not permitted #{options.inspect}")
end
else
- message('Status', "unknown task '#{task}")
+ message('Status', "unknown task '#{task}'")
end
end
diff --git a/scripts/context/ruby/wwwserver.rb b/scripts/context/ruby/wwwserver.rb
index aa6352183..18ea57df1 100644
--- a/scripts/context/ruby/wwwserver.rb
+++ b/scripts/context/ruby/wwwserver.rb
@@ -110,13 +110,14 @@ class Server
#
begin
@httpd = WEBrick::HTTPServer.new(
- :DocumentRoot => @document_root,
- :DirectoryIndex => ['index.html','index.htm','showcase.pdf'],
- :Port => @port_number.to_i,
- :Logger => WEBrick::Log.new(@logfile, WEBrick::Log::INFO), # DEBUG
- :RequestTimeout => @request_timeout,
- :MaxClients => @n_of_clients,
- :AccessLog => [
+ :DocumentRoot => @document_root,
+ :DocumentRootOptions => { :FancyIndexing => false },
+ :DirectoryIndex => ['index.html','index.htm','showcase.pdf'],
+ :Port => @port_number.to_i,
+ :Logger => WEBrick::Log.new(@logfile, WEBrick::Log::INFO), # DEBUG
+ :RequestTimeout => @request_timeout,
+ :MaxClients => @n_of_clients,
+ :AccessLog => [
[ @accfile, WEBrick::AccessLog::COMMON_LOG_FORMAT ],
[ @accfile, WEBrick::AccessLog::REFERER_LOG_FORMAT ],
[ @accfile, WEBrick::AccessLog::AGENT_LOG_FORMAT ],
diff --git a/scripts/context/ruby/wwwwatch.rb b/scripts/context/ruby/wwwwatch.rb
index e6cb7a050..0afb9a392 100644
--- a/scripts/context/ruby/wwwwatch.rb
+++ b/scripts/context/ruby/wwwwatch.rb
@@ -29,7 +29,7 @@ class Watch < Monitor
@@session_begin = 'begin exa session'
@@session_end = 'end exa session'
- attr_accessor :root_path, :work_path, :cache_path, :delay, :max_threads, :max_age, :verbose
+ attr_accessor :root_path, :work_path, :create, :cache_path, :delay, :max_threads, :max_age, :verbose
def initialize(logger) # we need to register all @vars here becase of the monitor
@threads = Hash.new
@@ -46,15 +46,15 @@ class Watch < Monitor
@logger = logger
@verbose = false
@create = false
- [:INT, :TERM, :EXIT].each do |signal|
- trap(signal) do
- kill
- exit
- end
- end
- at_exit do
- kill
- end
+ # [:INT, :TERM, :EXIT].each do |signal|
+ # trap(signal) do
+ # kill
+ # exit # rescue false
+ # end
+ # end
+ # at_exit do
+ # kill
+ # end
end
def trace
@@ -96,7 +96,8 @@ class Watch < Monitor
end
end
unless File.writable?(@work_path) then
- puts "no valid work path: #{@work_path}" ; exit
+ puts "no valid work path: #{@work_path}"
+ exit! rescue false # no checking, no at_exit done
end
unless File.writable?(@cache_path) then
puts "no valid work path: #{@work_path}" ; # no reason to exit
@@ -443,18 +444,19 @@ class Commands
private
def setup
- watch = Watch.new(logger)
- watch.root_path = @commandline.option('root')
- watch.work_path = @commandline.option('work')
- watch.cache_path = @commandline.option('cache')
- watch.create = @commandline.option('create')
- watch.verbose = @commandline.option('verbose')
- begin
- watch.max_threads = @commandline.option('threads').to_i
- rescue
- watch.max_threads = 5
+ if watch = Watch.new(logger) then
+ watch.root_path = @commandline.option('root')
+ watch.work_path = @commandline.option('work')
+ watch.cache_path = @commandline.option('cache')
+ watch.create = @commandline.option('create')
+ watch.verbose = @commandline.option('verbose')
+ begin
+ watch.max_threads = @commandline.option('threads').to_i
+ rescue
+ watch.max_threads = 5
+ end
+ watch.setup
end
- watch.setup
return watch
end
diff --git a/scripts/context/ruby/xmltools.rb b/scripts/context/ruby/xmltools.rb
index 8974fff23..a10d34314 100644
--- a/scripts/context/ruby/xmltools.rb
+++ b/scripts/context/ruby/xmltools.rb
@@ -173,7 +173,7 @@ class Commands
if FileTest.file?(file+'.xml') then
style = "--arg=\"style=#{style}\"" unless style.empty?
modes = "--mode=#{modes}" unless modes.empty?
- if system("texmfstart texexec.pl --batch --pdf --once --result=#{long} --use=mmlpag #{style} #{modes} #{file}.xml") then
+ if system("texmfstart texexec --batch --pdf --once --result=#{long} --use=mmlpag #{style} #{modes} #{file}.xml") then
if eps then
if f = open("#{file}-mmlpages.txt") then
while line = f.gets do
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 95251fcc8..60c841c50 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2006.07.14 12:08}
+\newcontextversion{2006.07.24 10:49}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index c7730f4f0..ca1131e23 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2006.07.14 12:08}
+\def\contextversion{2006.07.24 10:49}
%D For those who want to use this:
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
index 22cc62626..b580d2d72 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -299,8 +299,7 @@
\dobuffer{16}[#2]\readjobfile
\getvalue{\??bu#1\c!after}}
-\let\getbuffer \processTEXbuffer % handy
-\let\getbuffer\processTEXbuffer % will move to mult-com.tex
+\let\getbuffer\processTEXbuffer % handy
\def\typebuffer
{\dodoubleempty\dotypebuffer}
@@ -546,7 +545,7 @@
\ifcase\blocklevel\doingblocksfalse\else\doingblockstrue\fi}
\def\opentmpblock
- {\immediate\openout\tmpblocks=\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
+ {\immediate\openout\tmpblocks\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
\def\closetmpblock
{\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
@@ -576,7 +575,7 @@
\def\checkcopyingblocks
{\ifcopyingblocks
\else
- \immediate\openout\outblocks\f!utilityfilename.\f!blockextension
+ \immediate\openout\outblocks\f!utilityfilename.\f!blockextension%
\immediate\write\outblocks{\string\thisisblockversion{\blockversion}}%
\immediate\write\outblocks{\string\thisissectionseparator{\sectionseparator}}%
\global\copyingblockstrue
diff --git a/tex/context/base/core-fil.tex b/tex/context/base/core-fil.tex
index 157631194..d19ef115d 100644
--- a/tex/context/base/core-fil.tex
+++ b/tex/context/base/core-fil.tex
@@ -59,6 +59,12 @@
1: le synonyme de fichier -- est déjà utilisé pour --
\stopmessages
+%D
+
+\let\usedtempfile\gobbleonearguments
+
+\def\registertempfile#1{\immediatewriteutilitycommand{\usedtempfile{#1}}}
+
%D \macros
%D {definefilesynonym}
%D
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index 391c3c7f0..03d91f5a4 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -456,7 +456,7 @@
\currentcomponent,\currentenvironment}
{\loadedlocalenvironments}
{\letvalue{\e!stop\v!localenvironment}\relax}
- {\grabuntil{\e!stop\v!localenvironment}\relax}}
+ {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex
index 908c824b8..d5de7d91a 100644
--- a/tex/context/base/core-new.tex
+++ b/tex/context/base/core-new.tex
@@ -325,7 +325,9 @@
\def\env {\getvariable \s!environment}
\def\envvar {\getvariabledefault\s!environment}
-\bgroup
+\bgroup % some day this will go away
+
+% actually we should handle all discretionaries here
\gdef\cleanedupcolon{:} \catcode`:=\@@active
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index f50d785f8..f440af331 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -253,7 +253,6 @@
\let\setupTBLsection\relax
-
\def\setupTBLcell#1#2% cell over col over row
{\setupTBLsection % already forgotten
\edef\positiverow{\number#1}%
diff --git a/tex/context/base/core-sys.tex b/tex/context/base/core-sys.tex
index 3d2fbd450..1bbe97d01 100644
--- a/tex/context/base/core-sys.tex
+++ b/tex/context/base/core-sys.tex
@@ -80,7 +80,8 @@
\fi
\processaction
[\@@svtype]
- [ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
+ %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
+ [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf
darwin=>\edef\@@svline{\rawcharacter{13}}, % cr
\s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf
\splitjobfilename}
diff --git a/tex/context/base/core-tab.tex b/tex/context/base/core-tab.tex
index e14dc12dd..0bdc95814 100644
--- a/tex/context/base/core-tab.tex
+++ b/tex/context/base/core-tab.tex
@@ -986,9 +986,10 @@
\firststagestartTABLE}}}
\def\stoptable
- {\insertTABLEtail
- \globalletempty\@@TABLEhead
- \globalletempty\@@TABLEtail
+ {\chuckTABLEautorow % before the tail, else noalign problem
+ \insertTABLEtail
+ \TABLEnoalign{\globalletempty\@@TABLEhead}%
+ \TABLEnoalign{\globalletempty\@@TABLEtail}%
\finishTABLE
\doifelsenothing\@@tiframe
{\ifinsidefloat\else
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
index 66b5b46df..f1f499a75 100644
--- a/tex/context/base/core-uti.tex
+++ b/tex/context/base/core-uti.tex
@@ -245,7 +245,7 @@
% {\doiflocfileelse{\jobname.\f!inputextension}
% {\bgroup
% \showmessage\m!systems{11}{}%
-% \openout\scratchwrite=\jobname.\f!outputextension
+% \openout\scratchwrite\jobname.\f!outputextension
% \openlocin\scratchread{\jobname.\f!inputextension}%
% \def\doprocessline%
% {\ifeof\scratchread
diff --git a/tex/context/base/enco-pfr.tex b/tex/context/base/enco-pfr.tex
index 8f3d4cef7..a74a8c6a7 100644
--- a/tex/context/base/enco-pfr.tex
+++ b/tex/context/base/enco-pfr.tex
@@ -153,15 +153,28 @@
\appendtoksonce \includepdffontresource \to \everyfont
+% \def\includepdffontresource
+% {\ifincludepdffontresources
+% \ifx\pdffontattr\undefined
+% % we're not using (a recent version of) pdftex
+% \else\ifcase\pdfoutput
+% % we're not in pdf mode
+% \else
+% \doincludepdffontresource
+% \fi\fi
+% \fi}
+
\def\includepdffontresource
{\ifincludepdffontresources
- \ifx\pdffontattr\undefined
- % we're not using (a recent version of) pdftex
- \else\ifcase\pdfoutput
- % we're not in pdf mode
- \else
- \doincludepdffontresource
- \fi\fi
+ \expandafter\ifx\the\font\nullfont \else
+ \ifx\pdffontattr\undefined
+ % we're not using (a recent version of) pdftex
+ \else\ifcase\pdfoutput
+ % we're not in pdf mode
+ \else
+ \doincludepdffontresource
+ \fi\fi
+ \fi
\fi}
\def\dododoincludepdffontresource#1% encoding
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index f6c1b9904..f6b8e4f4a 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -1901,6 +1901,14 @@
\def\rawfontidentifier{**\lastfontidentifier\fontsize**}
\def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize*}
+% best we can add the style as well because otherwise we get math encoding mixups
+%
+% \setupbodyfont [8pt] [\currentencoding/\ccaron\scaron\zcaron]
+% \blank
+% \switchtobodyfont[7pt] [\currentencoding/\ccaron\scaron\zcaron]
+
+\def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*}
+
\def\dododefinefont#1#2%
{\edef\lastfontidentifier{#1}%
\let\localrelativefontsize\defaultrelativefontsize
diff --git a/tex/context/base/m-steps.tex b/tex/context/base/m-steps.tex
index deda373ee..8129d6699 100644
--- a/tex/context/base/m-steps.tex
+++ b/tex/context/base/m-steps.tex
@@ -11,6 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D When I need this module, I will reimplement it by using the new
+%D sometxt macro. Anyhow, it reflects the state of 2001.
+
\unprotect
% temp hack :
@@ -28,8 +31,8 @@
\def\@@STPC{@@STPC} % charts
\def\@@STPT{@@STPT} % tables
-\def\@@STEC{@@STEC} % cells
-\def\@@STET{@@STET} % tables
+\def\@@STEC{@@STEC} % cells
+\def\@@STET{@@STET} % tables
\def\@@STEL{@@STEL} % lines
\def\setupSTEPcharts{\dodoubleargument\getparameters[\@@STPC]}
@@ -41,7 +44,7 @@
\setupSTEPcharts
[\c!before=\blank,
\c!after=\blank,
- %\c!distance=.25em, % nvt
+ %\c!distance=.25em, % nvt
\c!hoffset=1em,
\c!voffset=1ex,
\c!method=1,
@@ -52,7 +55,7 @@
[\c!before=\blank,
\c!after=\blank,
\c!distance=.25em,
- %\c!hoffset=1em, % nvt
+ %\c!hoffset=1em, % nvt
\c!voffset=1ex,
\c!method=1,
\c!width=4em,
@@ -90,14 +93,14 @@
{\freezedimenmacro\@@STPCoffset
\startMPdrawing
line_v_offset := \@@STPCoffset ;
- line_method := \@@STPCmethod ; % only charts
+ line_method := \@@STPCmethod ; % only charts
\stopMPdrawing}
\def\initializeSTPT
- {\freezedimenmacro\@@STPToffset
+ {\freezedimenmacro\@@STPToffset
\startMPdrawing
line_h_offset := \@@STPToffset ;
- line_method := \@@STPTmethod ; % only charts
+ line_method := \@@STPTmethod ; % only charts
\stopMPdrawing}
\def\initializeSTET
@@ -111,7 +114,7 @@
\def\initializeSTEL
{\freezedimenmacro\@@STELrulethickness}
-%D ...
+%D ...
\defineXMLdirective [stepchart] [charts] \setupSTEPcharts
\defineXMLdirective [stepchart] [cells] \setupSTEPcells
@@ -123,7 +126,7 @@
\defineXMLdirective [steptable] [texts] \setupSTEPtexts
\defineXMLdirective [steptable] [lines] \setupSTEPlines
-%D ...
+%D ...
\presetlocalframed[\@@STPF]
@@ -149,8 +152,8 @@
%D \METAPOST. This method is the cleanest, but has the
%D disadvantage that one cannot embed hyperlinks or document
%D dependent definitions in the cells. The implementation
-%D roughly looks as follows:
-%D
+%D roughly looks as follows:
+%D
%D \starttyping
%D \def\startSTEPchart%
%D {\bgroup
@@ -194,15 +197,15 @@
%D
%D The second attempt was based on tabulations and used the
%D build in position tracking mechanism, which uses two
-%D position nodes per cell.
-%D
+%D position nodes per cell.
+%D
%D This method collects the content in token list registers
%D and build a table from them. In the collecting pass, the
%D graphics are build stepwise. We need to collect because the
%D order of definitions is not the same as the order of
%D typesetting. We show this alternative too because it
-%D demonstrates how to apply backgrounds to table cells.
-%D
+%D demonstrates how to apply backgrounds to table cells.
+%D
%D \starttyping
%D \newtoks\stepsonetop \newtoks\stepstwotop
%D \newtoks\stepsonebot \newtoks\stepstwobot
@@ -254,7 +257,7 @@
%D {\getMPdrawing}
%D \resetMPdrawing
%D \increment(\cellcounter,\cellcounter)\decrement\cellcounter
-%D \setbox2=\vbox
+%D \setbox2=\vbox
%D {\definetabulate[chart][|*{\cellcounter}{ck0|}] % k0 nills space
%D \startchart
%D \ifcase\somesteptwotop \the\stepstwotop \NC \NR \noalign{\kern2ex} \fi
@@ -352,30 +355,30 @@
%D \def\textcellposition#1{\GSC[#1:text]}
%D \def\stepidentifierposition#1{\GSC[#1:step]}
%D \stoptyping
-%D
-%D We abandoned this method after some testing and went for
-%D a third one. It was this third method that evolved into the
-%D current mechanism.
-%D
+%D
+%D We abandoned this method after some testing and went for
+%D a third one. It was this third method that evolved into the
+%D current mechanism.
+%D
%D Since this method was not that efficient, a third one was
-%D implemented, which used one position per cell. So,
+%D implemented, which used one position per cell. So,
%D
%D \blank {\bf Here starts the real implementation!} \blank
%D
%D Because we want to build one graphic only we need to store
%D the graphic directives. We also need to collect the cells,
-%D which are not defined in the order they show up. This
-%D solution uses multiple passes over the definitions. First
-%D the cells and texts are processed and the associated
-%D graphics are defined in the \METAPOST\ file. Next the
-%D lines are flushed. We need to do that in a second pass,
-%D because in order to determine the nature of the line,
+%D which are not defined in the order they show up. This
+%D solution uses multiple passes over the definitions. First
+%D the cells and texts are processed and the associated
+%D graphics are defined in the \METAPOST\ file. Next the
+%D lines are flushed. We need to do that in a second pass,
+%D because in order to determine the nature of the line,
%D \METAPOST\ needs to know if the start and end cells exist.
-%D This need comes from the fact that we store the shapes
-%D and lines kind of directly with their associated colors and
+%D This need comes from the fact that we store the shapes
+%D and lines kind of directly with their associated colors and
%D types, so that we can change the settings in between. So,
-%D changing for instance the line color, can take place
-%D locally.
+%D changing for instance the line color, can take place
+%D locally.
\newbox\stepboxone \newbox\stepboxtwo
\newbox\textboxone \newbox\textboxtwo
@@ -395,11 +398,11 @@
{\dosingleempty\dostartSTEPchart}
\long\def\dostartSTEPchart[#1]#2\stopSTEPchart
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPCbefore
- \startbaselinecorrection
+ {\ifinsidefloat
+ \else
+ \whitespace
+ \@@STPCbefore
+ \startbaselinecorrection
\setlocalhsize
\noindent
\fi
@@ -457,7 +460,7 @@
\setbox2\vbox
{\offinterlineskip
\scratchdimen\@@STPCheight
- \advance\scratchdimen\@@STPCoffset
+ \advance\scratchdimen\@@STPCoffset
\advance\scratchdimen\@@STPCoffset
\ifcase\sometextboxone \box\textboxone \vskip\scratchdimen \fi
\ifcase\somestepboxone \box\stepboxone \vskip\@@STPCvoffset \fi
@@ -573,7 +576,7 @@
\def\dodoSTEPcharttextsA#1#2#3#4% #1=number #2=setup
{\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsA
- \ifnum\textcounter>\cellcounter\relax
+ \ifnum\textcounter>\cellcounter\relax
\doglobal\decrement\textcounter\relax
\else
\setbox0\hbox{\doifsomething{#3}{\@@steptext{#3}}}%
@@ -585,7 +588,7 @@
\startMPdrawing
texts[t][#1][\textcounter] := nullpicture ;
\stopMPdrawing
- \else
+ \else
\global\chardef\sometextboxone\zerocount
\edef\stepidentifier{\stepchartprefix#1-\textcounter-t-t}%
\setbox0\hbox to \@@STPChoffset
@@ -627,7 +630,7 @@
\def\dodoSTEPcharttextsB#1#2#3#4% #1=number #2=setup
{\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsB
- \ifnum\textcounter>\cellcounter\relax
+ \ifnum\textcounter>\cellcounter\relax
\doglobal\decrement\textcounter\relax
\else
\bgroup
@@ -653,36 +656,36 @@
\def\MPcharttoplinesgraphic#1#2%
{image(drawline(
- \@@STELalternative, get_step_chart_top_line(#1,#2),
+ \@@STELalternative, get_step_chart_top_line(#1,#2),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
\def\MPchartbotlinesgraphic#1#2%
- {image(drawline(
- \@@STELalternative, get_step_chart_bot_line(#1,#2),
+ {image(drawline(
+ \@@STELalternative, get_step_chart_bot_line(#1,#2),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
-%D \XML\ coupling.
+%D \XML\ coupling.
-\defineXMLpickup[stepchart][@@STPC]
+\defineXMLpickup[stepchart][@@STPC]
{\bgroup
\defineXMLpush[top]%
\defineXMLpush[bot]%
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
{\stoplines}%
- \defineXMLenvironment[cells][@@STEC]
+ \defineXMLenvironment[cells][@@STEC]
{\XMLerase{top}\XMLerase{bot}}
{\expanded{\cells[\theXMLarguments{@@STEC}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironment[texts][@@STET]
+ \defineXMLenvironment[texts][@@STET]
{\XMLerase{top}\XMLerase{bot}}
{\expanded{\texts[\theXMLarguments{@@STET}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironmentpush[cell][@@STEC]
+ \defineXMLenvironmentpush[cell][@@STEC]
{\XMLerase{cell}}
{\expanded{\cell [\theXMLarguments{@@STEC}]{\XMLpop{cell}}}}%
- \defineXMLenvironmentpush [text] [@@STET]
+ \defineXMLenvironmentpush [text] [@@STET]
{\XMLerase{text}}
{\expanded{\text [\theXMLarguments{@@STET}]{\XMLpop{text}}}}%
- \expanded{\startSTEPchart[\theXMLarguments{@@STPC}]}}
+ \expanded{\startSTEPchart[\theXMLarguments{@@STPC}]}}
{\stopSTEPchart
\egroup}
@@ -702,11 +705,11 @@
{\dodoubleempty\dostartSTEPaligntable[1]}
\def\dostartSTEPaligntable[#1][#2]#3\stopSTEPaligntable % flag settings data
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPTbefore
- \startbaselinecorrection
+ {\ifinsidefloat
+ \else
+ \whitespace
+ \@@STPTbefore
+ \startbaselinecorrection
\setlocalhsize
\noindent
\fi
@@ -723,7 +726,7 @@
\initializeSTPT
\def\startlines{\bgroup\setupSTEPlines}%
\def\stoplines {\egroup}%
- \def\prep##1{\ignorespaces##1\unskip\enspace\ignorespaces}%
+ \def\prep##1{\ignorespaces##1\unskip\enspace\ignorespaces}%
\def\cell {\dosingleempty\docell}%
\def\cells {\dosingleempty\docells}%
\def\text {\dosingleempty\dotext}%
@@ -761,18 +764,18 @@
\stopMPdrawing
\egroup}
\doglobal\newcounter\cellcounter#3
- % second graphic pass pass, drawing lines
+ % second graphic pass pass, drawing lines
\def\docells[##1]##2##3##4%
{\doglobal\increment\cellcounter}
\def\dotext[##1]##2%
{\bgroup
\initializeSTEL
\startMPdrawing
- lines[\cellcounter] := \MPtablelinesgraphic ;
+ lines[\cellcounter] := \MPtablelinesgraphic ;
\stopMPdrawing
- \egroup}
+ \egroup}
\doglobal\newcounter\cellcounter#3
- % finishing graphic touch
+ % finishing graphic touch
\startMPdrawing
nofcells := \cellcounter ;
end_step_table ;
@@ -783,7 +786,7 @@
{\setbox0\null}
{\setbox0\vbox{\MPstaticgraphictrue\getMPdrawing}}%
\resetMPdrawing
- % typesetting pass
+ % typesetting pass
\dimen6=\@@STPTdistance \dimen6=2\dimen6
% cell width
\dimen8=\dimen1
@@ -801,8 +804,8 @@
{\hbox to \dimen####1{####2\@@stepfake{####3}\strut####4}}%
\setbox8\hbox
{\ifcase#1\else
- \do1\hss{##2}\relax \hskip\@@STPTdistance
- \do3\hss{##3}\hss \hskip\@@STPTdistance
+ \do1\hss{##2}\relax \hskip\@@STPTdistance
+ \do3\hss{##3}\hss \hskip\@@STPTdistance
\fi
\do5\relax{##4}\hss}%
\hpos{\steptableprefix\cellcounter-c}{\@@stepcell{\box8}}
@@ -815,11 +818,11 @@
\advance\hsize-\dimen8
\advance\hsize-\dimen6 % twice the offset
\setbox0\hbox{\@@steptext{##2}}%
-% to do
+% to do
% \ifdim\wd0>\hsize
% \setbox0=\vbox{\@@steptext{##2}}%
% \fi
-% align
+% align
\hpos{\steptableprefix\cellcounter-t}{\box0}%
\endgraf
\egroup
@@ -839,47 +842,47 @@
\ifinsidefloat \else \stopbaselinecorrection \@@STPTafter \fi}
\def\MPtablelinesgraphic
- {image ( drawline (
- \@@STELalternative, get_step_table_line(\cellcounter),
+ {image ( drawline (
+ \@@STELalternative, get_step_table_line(\cellcounter),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
\defineXMLpickup[steptable][@@STPT]
{\bgroup
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
{\stoplines}%
- \defineXMLargument[cell][@@STEC]
- {\expanded{\cell[\theXMLarguments{@@STEC}]}}%
+ \defineXMLargument[cell][@@STEC]
+ {\expanded{\cell[\theXMLarguments{@@STEC}]}}%
\defineXMLargument[text][@@STET]
- {\expanded{\text[\theXMLarguments{@@STET}]}}%
+ {\expanded{\text[\theXMLarguments{@@STET}]}}%
\defineXMLargument[prep]
{\prep}%
- \expanded{\startSTEPtable[\theXMLarguments{@@STPT}]}}
+ \expanded{\startSTEPtable[\theXMLarguments{@@STPT}]}}
{\stopSTEPtable
\egroup}
\defineXMLpickup[stepaligntable][@@STPT]
{\bgroup
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\setupSTEPlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\setupSTEPlines[\theXMLarguments{@@STEL}]}}
{}%
\defineXMLpush[c1]\defineXMLpush[c2]\defineXMLpush[c3]%
\defineXMLenvironment[cells][@@STEC]
{\XMLerase{c1}\XMLerase{c1}\XMLerase{c3}}
{\expanded{\cells[\theXMLarguments{@@STEC}]{\XMLpop{c1}}{\XMLpop{c2}}{\XMLpop{c3}}}}%
\defineXMLargument[text][@@STET]
- {\expanded{\text[\theXMLarguments{@@STET}]}}%
+ {\expanded{\text[\theXMLarguments{@@STET}]}}%
\defineXMLargument[prep]
{\prep}%
- \expanded{\startSTEPaligntable[\theXMLarguments{@@STPT}]}}
+ \expanded{\startSTEPaligntable[\theXMLarguments{@@STPT}]}}
{\stopSTEPaligntable
\egroup}
\protect \endinput
-% A simple paragraph-flow test:
+% A simple paragraph-flow test:
-\starttext
+\starttext
\startbuffer
\startSTEPchart
@@ -892,10 +895,10 @@
\stopSTEPchart
\stopbuffer
-\getbuffer
+\getbuffer
\startnarrower \getbuffer \stopnarrower
\placefigure[left]{}{} \getbuffer
-\stoptext
+\stoptext
diff --git a/tex/context/base/math-ext.tex b/tex/context/base/math-ext.tex
index 1091cd5ff..8fe822f32 100644
--- a/tex/context/base/math-ext.tex
+++ b/tex/context/base/math-ext.tex
@@ -126,7 +126,16 @@
\executeifdefined{dodefine#2arrow}\gobblethreearguments{#1}{#3}{#4}%
\else\ifthirdargument
\dodefinebotharrow{#1}{#2}{#3}%
- \fi\fi}
+ \else\ifsecondargument
+ \redefinebotharrow{#1}{#2}{#3}%
+ \fi\fi\fi}
+
+\def\redefinebotharrow#1#2#3% real dirty, this overload!
+ {\doifdefined{#1}
+ {\pushmacro\dotripleempty
+ \def\dotripleempty##1[##2][##3]{\setvalue{#1}{\dotripleempty\xmtharrow[#2][##3]}}%
+ \getvalue{#1}%
+ \popmacro\dotripleempty}}
\def\dodefinebotharrow#1#2#3%
{\setvalue{#1}{\dotripleempty\xmtharrow[#2][#3]}}
@@ -136,10 +145,19 @@
\dodoublegroupempty\doxmtharrow}
\def\dodoxmtharrow[#1,#2,#3][#4,#5,#6][#7]#8#9% [3] is the optional arg
- {\ifx#2\empty
- \mathrel{\domthxarrsingle{#7}{#1}{#4}{#8}{#9}}%
+ {\edef\!!stringa{#2}%
+ \ifx\!!stringa\empty
+ \ifsecondargument
+ \mathrel{\domthxarrsingle{#7}{#1}{#4}{#8}{#9}}%
+ \else
+ \mathrel{\domthxarrsingle{#7}{#1}{#4}{}{#8}}%
+ \fi
\else
- \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{#8}{#9}}%
+ \ifsecondargument
+ \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{#8}{#9}}%
+ \else
+ \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{}{#8}}%
+ \fi
\fi}
% Adapted from amsmath.
@@ -169,24 +187,32 @@
% From amsmath.sty, extarrows.sty, extpfel.sty and mathtools.sty(ams)
-\definematharrow [xrightarrow] [0359] [\rightarrowfill]
-\definematharrow [xleftarrow] [3095] [\leftarrowfill]
-\definematharrow [xequal] [0099] [\equalfill]
-\definematharrow [xRightarrow] [0359] [\Rightarrowfill]
-\definematharrow [xLeftarrow] [3095] [\Leftarrowfill]
-\definematharrow [xLeftrightarrow] [0099] [\Leftrightarrowfill]
-\definematharrow [xleftrightarrow] [0099] [\leftrightarrowfill]
-\definematharrow [xmapsto] [0599] [\mapstofill]
-\definematharrow [xtwoheadrightarrow] [5009] [\twoheadrightarrowfill]
-\definematharrow [xtwoheadleftarrow] [0590] [\twoheadleftarrowfill]
-\definematharrow [xrightharpoondown] [0359] [\rightharpoondownfill]
-\definematharrow [xrightharpoonup] [0359] [\rightharpoonupfill]
-\definematharrow [xleftharpoondown] [3095] [\leftharpoondownfill]
-\definematharrow [xleftharpoonup] [3095] [\leftharpoonupfill]
-
-\definematharrow [xleftrightharpoons] [3095,0359] [\leftharpoonupfill,\rightharpoondownfill]
-\definematharrow [xrightleftharpoons] [3095,0359] [\rightharpoonupfill,\leftharpoondownfill]
-
+\definematharrow [xrightarrow] [0359] [\rightarrowfill]
+\definematharrow [xleftarrow] [3095] [\leftarrowfill]
+\definematharrow [xequal] [0099] [\equalfill]
+\definematharrow [xRightarrow] [0359] [\Rightarrowfill]
+\definematharrow [xLeftarrow] [3095] [\Leftarrowfill]
+\definematharrow [xLeftrightarrow] [0099] [\Leftrightarrowfill]
+\definematharrow [xleftrightarrow] [0099] [\leftrightarrowfill]
+\definematharrow [xmapsto] [3599] [\mapstofill]
+\definematharrow [xtwoheadrightarrow] [5009] [\twoheadrightarrowfill]
+\definematharrow [xtwoheadleftarrow] [0590] [\twoheadleftarrowfill]
+\definematharrow [xrightharpoondown] [0359] [\rightharpoondownfill]
+\definematharrow [xrightharpoonup] [0359] [\rightharpoonupfill]
+\definematharrow [xleftharpoondown] [3095] [\leftharpoondownfill]
+\definematharrow [xleftharpoonup] [3095] [\leftharpoonupfill]
+\definematharrow [xleftrightharpoons] [3399,3399] [\leftharpoonupfill,\rightharpoondownfill]
+\definematharrow [xrightleftharpoons] [3399,3399] [\rightharpoonupfill,\leftharpoondownfill]
+
+% Goodies
+
+\def\hookleftfill {\mtharrowfill\leftarrow\relbar{\relbar\joinrel\rhook}}
+\def\hookrightfill{\mtharrowfill{\lhook\joinrel\relbar}\relbar\rightarrow}
+
+\definematharrow [xhookleftarrow] [3095] [\hookleftfill]
+\definematharrow [xhookrightarrow] [0395] [\hookrightfill]
+
+% \startformula \xrightarrow{stuff on top}\stopformula
% \startformula \xrightarrow{}{stuff on top}\stopformula
% \startformula \xrightarrow{stuff below}{}\stopformula
% \startformula \xrightarrow{stuff below}{stuff on top}\stopformula
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index 0fa99aa5c..1db812d61 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -1045,8 +1045,6 @@
\def\dostartstaticMPfigure#1#2\stopstaticMPfigure
{\startstaticMPgraphic{\jobname-#1}#2\stopstaticMPgraphic
- \doifmode{*\v!first}{\executesystemcommand
- {texmfstart --ifchanged=\MPgraphicfile.mp texexec --mpgraphic \MPgraphicfile.mp}}%
\endgroup}
% faster, but more tricky
@@ -1060,8 +1058,6 @@
%
% \def\dostartstaticMPfigure#1#2\stopstaticMPfigure
% {\startMPstaticgraphic{\jobname-#1}#2\stopMPstaticgraphic
-% \executesystemcommand
-% {texmfstart --ifchanged=\MPgraphicfile.mp texexec --mpgraphic \MPgraphicfile.mp}%
% % dirty trick, don't register, so no second main run of texexec:
% \global\advance\nofMPgraphics \minusone
% \endgroup}}
diff --git a/tex/context/base/meta-tex.tex b/tex/context/base/meta-tex.tex
index 8008ae6c4..e6143176a 100644
--- a/tex/context/base/meta-tex.tex
+++ b/tex/context/base/meta-tex.tex
@@ -24,7 +24,7 @@
\newwrite\TeXtextwrite
-\def\openTeXtexts {\immediate\openout \TeXtextwrite=\currentTeXtext.mpb\relax}
+\def\openTeXtexts {\immediate\openout \TeXtextwrite\currentTeXtext.mpb\relax}
\def\closeTeXtexts{\immediate\closeout\TeXtextwrite}
\def\currentTeXtext{\jobname-mpgraph}
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 9005b5736..17d26d631 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -238,9 +238,13 @@
{\obeylines
\let\obeyedline\relax} % delay expansion
-\appendtoks
- \let\obeyMPlines\runtimeobeyMPlines
-\to \everydump
+\ifx\everydump\undefined
+ % maybe we're not using context
+\else
+ \appendtoks
+ \let\obeyMPlines\runtimeobeyMPlines
+ \to \everydump
+\fi
%D We use two distinguished token registers:
@@ -645,6 +649,17 @@
\let \} \letterclosebrace
\to \everyMPgraphic
+%D Not the best place but we need to make sure that no funny
+%D active characters creep in. Some day we will move this code.
+
+\ifx\disablediscretionaries\undefined
+ \let\disablediscretionaries\relax
+\fi
+
+\appendtoks
+ \disablediscretionaries
+\to \everyMPgraphic
+
\def\writeMPgraph
{\immediate\write\MPwrite{mpgraph:=\the\currentMPgraphic;}}
@@ -712,7 +727,7 @@
\fi
\@EA\let\@EA\MPwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
\ifdone
- \immediate\openout\MPwrite=\MPgraphicfile.mp
+ \immediate\openout\MPwrite\MPgraphicfile.mp\relax
\ifx\MPinputtranslation\empty\else
\immediate\write\MPwrite{\MPinputtranslation}%
\immediate\write\MPwrite{verbatimtex \MPinputtranslation etex ;}%
@@ -1497,18 +1512,18 @@
\endlinechar\minusone
\uncatcodespecials
\donefalse
- \immediate\openout\scratchwrite=\convertMPcolorpath\convertMPcolorfile
+ \immediate\openout\scratchwrite\convertMPcolorpath\convertMPcolorfile\relax
\doprocessfile\scratchread{#1}\handleMPcolor
\immediate\closeout\scratchwrite
\ifdone
- \immediate\openout\scratchwrite=\convertMPcolorpath#1\relax
+ \immediate\openout\scratchwrite\convertMPcolorpath#1\relax
\doprocessfile\scratchread{\convertMPcolorpath \convertMPcolorfile}\handleMPcopy
\immediate\closeout\scratchwrite
\message{done]}%
\else
\message{not needed]}%
\fi
- \immediate\openout\scratchwrite=\convertMPcolorpath\convertMPcolorfile
+ \immediate\openout\scratchwrite\convertMPcolorpath\convertMPcolorfile
\immediate\closeout\scratchwrite
\fi
\egroup}
@@ -1967,14 +1982,31 @@
%D Dedicated to Aditya Mahajan. See meta-ini for usage.
\long\def\startstaticMPgraphic#1#2\stopstaticMPgraphic
- {\setMPrandomseedfalse
+ {\bgroup
+ \setMPrandomseedfalse
\def\MPgraphicfile{#1}% no \jobname here
\let\allocateMPslot \gobbleoneargument
\let\deallocateMPslot\gobbleoneargument
\let\runMPgraphic \gobbleoneargument
\runMPgraphicstrue
+ \enableincludeMPgraphics
\currentMPgraphic\plusone % hack, else no close
- \startMPgraphic#2\stopMPgraphic}
+ \startMPgraphic#2\stopMPgraphic
+ \executeMPgraphicfile
+ \egroup}
+
+
+\ifx\doifmode\undefined
+ \def\executeMPgraphicfile
+ {\executesystemcommand
+ {texmfstart --ifchanged=\MPgraphicfile.mp
+ texexec --mpgraphic \MPgraphicfile.mp}}
+\else
+ \def\executeMPgraphicfile
+ {\doifmode{*\v!first}{\executesystemcommand
+ {texmfstart --ifchanged=\MPgraphicfile.mp
+ texexec --mpgraphic \MPgraphicfile.mp}}}
+\fi
%D Special for \XETEX\ (problem with newlines). This will go
%D away once the version supporting \type {--8bit} is
diff --git a/tex/context/base/symb-cow.tex b/tex/context/base/symb-cow.tex
index 427e0af32..6fd32a535 100644
--- a/tex/context/base/symb-cow.tex
+++ b/tex/context/base/symb-cow.tex
@@ -33,7 +33,14 @@
\definepalet
[cow]
[normal=lground,
- contour=dground]
+ contour=dground,
+ sky=lsky]
+
+\def\CowNormal#1%
+ {\dontleavehmode\hbox{\color[cow:normal]{\getglyph{Cows}{#1}}}}
+
+\def\ScaledCowNormal#1#2%
+ {\dontleavehmode\hbox{\color[cow:normal]{\definedfont[Cows sa #1]#2}}}
\def\ScaledCowOverlay#1#2%
{\dontleavehmode\hbox
@@ -73,6 +80,7 @@
\definesymbol[CowMetafun] [\CowLogo{16}]
\definesymbol[CowMetafunComplete][\CowLogo{17}]
\definesymbol[CowTEX] [\CowLogo{18}]
+\definesymbol[CowTeX] [\CowLogo{18}]
\definesymbol[CowWiki] [\CowLogo{19}]
\stopsymbolset
@@ -97,6 +105,7 @@
\definesymbol[CowMetafun] [\CowContour{16}]
\definesymbol[CowMetafunComplete][\CowContour{17}]
\definesymbol[CowTEX] [\CowContour{18}]
+\definesymbol[CowTeX] [\CowContour{18}]
\definesymbol[CowWiki] [\CowContour{19}]
\stopsymbolset
diff --git a/tex/context/base/x-set-11.tex b/tex/context/base/x-set-11.tex
index 537148b43..57117174e 100644
--- a/tex/context/base/x-set-11.tex
+++ b/tex/context/base/x-set-11.tex
@@ -351,7 +351,7 @@
\newif\ifshortsetup
\def\setup {\shortsetupfalse\dosetup}
-\def\shortsetup{\shortsetuptrue\dosetup}
+\def\shortsetup{\shortsetuptrue \dosetup}
\def\setupsetup{\dodoubleargument\getparameters[\??stp]}
\setupsetup
@@ -383,6 +383,12 @@
\let\plaatssetup \placesetup
\let\plaatselkesetup\placeeverysetup
+% we use :1 as fallback
+%
+% \setup{setupinterlinespace}
+% \setup{setupinterlinespace:1}
+% \setup{setupinterlinespace:2}
+
\bgroup \catcode`\<=\active
\gdef\dosetup#1%
@@ -390,12 +396,17 @@
\def<<##1>>{##1}%
\edef\ascii{#1}%
\enableXML
- \expanded{\flushXMLelement{stp:\ascii}}%
+ \doifelseXMLelement{stp:\ascii}
+ {\expanded{\flushXMLelement{stp:\ascii}}}
+ {\doifelseXMLelement{stp:\ascii:1}
+ {\expanded{\flushXMLelement{stp:\ascii:1}}}
+ {\convertargument#1\to\ascii
+ \em unknown setup \quote{\ascii}}}
\egroup}
\egroup
-\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=]
+\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=,variant=]
{}
{\showSETUPrecord}
@@ -772,11 +783,13 @@
\startXMLmapping[zero]
-\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=]
+\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=,variant=]
{}
{\doifelseXMLop{type}{environment}
{\edef\currentSETUPname{start\getinterfacecomponent{string}{\XMLop{name}}}}
{\edef\currentSETUPname{\getinterfacecomponent{string}{\XMLop{name}}}}%
+ \doifsomething{\XMLop{variant}}
+ {\edef\currentSETUPname{\currentSETUPname:\XMLop{variant}}}% like setupinterlinespace:1
\doifXMLop{generated}{yes}
{\edef\currentSETUPname{\currentSETUPname*}}%
\doglobal\saveXMLdatainelement{stp:\currentSETUPname}{cd:command}{cd:command}%
@@ -788,11 +801,17 @@
\def\loadsetups{\complexorsimple\loadsetups}
\def\simpleloadsetups
- {\complexloadsetups[cont-en.xml]}
+ {\doifnotmode{no-setup-main}
+ {\complexloadsetups[cont-en.xml]}}
\def\complexloadsetups[#1]%
- {\startXMLmapping[zero]
- \processXMLfilegrouped{#1}
- \stopXMLmapping}
+ {\doifnotmode{no-setup-all}
+ {\doifsomething{#1}
+ {\startXMLmapping[zero]
+ \expanded{\processXMLfilegrouped{#1}}%
+ \stopXMLmapping}}}
+
+\defineXMLsingular [cd:include] [file=]
+ {\complexloadsetups[\XMLop{file}]}
\protect \endinput
diff --git a/tex/context/bib/t-bib.tex b/tex/context/bib/t-bib.tex
index f75faa629..1f1c59564 100644
--- a/tex/context/bib/t-bib.tex
+++ b/tex/context/bib/t-bib.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-bib,
-%D version=2006.07.14,
+%D version=2006.07.19,
%D title=\CONTEXT\ Publication Module,
%D subtitle=Publications,
%D author=Taco Hoekwater,
@@ -77,6 +77,12 @@
%D in \type{left} stay in effect (12/7/2006)
%D \item guard added against loading bbl files multiple times (13/7/2006)
%D \item fix \type{\cite[num]} with compression is on. (14/7/2006)
+%D \item test \type{\iflocation} before deciding to use the
+%D interactive version of cite (18/7/2006)
+%D \item support \type{\setupcite[authoretallimit=1]} (18/7/2006)
+%D \item support use of \type{\cite} within titles and captions by
+%D saveguarding the list item extraction and reference placement
+%D code (19/7/2006)
%D \stopitemize
%D
%D \subject{WISHLIST}
@@ -1087,15 +1093,19 @@
\getvalue{pbdd-#1}}
%D This new version writes a reference out to the tui file for every
-%D \type{\cite}. This will allow backlinking
+%D \type{\cite}. This will allow backlinking.
+%D
+%D Some special care is needed so that references are not added from
+%D weird locations like in the TOC or within a \type{\setbox} command.
\newcounter\citationnumber
\def\docitation#1{%
\iftrialtypesetting \else
- \doglobal\increment\citationnumber
- \expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}%
- \fi}
+ \ifdoinpututilities\else
+ \doglobal\increment\citationnumber
+ \expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}%
+ \fi \fi }
%D \macros{numreferred,doifreferredelse,addthisref,publist}
@@ -1214,7 +1224,9 @@
\def\docurrentbibauthor#1,#2%
{\doifemptyelse{#2}
{\def\currentbibauthor{#1\bibalternative{otherstext}}}
- {\def\currentbibauthor{#1\bibalternative{andtext}#2}}}
+ {\edef\currentbibauthor{#1%
+ \ifcase0\bibalternative{authoretallimit}\relax\or
+ \bibalternative{otherstext}\else \bibalternative{andtext}#2\fi}}}
%D This is not the one Hans made for me, because I need a global
%D edef, and the \type{\robustdoifinsetelse} doesn't listen to
@@ -1327,12 +1339,22 @@
%D does not encounter duplicate named references. On the generation
%D side, this is not a big problem. \type{\preparebibrefprefix}
%D creates a suitable string to prepend if a prefix is needed.
+%D
+%D Because this macro is used within \type{\cite } that itself
+%D can be used within lists like the table of contents, it needs
+%D to save and restore \type{\savedalltoclevels} and
+%D \type{\currentlevel} (\type{\dosetfilterlevel} needs to change
+%D their values globally).
\def\preparebibrefprefix
- {\let\dosetfilterlevel\patcheddosetfilterlevel
+ {\chardef\savedalltoclevels \alltoclevels
+ \let\savedcurrentlevel\currentlevel
+ \let\dosetfilterlevel\patcheddosetfilterlevel
\dosettoclevel\??li{pubs}%
+ \edef\bibrefprefix{\@@sectiontype\currentlevel\sectionseparator}%
\let\dosetfilterlevel\normaldosetfilterlevel
- \edef\bibrefprefix{\@@sectiontype\currentlevel\sectionseparator}}%
+ \global\let\currentlevel\savedcurrentlevel
+ \global\chardef\alltoclevels \savedalltoclevels }
%D \macros{preparebibreflist}
%D
@@ -1421,12 +1443,17 @@
%D \type{\currentbibauthor} and \type{\currentbibyear}.
\def\ifbibinteractionelse%
- {\edef\test{\bibalternative\c!interaction}%
- \ifx\test\v!stop
- \expandafter\secondoftwoarguments
+ {\iflocation
+ \edef\test{\bibalternative\c!interaction}%
+ \ifx\test\v!stop
+ \@EA\@EA\@EA\secondoftwoarguments
+ \else
+ \@EA\@EA\@EA\firstoftwoarguments
+ \fi
\else
- \expandafter\firstoftwoarguments
- \fi}
+ \@EA\secondoftwoarguments
+ \fi
+ }
\def\bibmaybeinteractive#1#2%
{\ifbibcitecompress #2\else
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 4d2b4fb34..3fc6114d4 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="nastavmeziradkovoumezeru"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="reset"/>
<cd:constant type="male" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="zap"/>
<cd:constant type="vyp"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="nastavmeziradkovoumezeru"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="vyska">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index a316ab0a6..692b1da7c 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="stellezeilenabstandein"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="zuruecksetzten"/>
<cd:constant type="klein" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="an"/>
<cd:constant type="aus"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="stellezeilenabstandein"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="hoehe">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 2b39cefa2..02da11418 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="setupinterlinespace"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="reset"/>
<cd:constant type="small" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="on"/>
<cd:constant type="off"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="setupinterlinespace"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="height">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index 115df8b2a..d83b66832 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="regleespacementinterligne"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="raz"/>
<cd:constant type="petit" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="actif"/>
<cd:constant type="desactive"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="regleespacementinterligne"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="hauteur">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 0a3ba26cc..9e54d250e 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="impostainterlinea"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="reimposta"/>
<cd:constant type="piccolo" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="attivo"/>
<cd:constant type="disattivo"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="impostainterlinea"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="altezza">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 92e6899b9..94fa35d92 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="stelinterliniein"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="reset"/>
<cd:constant type="klein" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="aan"/>
<cd:constant type="uit"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="stelinterliniein"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="hoogte">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 967d0a9e9..4f7495b0a 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -4015,12 +4015,11 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="seteazaspatiuinterliniar"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<cd:keywords optional="yes">
<cd:constant type="reset"/>
<cd:constant type="mic" default="yes"/>
@@ -4030,6 +4029,14 @@
<cd:constant type="on"/>
<cd:constant type="dezactivat"/>
</cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupinterlinespace" variant="2">
+ <cd:sequence>
+ <cd:string value="seteazaspatiuinterliniar"/>
+ </cd:sequence>
+ <cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="inaltime">
<cd:constant type="cd:number"/>
@@ -4047,7 +4054,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index b8e5b5fd7..a7afe0131 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 840cbf373..655980a00 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index a4f663241..bc9ddd071 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index e1a243823..3dca3a191 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="un"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 96f8d16fc..be9d85d3f 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index cc9adb7a6..a8e8ce7b5 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 1a8ba6b50..f94f55e56 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.07.14 12:08">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.07.24 10:49">
<cd:variables>
<cd:variable name="one" value="unu"/>
diff --git a/tpm/t-bib.tpm b/tpm/t-bib.tpm
index a9e56bf04..def3edd89 100644
--- a/tpm/t-bib.tpm
+++ b/tpm/t-bib.tpm
@@ -3,17 +3,17 @@
<rdf:Description about="http://dl.contextgarden.net/modules/t-bib.zip">
<TPM:Name>t-bib</TPM:Name>
<TPM:Type>Package</TPM:Type>
- <TPM:Date>2006/07/14 10:00:00</TPM:Date>
- <TPM:Version>2006.07.14</TPM:Version>
+ <TPM:Date>2006/07/19 10:00:00</TPM:Date>
+ <TPM:Version>2006.07.19</TPM:Version>
<TPM:Creator>taco</TPM:Creator>
<TPM:Title>ConTeXt Bibliographies</TPM:Title>
<TPM:Description>
A bibliographic subsystem for ConTeXt
</TPM:Description>
<TPM:Author>Taco Hoekwater</TPM:Author>
- <TPM:Size>541359</TPM:Size>
+ <TPM:Size>542532</TPM:Size>
<TPM:Build/>
- <TPM:RunFiles size="246148">
+ <TPM:RunFiles size="247321">
tex/context/bib/bibl-ams.tex
tex/context/bib/bibl-apa-de.tex
tex/context/bib/bibl-apa-fr.tex
diff --git a/tpm/u-texshow.tpm b/tpm/u-texshow.tpm
index 6e3bc1865..6c8b5f1fa 100644
--- a/tpm/u-texshow.tpm
+++ b/tpm/u-texshow.tpm
@@ -3,21 +3,21 @@
<rdf:Description about="http://dl.contextgarden.net/modules/u-texshow.zip">
<TPM:Name>u-texshow</TPM:Name>
<TPM:Type>Package</TPM:Type>
- <TPM:Date>2006/04/05 00:00:00</TPM:Date>
- <TPM:Version>0.2 beta</TPM:Version>
+ <TPM:Date>2006/07/19 00:00:00</TPM:Date>
+ <TPM:Version>0.21 beta</TPM:Version>
<TPM:Creator>taco</TPM:Creator>
<TPM:Title>TeXShow / XML</TPM:Title>
<TPM:Description>
ConTeXt command and parameter reference
</TPM:Description>
<TPM:Author>Taco Hoekwater</TPM:Author>
- <TPM:Size>35049</TPM:Size>
+ <TPM:Size>35752</TPM:Size>
<TPM:Build/>
- <TPM:RunFiles size="29401">
+ <TPM:RunFiles size="29835">
scripts/context/perl/texshow.pl
tpm/u-texshow.tpm
</TPM:RunFiles>
- <TPM:DocFiles size="5648">
+ <TPM:DocFiles size="5917">
doc/scripts/context/perl/texshow.1
doc/scripts/context/perl/texshow.html
</TPM:DocFiles>
diff --git a/web2c/context.cnf b/web2c/context.cnf
index 9865e9e63..ec8728d74 100644
--- a/web2c/context.cnf
+++ b/web2c/context.cnf
@@ -43,40 +43,40 @@ WEB2C = $TEXMF/web2c
OSFONTDIR =
-TEXPSHEADERS = .;$TEXMF/{fonts/{enc,map,type1,truetype},dvips,pdftex,tex}//;$TEXMF/{etex,tex,pdftex,dvips,fonts/type1}//
+TEXPSHEADERS = .;$TEXMF/{fonts/{enc,map,type1,truetype},dvips,pdftex,tex}//;$TEXMF/{etex,tex,pdftex,dvips,fonts/type1}//;./fonts//
-TEXFONTMAPS.dvipdfm = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//
-TEXFONTMAPS.dvipdfmx = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//
-TEXFONTMAPS.pdftex = .;$TEXMF/fonts/map/{pdftex,dvips,}//
-TEXFONTMAPS.pdfetex = .;$TEXMF/fonts/map/{pdftex,dvips,}//
-TEXFONTMAPS.xetex = .;$TEXMF/fonts/map/{xetex,pdftex,dvips,}//
-TEXFONTMAPS.dvips = .;$TEXMF/fonts/map/{dvips,pdftex,}//
+TEXFONTMAPS.dvipdfm = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//;./fonts//
+TEXFONTMAPS.dvipdfmx = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//;./fonts//
+TEXFONTMAPS.pdftex = .;$TEXMF/fonts/map/{pdftex,dvips,}//;./fonts//
+TEXFONTMAPS.pdfetex = .;$TEXMF/fonts/map/{pdftex,dvips,}//;./fonts//
+TEXFONTMAPS.xetex = .;$TEXMF/fonts/map/{xetex,pdftex,dvips,}//;./fonts//
+TEXFONTMAPS.dvips = .;$TEXMF/fonts/map/{dvips,pdftex,}//;./fonts//
# TEXFONTMAPS = .;$TEXMF/fonts/map/{$backend,pdftex,dvips,}//;$TEXMF/{$progname,pdftex,dvips}/{config,}//
-TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//;$TEXMF/{$progname,pdftex,dvips}/{config,}//
-
-VFFONTS = .;$TEXMF/fonts/vf//
-TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
-T1FONTS = .;$TEXMF/fonts/{type1,pfb}//;$TEXMF/fonts/misc/hbf//;$OSFONTDIR
-AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR
-LIGFONTS = .;$TEXMF/fonts/lig//
-TTFONTS = .;$TEXMF/fonts/{truetype,ttf}//;$OSFONTDIR
-TTF2TFMINPUTS = .;$TEXMF/ttf2pk//
-T42FONTS = .;$TEXMF/fonts/type42//
-MISCFONTS = .;$TEXMF/fonts/misc//
-% ENCFONTS = .;$TEXMF/fonts/enc//
-ENCFONTS = .;$TEXMF/{fonts/enc,dvips,pdftex,dvipdfm}//
-CMAPFONTS = .;$TEXMF/fonts/cmap//
-SFDFONTS = .;$TEXMF/fonts/sfd//
-OPENTYPEFONTS = .;$TEXMF/fonts/opentype//;$OSFONTDIR
-
-OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//;$TFMFONTS
-OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl//
-OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovf//
-OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp//
+TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//;$TEXMF/{$progname,pdftex,dvips}/{config,}//;./fonts//
+
+VFFONTS = .;$TEXMF/fonts/vf//;./fonts//
+TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//;./fonts//
+T1FONTS = .;$TEXMF/fonts/{type1,pfb}//;$TEXMF/fonts/misc/hbf//;$OSFONTDIR;./fonts//
+AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR;./fonts//
+LIGFONTS = .;$TEXMF/fonts/lig//;./fonts//
+TTFONTS = .;$TEXMF/fonts/{truetype,ttf}//;$OSFONTDIR;./fonts//
+TTF2TFMINPUTS = .;$TEXMF/ttf2pk//;./fonts//
+T42FONTS = .;$TEXMF/fonts/type42//;./fonts//
+MISCFONTS = .;$TEXMF/fonts/misc//;./fonts//
+% ENCFONTS = .;$TEXMF/fonts/enc//;./fonts//
+ENCFONTS = .;$TEXMF/{fonts/enc,dvips,pdftex,dvipdfm}//;./fonts//
+CMAPFONTS = .;$TEXMF/fonts/cmap//;./fonts//
+SFDFONTS = .;$TEXMF/fonts/sfd//;./fonts//
+OPENTYPEFONTS = .;$TEXMF/fonts/opentype//;$OSFONTDIR;./fonts//
+
+OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//;$TFMFONTS;./fonts//
+OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl//;./fonts//
+OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovf//;./fonts//
+OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp//;./fonts//
OTPINPUTS = .;$TEXMF/omega/otp//
OCPINPUTS = .;$TEXMF/omega/ocp//
-OTFFONTS = .;$TEXMF/fonts/otf/{xetex,}//
+OTFFONTS = .;$TEXMF/fonts/otf/{xetex,}//;./fonts//
% configurations