summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-06-27 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2005-06-27 00:00:00 +0200
commit606ac7d65f5f5974ae7926e84dfb34849ce96db8 (patch)
tree0107133567b9472301c3b8345cf2f4b0e2085d6f
parentdddd4cf24fcf8ef5f9c76acb7da468f502cd0bcd (diff)
downloadcontext-606ac7d65f5f5974ae7926e84dfb34849ce96db8.tar.gz
stable 2005.06.27
-rw-r--r--scripts/context/perl/texfont.pl6
-rw-r--r--scripts/context/ruby/base/tex.rb1
-rw-r--r--scripts/context/ruby/base/tool.rb1
-rw-r--r--scripts/context/ruby/graphics/gs.rb38
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-fig.tex6
-rw-r--r--tex/context/base/core-reg.tex16
-rw-r--r--tex/context/base/core-uti.tex15
-rw-r--r--tex/context/base/core-ver.tex2
-rw-r--r--tex/context/base/enco-uc.tex7
-rw-r--r--tex/context/base/font-ini.tex11
-rw-r--r--tex/context/base/math-ini.tex1
-rw-r--r--tex/context/base/math-tex.tex1
-rw-r--r--tex/context/base/math-uni.tex78
-rw-r--r--tex/context/base/mult-sys.tex1
-rw-r--r--tex/context/base/page-num.tex20
-rw-r--r--tex/context/base/syst-con.tex9
-rw-r--r--tex/context/base/syst-prm.tex9
-rw-r--r--tex/context/base/type-dis.tex4
-rw-r--r--tex/context/base/type-enc.tex403
-rw-r--r--tex/context/base/type-ini.tex21
-rw-r--r--tex/context/base/unic-000.tex2
-rw-r--r--tex/context/base/unic-001.tex3
-rw-r--r--tex/context/base/unic-002.tex4
-rw-r--r--tex/context/base/unic-003.tex45
-rw-r--r--tex/context/base/unic-004.tex4
-rw-r--r--tex/context/base/unic-005.tex2
-rw-r--r--tex/context/base/unic-030.tex3
-rw-r--r--tex/context/base/unic-031.tex3
-rw-r--r--tex/context/base/unic-032.tex10
-rw-r--r--tex/context/base/unic-033.tex240
-rw-r--r--tex/context/base/unic-034.tex57
-rw-r--r--tex/context/base/unic-039.tex68
-rw-r--r--tex/context/base/unic-ini.tex51
-rw-r--r--tex/context/base/unic-run.tex129
-rw-r--r--tex/context/base/verb-ini.tex2
-rw-r--r--tex/context/base/xtag-ini.tex15
-rw-r--r--tex/context/base/xtag-map.tex28
-rw-r--r--tex/context/base/xtag-mmc.tex17
-rw-r--r--tex/context/base/xtag-mmp.tex55
-rw-r--r--tex/context/extra/showunic.tex130
-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-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
47 files changed, 949 insertions, 583 deletions
diff --git a/scripts/context/perl/texfont.pl b/scripts/context/perl/texfont.pl
index 732fb0f3e..6a569ddfd 100644
--- a/scripts/context/perl/texfont.pl
+++ b/scripts/context/perl/texfont.pl
@@ -855,7 +855,7 @@ foreach my $file (@files)
print "$command\n" if $trace ;
$font = `$command` ;
chomp $font ;
- $cleanfont = $font }
+ $cleanname = $cleanfont = $font }
else
{ my $command = "afm2tfm \"$file\" -p texnansi.enc texfont.tfm" ;
print "$command\n" if $trace ;
@@ -1035,8 +1035,8 @@ foreach my $file (@files)
report("no mapfile from otftotfm : texfont.map") ;
}
if ($preproc) {
- $mapline =~ s/^(\S+)/$1 </;
- $mapline =~ s/<<(\S+)\.otf$// ;
+ $mapline =~ s/<\[/</;
+ $mapline =~ s/<<(\S+)\.otf$/<$1\.pfb/ ;
} else {
$mapline =~ s/<<(\S+)\.otf$/<< $ttfpath\/$fontname.$extension/ ;
}
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 2be0548d3..1ec2a6ea1 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -767,7 +767,6 @@ class TEX
when 'interface' then
contextinterface = value
end
- end
end
end
end
diff --git a/scripts/context/ruby/base/tool.rb b/scripts/context/ruby/base/tool.rb
index c9e6a1890..7f40e773d 100644
--- a/scripts/context/ruby/base/tool.rb
+++ b/scripts/context/ruby/base/tool.rb
@@ -88,6 +88,7 @@ module Tool
begin
if f = open(filename,'rb') then
str = f.read(4000)
+ str.gsub!(/(.*?)\%\!PS/mo, "%!PS") # don't look into preamble crap
f.close
nn = str.count("\n")
nr = str.count("\r")
diff --git a/scripts/context/ruby/graphics/gs.rb b/scripts/context/ruby/graphics/gs.rb
index e9ad2a07f..807cad10c 100644
--- a/scripts/context/ruby/graphics/gs.rb
+++ b/scripts/context/ruby/graphics/gs.rb
@@ -213,7 +213,7 @@ class GhostScript
else report("invalid conversion method #{gsmethod}")
end
rescue
- report('job aborted due to some error')
+ report("job aborted due to some error #{$!}")
begin
File.delete(resultfile) if test(?e,resultfile)
rescue
@@ -321,7 +321,7 @@ class GhostScript
arguments = ''
arguments << "\@gsprofile.ini "
arguments << "-q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH "
-arguments << "#{gsdefaults} "
+ arguments << "#{gsdefaults} "
arguments << "#{gscolorswitch} "
arguments << "-sOutputFile=#{outfile} #{inpfile} -c quit "
@@ -352,14 +352,14 @@ arguments << "#{gsdefaults} "
arguments << "\@gsprofile.ini "
arguments << "-q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH -dSAFER"
arguments << "#{gscolorswitch} "
-arguments << "#{gsdefaults} "
+ arguments << "#{gsdefaults} "
arguments << "-sOutputFile=#{outfile} #{gsstream} -c quit "
debug("ghostscript: #{arguments}")
debug('opening input file')
@rs = Tool.line_separator(inpfile)
- debug("platform #{mac}") if @rs == "\r"
+ debug("platform mac") if @rs == "\r"
return false unless tmp = open(inpfile, 'rb')
@@ -402,6 +402,7 @@ arguments << "#{gsdefaults} "
report('no output file due to error')
File.delete(outfile) if test(?e,outfile)
rescue
+ # debug("fatal error: #{$!}")
debug('file',outfile,'may be invalid')
end
end
@@ -483,14 +484,11 @@ arguments << "#{gsdefaults} "
epsbbox, skip, buffer = false, false, ''
- debug('stripping preamble crap')
-
while str = eps.gets(rs=@rs) do
- if str =~ /%!PS/mois
- str = str.sub(/(.*)%!PS/mois, "%!PS")
- out.puts(str)
+ if str =~ /^%!PS/oi then
+ debug("looks like a valid ps file")
break
- elsif str =~ /%PDF\-\d+\.\d+/mois
+ elsif str =~ /%PDF\-\d+\.\d+/oi then
debug("looks like a pdf file, so let\'s quit")
return false
end
@@ -500,23 +498,35 @@ arguments << "#{gsdefaults} "
# why no BeginData check
- while str = eps.gets(rs=@rs)
+ eps.rewind
+
+ while str = eps.gets(rs=@rs) do
case str
when /^%%Page:/io then
break
- when /^%%(Crop|HiResBounding|ExactBounding)Box:#{@@bboxspec}/mois then
+ when /^%%(Crop|HiResBounding|ExactBounding)Box:#{@@bboxspec}/moi then
debug('high res boundingbox found')
setdimensions($2,$3,$4,$5)
break
- when /^%%BoundingBox:#{@@bboxspec}/mois then
+ when /^%%BoundingBox:#{@@bboxspec}/moi then
debug('low res boundingbox found')
setdimensions($1,$2,$3,$4)
end
end
+ debug('no boundingbox found') if @width == 0
+
eps.rewind
while str = eps.gets(rs=@rs) do
+ if str.sub!(/^(.*)%!PS/moi, "%!PS") then
+ debug("removing pre banner data")
+ out.puts(str)
+ break
+ end
+ end
+
+ while str = eps.gets(rs=@rs) do
if skip then
skip = false if str =~ /^%+(EndData|EndPhotoshop|BeginProlog).*$/o
out.puts(str) if $1 == "BeginProlog"
@@ -608,7 +618,7 @@ arguments << "#{gsdefaults} "
arguments = ''
arguments << "-dPDFSETTINGS=/#{method} -dEmbedAllFonts=true "
arguments << "#{gscolorswitch} "
-arguments << "#{gsdefaults} "
+ arguments << "#{gsdefaults} "
arguments << "-q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH -dSAFER "
arguments << "-sOutputFile=#{outfile} #{inpfile} -c quit "
unless ok = System.run('ghostscript',arguments) then
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 05b9cf46a..8a85f9a27 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{2005.06.07}
+\def\contextversion{2005.06.27}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index 7053f2bc0..5ca9989d6 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -1414,9 +1414,9 @@
\fi
% begin force convertable image into file
\doifmode{\systemmodeprefix\v!first}{\doifsomething\@@efconversion
- {\let\figurefilepath\@@efconversionpath
- \let\figurefilename\@@efconversionfile
- \let\figurefiletype\@@efconversiontype}}%
+ {% needs to be sorted out
+ \ifx\@@efconversionfile\undefined\else\let\figurefilename\@@efconversionfile\fi
+ \ifx\@@efconversiontype\undefined\else\let\figurefiletype\@@efconversiontype\fi}}%
% end
\ifconditional\externalfigureflush
\ifconditional\externalfigurelevel % probably background
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 4341a85c7..0fad94e5b 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -251,14 +251,14 @@
\getvalue{\??id#1\c!pagecommand}{#2}%
\dostopattributes}
-\def\registerentry #1{\executeifdefined{#1\s!entry }\gobbleoneargument }
-\def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument }
-\def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument }
-\def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument }
-\def\registersee #1{\executeifdefined{#1\s!see }\gobblethrearguments}
-\def\registerpage #1{\executeifdefined{#1\s!page }\gobblefourarguments}
-\def\registerfrom #1{\executeifdefined{#1\s!from }\gobblefourarguments}
-\def\registerto #1{\executeifdefined{#1\s!to }\gobblefourarguments}
+\def\registerentry #1{\executeifdefined{#1\s!entry }\gobbleoneargument }
+\def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument }
+\def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument }
+\def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument }
+\def\registersee #1{\executeifdefined{#1\s!see }\gobblethreearguments}
+\def\registerpage #1{\executeifdefined{#1\s!page }\gobblefourarguments }
+\def\registerfrom #1{\executeifdefined{#1\s!from }\gobblefourarguments }
+\def\registerto #1{\executeifdefined{#1\s!to }\gobblefourarguments }
\def\doresetregister#1%
{\letvalue{#1\s!entrya}\gobbleoneargument
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
index 7e8d995f5..a8dd993f6 100644
--- a/tex/context/base/core-uti.tex
+++ b/tex/context/base/core-uti.tex
@@ -503,23 +503,26 @@
% todo: store each entry in hash, an load all uti commands at once
-\def\dogettwopassdata[#1,#2]#3%
+% todo: use \expanded
+
+\def\dogettwopassdata[#1,#2]#3#4%
{\edef\twopassdata{#1}%
\ifx\twopassdata\notwopassdata
\twopassdatafoundfalse
\let\twopassdata\empty
\else
\twopassdatafoundtrue
- \setxvalue{#3:\s!list}{#2}%
+ \ifcase#4\or\setxvalue{#3:\s!list}{#2}\fi
\fi}
\def\gettwopassdata#1%
- {\loadtwopassdata
- \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname]{#1}}
+ {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname]{#1}\plusone}
+
+\def\checktwopassdata#1%
+ {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname]{#1}\zerocount}
\def\findtwopassdata#1#2%
- {\loadtwopassdata
- \expanded{\dofindtwopassdata{#1}{#2}}}
+ {\loadtwopassdata \expanded{\dofindtwopassdata{#1}{#2}}}
\def\dofindtwopassdata#1#2%
{\def\dodofindtwopassdata[##1,##2#2##3,##4]{\edef\twopassdata{##3}}%
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index 4add36b8d..f5395b13b 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -177,7 +177,7 @@
\doifnumberelse{\getvalue{#1\c!tab}}
{\def\obeytabs{\setfixedtabskips{\getvalue{#1\c!tab}}}}%
\donothing
- \def\verbatimfont{\getvalue{#1\c!style}}%
+ \def\verbatimfont{\getvalue{#1\c!style}\normalnoligatures\font}%
\setupverbatimcolor{#1}}
%D The verbatim commands have a rather long and turbulent
diff --git a/tex/context/base/enco-uc.tex b/tex/context/base/enco-uc.tex
index de8984017..ec76607f1 100644
--- a/tex/context/base/enco-uc.tex
+++ b/tex/context/base/enco-uc.tex
@@ -482,6 +482,13 @@
\definecharacter greekiotatonos {\uchar3{175}}
\definecharacter greekupsilondialytikatonos {\uchar3{176}}
+% new:
+\definecharacter greekthetaalt {\uchar3{209}}
+\definecharacter greekphialt {\uchar3{213}}
+\definecharacter greekpialt {\uchar3{214}}
+\definecharacter greekrhoalt {\uchar3{241}}
+\definecharacter greekepsilonalt {\uchar3{245}}
+
\stopencoding
% Cyrillic:
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 06bf96366..1f1cc11d6 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -2484,11 +2484,18 @@
% \getvalue{\s!default\s!default#2}{#1}{#2}}}
%
% but ... it needs to be as follows:
+%
+% \def\dodefineunknownbodyfont#1#2% see ***
+% {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*)
+% {\donetrue
+% \getvalue{\s!default\fontclass#2}{#1}{#2}}}
+%
+% eh ... this does not work so we revert back to:
\def\dodefineunknownbodyfont#1#2% see ***
- {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*)
+ {\doifdefined{\s!default\s!default#2}% somehow related to */*
{\donetrue
- \getvalue{\s!default\fontclass#2}{#1}{#2}}}
+ \getvalue{\s!default\s!default#2}{#1}{#2}}}
\def\dodefineunknownsubfont#1#2%
{\doifundefined{\@size@\getvalue{\??ft#1#2}}
diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex
index 61507afe8..0a3c1ea76 100644
--- a/tex/context/base/math-ini.tex
+++ b/tex/context/base/math-ini.tex
@@ -523,6 +523,7 @@
\usemathcollection [default] [tex]
\usemathcollection [default] [ams]
+\usemathcollection [default] [uni]
\enablemathcollection[default]
diff --git a/tex/context/base/math-tex.tex b/tex/context/base/math-tex.tex
index 9ca259b38..16601c1b2 100644
--- a/tex/context/base/math-tex.tex
+++ b/tex/context/base/math-tex.tex
@@ -1,7 +1,6 @@
%D \module
%D [ file=math-tex,
%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
%D subtitle=Plain Specials,
%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
diff --git a/tex/context/base/math-uni.tex b/tex/context/base/math-uni.tex
new file mode 100644
index 000000000..88698243f
--- /dev/null
+++ b/tex/context/base/math-uni.tex
@@ -0,0 +1,78 @@
+%D \module
+%D [ file=math-uni,
+%D version=2005.06.11,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=unicode support,
+%D author=Nikolai Weibull,
+%D date=\currentdate,
+%D copyright={PRAGMA / Nikolai Weibull}]
+
+\unprotect
+
+% needed for unic-033
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow}
+
+\stopmathcollection
+
+% needed for unic-034
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@in] {\in}
+ \definemathcommand [unic@nin] {\not\in}
+ \definemathcommand [unic@nni] {\not\ni}
+ \definemathcommand [unic@minus] {-}
+ \definemathcommand [unic@divisionslash] {/}
+ \definemathcommand [unic@sqrt] {\sqrt{}}
+ \definemathcommand [unic@cubesqrt] {\root 3 \of {}}
+ \definemathcommand [unic@fourthsqrt] {\root 4 \of {}}
+ \definemathcommand [unic@divides] [op] {|} % TODO
+ \definemathcommand [unic@ndivides] [rel] {\mathop{\not|}} % TODO: horrible
+ \definemathcommand [unic@cap] {\cap}
+ \definemathcommand [unic@dblint] {\int\!\!\!\int}
+ \definemathcommand [unic@triint] {\int\!\!\!\int\!\!\!\int}
+ \definemathcommand [unic@ratio] [rel] {:}
+ \definemathcommand [unic@proportion] [rel] {::}
+ \definemathcommand [unic@excess] [op] {-\!\!:}
+ \definemathcommand [unic@geomprop] [op] {:\!\!\!-\!\!\!:}
+ \definemathcommand [unic@homothetic] [op] {\sim\!\!\!:}
+ \definemathcommand [unic@nsimeq] {\not\simeq}
+ \definemathcommand [unic@cong] {\cong}
+ \definemathcommand [unic@napproxeq] {\not\approxeq}
+ \definemathcommand [unic@napprox] {\not\approx}
+ \definemathcommand [unic@doteq] {\doteq}
+ \definemathcommand [unic@correspondsto] {\buildrel \frown \over =}
+ \definemathcommand [unic@estimates] {\buildrel \wedge \over =}
+ \definemathcommand [unic@equiangularto] {\buildrel \vee \over =}
+ \definemathcommand [unic@stareq] {\buildrel \star \over =}
+ \definemathcommand [unic@eqbydef] {\buildrel \rm def \over =}
+ \definemathcommand [unic@measuredby] {\buildrel \rm m \over =}
+ \definemathcommand [unic@questionedeq] {\buildrel \rm ? \over =}
+ \definemathcommand [unic@nequiv] {\not\equiv}
+ \definemathcommand [unic@nasymp] {\not\asymp}
+ \definemathcommand [unic@nlesssim] {\not\lesssim}
+ \definemathcommand [unic@ngtrsim] {\not\gtrsim}
+ \definemathcommand [unic@nlessgtr] {\not\lessgtr}
+ \definemathcommand [unic@ngtrless] {\not\gtrless}
+ \definemathcommand [unic@nsubset] {\not\subset}
+ \definemathcommand [unic@nsupset] {\not\supset}
+ \definemathcommand [unic@nsqsubseteq] {\not\sqsubseteq}
+ \definemathcommand [unic@nsqsupseteq] {\not\sqsupseteq}
+
+\stopmathcollection
+
+% needed for unic-039
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@Lbracket] [open] {[\![}
+ \definemathcommand [unic@Rbracket] [close] {]\!]}
+ \definemathcommand [unic@Langle] [open] {\langle\!\langle}
+ \definemathcommand [unic@Rangle] [close] {\rangle\!\rangle}
+
+\stopmathcollection
+
+\protect \endinput
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 91a552b96..b8d057109 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -692,6 +692,7 @@
\definefileconstant {typeprefix} {type-}
\definefileconstant {xtagprefix} {xtag-}
\definefileconstant {propprefix} {prop-}
+\definefileconstant {unicprefix} {unic-}
\definefileconstant {moduleprefix} {m-}
\definefileconstant {styleprefix} {s-}
diff --git a/tex/context/base/page-num.tex b/tex/context/base/page-num.tex
index f27e2e8a7..358a30275 100644
--- a/tex/context/base/page-num.tex
+++ b/tex/context/base/page-num.tex
@@ -40,7 +40,7 @@
% hard to sync
%
-% \def\resetsubpagenumber%
+% \def\resetsubpagenumber
% {\resetnumber[\s!subpage]%
% \global\subpageno=\rawnumber[\s!subpage]}
%
@@ -94,24 +94,20 @@
\def\savenofsubpages
{\ifsubpaging
\showmessage\m!layouts6{\newnofsubpages,\the\subpageno}%
- \immediatewriteutilitycommand
- {\twopassentry%
- {\s!subpage}%
- {\newnofsubpages}%
- {\the\subpageno}}%
+ \immediatewriteutilitycommand{\twopassentry{\s!subpage}{\newnofsubpages}{\the\subpageno}}%
\fi}
\def\setsubpagenumbers
{\iftwopassdatafound
\bgroup
- \xdef\nofsubpages {\twopassdata}%
- \xdef\firstsubpage {\realfolio}%
- \advance\realpageno \nofsubpages
- \advance\realpageno \minusone
- \xdef\lastsubpage {\realfolio}%
+ \xdef \nofsubpages {\twopassdata}%
+ \xdef \firstsubpage {\realfolio}%
+ \advance\realpageno \nofsubpages
+ \advance\realpageno \minusone
+ \xdef \lastsubpage {\realfolio}%
\egroup
\else
- \xdef\nofsubpages{0}%
+ \xdef \nofsubpages{0}%
\fi}
\def\gotonextsubpage % overlapt behoorlijk met realpage macro
diff --git a/tex/context/base/syst-con.tex b/tex/context/base/syst-con.tex
index 473be7a9f..a9e04921f 100644
--- a/tex/context/base/syst-con.tex
+++ b/tex/context/base/syst-con.tex
@@ -199,4 +199,13 @@
\egroup
+%D \macros
+%D {threedigits}
+%D
+%D This one provides three digits always.
+
+\def\threedigits#1%
+ {\ifnum#1<10 00\else\ifnum#1<100 0\fi\fi\number#1}
+
+
\protect \endinput
diff --git a/tex/context/base/syst-prm.tex b/tex/context/base/syst-prm.tex
index 05aa171ce..9864dc5d4 100644
--- a/tex/context/base/syst-prm.tex
+++ b/tex/context/base/syst-prm.tex
@@ -131,4 +131,13 @@
\def\dump{\the\everydump\normaldump}
+%D Ligature prevention (for instance, ec encoding has ligatures
+%D in mono spaced fonts).
+
+\ifx\noligatures\undefined
+ \def\noligatures#1{}
+\fi
+
+\let\normalnoligatures\noligatures
+
\protect \endinput
diff --git a/tex/context/base/type-dis.tex b/tex/context/base/type-dis.tex
index bd385db08..9dd0218dd 100644
--- a/tex/context/base/type-dis.tex
+++ b/tex/context/base/type-dis.tex
@@ -475,4 +475,6 @@
\stoptypescript
-\stoptypescriptcollection \endinput
+\stoptypescriptcollection
+
+\endinput
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 6928d9365..3fdb36000 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -26,9 +26,7 @@
\starttypescriptcollection[encodings]
-\starttypescript [all] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
-
- % Regular
+\starttypescript [serif] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
\definefontsynonym [cmr5] [\typescriptthree-lmr5] [encoding=\typescriptthree]
\definefontsynonym [cmr6] [\typescriptthree-lmr6] [encoding=\typescriptthree]
@@ -66,22 +64,9 @@
\definefontsynonym [cmcsc10] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
\definefontsynonym [cmcscsl10][\typescriptthree-lmcsco10] [encoding=\typescriptthree]
- % Mono
-
- \definefontsynonym [cmtt8] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
- \definefontsynonym [cmtt9] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
- \definefontsynonym [cmtt10] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
- \definefontsynonym [cmtt12] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
-
- \definefontsynonym [cmitt10] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
- \definefontsynonym [cmsltt10] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
-
- \definefontsynonym [cmvtt10] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
- \definefontsynonym [cmvtti10] [\typescriptthree-lmvtto] [encoding=\typescriptthree]
-
- \definefontsynonym [cmcsc10] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
+\stoptypescript
- % Sans
+\starttypescript [sans] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
\definefontsynonym [cmss8] [\typescriptthree-lmss8] [encoding=\typescriptthree]
\definefontsynonym [cmss9] [\typescriptthree-lmss9] [encoding=\typescriptthree]
@@ -107,6 +92,21 @@
\stoptypescript
+\starttypescript [mono] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
+
+ \definefontsynonym [cmtt8] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt9] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt10] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt12] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
+
+ \definefontsynonym [cmitt10] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
+ \definefontsynonym [cmsltt10] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
+
+ \definefontsynonym [cmvtt10] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
+ \definefontsynonym [cmvtti10] [\typescriptthree-lmvtto] [encoding=\typescriptthree]
+
+\stoptypescript
+
% \starttypescript [all] [computer-modern] [ec] % will become ae
% \definefontsynonym [cmb10] [aeb10] [encoding=ec,handling=glm]
% \definefontsynonym [cmbx10] [aebx10] [encoding=ec,handling=glm]
@@ -432,7 +432,7 @@
%D match those of cm-super (\type {0NNN} instead of \type
%D {NNN}, i.e.\ four digit numbers).
-\starttypescript [all] [computer-modern] [cyr]
+\starttypescript [serif] [computer-modern] [cyr]
\definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
\definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
\definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a]
@@ -447,7 +447,6 @@
\definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a]
%definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a]
\definefontsynonym [cminch] [wcminch] [encoding=t2a]
- \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
\definefontsynonym [cmr10] [wcmr10] [encoding=t2a]
\definefontsynonym [cmr12] [wcmr12] [encoding=t2a]
\definefontsynonym [cmr17] [wcmr17] [encoding=t2a]
@@ -460,7 +459,15 @@
\definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a]
\definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a]
\definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a]
- \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
+ \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
+ \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
+ \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
+ \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
+ \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
+ \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [cyr]
\definefontsynonym [cmss10] [wcmss10] [encoding=t2a]
\definefontsynonym [cmss12] [wcmss12] [encoding=t2a]
\definefontsynonym [cmss17] [wcmss17] [encoding=t2a]
@@ -476,256 +483,89 @@
\definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a]
\definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a]
\definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a]
- \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
- \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
- \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
- \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
- \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [cyr]
+ \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
+ \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
\definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a]
\definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a]
\definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a]
\definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a]
- \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
%definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a]
\stoptypescript
-\starttypescript [all] [computer-modern] [t2a]
- \definefontsynonym [cmb10] [larb1000] [encoding=t2a]
- \definefontsynonym [cmbx10] [labx1000] [encoding=t2a]
- \definefontsynonym [cmbx12] [labx1200] [encoding=t2a]
- \definefontsynonym [cmbx5] [labx0500] [encoding=t2a]
- \definefontsynonym [cmbx6] [labx0600] [encoding=t2a]
- \definefontsynonym [cmbx7] [labx0700] [encoding=t2a]
- \definefontsynonym [cmbx8] [labx0800] [encoding=t2a]
- \definefontsynonym [cmbx9] [labx0900] [encoding=t2a]
- \definefontsynonym [cmbxsl10] [labl1000] [encoding=t2a]
- \definefontsynonym [cmbxti10] [labi1000] [encoding=t2a]
- \definefontsynonym [cmcsc10] [lacc1000] [encoding=t2a]
- \definefontsynonym [cmdunh10] [ladh1000] [encoding=t2a]
- \definefontsynonym [cmff10] [laff1000] [encoding=t2a]
- \definefontsynonym [cmfi10] [lafi1000] [encoding=t2a]
- \definefontsynonym [cmfib8] [lafb0800] [encoding=t2a]
- %\definefontsynonym [cminch] [lainch00] [encoding=t2a]
- \definefontsynonym [cmitt10] [lait1000] [encoding=t2a]
- \definefontsynonym [cmr10] [larm1000] [encoding=t2a]
- \definefontsynonym [cmr12] [larm1200] [encoding=t2a]
- \definefontsynonym [cmr17] [larm1700] [encoding=t2a]
- \definefontsynonym [cmr5] [larm0500] [encoding=t2a]
- \definefontsynonym [cmr6] [larm0600] [encoding=t2a]
- \definefontsynonym [cmr7] [larm0700] [encoding=t2a]
- \definefontsynonym [cmr8] [larm0800] [encoding=t2a]
- \definefontsynonym [cmr9] [larm0900] [encoding=t2a]
- \definefontsynonym [cmsl10] [lasl1000] [encoding=t2a]
- \definefontsynonym [cmsl12] [lasl1200] [encoding=t2a]
- \definefontsynonym [cmsl8] [lasl0800] [encoding=t2a]
- \definefontsynonym [cmsl9] [lasl0900] [encoding=t2a]
- \definefontsynonym [cmsltt10] [last1000] [encoding=t2a]
- \definefontsynonym [cmss10] [lass1000] [encoding=t2a]
- \definefontsynonym [cmss12] [lass1200] [encoding=t2a]
- \definefontsynonym [cmss17] [lass1700] [encoding=t2a]
- \definefontsynonym [cmss8] [lass0800] [encoding=t2a]
- \definefontsynonym [cmss9] [lass0900] [encoding=t2a]
- \definefontsynonym [cmssbx10] [lasx1000] [encoding=t2a]
- %\definefontsynonym [cmssdc10] [lassdc1000] [encoding=t2a]
- \definefontsynonym [cmssi10] [lasi1000] [encoding=t2a]
- \definefontsynonym [cmssi12] [lasi1200] [encoding=t2a]
- \definefontsynonym [cmssi17] [lasi1700] [encoding=t2a]
- \definefontsynonym [cmssi8] [lasi0800] [encoding=t2a]
- \definefontsynonym [cmssi9] [lasi0900] [encoding=t2a]
- \definefontsynonym [cmssq8] [lass0800] [encoding=t2a]
- \definefontsynonym [cmssqi8] [lasi0800] [encoding=t2a]
- \definefontsynonym [cmtcsc10] [latc1000] [encoding=t2a]
- \definefontsynonym [cmti10] [lati1000] [encoding=t2a]
- \definefontsynonym [cmti12] [lati1200] [encoding=t2a]
- \definefontsynonym [cmti7] [lati0700] [encoding=t2a]
- \definefontsynonym [cmti8] [lati0800] [encoding=t2a]
- \definefontsynonym [cmti9] [lati0900] [encoding=t2a]
- \definefontsynonym [cmtt10] [latt1000] [encoding=t2a]
- \definefontsynonym [cmtt12] [latt1200] [encoding=t2a]
- \definefontsynonym [cmtt8] [latt0800] [encoding=t2a]
- \definefontsynonym [cmtt9] [latt0900] [encoding=t2a]
- \definefontsynonym [cmu10] [laui1000] [encoding=t2a]
- \definefontsynonym [cmvtt10] [lavt1000] [encoding=t2a]
-\stoptypescript
-
-\starttypescript [all] [computer-modern] [t2b]
- \definefontsynonym [cmb10] [lbrb1000] [encoding=t2b]
- \definefontsynonym [cmbx10] [lbbx1000] [encoding=t2b]
- \definefontsynonym [cmbx12] [lbbx1200] [encoding=t2b]
- \definefontsynonym [cmbx5] [lbbx0500] [encoding=t2b]
- \definefontsynonym [cmbx6] [lbbx0600] [encoding=t2b]
- \definefontsynonym [cmbx7] [lbbx0700] [encoding=t2b]
- \definefontsynonym [cmbx8] [lbbx0800] [encoding=t2b]
- \definefontsynonym [cmbx9] [lbbx0900] [encoding=t2b]
- \definefontsynonym [cmbxsl10] [lbbl1000] [encoding=t2b]
- \definefontsynonym [cmbxti10] [lbbi1000] [encoding=t2b]
- \definefontsynonym [cmcsc10] [lbcc1000] [encoding=t2b]
- \definefontsynonym [cmdunh10] [lbdh1000] [encoding=t2b]
- \definefontsynonym [cmff10] [lbff1000] [encoding=t2b]
- \definefontsynonym [cmfi10] [lbfi1000] [encoding=t2b]
- \definefontsynonym [cmfib8] [lbfb0800] [encoding=t2b]
- %\definefontsynonym [cminch] [lbinch00] [encoding=t2b]
- \definefontsynonym [cmitt10] [lbit1000] [encoding=t2b]
- \definefontsynonym [cmr10] [lbrm1000] [encoding=t2b]
- \definefontsynonym [cmr12] [lbrm1200] [encoding=t2b]
- \definefontsynonym [cmr17] [lbrm1700] [encoding=t2b]
- \definefontsynonym [cmr5] [lbrm0500] [encoding=t2b]
- \definefontsynonym [cmr6] [lbrm0600] [encoding=t2b]
- \definefontsynonym [cmr7] [lbrm0700] [encoding=t2b]
- \definefontsynonym [cmr8] [lbrm0800] [encoding=t2b]
- \definefontsynonym [cmr9] [lbrm0900] [encoding=t2b]
- \definefontsynonym [cmsl10] [lbsl1000] [encoding=t2b]
- \definefontsynonym [cmsl12] [lbsl1200] [encoding=t2b]
- \definefontsynonym [cmsl8] [lbsl0800] [encoding=t2b]
- \definefontsynonym [cmsl9] [lbsl0900] [encoding=t2b]
- \definefontsynonym [cmsltt10] [lbst1000] [encoding=t2b]
- \definefontsynonym [cmss10] [lbss1000] [encoding=t2b]
- \definefontsynonym [cmss12] [lbss1200] [encoding=t2b]
- \definefontsynonym [cmss17] [lbss1700] [encoding=t2b]
- \definefontsynonym [cmss8] [lbss0800] [encoding=t2b]
- \definefontsynonym [cmss9] [lbss0900] [encoding=t2b]
- \definefontsynonym [cmssbx10] [lbsx1000] [encoding=t2b]
- %\definefontsynonym [cmssdc10] [lbssdc1000] [encoding=t2b]
- \definefontsynonym [cmssi10] [lbsi1000] [encoding=t2b]
- \definefontsynonym [cmssi12] [lbsi1200] [encoding=t2b]
- \definefontsynonym [cmssi17] [lbsi1700] [encoding=t2b]
- \definefontsynonym [cmssi8] [lbsi0800] [encoding=t2b]
- \definefontsynonym [cmssi9] [lbsi0900] [encoding=t2b]
- \definefontsynonym [cmssq8] [lbss0800] [encoding=t2b]
- \definefontsynonym [cmssqi8] [lbsi0800] [encoding=t2b]
- \definefontsynonym [cmtcsc10] [lbtc1000] [encoding=t2b]
- \definefontsynonym [cmti10] [lbti1000] [encoding=t2b]
- \definefontsynonym [cmti12] [lbti1200] [encoding=t2b]
- \definefontsynonym [cmti7] [lbti0700] [encoding=t2b]
- \definefontsynonym [cmti8] [lbti0800] [encoding=t2b]
- \definefontsynonym [cmti9] [lbti0900] [encoding=t2b]
- \definefontsynonym [cmtt10] [lbtt1000] [encoding=t2b]
- \definefontsynonym [cmtt12] [lbtt1200] [encoding=t2b]
- \definefontsynonym [cmtt8] [lbtt0800] [encoding=t2b]
- \definefontsynonym [cmtt9] [lbtt0900] [encoding=t2b]
- \definefontsynonym [cmu10] [lbui1000] [encoding=t2b]
- \definefontsynonym [cmvtt10] [lbvt1000] [encoding=t2b]
+\definetypescriptprefix [c:t2a] [la]
+\definetypescriptprefix [c:t2b] [lb]
+\definetypescriptprefix [c:t2c] [lc]
+\definetypescriptprefix [c:x2] [rx]
+
+\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree]
+ %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree]
+ \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree]
+ \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree]
+ \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree]
\stoptypescript
-\starttypescript [all] [computer-modern] [t2c]
- \definefontsynonym [cmb10] [lcrb1000] [encoding=t2c]
- \definefontsynonym [cmbx10] [lcbx1000] [encoding=t2c]
- \definefontsynonym [cmbx12] [lcbx1200] [encoding=t2c]
- \definefontsynonym [cmbx5] [lcbx0500] [encoding=t2c]
- \definefontsynonym [cmbx6] [lcbx0600] [encoding=t2c]
- \definefontsynonym [cmbx7] [lcbx0700] [encoding=t2c]
- \definefontsynonym [cmbx8] [lcbx0800] [encoding=t2c]
- \definefontsynonym [cmbx9] [lcbx0900] [encoding=t2c]
- \definefontsynonym [cmbxsl10] [lcbl1000] [encoding=t2c]
- \definefontsynonym [cmbxti10] [lcbi1000] [encoding=t2c]
- \definefontsynonym [cmcsc10] [lccc1000] [encoding=t2c]
- \definefontsynonym [cmdunh10] [lcdh1000] [encoding=t2c]
- \definefontsynonym [cmff10] [lcff1000] [encoding=t2c]
- \definefontsynonym [cmfi10] [lcfi1000] [encoding=t2c]
- \definefontsynonym [cmfib8] [lcfb0800] [encoding=t2c]
- %\definefontsynonym [cminch] [lcinch00] [encoding=t2c]
- \definefontsynonym [cmitt10] [lcit1000] [encoding=t2c]
- \definefontsynonym [cmr10] [lcrm1000] [encoding=t2c]
- \definefontsynonym [cmr12] [lcrm1200] [encoding=t2c]
- \definefontsynonym [cmr17] [lcrm1700] [encoding=t2c]
- \definefontsynonym [cmr5] [lcrm0500] [encoding=t2c]
- \definefontsynonym [cmr6] [lcrm0600] [encoding=t2c]
- \definefontsynonym [cmr7] [lcrm0700] [encoding=t2c]
- \definefontsynonym [cmr8] [lcrm0800] [encoding=t2c]
- \definefontsynonym [cmr9] [lcrm0900] [encoding=t2c]
- \definefontsynonym [cmsl10] [lcsl1000] [encoding=t2c]
- \definefontsynonym [cmsl12] [lcsl1200] [encoding=t2c]
- \definefontsynonym [cmsl8] [lcsl0800] [encoding=t2c]
- \definefontsynonym [cmsl9] [lcsl0900] [encoding=t2c]
- \definefontsynonym [cmsltt10] [lcst1000] [encoding=t2c]
- \definefontsynonym [cmss10] [lcss1000] [encoding=t2c]
- \definefontsynonym [cmss12] [lcss1200] [encoding=t2c]
- \definefontsynonym [cmss17] [lcss1700] [encoding=t2c]
- \definefontsynonym [cmss8] [lcss0800] [encoding=t2c]
- \definefontsynonym [cmss9] [lcss0900] [encoding=t2c]
- \definefontsynonym [cmssbx10] [lcsx1000] [encoding=t2c]
- %\definefontsynonym [cmssdc10] [lcssdc1000] [encoding=t2c]
- \definefontsynonym [cmssi10] [lcsi1000] [encoding=t2c]
- \definefontsynonym [cmssi12] [lcsi1200] [encoding=t2c]
- \definefontsynonym [cmssi17] [lcsi1700] [encoding=t2c]
- \definefontsynonym [cmssi8] [lcsi0800] [encoding=t2c]
- \definefontsynonym [cmssi9] [lcsi0900] [encoding=t2c]
- \definefontsynonym [cmssq8] [lcss0800] [encoding=t2c]
- \definefontsynonym [cmssqi8] [lcsi0800] [encoding=t2c]
- \definefontsynonym [cmtcsc10] [lctc1000] [encoding=t2c]
- \definefontsynonym [cmti10] [lcti1000] [encoding=t2c]
- \definefontsynonym [cmti12] [lcti1200] [encoding=t2c]
- \definefontsynonym [cmti7] [lcti0700] [encoding=t2c]
- \definefontsynonym [cmti8] [lcti0800] [encoding=t2c]
- \definefontsynonym [cmti9] [lcti0900] [encoding=t2c]
- \definefontsynonym [cmtt10] [lctt1000] [encoding=t2c]
- \definefontsynonym [cmtt12] [lctt1200] [encoding=t2c]
- \definefontsynonym [cmtt8] [lctt0800] [encoding=t2c]
- \definefontsynonym [cmtt9] [lctt0900] [encoding=t2c]
- \definefontsynonym [cmu10] [lcui1000] [encoding=t2c]
- \definefontsynonym [cmvtt10] [lcvt1000] [encoding=t2c]
+\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
+ %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
\stoptypescript
-\starttypescript [all] [computer-modern] [x2]
- \definefontsynonym [cmb10] [rxrb1000] [encoding=x2]
- \definefontsynonym [cmbx10] [rxbx1000] [encoding=x2]
- \definefontsynonym [cmbx12] [rxbx1200] [encoding=x2]
- \definefontsynonym [cmbx5] [rxbx0500] [encoding=x2]
- \definefontsynonym [cmbx6] [rxbx0600] [encoding=x2]
- \definefontsynonym [cmbx7] [rxbx0700] [encoding=x2]
- \definefontsynonym [cmbx8] [rxbx0800] [encoding=x2]
- \definefontsynonym [cmbx9] [rxbx0900] [encoding=x2]
- \definefontsynonym [cmbxsl10] [rxbl1000] [encoding=x2]
- \definefontsynonym [cmbxti10] [rxbi1000] [encoding=x2]
- \definefontsynonym [cmcsc10] [rxcc1000] [encoding=x2]
- \definefontsynonym [cmdunh10] [rxdh1000] [encoding=x2]
- \definefontsynonym [cmff10] [rxff1000] [encoding=x2]
- \definefontsynonym [cmfi10] [rxfi1000] [encoding=x2]
- \definefontsynonym [cmfib8] [rxfb0800] [encoding=x2]
- %\definefontsynonym [cminch] [rxinch00] [encoding=x2]
- \definefontsynonym [cmitt10] [rxit1000] [encoding=x2]
- \definefontsynonym [cmr10] [rxrm1000] [encoding=x2]
- \definefontsynonym [cmr12] [rxrm1200] [encoding=x2]
- \definefontsynonym [cmr17] [rxrm1700] [encoding=x2]
- \definefontsynonym [cmr5] [rxrm0500] [encoding=x2]
- \definefontsynonym [cmr6] [rxrm0600] [encoding=x2]
- \definefontsynonym [cmr7] [rxrm0700] [encoding=x2]
- \definefontsynonym [cmr8] [rxrm0800] [encoding=x2]
- \definefontsynonym [cmr9] [rxrm0900] [encoding=x2]
- \definefontsynonym [cmsl10] [rxsl1000] [encoding=x2]
- \definefontsynonym [cmsl12] [rxsl1200] [encoding=x2]
- \definefontsynonym [cmsl8] [rxsl0800] [encoding=x2]
- \definefontsynonym [cmsl9] [rxsl0900] [encoding=x2]
- \definefontsynonym [cmsltt10] [rxst1000] [encoding=x2]
- \definefontsynonym [cmss10] [rxss1000] [encoding=x2]
- \definefontsynonym [cmss12] [rxss1200] [encoding=x2]
- \definefontsynonym [cmss17] [rxss1700] [encoding=x2]
- \definefontsynonym [cmss8] [rxss0800] [encoding=x2]
- \definefontsynonym [cmss9] [rxss0900] [encoding=x2]
- \definefontsynonym [cmssbx10] [rxsx1000] [encoding=x2]
- %\definefontsynonym [cmssdc10] [rxssdc1000] [encoding=x2]
- \definefontsynonym [cmssi10] [rxsi1000] [encoding=x2]
- \definefontsynonym [cmssi12] [rxsi1200] [encoding=x2]
- \definefontsynonym [cmssi17] [rxsi1700] [encoding=x2]
- \definefontsynonym [cmssi8] [rxsi0800] [encoding=x2]
- \definefontsynonym [cmssi9] [rxsi0900] [encoding=x2]
- \definefontsynonym [cmssq8] [rxss0800] [encoding=x2]
- \definefontsynonym [cmssqi8] [rxsi0800] [encoding=x2]
- \definefontsynonym [cmtcsc10] [rxtc1000] [encoding=x2]
- \definefontsynonym [cmti10] [rxti1000] [encoding=x2]
- \definefontsynonym [cmti12] [rxti1200] [encoding=x2]
- \definefontsynonym [cmti7] [rxti0700] [encoding=x2]
- \definefontsynonym [cmti8] [rxti0800] [encoding=x2]
- \definefontsynonym [cmti9] [rxti0900] [encoding=x2]
- \definefontsynonym [cmtt10] [rxtt1000] [encoding=x2]
- \definefontsynonym [cmtt12] [rxtt1200] [encoding=x2]
- \definefontsynonym [cmtt8] [rxtt0800] [encoding=x2]
- \definefontsynonym [cmtt9] [rxtt0900] [encoding=x2]
- \definefontsynonym [cmu10] [rxui1000] [encoding=x2]
- \definefontsynonym [cmvtt10] [rxvt1000] [encoding=x2]
+\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree]
\stoptypescript
-\starttypescript [all] [computer-modern] [lcy]
+\starttypescript [serif] [computer-modern] [lcy]
\definefontsynonym [cmb10] [lhb10] [encoding=lcy]
\definefontsynonym [cmbx10] [lhbx10] [encoding=lcy]
\definefontsynonym [cmbx12] [lhbx12] [encoding=lcy]
@@ -742,7 +582,6 @@
\definefontsynonym [cmfi10] [lhfi10] [encoding=lcy]
\definefontsynonym [cmfib8] [lhfib8] [encoding=lcy]
\definefontsynonym [cminch] [lhinch] [encoding=lcy]
- \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
\definefontsynonym [cmr10] [lhr10] [encoding=lcy]
\definefontsynonym [cmr12] [lhr12] [encoding=lcy]
\definefontsynonym [cmr17] [lhr17] [encoding=lcy]
@@ -755,7 +594,19 @@
\definefontsynonym [cmsl12] [lhsl12] [encoding=lcy]
\definefontsynonym [cmsl8] [lhsl8] [encoding=lcy]
\definefontsynonym [cmsl9] [lhsl9] [encoding=lcy]
- \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
+ \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
+ \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
+ \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
+ \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
+ \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
+ \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
+ \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
+ \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
+ \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
+ \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [lcy]
\definefontsynonym [cmss10] [lhss10] [encoding=lcy]
\definefontsynonym [cmss12] [lhss12] [encoding=lcy]
\definefontsynonym [cmss17] [lhss17] [encoding=lcy]
@@ -771,20 +622,15 @@
\definefontsynonym [cmssi9] [lhssi9] [encoding=lcy]
\definefontsynonym [cmssq8] [lhssq8] [encoding=lcy]
\definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy]
- \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
- \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
- \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
- \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
- \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
- \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
- \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
- \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
- \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [lcy]
+ \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
+ \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
\definefontsynonym [cmtt10] [lhtt10] [encoding=lcy]
\definefontsynonym [cmtt12] [lhtt12] [encoding=lcy]
\definefontsynonym [cmtt8] [lhtt8] [encoding=lcy]
\definefontsynonym [cmtt9] [lhtt9] [encoding=lcy]
- \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
\definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
\stoptypescript
@@ -1016,7 +862,7 @@
% \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
% \stoptypescript
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,t2a,t2b,t2c]
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek]
\definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree]
@@ -1040,7 +886,7 @@
\definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree]
@@ -1048,20 +894,21 @@
\definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree]
\stoptypescript
% duplicates ? ?
+% atl: no: fallbacks for the named variants
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c]
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek]
\definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
@@ -1069,7 +916,7 @@
\definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
@@ -1080,7 +927,7 @@
\definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
@@ -1088,7 +935,7 @@
\definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
\definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 645956065..5b6c4e551 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -135,7 +135,7 @@
\pushmacro\typescriptstate \chardef\typescriptstate\plusone % process
\pushmacro\stoptypescript
\typescriptfoundfalse
- \iftracetypescripts\writestatus\m!fonts{[\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi
+ \iftracetypescripts\writestatus\m!fonts{request: [\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi
\processcommacommand[\typescriptfiles]\dododousetypescript
\the\documenttypescripts
\firsttypescriptpassfalse % testen
@@ -282,6 +282,7 @@
{\let\typescriptone \@@typescriptone
\let\typescripttwo \@@typescripttwo
\let\typescriptthree\@@typescriptthree
+ \let\typescriptmatch\empty
\doifnextcharelse[\dostarttypescriptone\dostarttypescriptall}
\long\def\dostarttypescriptall
@@ -297,6 +298,7 @@
\long\def\dostarttypescriptyes
{\ifdone
\typescriptfoundtrue
+ \iftracetypescripts\writestatus\m!fonts{match: \ifx\currenttypefile\relax-\fi \typescriptmatch}\fi
\expandafter\doprocesstypescript
\else
\expandafter\noprocesstypescript
@@ -329,6 +331,8 @@
\long\def\noprocesstypescript#1\stoptypescript
{}
+\let\typescriptmatch\empty
+
\def\dochecktypescript#1#2#3[#4]% script use value next
{\donefalse
\def\@@typescriptcheck{#4}%
@@ -342,6 +346,7 @@
\let#2\commalistelement
\fi\fi\fi\fi
\ifdone
+ \edef\typescriptmatch{\typescriptmatch\space[#4]}%
\expandafter#3%
\else
\expandafter\noprocesstypescript
@@ -503,14 +508,14 @@
{\setvalue{\??ts::#1}{#2}}
% without testing:
-
-\def\typescriptprefix#1%
- {\csname\??ts::#1\endcsname}
-
-% with testing:
%
% \def\typescriptprefix#1%
-% {\executeifdefined{\??ts::#1}{#1}}
+% {\csname\??ts::#1\endcsname}
+%
+% with testing:
+
+\def\typescriptprefix#1%
+ {\executeifdefined{\??ts::#1}{#1}}
% defining typefaces:
%
@@ -574,7 +579,7 @@
\let\typefaceencoding\@@tsencoding
\setcurrentfontclass{#1}%
\saverelativefontsize{#2}{\relativefontsize}% fall back
- \iftracetypescripts\writestatus\m!fonts{[#1] [#2] [#3] [#4] / \typefaceencoding}\fi
+ \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4] / \typefaceencoding}\fi
%\usetypescript[map][\typefaceencoding]% latest versions of pdftex can load after first page
\usetypescript[#3,\t!map][#4][\t!name,\t!default,\typefaceencoding,\t!special]% is default needed
\usetypescript[#3][#5][\t!size]%
diff --git a/tex/context/base/unic-000.tex b/tex/context/base/unic-000.tex
index abf23fbf9..cb4c1fe8a 100644
--- a/tex/context/base/unic-000.tex
+++ b/tex/context/base/unic-000.tex
@@ -30,7 +30,7 @@
\startunicodevector 0
\expandafter\strippedcsname
- \ifcase\numexpr(#1-159) % space needed, terminates expr
+ \ifcase\numexpr#1-159\relax
\unknownchar \or
\nonbreakablespace \or
\exclamdown \or
diff --git a/tex/context/base/unic-001.tex b/tex/context/base/unic-001.tex
index 672b1cd67..0c53fbcd6 100644
--- a/tex/context/base/unic-001.tex
+++ b/tex/context/base/unic-001.tex
@@ -28,8 +28,7 @@
\startunicodevector 1
\expandafter\strippedcsname
- \ifcase\numexpr(#1+1) % space needed, terminates expr
- \unknownchar \or
+ \ifcase\numexpr#1\relax
\Amacron \or
\amacron \or
\Abreve \or
diff --git a/tex/context/base/unic-002.tex b/tex/context/base/unic-002.tex
index 04cfa5c79..bd9e34686 100644
--- a/tex/context/base/unic-002.tex
+++ b/tex/context/base/unic-002.tex
@@ -14,10 +14,10 @@
\unprotect
\startunicodevector 2
- \ifcase\numexpr(#1-198)
+ \ifcase\numexpr#1-198\relax
\strippedcsname \textcircumflex \or
\strippedcsname \textcaron \else
- \ifcase\numexpr(#1-216)
+ \ifcase\numexpr#1-216\relax
\strippedcsname \textbreve \or
\strippedcsname \textdotaccent \or
\strippedcsname \unknownchar \or
diff --git a/tex/context/base/unic-003.tex b/tex/context/base/unic-003.tex
index 94137dc1c..1ce1ade8d 100644
--- a/tex/context/base/unic-003.tex
+++ b/tex/context/base/unic-003.tex
@@ -14,7 +14,7 @@
\unprotect
\startunicodevector 3
- \ifcase\numexpr(#1-132) % keep space
+ \ifcase\numexpr#1-132\relax
% special greek
\strippedcsname \greektonos \or
\strippedcsname \greekdialytikatonos \or
@@ -28,7 +28,7 @@
\strippedcsname \unknownchar \or
\strippedcsname \greekUpsilontonos \or
\strippedcsname \greekOmegatonos \or
- \strippedscname \greekiotadialytikatonos \or
+ \strippedcsname \greekiotadialytikatonos \or
% normal greek
\strippedcsname \greekAlpha \or
\strippedcsname \greekBeta \or
@@ -94,7 +94,46 @@
\strippedcsname \greekupsilondialytika \or
\strippedcsname \greekomicrontonos \or
\strippedcsname \greekupsilontonos \or
- \strippedcsname \greeekomegatonos \else
+ \strippedcsname \greekomegatonos \or % was greeek!
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or % beta alt
+ \strippedcsname \greekthetaalt \or
+ \strippedcsname \unknownchar \or % upsilon hook
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \greekphialt \or
+ \strippedcsname \greekpialt \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or % Sampi
+ \strippedcsname \unknownchar \or % sampi
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or % kappa alt
+ \strippedcsname \greekrhoalt \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \greekepsilonalt \else
\strippedcsname \unknownchar
\fi
\stopunicodevector
diff --git a/tex/context/base/unic-004.tex b/tex/context/base/unic-004.tex
index 1f1b20762..4ab7d5fb5 100644
--- a/tex/context/base/unic-004.tex
+++ b/tex/context/base/unic-004.tex
@@ -15,7 +15,7 @@
\startunicodevector 4
\expandafter\strippedcsname
- \ifcase\numexpr(#1) % space needed, terminates expr
+ \ifcase\numexpr#1\relax
\cyrillicEgrave \or % 04-00 \uchar0{200} aswell
\cyrillicYO \or % 04-01 Capital YO (or IO)
\cyrillicDJE \or % 04-02
@@ -121,7 +121,7 @@
\cyrillicLITTLEYUS \or % 0466 Little Yus not in enco-enc.tex
\cyrilliclittleyus \or % 0467 Little yus not in enco-enc.tex
\cyrillicLITTLEYUSiotified \or % 0468 Little Yus iotified not in enco-enc.tex
- \cyrilliclittleyusiotified \o % 0469 Little yus iotified not in enco-enc.tex
+ \cyrilliclittleyusiotified \or % 0469 Little yus iotified not in enco-enc.tex
\cyrillicBIGYUS \or % 046A Big Yus not in enco-enc.tex
\cyrillicbigyus \or % 046B Big yus not in enco-enc.tex
\cyrillicBIGYUSiotified \or % 046C Big Yus iotified not in enco-enc.tex
diff --git a/tex/context/base/unic-005.tex b/tex/context/base/unic-005.tex
index 75a9e685f..b25c323e4 100644
--- a/tex/context/base/unic-005.tex
+++ b/tex/context/base/unic-005.tex
@@ -1 +1 @@
-%D \module %D [ file=unic-005, %D version=2005.01.27, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 5, %D author=Adam Lindsay, %D date=\currentdate, %D copyright=\PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 5 \expandafter\strippedcsname \ifcase\numexpr(#1-224) % space needed, terminates expr \hebrewAlef \or % 05D0 \hebrewBet \or \hebrewGimel \or \hebrewDalet \or \hebrewHe \or \hebrewVav \or \hebrewZayin \or \hebrewHet \or \hebrewTet \or \hebrewYod \or \hebrewKaffinal \or \hebrewKaf \or \hebrewLamed \or \hebrewMemfinal \or \hebrewMem \or \hebrewNunfinal \or \hebrewNun \or \hebrewSamekh \or \hebrewAyin \or \hebrewPefinal \or \hebrewPe \or \hebrewTsadifinal \or \hebrewTsadi \or \hebrewQof \or \hebrewResh \or \hebrewShin \or \hebrewTav \else % 05EA \unknownchar \fi \stopunicodevector \protect \endinput \ No newline at end of file
+%D \module %D [ file=unic-005, %D version=2005.01.27, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 5, %D author=Adam Lindsay, %D date=\currentdate, %D copyright=\PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 5 \expandafter\strippedcsname \ifcase\numexpr#1-224\relax \hebrewAlef \or % 05D0 \hebrewBet \or \hebrewGimel \or \hebrewDalet \or \hebrewHe \or \hebrewVav \or \hebrewZayin \or \hebrewHet \or \hebrewTet \or \hebrewYod \or \hebrewKaffinal \or \hebrewKaf \or \hebrewLamed \or \hebrewMemfinal \or \hebrewMem \or \hebrewNunfinal \or \hebrewNun \or \hebrewSamekh \or \hebrewAyin \or \hebrewPefinal \or \hebrewPe \or \hebrewTsadifinal \or \hebrewTsadi \or \hebrewQof \or \hebrewResh \or \hebrewShin \or \hebrewTav \else % 05EA \unknownchar \fi \stopunicodevector \protect \endinput \ No newline at end of file
diff --git a/tex/context/base/unic-030.tex b/tex/context/base/unic-030.tex
index b7d435f81..387ddeb4e 100644
--- a/tex/context/base/unic-030.tex
+++ b/tex/context/base/unic-030.tex
@@ -15,8 +15,7 @@
\startunicodevector 30
\expandafter\strippedcsname
- \ifcase\numexpr(#1-159) % space needed, terminates expr
- \unknownchar \or
+ \ifcase\numexpr#1-158\relax
\Adotbelow \or
\adotbelow \or
\Ahook \or
diff --git a/tex/context/base/unic-031.tex b/tex/context/base/unic-031.tex
index 0bb574688..ae6bc1b8e 100644
--- a/tex/context/base/unic-031.tex
+++ b/tex/context/base/unic-031.tex
@@ -10,8 +10,7 @@
\startunicodevector 31
\expandafter\strippedcsname
- \ifcase\numexpr(#1+1) % space needed, terminates expr
- \unknownchar \or
+ \ifcase\numexpr#1\relax
\greekalphapsili \or %1f00
\greekalphadasia \or
\greekalphapsilivaria \or
diff --git a/tex/context/base/unic-032.tex b/tex/context/base/unic-032.tex
index 05c2c75cc..085c23596 100644
--- a/tex/context/base/unic-032.tex
+++ b/tex/context/base/unic-032.tex
@@ -74,7 +74,7 @@
\ifx\undefined\zerowidthspace \unexpanded\def\zerowidthspace{\kern\zeropoint} \fi
\startunicodevector 32
- \ifcase\numexpr(#1)
+ \ifcase\numexpr#1\relax
\strippedcsname \enspace \or % U+2000 EN QUAD
\strippedcsname \emspace \or % U+2001 EM QUAD
\strippedcsname \enspace \or % U+2002 EN SPACE
@@ -114,22 +114,22 @@
\strippedcsname \unknownchar \or % U+2024 ONE DOT LEADER
\strippedcsname \unknownchar \or % U+2025 TWO DOT LEADER
\strippedcsname \textellipsis \else % U+2026 HORIZONTAL ELLIPSIS
- \ifcase\numexpr(#1-48)
+ \ifcase\numexpr#1-48\relax
\strippedcsname \perthousand \or % U+2030 PER MILLE SIGN
\strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
\strippedcsname \prime \or % U+2032 PRIME
\strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME
\strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME
- \ifcase\numexpr(#1-57)
+ \ifcase\numexpr#1-57\relax
\strippedcsname \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
\strippedcsname \guilsingleright \else % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- \ifcase\numexpr(#1-95)
+ \ifcase\numexpr#1-95\relax
\strippedcsname \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE
\strippedcsname \unknownchar \or %
\strippedcsname \unknownchar \or % U+2061 FUNCTION APPLICATION
\strippedcsname \times \or % U+2062 INVISIBLE TIMES
\strippedcsname \unknownchar \else % U+2063 INVISIBLE COMMA
- \ifcase\numexpr(#1-172)
+ \ifcase\numexpr#1-172\relax
\strippedcsname \texteuro \else
\strippedcsname \unknownchar
\fi\fi\fi\fi\fi
diff --git a/tex/context/base/unic-033.tex b/tex/context/base/unic-033.tex
index 26c5a23d7..632285a0e 100644
--- a/tex/context/base/unic-033.tex
+++ b/tex/context/base/unic-033.tex
@@ -1,138 +1,130 @@
%D \module
%D [ file=unic-033,
-%D version=2002.12.03,
+%D version=2005.06.11,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 33,
-%D author=Hans Hagen,
+%D author={Nikolai Weibull \& Hans Hagen},
%D date=\currentdate,
%D copyright={PRAGMA / Nikolai Weibull}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
\unprotect
-% \startunicodevector 33
-% \@@unknownchar
-% \stopunicodevector
-
\startunicodevector 33
\expandafter\strippedcsname
- \ifcase\numexpr(#1-144+1) % space needed, terminates expr
- \unknownchar \or % hack for getting leftarrow working
- \leftarrow \or % LEFTWARDS ARROW
- \uparrow \or % UPWARDS ARROW
- \rightarrow \or % RIGHTWARDS ARROW
- \downarrow \or % DOWNWARDS ARROW
- \leftrightarrow \or % LEFT RIGHT ARROW
- \updownarrow \or % UP DOWN ARROW
- \nwarrow \or % NORTH WEST ARROW
- \nearrow \or % NORTH EAST ARROW
- \searrow \or % SOUTH EAST ARROW
- \swarrow \or % SOUTH WEST ARROW
- \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
- \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
- \unknownchar \or % LEFTWARDS WAVE ARROW
- \unknownchar \or % RIGHTWARDS WAVE ARROW
- \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
- \unknownchar \or % UPWARDS TWO HEADED ARROW
- \twoheadedrightarrow\or % RIGHTWARDS TWO HEADED ARROW
- \unknownchar \or % DOWNWARDS TWO HEADED ARROW
- \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
- \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
- \mapsfrom \or % LEFTWARDS ARROW FROM BAR
- \unknownchar \or % UPWARDS ARROW FROM BAR
- \mapsto \or % RIGHTWARDS ARROW FROM BAR
- \unknownchar \or % DOWNWARDS ARROW FROM BAR
- \unknownchar \or % UP DOWN ARROW WITH BASE
- \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
- \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
- \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
- \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
- \unknownchar \or % LEFT RIGHT WAVE ARROW
- \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
- \lightning \or % DOWNWARDS ZIGZAG ARROW
- \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
- \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
- \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
- \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
- \unknownchar \or % NORTH WEST ARROW TO LONG BAR
- \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
- \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
- \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
- \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
- \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
- \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
- \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
- \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
- \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
- \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
- \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
- \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
- \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
- \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
- \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
- \upuparrows \or % UPWARDS PAIRED ARROWS
- \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
- \downdownarrows \or % DOWNWARDS PAIRED ARROWS
- \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
- \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
- \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
- \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
- \Leftarrow \or % LEFTWARDS DOUBLE ARROW
- \Uparrow \or % UPWARDS DOUBLE ARROW
- \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
- \Downarrow \or % DOWNWARDS DOUBLE ARROW
- \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
- \Updownarrow \or % UP DOWN DOUBLE ARROW
- \unknownchar \or % NORTH WEST DOUBLE ARROW
- \unknownchar \or % NORTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH WEST DOUBLE ARROW
- \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
- \unknownchar \or % RIGHTWARDS TRIPLE ARROW
- \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
- \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
- \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
- \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
- \dashleftarrow \or % LEFTWARDS DASHED ARROW
- \unknownchar \or % UPWARDS DASHED ARROW
- \dashrightarrow \or % RIGHTWARDS DASHED ARROW
- \unknownchar \or % DOWNWARDS DASHED ARROW
- \unknownchar \or % LEFTWARDS ARROW TO BAR
- \unknownchar \or % RIGHTWARDS ARROW TO BAR
- \unknownchar \or % LEFTWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW
- \unknownchar \or % RIGHTWARDS WHITE ARROW
- \unknownchar \or % DOWNWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
- \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
- \unknownchar \or % NORTH WEST ARROW TO CORNER
- \unknownchar \or % SOUTH EAST ARROW TO CORNER
- \unknownchar \or % UP DOWN WHITE ARROW
- \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
- \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
- \unknownchar \or % THREE RIGHTWARDS ARROWS
- \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
- \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
- \rightarrowtriangle \else % RIGHTWARDS OPEN-HEADED ARROW
- \leftrightarrowtriangle % LEFT RIGHT OPEN-HEADED ARROW
+ \ifcase\numexpr#1-144\relax
+ \leftarrow \or % LEFTWARDS ARROW
+ \uparrow \or % UPWARDS ARROW
+ \rightarrow \or % RIGHTWARDS ARROW
+ \downarrow \or % DOWNWARDS ARROW
+ \leftrightarrow \or % LEFT RIGHT ARROW
+ \updownarrow \or % UP DOWN ARROW
+ \nwarrow \or % NORTH WEST ARROW
+ \nearrow \or % NORTH EAST ARROW
+ \searrow \or % SOUTH EAST ARROW
+ \swarrow \or % SOUTH WEST ARROW
+ \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
+ \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
+ \unknownchar \or % LEFTWARDS WAVE ARROW
+ \unknownchar \or % RIGHTWARDS WAVE ARROW
+ \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
+ \unknownchar \or % UPWARDS TWO HEADED ARROW
+ \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW
+ \unknownchar \or % DOWNWARDS TWO HEADED ARROW
+ \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
+ \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
+ \mapsfrom \or % LEFTWARDS ARROW FROM BAR
+ \unknownchar \or % UPWARDS ARROW FROM BAR
+ \mapsto \or % RIGHTWARDS ARROW FROM BAR
+ \unknownchar \or % DOWNWARDS ARROW FROM BAR
+ \unknownchar \or % UP DOWN ARROW WITH BASE
+ \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
+ \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
+ \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
+ \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
+ \unknownchar \or % LEFT RIGHT WAVE ARROW
+ \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
+ \lightning \or % DOWNWARDS ZIGZAG ARROW
+ \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
+ \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
+ \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
+ \unknownchar \or % NORTH WEST ARROW TO LONG BAR
+ \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+ \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
+ \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
+ \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
+ \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
+ \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
+ \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
+ \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
+ \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+ \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+ \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
+ \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+ \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+ \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+ \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
+ \upuparrows \or % UPWARDS PAIRED ARROWS
+ \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
+ \downdownarrows \or % DOWNWARDS PAIRED ARROWS
+ \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+ \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+ \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
+ \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
+ \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
+ \Leftarrow \or % LEFTWARDS DOUBLE ARROW
+ \Uparrow \or % UPWARDS DOUBLE ARROW
+ \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
+ \Downarrow \or % DOWNWARDS DOUBLE ARROW
+ \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
+ \Updownarrow \or % UP DOWN DOUBLE ARROW
+ \unknownchar \or % NORTH WEST DOUBLE ARROW
+ \unknownchar \or % NORTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH WEST DOUBLE ARROW
+ \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
+ \unknownchar \or % RIGHTWARDS TRIPLE ARROW
+ \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
+ \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
+ \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
+ \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
+ \dashleftarrow \or % LEFTWARDS DASHED ARROW
+ \unknownchar \or % UPWARDS DASHED ARROW
+ \dashrightarrow \or % RIGHTWARDS DASHED ARROW
+ \unknownchar \or % DOWNWARDS DASHED ARROW
+ \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR
+ \unknownchar \or % RIGHTWARDS ARROW TO BAR
+ \unknownchar \or % LEFTWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW
+ \unknownchar \or % RIGHTWARDS WHITE ARROW
+ \unknownchar \or % DOWNWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+ \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
+ \unknownchar \or % NORTH WEST ARROW TO CORNER
+ \unknownchar \or % SOUTH EAST ARROW TO CORNER
+ \unknownchar \or % UP DOWN WHITE ARROW
+ \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
+ \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+ \unknownchar \or % THREE RIGHTWARDS ARROWS
+ \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+ \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
+ \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW
+ \leftrightarrowtriangle\else % LEFT RIGHT OPEN-HEADED ARROW
+ \unknowncharacter
\fi
\stopunicodevector
diff --git a/tex/context/base/unic-034.tex b/tex/context/base/unic-034.tex
index e43094943..fece26bff 100644
--- a/tex/context/base/unic-034.tex
+++ b/tex/context/base/unic-034.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=unic-034,
-%D version=2005.05.20,
+%D version=2005.06.11,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 34,
%D author=Nikolai Weibull,
@@ -9,46 +9,9 @@
\unprotect
-% TODO NW: everything should be wrapped in \mathematics I suppose...
-% TODO HH: move definitions like this to a default vector
-
-\unexpanded\def\unic@nin {\not\in}
-\unexpanded\def\unic@nni {\not\ni}
-\unexpanded\def\unic@minus {-}
-\unexpanded\def\unic@divisionslash{/}
-\unexpanded\def\unic@cubesqrt {\sqrt^{3}}
-\unexpanded\def\unic@fourthsqrt {\sqrt^{4}}
-\unexpanded\def\unic@divides {\mathop{|}} % TODO
-\unexpanded\def\unic@ndivides {\mathrel{\mathop{\not|}}} % TODO: horrible
-\unexpanded\def\unic@dblint {\int\!\!\int}
-\unexpanded\def\unic@triint {\int\!\!\int\!\!\int}
-\unexpanded\def\unic@ratio {\mathrel{:}}
-\unexpanded\def\unic@proportion {\mathrel{::}}
-\unexpanded\def\unic@nsimeq {\not\simeq}
-\unexpanded\def\unic@napproxeq {\not\approxeq}
-\unexpanded\def\unic@napprox {\not\approx}
-\unexpanded\def\unic@correspondsto{\buildrel \frown \over =}
-\unexpanded\def\unic@estimates {\buildrel \wedge \over =}
-\unexpanded\def\unic@equiangularto{\buildrel \vee \over =}
-\unexpanded\def\unic@stareq {\buildrel \star \over =}
-\unexpanded\def\unic@eqbydef {\buildrel \rm def \over =}
-\unexpanded\def\unic@measuredby {\buildrel \rm m \over =}
-\unexpanded\def\unic@questionedeq {\buildrel \rm ? \over =}
-\unexpanded\def\unic@nequiv {\not\equiv}
-\unexpanded\def\unic@nasymp {\not\asymp}
-\unexpanded\def\unic@nlesssim {\not\lesssim}
-\unexpanded\def\unic@ngtrsim {\not\gtrsim}
-\unexpanded\def\unic@nlessgtr {\not\lessgtr}
-\unexpanded\def\unic@ngtrless {\not\gtrless}
-\unexpanded\def\unic@nsubset {\not\subset}
-\unexpanded\def\unic@nsupset {\not\supset}
-\unexpanded\def\unic@nsqsubseteq {\not\sqsubseteq}
-\unexpanded\def\unic@nsqsupseteq {\not\sqsupseteq}
-
\startunicodevector 34
\expandafter\strippedcsname
- \ifcase\numexpr(#1+1) % space needed, terminates expr
- \unknownchar \or % hack for getting forall working
+ \ifcase\numexpr#1\relax
\forall \or % FOR ALL
\complement \or % COMPLEMENT
\partial \or % PARTIAL DIFFERENTIAL
@@ -57,7 +20,7 @@
\emptyset \or % EMPTY SET
\vartriangle \or % INCREMENT
\nabla \or % NABLA
- \in \or % ELEMENT OF
+ \unic@in \or % ELEMENT OF
\unic@nin \or % NOT AN ELEMENT OF
\unknownchar \or % SMALL ELEMENT OF
\ni \or % CONTAINS AS MEMBER
@@ -75,7 +38,7 @@
\ast \or % ASTERISK OPERATOR
\circ \or % RING OPERATOR
\bullet \or % BULLET OPERATOR
- \sqrt \or % SQUARE ROOT
+ \unic@sqrt \or % SQUARE ROOT
\unic@cubesqrt \or % CUBE ROOT
\unic@fourthsqrt \or % FOURTH ROOT
\propto \or % PROPORTIONAL TO
@@ -90,7 +53,7 @@
\nparallel \or % NOT PARALLEL TO
\land \or % LOGICAL AND
\lor \or % LOGICAL OR
- \cap \or % INTERSECTION
+ \unic@cap \or % INTERSECTION
\cup \or % UNION
\int \or % INTEGRAL
\unic@dblint \or % DOUBLE INTEGRAL
@@ -106,9 +69,9 @@
\unic@ratio \or % RATIO
\unic@proportion \or % PROPORTION
\unknownchar \or % DOT MINUS
- \mathop{-\!\!:} \or % EXCESS
- \mathop{:\!\!\!-\!\!\!:} \or % GEOMETRIC PROPORTION
- \mathop{\sim\!\!\!:}\or % HOMOTHETIC
+ \unic@excess \or % EXCESS
+ \unic@geompropr \or % GEOMETRIC PROPORTION
+ \unic@homothetic \or % HOMOTHETIC
\sim \or % TILDE OPERATOR
\backsim \or % REVERSED TILDE
\unknownchar \or % INVERTED LAZY S
@@ -119,7 +82,7 @@
\simeq \or % ASYMPTOTICALLY EQUAL TO
\nsimeq \or % NOT ASYMPTOTICALLY EQUAL TO
\approxeq \or % APPROXIMATELY EQUAL TO
- \cong \or % APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+ \unic@cong \or % APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
\unic@napproxeq \or % NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
\approx \or % ALMOST EQUAL TO
\unic@napprox \or % NOT ALMOST EQUAL TO
@@ -129,7 +92,7 @@
\asymp \or % EQUIVALENT TO
\Bumpeq \or % GEOMETRICALLY EQUIVALENT TO
\bumpeq \or % DIFFERENCE BETWEEN
- \doteq \or % APPROACHES THE LIMIT
+ \unic@doteq \or % APPROACHES THE LIMIT
\doteqdot \or % GEOMETRICALLY EQUAL TO
\fallingdotseq \or % APPROXIMATELY EQUAL TO OR THE IMAGE OF
\risingdotseq \or % IMAGE OF OR APPROXIMATELY EQUAL TO
diff --git a/tex/context/base/unic-039.tex b/tex/context/base/unic-039.tex
new file mode 100644
index 000000000..bcf649090
--- /dev/null
+++ b/tex/context/base/unic-039.tex
@@ -0,0 +1,68 @@
+%D \module
+%D [ file=unic-039,
+%D version=2005.06.16,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 39,
+%D author=Nikolai Weibull,
+%D date=\currentdate,
+%D copyright={PRAGMA / Nikolai Weibull}]
+
+\unprotect
+
+\startunicodevector 39
+ \expandafter\strippedcsname
+ \ifcase\numexpr#1-192\relax
+ \unknownchar \or % THREE DIMENSIONAL ANGLE
+ \unknownchar \or % WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+ \perp \or % PERPENDICULAR
+ \unknownchar \or % OPEN SUBSET
+ \unknownchar \or % OPEN SUPERSET
+ \lbag \or % LEFT S-SHAPED BAG DELIMITER
+ \rbag \or % RIGHT S-SHAPED BAG DELIMITER
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % WHITE DIAMOND WITH CENTRED DOT
+ \unknownchar \or % AND WITH DOT
+ \unknownchar \or % ELEMENT OF OPENING UPWARDS
+ \unknownchar \or % LOWER RIGHT CORNER WITH DOT
+ \unknownchar \or % UPPER LEFT CORNER WITH DOT
+ \unknownchar \or % LEFT OUTER JOIN
+ \unknownchar \or % RIGHT OUTER JOIN
+ \unknownchar \or % FULL OUTER JOIN
+ \unknownchar \or % LARGE UP TACK
+ \unknownchar \or % LARGE DOWN TACK
+ \unknownchar \or % LEFT AND RIGHT DOUBLE TURNSTILE
+ \unknownchar \or % LEFT AND RIGHT TACK
+ \unknownchar \or % LEFT MULTIMAP
+ \unknownchar \or % LONG RIGHT TACK
+ \unknownchar \or % LONG LEFT TACK
+ \unknownchar \or % UP TACK WITH CIRCLE ABOVE
+ \unknownchar \or % LOZENGE DIVIDED BY HORIZONTAL RULE
+ \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND
+ \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+ \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+ \unknownchar \or % WHITE SQUARE WITH LEFTWARDS TICK
+ \unknownchar \or % WHITE SQUARE WITH RIGHTWARDS TICK
+ \unic@Lbracket \or % MATHEMATICAL LEFT WHITE SQUARE BRACKET
+ \unic@Rbracket \or % MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+ \langle \or % MATHEMATICAL LEFT ANGLE BRACKET
+ \rangle \or % MATHEMATICAL RIGHT ANGLE BRACKET
+ \unic@Langle \or % MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+ \unic@Rangle \or % MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \or % <reserved>
+ \unknownchar \else % <reserved>
+ \unknownchar
+ \fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index e7f479d65..fb5ef3e66 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -152,9 +152,19 @@
%D `#4-\utf@g)}
%D \stoptyping
-\def\utfdiv#1{\the\numexpr(#1-\utf@g)/\utf@h\relax}
+\def\utfdiv#1{\the\numexpr (#1-\utf@g)/\utf@h \relax}
\def\utfmod#1{\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax}
+%D The next one also handles the zero case well:
+
+\def\utfdiv#1{\the\numexpr\ifcase\numexpr#1\relax0\else (#1-\utf@g)/\utf@h \fi\relax}
+\def\utfmod#1{\the\numexpr\ifcase\numexpr#1\relax0\else#1-\utf@h*((#1-\utf@g)/\utf@h)\fi\relax}
+
+% or
+%
+% \def\utfdiv#1{\ifcase\numexpr#1\relax0\else\the\numexpr(#1-\utf@g)/\utf@h\relax\fi}
+% \def\utfmod#1{\ifcase\numexpr#1\relax0\else\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax\fi}
+
%D When tracing we also need:
\def\utfvid#1{\the\numexpr(#1-\medcard)/\maxcard\relax}
@@ -295,11 +305,7 @@
\def\unicodepair#1%
{\utfdiv{#1}:\utfmod{#1}}
-\let\unicodenumber\firstofoneargument
-
-%\def\unicodehexnumber#1%
-% {\expanded{\uchexnumbers{\utfdiv{#1}}}%
-% \expanded{\uchexnumbers{\utfmod{#1}}}}
+\def\unicodenumber#1{\number#1}
\def\unicodehexnumber#1%
{\ifnum#1>\maxcard
@@ -316,9 +322,9 @@
%D problems; somehow \type {\numexpr} cannot look beyond this
%D sign, and expects a number.
-\def\utfunichar #1{{\tttf U\low{\unicodenumber{#1}}}}
-\def\utfunisplit #1{{\tttf U\low{\unicodepair{#1}}}}
-\def\utfuniboth #1{{\tttf U\low{\unicodenumber{#1\relax}->\unicodepair{#1}}}}
+\def\utfunichar #1{{\tttf U\low{\tx\unicodenumber{#1}}}}
+\def\utfunisplit #1{{\tttf U\low{\tx\unicodepair{#1}}}}
+\def\utfuniboth #1{{\tttf U\low{\tx\unicodenumber{#1}->\unicodepair{#1}}}}
\def\utfunientity #1{{\tttf\&\#x\unicodehexnumber{#1};}}
%D The character itself is accessed and typeset by:
@@ -408,12 +414,11 @@
\def\utfuniglyphname#1%
{{\tttf
- \expandafter\string\csname
- \ifnum#1<\utf@i
- \strippedcsname\unicodeasciicharacter\endcsname{#1}%
- \else
- \@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname
- \fi}}
+ \ifnum#1<\utf@i
+ \unicodeasciicharacter{#1}%
+ \else
+ \expandafter\string\csname\doutfunihash{\number\utfdiv{#1}}{#1}\endcsname
+ \fi}}
%D The combined presentation is implemented by:
@@ -424,7 +429,7 @@
{\utfunihash{#1}\low{\infofont\unicodepair{#1}}}
\def\utfunihashboth #1%
- {\utfunihash{#1}\low{\infofont\unicodenumber{#1\relax}->\unicodepair{#1}}}
+ {\utfunihash{#1}\low{\infofont\unicodenumber{#1}->\unicodepair{#1}}}
%D Unknown characters get a placeholder.
@@ -443,12 +448,15 @@
%D sense to postpone loading, so let's start doing this
%D with \UNICODE.
+\def\doifunicodevector#1%
+ {\doifdefined{\@@univector#1}}
+
\def\useunicodevector[#1]%
{\processcommalist[#1]\douseunicodevector}
\def\douseunicodevector#1%
{\ifundefined{\@@univector#1}%
- \readsysfile{unic-\ifnum#1<10 00\else\ifnum#1<100 0\fi\fi#1}
+ \readsysfile{\f!unicprefix\threedigits{#1}}
{\writestatus{unicode}{loading vector #1}}
{\writestatus{unicode}{unknown vector #1}}%
\fi}
@@ -510,7 +518,7 @@
\noindent \hbox
{\hbox to 4em{\tttf\unicodehexnumber{#1}\hss}\quad
\hbox to 1em{#2\hss}\quad
- \hbox to 9em{\tttf\unicodenumber{#1\relax}->\unicodepair{#1}\hss}\quad
+ \hbox to 9em{\tttf\unicodenumber{#1}->\unicodepair{#1}\hss}\quad
\hbox to 9em{\tttf\let\utfunihash\utfunihashcommand#2\hss}\quad % tricky
\lowercase {\tttf#3}}\par
\fi}
@@ -578,10 +586,15 @@
\@EA\utfunifontcommand
\fi}
+%D Goodies:
+
+\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
+\fetchruntimecommand \showunicodetable {\f!unicprefix\s!run}
+
%D Well, let's at least preload a few familiar ones. Here we
%D also load the \UTF\ regime.
-\useunicodevector[0,1,2,3,4,5,30,32,33] \useregime[utf]
+\useunicodevector[0,1,2,3,4,5,30,32,33,34,39] \useregime[utf]
% 31, text mem usage first
diff --git a/tex/context/base/unic-run.tex b/tex/context/base/unic-run.tex
new file mode 100644
index 000000000..49b8b6d96
--- /dev/null
+++ b/tex/context/base/unic-run.tex
@@ -0,0 +1,129 @@
+%D \module
+%D [ file=unic-run,
+%D version=2005.06.22,
+%D title=\CONTEXT\ \UNICODE\ Support,
+%D subtitle=Goodies,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+%D \macros
+%D {showunicodevector}
+%D
+%D Original version by Nikolai Weibull. Adapted a bit (no local count
+%D definitions, stepwiserecurse instead of -1 calculations, a bit less
+%D code and such). BTW, this is kind of tricky and somehow we don't
+%D have align interference.
+
+\gdef\doshowunicodevectorrow#1#2%
+ {\NC
+ \ttx\uchexnumber{#2}%
+ \VL
+ \dostepwiserecurse{0}{15}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
+ \AR}
+
+\gdef\showunicodevector#1%
+ {\starttable[|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|]
+ \NC\NC\dostepwiserecurse{0}{15}{1}{\ttx\uchexnumber\recurselevel\NC}\AR
+ \DC\DL[16]\DR
+ \dostepwiserecurse{0}{15}{1}
+ {\expanded{\doshowunicodevectorrow{#1}{\recurselevel}}%
+ \DC\DL[16]\DR}
+ \NC \use{17}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR
+ \stoptable}
+
+%D \starttyping
+%D \chardef\utfunicodetracer=0
+%D \chardef\utfunicodetracer=7
+%D
+%D \showunicodevector{000}
+%D \showunicodevector{001}
+%D \showunicodevector{002}
+%D \showunicodevector{003}
+%D \showunicodevector{004}
+%D \showunicodevector{005}
+%D \showunicodevector{030}
+%D \showunicodevector{031}
+%D \showunicodevector{032}
+%D \showunicodevector{033}
+%D \showunicodevector{034}
+%D \stoptyping
+
+%D \macros
+%D {showunicodetable}
+%D
+%D A more verbose variant:
+
+\gdef\doshowunicodetablerow#1#2%
+ {\bTR
+ \bTD\uchexnumber{#2}\eTD
+ \dostepwiserecurse{0}{15}{1}
+ {\bTD
+ \edef\entrypoint{\the\numexpr#1*256+#2+##1*16\relax}%
+ \chardef\utfunicodetracer0{\dontleavehmode \strut\unicodechar\entrypoint\endgraf}%
+ \tt
+ \chardef\utfunicodetracer7{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
+ \chardef\utfunicodetracer3{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
+ \chardef\utfunicodetracer8{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
+ \eTD}%
+ \bTD\uchexnumber{#2}\eTD
+ \eTR}
+
+\gdef\showunicodetable#1%
+ {\vbox\bgroup
+ \setupTABLE[\c!background=\v!screen,\c!backgroundscreen=.90,\c!frame=\v!off,\c!frameoffset=0pt,\c!width=8em,\c!height=6em]%
+ \setupTABLE[c] [\v!each] [\c!align={middle,lohi}]%
+ \setupTABLE[c] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
+ \setupTABLE[c] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
+ \setupTABLE[r] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
+ \setupTABLE[r] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
+ \setupTABLE[r] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]%
+ \setupTABLE[c] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]%
+ \setupTABLE[\v!odd][\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.90]%
+ \bTABLE
+ \bTR
+ \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
+ \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}%
+ \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
+ \eTR
+ \dostepwiserecurse{0}{15}{1}{\doshowunicodetablerow{#1}{##1}}%
+ \bTR
+ \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
+ \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}%
+ \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
+ \eTR
+ \eTABLE
+ \egroup}
+
+\protect \endinput
+
+% alternative
+%
+% \gdef\doshowunicodevectorrowa#1#2#3#4%
+% {\NC
+% \ttx\uchexnumber{#2}%
+% \VL
+% \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
+% \AR}
+%
+% \gdef\doshowunicodevectorrowb#1#2#3#4%
+% {\NC
+% \relax
+% \VL
+% \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
+% \AR}
+%
+% \gdef\showunicodevector#1%
+% {\starttable[|c|c|c|c|c|c|c|c|c|]
+% \NC\NC\dostepwiserecurse{0}{7}{1}{\ttx\uchexnumber\recurselevel/\uchexnumber{\the\numexpr2*\recurselevel\relax}\NC}\AR\DC\DL[8]\DR
+% \dostepwiserecurse{0}{15}{1}
+% {\expanded{\doshowunicodevectorrowa{#1}{\recurselevel}{0} {7}}\DC\DL[8]\DR%
+% \expanded{\doshowunicodevectorrowb{#1}{\recurselevel}{8}{15}}\DC\DL[8]\DR}%
+% \NC \use{9}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR
+% \stoptable}
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index 022cb84d7..b07b73048 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -97,7 +97,7 @@
%D complete font||style switch. There we could have stuck with
%D \type{\tttf}.
-\ifx \undefined \verbatimfont \def\verbatimfont {\tt} \fi
+\ifx \undefined \verbatimfont \def\verbatimfont {\tt\normalnoligatures\font} \fi
%D \macros
%D {obeyedspace, obeyedtab, obeyedline, obeyedpage}
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index a3a83a918..7ba173050 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -228,8 +228,13 @@
%D a way around this, but for convenience \TEXEXEC\ will take
%D care of processing raw \XML\ files in a transparant way.
-\chardef\XMLtokensreduction\zerocount % cmr as default
-\chardef\XMLtokensreduction\plustwo % lmr as default
+% cmr -- best for tui and such
+%
+% \chardef\XMLtokensreduction\zerocount
+%
+% lmr -- best but problematic for tui file:
+
+\chardef\XMLtokensreduction\plustwo
% \def\alwaysreduceXMLtokens {\XMLtokensreduction\plusone}
% \def\permanentreduceXMLtokens{\XMLtokensreduction\plustwo}
@@ -277,14 +282,16 @@
.catcode`.?=.@@other
.catcode`.:=.@@other * active in french
.catcode`.;=.@@other * active in french
- .catcode`.&=.@@active .let&=.doXMLentity
- .catcode`.<=.@@active .unexpanded.def<B.doXMLelementE
+ .catcode`.&=.@@active
+ .catcode`.<=.@@active
.catcode`.>=.@@other
.catcode`."=.@@other
.catcode`./=.@@other
.catcode`.'=.@@other
.catcode`.~=.@@other
.catcode`.#=.@@other
+ .let &=.doXMLentity
+ .unexpanded.def<B.doXMLelementE*
.ifcase.XMLtokensreduction
.entitleXMLescapetokens
.or
diff --git a/tex/context/base/xtag-map.tex b/tex/context/base/xtag-map.tex
index 76d2cfd21..4ee23e750 100644
--- a/tex/context/base/xtag-map.tex
+++ b/tex/context/base/xtag-map.tex
@@ -419,7 +419,7 @@
%D Here we implement the second step in the element grabber.
-\long\def\XMLremapdata%
+\long\def\XMLremapdata
{\dosingleempty\doXMLremapdata}
\long\def\doXMLremapdata[#1]#2#3#4%
@@ -456,7 +456,10 @@
\catcode`\^^M=\@@space
\catcode`\^^L=\@@space
\catcode`\^^Z=\@@space
+\pushmacro\unicodechar
+\let\unicodechar\relax
\xdef\remappedXMLdata{#4\empty}%
+\popmacro\unicodechar
\let\par\endgraf
\popmacro\doXMLentity % needed ?
\disableXMLexpansion
@@ -464,7 +467,7 @@
\catcode`\}=\@@endgroup
\catcode`\\=\@@escape
\iftraceXMLremapping
- \bgroup
+ \ifmmode\vbox\fi\bgroup
\convertcommand\remappedXMLdata\to\ascii
\tttf\veryraggedright\ascii\par
\writestatus{xml-remap}{\ascii}%
@@ -473,6 +476,27 @@
#2\scantokens\@EA{\remappedXMLdata\empty\empty}#3%
\stopXMLmapping
\egroup}
+
+% testcase:
+%
+% aap‒noot coördinatie – één
+%
+% \startXMLdata
+% aap‒noot coördinatie – één
+% <formula><math><mtext>aap‒noot coördinatie – één</mtext></math></formula>
+% \stopXMLdata
+%
+% weird case:
+%
+% \chardef\XMLtokensreduction\zerocount
+% \startXMLdata
+% <formula><math><mtext>\"{a}\"{o}\"{u}\v{c}\v{s}\v{z}</mtext></math></formula>
+% \stopXMLdata
+%
+% \chardef\XMLtokensreduction\plustwo
+% \startXMLdata
+% <formula><math><mtext>\"{a}\"{o}\"{u}\v{c}\v{s}\v{z}</mtext></math></formula>
+% \stopXMLdata
% rename to better names
diff --git a/tex/context/base/xtag-mmc.tex b/tex/context/base/xtag-mmc.tex
index d10b26ceb..a6f7578c2 100644
--- a/tex/context/base/xtag-mmc.tex
+++ b/tex/context/base/xtag-mmc.tex
@@ -409,16 +409,6 @@ complex-cartesian=>\let\next\MMLccartesian,
\def\MMLcPIECEWISE#1#2%
{\cases{#2}}
-%\def\MMLcPIECE#1#2% \@@MMLpieceseparator
-% {\withnexttwoXMLRelements
-% {\@EA\XMLRtoks\@EA{\firstXMLRelement\@col@amp@}%
-% \@EA\appendtoks\@EA\mathematics\@EA{\secondXMLRelement}\to\XMLRtoks
-% \the\XMLRtoks\crcr}%
-% #2}%
-%
-%\def\MMLcOTHERWISE#1#2%
-% {#2\@col@amp@\mathematics{\getXMLentity{otherwise}}\crcr}
-
\def\MMLcPIECEseparator{\doif\@@MMLpieceseparator\v!yes,}
\def\MMLcPIECE#1#2%
@@ -553,13 +543,6 @@ complex-cartesian=>\let\next\MMLccartesian,
\remapXMLsingular [root] [CPA] \MMLcROOT
-% \def\MMLcROOT#1#2#3\empty
-% {\doifXMLRchildelse{degree}{#3}
-% {\root\processXMLRchild{degree}{#3}\of
-% {\let\MMLcDEGREE\ignoreXMLRelement
-% \MMLcreset\processXMLRchildren{#3}}}
-% {\sqrt{\MMLcreset\processXMLRchildren{#3}}}}
-
\setupMMLappearance[root][\c!symbol=\v!yes]
\def\MMLcROOT#1#2#3\empty
diff --git a/tex/context/base/xtag-mmp.tex b/tex/context/base/xtag-mmp.tex
index 659b267bf..7cc6e5b26 100644
--- a/tex/context/base/xtag-mmp.tex
+++ b/tex/context/base/xtag-mmp.tex
@@ -125,7 +125,7 @@
\ifx\MMLpopen\empty\else\right.\fi
\else\doMMLright\MMLpclose\fi}
-\def\resetMMLseparator%
+\def\resetMMLseparator
{\newcounter\MMLxxcounter
\let\lastMMLseparator\empty}
@@ -134,7 +134,7 @@
\newcounter\MMLyycounter
\expanded{\dograbMMLseparator#1\noexpand\relax}}
-\def\dograbMMLseparator%
+\def\dograbMMLseparator
{\increment\MMLyycounter
\doifnextcharelse\relax
{\lastMMLseparator\gobbleoneargument}
@@ -191,7 +191,7 @@
\getXMLarguments
{mstyle}
- {fontweight="" fontstyle="" mathstyle="" background="" color=""}%
+ {fontweight="" fontstyle="" mathstyle="" mathvariant="" background="" color=""}
\def\MMLpSTYLE#1#2%
{\getXMLarguments{mstyle}{#1}#2}
@@ -203,7 +203,8 @@
\def\MMLpTEXT#1#2%
{\hbox
- {\getXMLarguments{mstyle}{#1}%
+ {\tf % else encoding problems
+ \getXMLarguments{mstyle}{#1}%
\doMMPpbackground{mstyle}
{\doMMPpcolor{mstyle}
{\setMMLptextstyle{mstyle}%
@@ -518,3 +519,49 @@
\stopXMLmapping
\protect \endinput
+
+% extra samples
+
+\startXMLdata
+<formula>
+ <dmath>
+ <mfrac>
+ <mrow>
+ <mfrac>
+ <mrow>
+ <mtext>Q</mtext>
+ </mrow>
+ <mrow>
+ <mtext>P</mtext>
+ </mrow>
+ </mfrac>
+ </mrow>
+ <mrow>
+ <mtext>R</mtext>
+ </mrow>
+ </mfrac>
+ </dmath>
+</formula>
+\stopXMLdata
+
+\startXMLdata
+<formula>
+ <dmath>
+ <mfrac>
+ <mrow>
+ <mfrac>
+ <mrow>
+ <mi mathvariant='normal'>R</mi>
+ </mrow>
+ <mrow>
+ <mi mathvariant='normal'>P</mi>
+ </mrow>
+ </mfrac>
+ </mrow>
+ <mrow>
+ <mi mathvariant='normal'>R</mi>
+ </mrow>
+ </mfrac>
+ </dmath>
+</formula>
+\stopXMLdata
diff --git a/tex/context/extra/showunic.tex b/tex/context/extra/showunic.tex
new file mode 100644
index 000000000..efdbf4d3a
--- /dev/null
+++ b/tex/context/extra/showunic.tex
@@ -0,0 +1,130 @@
+% author : Hans Hagen / PRAGMA-ADE
+% version : 2005-06-22
+
+% todo: take antiqua (has everything)
+
+% \tracetypescriptstrue
+
+\usetypescriptfile[type-cbg]
+
+% \preloadtypescriptstrue (default at pragma)
+
+% this font does not work ... why
+%
+% \starttypescript [serif] [hebrew] [default]
+% \definefontsynonym [Serif] [hclassic]
+% \loadmapline[=][hclassic < hclassic.pfb]
+% \stoptypescript
+
+\setuppapersize
+ [S6][S6]
+
+\setupbodyfont
+ [10pt]
+
+\setuplayout
+ [backspace=12pt,
+ topspace=12pt,
+ width=middle,
+ height=middle,
+ header=0pt,
+ footer=0pt]
+
+\setupcolors
+ [state=start]
+
+\setupbackgrounds
+ [page]
+ [background=color,
+ backgroundcolor=darkgray]
+
+\definetypeface [main-latin] [rm] [serif] [latin-modern] [default][encoding=texnansi]
+\definetypeface [main-latin] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+
+\definetypeface [main-math] [rm] [serif] [latin-modern] [default][encoding=texnansi]
+\definetypeface [main-math] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+\definetypeface [main-math] [mm] [math] [latin-modern] [default][encoding=default]
+
+\definetypeface [main-eastern] [rm] [serif] [latin-modern] [default][encoding=qx]
+\definetypeface [main-eastern] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+
+\definetypeface [main-greek] [rm] [serif] [cbgreek] [default][encoding=default]
+\definetypeface [main-greek] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+
+\definetypeface [main-cyrillic] [rm] [serif] [computer-modern] [default][encoding=t2a]
+\definetypeface [main-cyrillic] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+
+% \definetypeface [main-hebrew] [rm] [serif] [hebrew] [default][encoding=default]
+% \definetypeface [main-hebrew] [tt] [mono] [latin-modern] [default][encoding=texnansi]
+
+% The \showunicodetable macro is defined in unic-run.tex.
+
+\starttext
+
+% latin: western / eastern
+
+\startstandardmakeup
+ \setupbodyfont[main-latin]
+ \centerbox{\scale[factor=max]{\showunicodetable{000}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-eastern]
+ \centerbox{\scale[factor=max]{\showunicodetable{001}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-latin]
+ \centerbox{\scale[factor=max]{\showunicodetable{002}}}
+\stopstandardmakeup
+
+% greek
+
+\startstandardmakeup
+ \setupbodyfont[main-greek]
+ \centerbox{\scale[factor=max]{\showunicodetable{003}}}
+\stopstandardmakeup
+
+% cyrillic
+
+\startstandardmakeup
+ \setupbodyfont[main-cyrillic]
+ \centerbox{\scale[factor=max]{\showunicodetable{004}}}
+\stopstandardmakeup
+
+% hebrew
+
+% \startstandardmakeup
+% \setupbodyfont[mainhebrew]
+% \centerbox{\scale[factor=max]{\showunicodetable{005}}}
+% \stopstandardmakeup
+
+% misc
+
+\startstandardmakeup
+ \setupbodyfont[main-latin]
+ \centerbox{\scale[factor=max]{\showunicodetable{030}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-latin]
+ \centerbox{\scale[factor=max]{\showunicodetable{031}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-latin]
+ \centerbox{\scale[factor=max]{\showunicodetable{032}}}
+\stopstandardmakeup
+
+% math
+
+\startstandardmakeup
+ \setupbodyfont[main-math]
+ \centerbox{\scale[factor=max]{\showunicodetable{033}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-math]
+ \centerbox{\scale[factor=max]{\showunicodetable{034}}}
+\stopstandardmakeup
+\startstandardmakeup
+ \setupbodyfont[main-math]
+ \centerbox{\scale[factor=max]{\showunicodetable{039}}}
+\stopstandardmakeup
+
+\stoptext
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 6a72dbabf..096ca9e55 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.06.27">
<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 26a76a7c0..3f47235a3 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.06.27">
<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 3daec8981..41e2f79ff 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.06.27">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index f272ee751..78ec3c447 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.06.27">
<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 9a6b21cfe..fdd33fe15 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.06.27">
<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 517160b28..db2908a1c 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="2005.06.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.06.27">
<cd:variables>
<cd:variable name="one" value="unu"/>