summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/config/texexec.rme2
-rw-r--r--context/data/type-ghz.dat2
-rw-r--r--fonts/enc/dvips/context/ec-sc.enc84
-rw-r--r--fonts/enc/dvips/context/texnansi-sc.enc319
-rw-r--r--scripts/context/lua/scite-ctx.lua8
-rw-r--r--scripts/context/perl/pdftrimwhite.pl531
-rw-r--r--scripts/context/perl/texexec.pl20
-rw-r--r--scripts/context/perl/texexec.rme2
-rw-r--r--scripts/context/ruby/base/tex.rb11
-rw-r--r--scripts/context/ruby/runtools.rb493
-rw-r--r--tex/context/base/cont-new.tex4
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-ntb.tex2
-rw-r--r--tex/context/base/core-reg.tex85
-rw-r--r--tex/context/base/core-rul.tex6
-rw-r--r--tex/context/base/core-spa.tex18
-rw-r--r--tex/context/base/enco-chi.tex124
-rw-r--r--tex/context/base/font-chi.tex107
-rw-r--r--tex/context/base/font-ini.tex7
-rw-r--r--tex/context/base/font-run.tex9
-rw-r--r--tex/context/base/font-uni.tex13
-rw-r--r--tex/context/base/lang-chi.tex47
-rw-r--r--tex/context/base/lang-ger.tex18
-rw-r--r--tex/context/base/lang-sla.tex57
-rw-r--r--tex/context/base/meta-ini.tex5
-rw-r--r--tex/context/base/mult-com.tex9
-rw-r--r--tex/context/base/mult-con.tex6
-rw-r--r--tex/context/base/page-flt.tex4
-rw-r--r--tex/context/base/regi-uni.tex12
-rw-r--r--tex/context/base/s-chi-00.tex25
-rw-r--r--tex/context/base/supp-fil.tex2
-rw-r--r--tex/context/base/supp-fun.tex5
-rw-r--r--tex/context/base/supp-mps.tex2
-rw-r--r--tex/context/base/syst-new.tex19
-rw-r--r--tex/context/base/type-buy.tex1
-rw-r--r--tex/context/base/type-exa.tex47
-rw-r--r--tex/context/base/type-ghz.tex288
-rw-r--r--tex/context/base/unic-chi.tex26
-rw-r--r--tex/context/base/unic-ini.tex40
-rw-r--r--tex/context/interface/keys-cz.xml5
-rw-r--r--tex/context/interface/keys-de.xml5
-rw-r--r--tex/context/interface/keys-en.xml5
-rw-r--r--tex/context/interface/keys-it.xml5
-rw-r--r--tex/context/interface/keys-nl.xml5
-rw-r--r--tex/context/interface/keys-ro.xml5
-rw-r--r--web2c/context.cnf2
46 files changed, 2257 insertions, 237 deletions
diff --git a/context/config/texexec.rme b/context/config/texexec.rme
index f38b4be7f..43f142f9d 100644
--- a/context/config/texexec.rme
+++ b/context/config/texexec.rme
@@ -120,7 +120,7 @@ for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context --translate-file=natural.tcx
for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
-for miktex set MpToTeXExecutable to mptotex
+for miktex set MpToTeXExecutable to mpto
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost --translate-file=natural.tcx
for miktex set MpBatchFlag to --interaction=batchmode
diff --git a/context/data/type-ghz.dat b/context/data/type-ghz.dat
index 112a5a0cc..37ce5d6f9 100644
--- a/context/data/type-ghz.dat
+++ b/context/data/type-ghz.dat
@@ -52,7 +52,7 @@
# linotype optima-nova
--en=? --ve=linotype --co=optima-nova --re
---en=? --ve=linotype --co=optima-nova --so=ghz/optima-nova --ma --in
+--en=? --ve=linotype --co=optima-nova --so=linotype/optima-nova --ma --in
# linotype orion
diff --git a/fonts/enc/dvips/context/ec-sc.enc b/fonts/enc/dvips/context/ec-sc.enc
new file mode 100644
index 000000000..77357c9f3
--- /dev/null
+++ b/fonts/enc/dvips/context/ec-sc.enc
@@ -0,0 +1,84 @@
+% This version is sc extended by Hans Hagen using PalatinoNova-Regular.afm.
+%
+%
+% This is the EC encoding.
+%
+% These are the ligs and kerns in addition to those found in the
+% AFM file. (The only ligs in the Times-Roman.afm file are the
+% fi and fl ligatures.)
+%
+% LIGKERN space l =: lslash ; space L =: Lslash ;
+% LIGKERN question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ;
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+%
+% We blow away kerns to and from spaces (TeX doesn't have a
+% space) and also remove any kerns from the numbers (although
+% the only kern pair that mentions a number in Times-Roman.afm
+% is one one.)
+%
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
+% LIGKERN greater greater =: guillemotright ;
+%
+/ECEncoding [ % now 256 chars follow
+% 0x00
+ /grave.sc /acute.sc /circumflex.sc /tilde.sc /dieresis.sc /hungarumlaut.sc /ring.sc /caron.sc
+ /breve.sc /macron.sc /dotaccent.sc /cedilla
+ /ogonek /quotesinglbase /guilsinglleft /guilsinglright
+% 0x10
+ /quotedblleft /quotedblright /quotedblbase /guillemotleft
+ /guillemotright /endash /emdash /cwm
+ /zeroinferior /dotlessi /dotlessj /ff /fi.sc /fl.sc /ffi /ffl
+% 0x20
+ /visualspace /exclam.sc /quotedbl /numbersign
+ /dollar.sc /percent.sc /ampersand.sc /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero.sc /one.sc /two.sc /three.sc /four.sc /five.sc /six.sc /seven.sc
+ /eight.sc /nine.sc /colon /semicolon /less /equal /greater /question.sc
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
+% 0x70
+ /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
+ /x.sc /y.sc /z.sc /braceleft /bar /braceright /asciitilde /hyphen
+% 0x80
+ /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve
+ /Lacute /Lcaron /Lslash /Nacute /Ncaron /Ng /Ohungarumlaut /Racute
+% 0x90
+ /Rcaron /Sacute /Scaron /Scedilla
+ /Tcaron /Tcedilla /Uhungarumlaut /Uring
+ /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dbar /section
+% 0xA0
+ /abreve.sc /aogonek.sc /cacute.sc /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /ng /ohungarumlaut.sc /racute.sc
+% 0xB0
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc
+ /tquoteright /tcedilla /uhungarumlaut.sc /uring.sc
+ /ldot.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown.sc /questiondown.sc /sterling.sc
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /Germandbls
+% 0xE0
+ /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
+ /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc
+ /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
+% 0xF0
+ /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc
+] def
diff --git a/fonts/enc/dvips/context/texnansi-sc.enc b/fonts/enc/dvips/context/texnansi-sc.enc
new file mode 100644
index 000000000..553a74d88
--- /dev/null
+++ b/fonts/enc/dvips/context/texnansi-sc.enc
@@ -0,0 +1,319 @@
+% This version is sc extended by Hans Hagen using PalatinoNova-Regular.afm.
+%
+% @psencodingfile{
+% author = "Y&Y, Inc.",
+% version = "1.1",
+% date = "1 December 1996",
+% filename = "texnansi.enc",
+% email = "help@YandY.com",
+% address = "45 Walden Street // Concord, MA 01742, USA",
+% codetable = "ISO/ASCII",
+% checksum = "xx",
+% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX."
+% }
+%
+% The idea is to have all 228 characters normally included in Type 1 text
+% fonts (plus a few more) available for typesetting. This is effectively
+% the character set in Adobe Standard Encoding, ISO Latin 1, plus a few more.
+%
+% Character code assignments were made as follows:
+%
+% (1) The character layout largely matches `ASCII' in the 32 -- 126 range,
+% except for `circumflex' in 94 and `tilde' in 126, to match `TeX text'
+% (`asciicircumflex' and `asciitilde' appear in 158 and 142 instead).
+%
+% (2) The character layout matches `Windows ANSI' in almost all places,
+% except for `quoteright' in 39 and `quoteleft' in 96 to match ASCII
+% (`quotesingle' and `grave' appear in 129 and 18 instead).
+%
+% (3) The character layout matches `TeX typewriter' used by CM text fonts
+% in most places (except for discordant positions such as hungarumlaut
+% (instead of braceright), dotaccent (instead of underscore) etc.
+%
+% (4) Remaining characters are assigned arbitrarily to the `control character'
+% range (0 -- 31), avoiding 0, 9, 10 and 13 in case we meet dumb software
+% - similarly one should really avoid 127 and 128 if possible.
+% In addition, the 8 open slots in Windows ANSI between 128 and 159 are used.
+%
+% (5) Y&Y Lucida Bright includes some extra ligatures and such; ff, ffi, ffl,
+% and `dotlessj,' these are included 11 -- 15, and 17.
+%
+% (6) Hyphen appears both at 45 and 173 for compatibility with both ASCII
+% and Windows ANSI.
+%
+% (7) It doesn't really matter where ligatures appear (both real, such as ffi,
+% and pseudo such as ---) since these should not be accessed directly, only
+% via ligature information in the TFM file.
+%
+% SAMPLE USAGE (in `psfonts.map' file for DVIPS):
+%
+% lbr LucidaBright "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <lbr.pfb
+%
+% This tells DVIPS that the font called `lbr' in TeX has PostScript
+% FontName `LucidaBright.' It also asks DVIPS to expand the file `lbr.pfb'
+% into PFA form, to include the attached `texnansi.enc' encoding vector,
+% and to then actually reencode the font based on that encoding vector.
+%
+% Revised 1996 June 1 by adding second position for `fl' to avoid Acrobat bug.
+% Revised 1996 June 1 by adding second position for `fraction' for same reason.
+% Revised 1997 Oct 1 by adding cwm (used in boundary char TFM code)
+% Revised 1998 Mar 1 by adding Unicode for Euro character
+%
+/TeXnANSIEncoding [
+/.notdef % 0
+/Euro.sc % /Uni20AC 1
+/.notdef % 2
+/.notdef % 3
+/fraction % 4
+/dotaccent.sc % 5
+/hungarumlaut.sc % 6
+/ogonek % 7
+/fl.sc % 8
+/.notdef % /fraction % 9 not used (see 4), backward compatability only
+/cwm % 10 not used, except boundary char internally maybe
+/ff % 11
+/fi.sc % 12
+/.notdef % /fl.sc % 13 not used (see 8), backward compatability only
+/ffi % 14
+/ffl % 15
+/dotlessi % 16
+/dotlessj % 17
+/grave.sc % 18
+/acute.sc % 19
+/caron.sc % 20
+/breve.sc % 21
+/macron.sc % 22
+/ring.sc % 23
+/cedilla % 24
+/germandbls.sc % 25
+/ae.sc % 26
+/oe.sc % 27
+/oslash.sc % 28
+/AE % 29
+/OE % 30
+/Oslash % 31
+/space % 32 % /suppress in TeX text
+/exclam.sc % 33
+/quotedbl % 34 % /quotedblright in TeX text
+/numbersign % 35
+/dollar.sc % 36
+/percent.sc % 37
+/ampersand.sc % 38
+/quoteright % 39 % /quotesingle in ANSI
+/parenleft % 40
+/parenright % 41
+/asterisk % 42
+/plus % 43
+/comma % 44
+/hyphen % 45
+/period % 46
+/slash % 47
+/zero.sc % 48
+/one.sc % 49
+/two.sc % 50
+/three.sc % 51
+/four.sc % 52
+/five.sc % 53
+/six.sc % 54
+/seven.sc % 55
+/eight.sc % 56
+/nine.sc % 57
+/colon % 58
+/semicolon % 59
+/less % 60 % /exclamdown.sc in Tex text
+/equal % 61
+/greater % 62 % /questiondown.sc in TeX text
+/question.sc % 63
+/at % 64
+/A % 65
+/B % 66
+/C % 67
+/D % 68
+/E % 69
+/F % 70
+/G % 71
+/H % 72
+/I % 73
+/J % 74
+/K % 75
+/L % 76
+/M % 77
+/N % 78
+/O % 79
+/P % 80
+/Q % 81
+/R % 82
+/S % 83
+/T % 84
+/U % 85
+/V % 86
+/W % 87
+/X % 88
+/Y % 89
+/Z % 90
+/bracketleft % 91
+/backslash % 92 % /quotedblleft in TeX text
+/bracketright % 93
+/circumflex.sc % 94 % /asciicircum in ASCII
+/underscore % 95 % /dotaccent.sc in TeX text
+/quoteleft % 96 % /grave.sc accent in ANSI
+/a.sc % 97
+/b.sc % 98
+/c.sc % 99
+/d.sc % 100
+/e.sc % 101
+/f.sc % 102
+/g.sc % 103
+/h.sc % 104
+/i.sc % 105
+/j.sc % 106
+/k.sc % 107
+/l.sc % 108
+/m.sc % 109
+/n.sc % 110
+/o.sc % 111
+/p.sc % 112
+/q.sc % 113
+/r.sc % 114
+/s.sc % 115
+/t.sc % 116
+/u.sc % 117
+/v.sc % 118
+/w.sc % 119
+/x.sc % 120
+/y.sc % 121
+/z.sc % 122
+/braceleft % 123 % /endash in TeX text
+/bar % 124 % /emdash in TeX test
+/braceright % 125 % /hungarumlaut.sc in TeX text
+/tilde.sc % 126 % /asciitilde in ASCII
+/dieresis.sc % 127 not used (see 168), use higher up instead
+/Lslash % 128 this position is unfortunate, but now too late to fix
+/quotesingle % 129
+/quotesinglbase % 130
+/florin.sc % 131
+/quotedblbase % 132
+/ellipsis % 133
+/dagger % 134
+/daggerdbl % 135
+/circumflex.sc % 136
+/perthousand.sc % 137
+/Scaron % 138
+/guilsinglleft % 139
+/OE % 140
+/Zcaron % 141
+/asciicircum % 142
+/minus % 143
+/lslash.sc % 144
+/quoteleft % 145
+/quoteright % 146
+/quotedblleft % 147
+/quotedblright % 148
+/bullet % 149
+/endash % 150
+/emdash % 151
+/tilde.sc % 152
+/trademark % 153
+/scaron.sc % 154
+/guilsinglright % 155
+/oe.sc % 156
+/zcaron.sc % 157
+/asciitilde % 158
+/Ydieresis % 159
+/nbspace % 160 % /space (no break space)
+/exclamdown.sc % 161
+/cent.sc % 162
+/sterling.sc % 163
+/currency % 164
+/yen.sc % 165
+/brokenbar % 166
+/section % 167
+/dieresis.sc % 168
+/copyright % 169
+/ordfeminine.sc % 170
+/guillemotleft % 171
+/logicalnot % 172
+/sfthyphen % 173 % /hyphen (hanging hyphen)
+/registered % 174
+/macron.sc % 175
+/degree % 176
+/plusminus % 177
+/twosuperior % 178
+/threesuperior % 179
+/acute.sc % 180
+/mu % 181
+/paragraph % 182
+/periodcentered % 183
+/cedilla % 184
+/onesuperior % 185
+/ordmasculine % 186
+/guillemotright % 187
+/onequarter % 188
+/onehalf % 189
+/threequarters % 190
+/questiondown.sc % 191
+/Agrave % 192
+/Aacute % 193
+/Acircumflex % 194
+/Atilde % 195
+/Adieresis % 196
+/Aring % 197
+/AE % 198
+/Ccedilla % 199
+/Egrave % 200
+/Eacute % 201
+/Ecircumflex % 202
+/Edieresis % 203
+/Igrave % 204
+/Iacute % 205
+/Icircumflex % 206
+/Idieresis % 207
+/Eth % 208
+/Ntilde % 209
+/Ograve % 210
+/Oacute % 211
+/Ocircumflex % 212
+/Otilde % 213
+/Odieresis % 214
+/multiply % 215 % OE in T1
+/Oslash % 216
+/Ugrave % 217
+/Uacute % 218
+/Ucircumflex % 219
+/Udieresis % 220
+/Yacute % 221
+/Thorn % 222
+/germandbls.sc % 223
+/agrave.sc % 224
+/aacute.sc % 225
+/acircumflex.sc % 226
+/atilde.sc % 227
+/adieresis.sc % 228
+/aring.sc % 229
+/ae.sc % 230
+/ccedilla.sc % 231
+/egrave.sc % 232
+/eacute.sc % 233
+/ecircumflex.sc % 234
+/edieresis.sc % 235
+/igrave.sc % 236
+/iacute.sc % 237
+/icircumflex.sc % 238
+/idieresis.sc % 239
+/eth.sc % 240
+/ntilde.sc % 241
+/ograve.sc % 242
+/oacute.sc % 243
+/ocircumflex.sc % 244
+/otilde.sc % 245
+/odieresis.sc % 246
+/divide % 247 % oe in T1
+/oslash.sc % 248
+/ugrave.sc % 249
+/uacute.sc % 250
+/ucircumflex.sc % 251
+/udieresis.sc % 252
+/yacute.sc % 253
+/thorn.sc % 254
+/ydieresis.sc % 255 % germandbls in T1
+] def
diff --git a/scripts/context/lua/scite-ctx.lua b/scripts/context/lua/scite-ctx.lua
index b9291fd00..3a19fb4d8 100644
--- a/scripts/context/lua/scite-ctx.lua
+++ b/scripts/context/lua/scite-ctx.lua
@@ -35,15 +35,15 @@
-- check=check_text
--
-- ctx.spellcheck.language=auto
--- ctx.spellcheck.wordsize=3
+-- ctx.spellcheck.wordsize=4
-- ctx.spellcheck.wordpath=ENV(CTXSPELLPATH)
--
-- ctx.spellcheck.wordfile.all=spell-uk.txt,spell-nl.txt
--
-- ctx.spellcheck.wordfile.uk=spell-uk.txt
-- ctx.spellcheck.wordfile.nl=spell-nl.txt
--- ctx.spellcheck.wordsize.uk=3
--- ctx.spellcheck.wordsize.nl=3
+-- ctx.spellcheck.wordsize.uk=4
+-- ctx.spellcheck.wordsize.nl=4
--
-- command.name.21.*=CTX Action List
-- command.subsystem.21.*=3
@@ -487,7 +487,7 @@ local wordsize = props["ctx.spellcheck.wordsize"]
local wordpath = props["ctx.spellcheck.wordpath"]
if language == '' then language = 'uk' end
-if wordsize == '' then wordsize = 3 else wordsize = tonumber(wordsize) end
+if wordsize == '' then wordsize = 4 else wordsize = tonumber(wordsize) end
local wordfile = ""
local wordlist = {}
diff --git a/scripts/context/perl/pdftrimwhite.pl b/scripts/context/perl/pdftrimwhite.pl
new file mode 100644
index 000000000..e42a8fd49
--- /dev/null
+++ b/scripts/context/perl/pdftrimwhite.pl
@@ -0,0 +1,531 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+#D \module
+#D [ file=pdftrimwhite.pl,
+#D version=2000.07.13,
+#D title=PDF postprocessing,
+#D subtitle=cropping whitespace from pdf files,
+#D author=Hans Hagen,
+#D date=\currentdate,
+#D copyright=PRAGMA ADE]
+
+#C This module is part of the \CONTEXT\ macro||package and is
+#C therefore copyrighted by \PRAGMA. See readme.pdf for
+#C details.
+
+#D This script can be used to crop margins that contain
+#D useless information from a \PDF\ image. It does so by:
+#D
+#D \startitemize[packed,n]
+#D \som cropping the image into an alternative file
+#D \som determining the boundingbox of the alternative
+#D \som cropping the image into a resulting file
+#D \stoppacked
+#D
+#D In the process, some checks are carried out. Step~1 is
+#D taken care of by \PDFTEX, step~2 by \GHOSTSCRIPT, using a
+#D file generated by \PDFTOPS, and \PDFTEX\ is responsible
+#D for step~3.
+#D
+#D \startuseMPgraphic{original}
+#D numeric n ; n = 1cm ;
+#D path p ; p := fullsquare xyscaled (8n,12n) ;
+#D path q ; q := fullsquare xyscaled (2n,3n) shifted (n,n) ;
+#D path r ; r := ((0,0)--(3n,0)) shifted (0, 5.5n) ;
+#D path s ; s := ((0,0)--(3n,0)) shifted (0,-5.5n) ;
+#D path t ; t := (-2n,-4n) ;
+#D path u ; u := p enlarged -.75n ;
+#D path v ; v := p enlarged (-1.75n,-2n) shifted (n,1.25n) ;
+#D path w ; w := q enlarged .25n ;
+#D fill p withcolor .7white ;
+#D fill q withcolor .7green ;
+#D draw r withpen pencircle scaled .25n withcolor .7green ;
+#D draw s withpen pencircle scaled .25n withcolor .7green ;
+#D draw t withpen pencircle scaled .50n withcolor .7green ;
+#D draw u withpen pencircle scaled .10n withcolor white ;
+#D draw v withpen pencircle scaled .10n withcolor .7red ;
+#D draw w withpen pencircle scaled .10n ;
+#D verbatimtex \tttf \setupframed[frame=off,align=left] etex ;
+#D label (btex \framed{crap} etex, center r) ;
+#D label (btex \framed{crap} etex, center s) ;
+#D label (btex \framed{crap} etex, center t) ;
+#D label (btex \framed{graphic} etex, center q) ;
+#D label.urt(btex \framed{page} etex, llcorner p) ;
+#D label.urt(btex \framed{crop} etex, llcorner u) ;
+#D label.lft(btex \framed{leftcrop\\
+#D rightcrop\\
+#D topcrop\\
+#D bottomcrop} etex, .5[ulcorner v,llcorner v]) ;
+#D label.bot(btex \framed{offset} etex, .5[llcorner w,lrcorner w]) ;
+#D \stopuseMPgraphic
+#D
+#D \placefigure
+#D [here][fig:cropcrap]
+#D {Crops and offsets.}
+#D {\useMPgraphic{original}}
+#D
+#D The \TEX\ part has two alternatives, one using \CONTEXT, and
+#D another using plain \TEX. The \CONTEXT\ method is slower but
+#D can be extended more easily.
+#D
+#D The script is executed as follows:
+#D
+#D \starttyping
+#D cropcrap <original> [<result>] [<switches>]
+#D \stoptyping
+#D
+#D The next call crops \type {test.pdf} to its natural
+#D boundingbox.
+#D
+#D \starttyping
+#D cropcrap test
+#D \stoptyping
+#D
+#D If the file has some crap at the bottom, you can say:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm
+#D \stoptyping
+#D
+#D This clips 2cm from the bottom. You can clip on all sides
+#D individually, in combination or at once, like in:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm --crop=1cm
+#D \stoptyping
+#D
+#D The final result is a tightly cropped image. In order to get
+#D a 5mm margin around this image, you can say:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm --offset=5mm
+#D \stoptyping
+#D
+#D By default, the script intercepts logging messages and
+#D writes them to a logfile with the same name as the
+#D resulting image and the prefix \type {log}. If no name is
+#D given, the name \type {cropcrap} is used for all resulting
+#D files.
+#D
+#D By default, \CONTEXT\ is used. When installed properly, you
+#D can also use plain \TEX, by adding a switch \type
+#D {--plain}. Partial switched are accepted, so the next call
+#D is valid:
+#D
+#D \starttyping
+#D cropcrap test result --bot=2cm --off=5mm --plain
+#D \stoptyping
+#D
+#D The current implementation uses an intermediate \POSTSCRIPT\
+#D file. This may change as \GHOSTSCRIPT\ gets more clever with
+#D \PDF\ files.
+#D
+#D In \in {figure} [fig:cropcrap] the green rectangle is the
+#D picture we want to keep. Around this picture, we want a
+#D margin, represented by the black rectangle, and specified by
+#D \type {--offset}. The white rectangle is the cropbox
+#D defined by \type {--crop}. That way we get rid of header
+#D and footerlines. The red rectangle results from an
+#D additional \type {--leftcrop} and \type {-bottomcrop} and
+#D takes care of some content, as represented by the green
+#D dot.
+#D
+#D The \type {--verbose} switch can be used to disable the
+#D interception of log messages.
+
+#D We load a few \PERL\ modules \unknown\
+
+use Config ;
+use Getopt::Long ;
+
+use strict ;
+
+#D \unknown\ and initialize them.
+
+Getopt::Long::Configure
+ ("auto_abbrev",
+ "ignore_case",
+ "pass_through") ;
+
+#D Before fetching the switches, we initialize the
+#D variables.
+
+my $Crop = "0cm" ;
+
+my $LeftCrop = "0cm" ;
+my $RightCrop = "0cm" ;
+my $TopCrop = "0cm" ;
+my $BottomCrop = "0cm" ;
+
+my $Offset = "0cm" ;
+
+my $GSbin = "" ;
+my $Verbose = 0 ;
+my $Help = 0 ;
+my $UsePlain = 0 ;
+
+my $Page = 1 ;
+
+#D On \MSWINDOWS\ and \UNIX\ the following defaults, combined
+#D with the check later, should work out okay.
+
+my $pdfps = "pdftops" ;
+my $gs = "gs" ;
+
+my $thisisunix = $Config{'osname'} !~ /dos|mswin/i ;
+
+#D When no resulting file is given, we use \type {cropcrap}
+#D as name (checked later).
+
+my $figurefile = "" ;
+my $resultfile = "" ;
+
+my $programname = "cropcrap" ;
+
+#D Messages are temporarily saved and written to a log file
+#D afterwards.
+
+my $results = "" ;
+my $pipe = "" ;
+my $result = "" ;
+
+#D Unfortunately we need this information, first since
+#D \PDFTOPS\ does not honor the cropbox, and second because
+#D the vertical coordinated are swapped.
+
+my $pwidth = 597 ;
+my $pheight = 847 ;
+my $hoffset = 0 ;
+my $voffset = 0 ;
+
+#D A few more variables.
+
+my $width = my $height = my $llx = my $lly = my $urx = my $ury = 0 ;
+
+#D Here are the switches we accept. The \type {--gsbin} switch
+#D is a bonus one, and the \type {--help} switch comes
+#D naturally.
+
+&GetOptions
+ ( "leftcrop=s" => \$LeftCrop ,
+ "rightcrop=s" => \$RightCrop ,
+ "topcrop=s" => \$TopCrop ,
+ "bottomcrop=s" => \$BottomCrop,
+ "crop=s" => \$Crop ,
+ "offset=s" => \$Offset ,
+ "verbose" => \$Verbose ,
+ "gsbin=s" => \$GSbin ,
+ "plain" => \$UsePlain ,
+ "page=i" => \$Page ,
+ "help" => \$Help ) ;
+
+#D If asked for, or if no file is given, we provide some
+#D help information.
+
+sub PrintHelp
+ { print "This is CropCrap\n\n" .
+ "usage:\n\n" .
+ "cropcrap [switches] filename result\n\n" .
+ "switches:\n\n" .
+ "--crop=<dimen>\n" .
+ "--offset=<dimen>\n" .
+ "--leftcrop=<dimen>\n" .
+ "--rightcrop=<dimen>\n" .
+ "--topcrop=<dimen>\n" .
+ "--bottomcrop=<dimen>\n" .
+ "--gsbin=<string>\n" .
+ "--page=<number>\n" .
+ "--plain\n" .
+ "--verbose\n" }
+
+#D The preparations:
+
+sub GetItRight
+ { if ($Help)
+ { PrintHelp() ; exit }
+ $figurefile = $ARGV[0] ; $figurefile =~ s/\.pdf$//oi ;
+ $resultfile = $ARGV[1] ; $resultfile =~ s/\.pdf$//oi ;
+ if ($figurefile eq '')
+ { PrintHelp() ; exit }
+ unless ($thisisunix)
+ { $gs = "gswin32c" }
+ if ($GSbin ne '')
+ { $gs = $GSbin }
+ unless (-e "$figurefile.pdf")
+ { print "Something is terribly wrong: no file found\n" ;
+ exit }
+ if (($resultfile eq '')||($resultfile=~/(^\-|\.)/io))
+ { $resultfile = $programname }
+$pipe = "2>&1" ;
+ if ($thisisunix)
+ { $pipe = "2>&1" } }
+
+#D Something common.
+
+sub SavePageData
+ { return "% saving page data
+\\immediate\\openout\\scratchwrite=$figurefile.tmp
+\\immediate\\write\\scratchwrite
+ {\\HOffsetBP\\space\\VOffsetBP\\space
+ \\FigureWidthBP\\space\\FigureHeightBP}
+\\immediate\\closeout\\scratchwrite\n" }
+
+sub MakePageConTeXt
+ { return "% the real work
+\\definepapersize
+ [Crap]
+ [width=\\FigureWidth,
+ height=\\FigureHeight]
+\\setuppapersize
+ [Crap][Crap]
+\\setuplayout
+ [topspace=0cm,backspace=0pt,
+ height=middle,width=middle,
+ header=0pt,footer=0pt]
+\\starttext
+ \\startstandardmakeup
+ \\clip
+ [voffset=\\VOffset,
+ hoffset=\\HOffset,
+ width=\\FigureWidth,
+ height=\\FigureHeight]
+ {\\externalfigure[$figurefile.pdf][page=$Page]\\hss}
+ \\stopstandardmakeup
+\\stoptext\n" }
+
+sub MakePagePlainTeX
+ { return "% the real work
+\\output{}
+\\hoffset=-1in
+\\voffset=\\hoffset
+\\pdfpageheight=\\FigureHeight
+\\pdfpagewidth=\\FigureWidth
+\\vbox to \\pdfpageheight
+ {\\offinterlineskip
+ \\vskip-\\VOffset
+ \\hbox to \\pdfpagewidth{\\hskip-\\HOffset\\box0\\hss}
+ \\vss}
+\\end\n" }
+
+sub CalculateClip
+ { return "% some calculations
+\\dimen0=\\figurewidth
+\\dimen2=\\figureheight
+\\dimen4=$Crop
+\\dimen6=$Crop
+\\advance\\dimen4 by $LeftCrop
+\\advance\\dimen6 by $TopCrop
+\\advance\\dimen0 by -\\dimen4
+\\advance\\dimen0 by -$Crop
+\\advance\\dimen0 by -$RightCrop
+\\advance\\dimen2 by -\\dimen6
+\\advance\\dimen2 by -$Crop
+\\advance\\dimen2 by -$BottomCrop
+\\edef\\FigureWidth {\\the\\dimen0}
+\\edef\\FigureHeight{\\the\\dimen2}
+\\edef\\HOffset {\\the\\dimen4}
+\\edef\\VOffset {\\the\\dimen6}
+\\ScaledPointsToWholeBigPoints{\\number\\dimen0}\\FigureWidthBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen2}\\FigureHeightBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen4}\\HOffsetBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen6}\\VOffsetBP\n" }
+
+sub RecalculateClip
+ { return "% some calculations
+\\dimen0=${width}bp
+\\dimen2=${height}bp
+\\dimen4=${hoffset}bp
+\\dimen6=${pheight}bp
+\\advance\\dimen0 by $Offset
+\\advance\\dimen0 by $Offset
+\\advance\\dimen2 by $Offset
+\\advance\\dimen2 by $Offset
+\\advance\\dimen4 by ${llx}bp
+\\advance\\dimen4 by -$Offset
+\\advance\\dimen6 by -${lly}bp
+\\advance\\dimen6 by $Offset
+\\advance\\dimen6 by -\\dimen2
+\\advance\\dimen6 by $TopCrop
+\\edef\\FigureWidth {\\the\\dimen0}
+\\edef\\FigureHeight{\\the\\dimen2}
+\\edef\\HOffset {\\the\\dimen4}
+\\edef\\VOffset {\\the\\dimen6}\n" }
+
+#D The previous scripts could be more sparse, but for the
+#D moment we prefer readability. Both scripts save some
+#D information in temporary file. We choose between them with
+#D the following sub routine.
+
+#D The first pass:
+
+sub PrepareConTeXt
+ { return "% interface=en
+\\setupoutput[pdftex]
+\\getfiguredimensions[$figurefile.pdf][page=$Page]\n" }
+
+sub PreparePlainTeX
+ { return "% plain tex alternative, needs recent supp-mis
+\\input supp-mis
+\\pdfoutput=1
+\\newdimen\\figurewidth
+\\newdimen\\figureheight
+\\setbox0=\\hbox
+ {\\immediate\\pdfximage page $Page {$figurefile.pdf}\\pdfrefximage\\pdflastximage}
+\\figurewidth=\\wd0
+\\figureheight=\\ht0\n" }
+
+sub PrepareFirstPass
+ { open (TEX, ">$resultfile.tex") ;
+ if ($UsePlain)
+ { print TEX
+ PreparePlainTeX .
+ CalculateClip .
+ SavePageData .
+ MakePagePlainTeX }
+ else
+ { print TEX
+ PrepareConTeXt .
+ CalculateClip .
+ SavePageData .
+ MakePageConTeXt }
+ close TEX }
+
+#D The second pass looks much like the first one, but this
+#D time we don't save information, use the natural
+#D boundingbox, and provide the offset.
+
+sub SetupConTeXt
+ { return "% interface=en
+\\setupoutput[pdftex]\n" }
+
+sub SetupPlainTeX
+ { return "% plain tex alternative
+\\pdfoutput=1
+\\setbox0=\\hbox
+ {\\immediate\\pdfximage page $Page {$figurefile.pdf}\\pdfrefximage\\pdflastximage}\n" }
+
+sub PrepareSecondPass
+ { open (TEX, ">$resultfile.tex") ;
+ if ($UsePlain)
+ { print TEX
+ SetupPlainTeX .
+ RecalculateClip .
+ MakePagePlainTeX }
+ else
+ { print TEX
+ SetupConTeXt .
+ RecalculateClip .
+ MakePageConTeXt }
+ close TEX }
+
+#D The information we save in the first pass, is loaded here.
+
+sub FetchPaperSize
+ { open (TMP,"$figurefile.tmp") ;
+ while (<TMP>)
+ { chomp ;
+ if (/^(\d+) (\d+) (\d+) (\d+) *$/oi)
+ { $hoffset = $1 ;
+ $voffset = $2 ;
+ $pwidth = $3 ;
+ $pheight = $4 ;
+ last } }
+ close (TMP) }
+
+#D Here we try to find the natural boundingbox. We need to
+#D pick up the page dimensions here.
+
+sub RunTeX
+ { if ($UsePlain)
+ { $result =
+ `pdftex -prog=pdftex -fmt=plain -int=batchmode $resultfile` }
+ else
+ { $result =
+ `texexec --batch --once --purge $resultfile` }
+# print $result if $Verbose ; $results .= "$result\n" ;
+# $result = `texutil --purge` ;
+ print $result if $Verbose ; $results .= "$result\n" }
+
+sub MakePSFile
+ { $result =
+ `$pdfps -paperw $pwidth -paperh $pheight $resultfile.pdf $resultfile.ps` ;
+ print $result if $Verbose ; $results .= "$result\n" }
+
+sub FindBoundingBox
+ { $result =
+# `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $resultfile.ps $pipe` ;
+ `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $resultfile.pdf $pipe` ;
+ print $result if $Verbose ; $results .= "$result\n" }
+
+sub IdentifyCropBox
+ { RunTeX() ;
+ FetchPaperSize () ;
+# MakePSFile() ;
+ FindBoundingBox() }
+
+#D Just to be sure, we check if there is some image data, so
+#D that we can retry if something went wrong. Unfortunately we cannot
+#D safely check on a high res boundingbox.
+
+my $digits = '([\-\d\.]+)' ;
+
+sub ValidatedCropBox
+ { if ($result =~ /BoundingBox:\s*$digits\s+$digits\s+$digits\s+$digits\s*/mois)
+ { $llx = $1 ; $lly = $2 ; $urx = $3 ; $ury = $4 }
+ else
+ { print "Something is terribly wrong: no boundingbox:\n$result\n" ; exit }
+ $width = abs($urx - $llx) ;
+ $height = abs($ury - $lly) ;
+ if ($width&&$height)
+ { return 1 }
+ else
+ { unless ($width)
+ { print "Something seems wrong: no width\n" ;
+ $LeftCrop = "0cm" ; $RightCrop = "0cm" ; $Crop = "0cm" }
+ unless ($height)
+ { print "Something seems wrong: no height\n" ;
+ $TopCrop = "0cm" ; $BottomCrop = "0cm" ; $Crop = "0cm" }
+ return 0 } }
+
+#D This is the main cropping routine.
+
+sub FixCropBox
+ { RunTeX() }
+
+#D For error tracing we save the log information in a file.
+
+sub SaveLogInfo
+ { open (LOG, ">$resultfile.log") ;
+ print LOG $results ;
+ close (LOG) }
+
+#D We remove all temporary files.
+
+sub CleanUp
+ { unless ($Verbose)
+ { unlink "$resultfile.tex" ;
+ unlink "$resultfile.tuo" ;
+ unlink "$resultfile.tui" ;
+ unlink "$resultfile.ps" ;
+ unlink "$figurefile.tmp" } }
+
+#D Here it all comes together.
+
+GetItRight() ;
+
+PrepareFirstPass() ;
+
+IdentifyCropBox () ;
+
+unless (ValidatedCropBox())
+ { PrepareFirstPass() ;
+ IdentifyCropBox () }
+
+if (ValidatedCropBox())
+ { PrepareSecondPass() ;
+ FixCropBox() }
+
+SaveLogInfo() ;
+
+CleanUp () ;
diff --git a/scripts/context/perl/texexec.pl b/scripts/context/perl/texexec.pl
index a020727df..e60a7745f 100644
--- a/scripts/context/perl/texexec.pl
+++ b/scripts/context/perl/texexec.pl
@@ -11,7 +11,7 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#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 licen-en.pdf for
+#C therefore copyrighted by \PRAGMA. See readme.pdf for
#C details.
# Thanks to Tobias Burnus for the german translations.
@@ -2010,7 +2010,11 @@ sub checktexformatpath {
if ($texformats eq '') {
if ($UseEnginePath) {
if ($dosish) {
- $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $texformats = `kpsewhich --alias=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ } else {
+ $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ }
} else {
$texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\\\$TEXFORMATS` ;
}
@@ -2365,7 +2369,11 @@ sub LocatedFormatPath { # watch out $engine is lowercase in kpse
# expanded paths
print " assuming engine : $EnginePath\n";
if (($UseEnginePath)&&($EngineDone)) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $FormatPath = `$kpsewhich --alias=$EnginePath --show-path=fmt` ;
+ } else {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
+ }
} else {
$FormatPath = `$kpsewhich --show-path=fmt` ;
}
@@ -2377,7 +2385,11 @@ sub LocatedFormatPath { # watch out $engine is lowercase in kpse
if ($FormatPath eq '') {
if (($UseEnginePath)&&($EngineDone)) {
if ($dosish) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $FormatPath = `$kpsewhich --alias=$EnginePath --expand-path=\$TEXFORMATS` ;
+ } else {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
+ }
} else {
$FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\\\$TEXFORMATS` ;
}
diff --git a/scripts/context/perl/texexec.rme b/scripts/context/perl/texexec.rme
index f38b4be7f..43f142f9d 100644
--- a/scripts/context/perl/texexec.rme
+++ b/scripts/context/perl/texexec.rme
@@ -120,7 +120,7 @@ for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context --translate-file=natural.tcx
for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
-for miktex set MpToTeXExecutable to mptotex
+for miktex set MpToTeXExecutable to mpto
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost --translate-file=natural.tcx
for miktex set MpBatchFlag to --interaction=batchmode
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index a8a200b72..316cc6941 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -133,8 +133,8 @@ class TEX
@@stringvars = [
'modefile', 'result', 'suffix', 'response', 'path',
'filters', 'usemodules', 'environments', 'separation', 'setuppath',
- 'arguments', 'input', 'output', 'randomseed', 'modes', 'filename',
- 'modefile', 'ctxfile'
+ 'arguments', 'input', 'output', 'randomseed', 'modes', 'mode', 'filename',
+ 'ctxfile'
]
@@standardvars = [
'mainlanguage', 'bodyfont', 'language'
@@ -939,8 +939,13 @@ class TEX
end
opt << "\\setuparranging[#{arrangement.flatten.join(',')}]\n" if arrangement.size > 0
end
+ # we handle both "--mode" and "--modes", else "--mode" is
+ # mapped onto "--modefile"
if (str = getvariable('modes')) && ! str.empty? then
- opt << "\\enablemode[#{modes}]\n"
+ opt << "\\enablemode[#{str}]\n"
+ end
+ if (str = getvariable('mode')) && ! str.empty? then
+ opt << "\\enablemode[#{str}]\n"
end
if (str = getvariable('arguments')) && ! str.empty? then
opt << "\\setupenv[#{str}]\n"
diff --git a/scripts/context/ruby/runtools.rb b/scripts/context/ruby/runtools.rb
new file mode 100644
index 000000000..f554057f6
--- /dev/null
+++ b/scripts/context/ruby/runtools.rb
@@ -0,0 +1,493 @@
+require 'timeout'
+require 'ftools'
+require 'rbconfig'
+
+class File
+
+ # we don't want a/b//c
+ #
+ # puts File.join('a','b','c')
+ # puts File.join('/a','b','c')
+ # puts File.join('a:','b','c')
+ # puts File.join('a/','/b/','c')
+ # puts File.join('/a','/b/','c')
+ # puts File.join('//a/','/b/','c')
+
+ def File.join(*list)
+ path, prefix = [*list].flatten.join(File::SEPARATOR), ''
+ path.sub!(/^([\/]+)/) do
+ prefix = $1
+ ''
+ end
+ path.gsub!(/([\\\/]+)/) do
+ File::SEPARATOR
+ end
+ prefix + path
+ end
+
+end
+
+
+class Job
+
+ $ownfile, $ownpath = '', ''
+
+ def Job::set_own_path(file)
+ $ownfile, $ownpath = File.basename(file), File.expand_path(File.dirname(file))
+ $: << $ownpath
+ end
+
+ def Job::ownfile
+ $ownfile
+ end
+
+ def Job::ownpath
+ $ownpath
+ end
+
+end
+
+class Job
+
+ def initialize
+ @startuppath = Dir.getwd
+ @log = Array.new
+ @testmode = false
+ @ownpath = $ownpath
+ @paths = Array.new
+ end
+
+ def exit(showlog=false)
+ Dir.chdir(@startuppath)
+ show_log if showlog
+ Kernel::exit
+ end
+
+ def platform
+ case Config::CONFIG['host_os']
+ when /mswin/ then :windows
+ else :unix
+ end
+ end
+
+ def path(*components)
+ File.join([*components].flatten)
+ end
+
+ def found(name)
+ FileTest.file?(path(name)) || FileTest.directory?(path(name))
+ end
+
+ def binary(name)
+ if platform == :windows then
+ name.sub(/\.[^\/]+$/o,'') + '.exe'
+ else
+ name
+ end
+ end
+
+ def suffixed(name,suffix)
+ if name =~ /\.[^\/]+$/o then
+ name
+ else
+ name + '.' + suffix
+ end
+ end
+
+ def expanded(*name)
+ File.expand_path(File.join(*name))
+ end
+
+ def argument(n,default=nil)
+ ARGV[n] || default
+ end
+
+ def variable(name,default='')
+ ENV[name] || default
+ end
+
+ def change_dir(*dir)
+ dir, old = expanded(path(*dir)), expanded(Dir.getwd)
+ unless old == dir then
+ begin
+ Dir.chdir(dir)
+ rescue
+ error("unable to change to path #{dir}")
+ else
+ if old == dir then
+ error("error in changing to path #{dir}")
+ else
+ message("changed to path #{dir}")
+ end
+ end
+ end
+ # return File.expand_path(Dir.getwd)
+ end
+
+ def delete_dir(*dir)
+ begin
+ dir = path(*dir)
+ pattern = "#{dir}/**/*"
+ puts("analyzing dir #{pattern}")
+ files = Dir.glob(pattern).sort.reverse
+ files.each do |f|
+ begin
+ # FileTest.file?(f) fails on .whatever files
+ File.delete(f)
+ rescue
+ # probably directory
+ else
+ puts("deleting file #{f}")
+ end
+ end
+ files.each do |f|
+ begin
+ Dir.rmdir(f)
+ rescue
+ # strange
+ else
+ message("deleting path #{f}")
+ end
+ end
+ begin
+ Dir.rmdir(dir)
+ rescue
+ # strange
+ else
+ message("deleting parent #{dir}")
+ end
+ Dir.glob(pattern).sort.each do |f|
+ warning("unable to delete #{f}")
+ end
+ rescue
+ warning("unable to delete path #{File.expand_path(dir)} (#{$!})")
+ else
+ message("path #{File.expand_path(dir)} removed")
+ end
+ end
+
+
+ def create_dir(*dir)
+ begin
+ dir = path(*dir)
+ unless FileTest.directory?(dir) then
+ File.makedirs(dir)
+ else
+ return
+ end
+ rescue
+ error("unable to create path #{File.expand_path(dir)}")
+ else
+ message("path #{File.expand_path(dir)} created")
+ end
+ end
+
+ def show_dir(delay=0)
+ _puts_("\n")
+ print Dir.getwd + ' '
+ begin
+ timeout(delay) do
+ loop do
+ print '.'
+ sleep(1)
+ end
+ end
+ rescue TimeoutError
+ # ok
+ end
+ _puts_("\n\n")
+ end
+
+ def copy_file(from,to='.',exclude=[])
+ to, ex = path(to), [exclude].flatten
+ Dir.glob(path(from)).each do |file|
+ tofile = to.sub(/[\.\*]$/o) do File.basename(file) end
+ _do_copy_(file,tofile) unless ex.include?(File.extname(file))
+ end
+ end
+
+ def clone_file(from,to)
+ if from and to then
+ to = File.join(File.basename(from),to) if File.basename(to).empty?
+ _do_copy_(from,to)
+ end
+ end
+
+ def copy_dir(from,to,pattern='*',exclude=[])
+ pattern = '*' if ! pattern or pattern.empty?
+ if from and to and File.expand_path(from) != File.expand_path(to) then
+ ex = [exclude].flatten
+ Dir.glob("#{from}/**/#{pattern}").each do |file|
+ unless ex.include?(File.extname(file)) then
+ _do_copy_(file,File.join(to,file.sub(/^#{from}/, '')))
+ end
+ end
+ end
+ end
+
+ def _do_copy_(file,tofile)
+ if FileTest.file?(file) and File.expand_path(file) != File.expand_path(tofile) then
+ begin
+ create_dir(File.dirname(tofile))
+ File.copy(file,tofile)
+ rescue
+ error("unable to copy #{file} to #{tofile}")
+ else
+ message("file #{file} copied to #{tofile}")
+ end
+ else
+ puts("file #{file} is not copied")
+ end
+ end
+
+ def rename_file(from,to)
+ from, to = path(from), path(to)
+ begin
+ File.move(from,to)
+ rescue
+ error("unable to rename #{from} to #{to}")
+ else
+ message("#{from} renamed to #{to}")
+ end
+ end
+
+ def delete_file(pattern)
+ Dir.glob(path(pattern)).each do |file|
+ _do_delete_(file)
+ end
+ end
+
+ def delete_files(*files)
+ [*files].flatten.each do |file|
+ _do_delete_(file)
+ end
+ end
+
+ def _do_delete_(file)
+ if FileTest.file?(file) then
+ begin
+ File.delete(file)
+ rescue
+ error("unable to delete file #{file}")
+ else
+ message("file #{file} deleted")
+ end
+ else
+ message("no file #{File.expand_path(file)}")
+ end
+ end
+
+ def show_log(filename=nil)
+ if filename then
+ begin
+ if f = File.open(filename,'w') then
+ @log.each do |line|
+ f.puts(line)
+ end
+ f.close
+ end
+ message("log data written to #{filename}")
+ rescue
+ error("unable to write log to #{filename}")
+ end
+ else
+ @log.each do |line|
+ _puts_(line)
+ end
+ end
+ end
+
+ def _puts_(str)
+ begin
+ STDOUT.puts( str)
+ rescue
+ STDERR.puts("error while writing '#{str}' to terminal")
+ end
+ end
+
+ def puts(message)
+ @log << message
+ _puts_(message)
+ end
+
+ def error(message)
+ puts("! #{message}")
+ exit
+ end
+
+ def warning(message)
+ puts("- #{message}")
+ end
+
+ def message(message)
+ puts("+ #{message}")
+ end
+
+ def export_variable(variable,value)
+ value = path(value) if value.class == Array
+ ENV[variable] = value
+ message("environment variable #{variable} set to #{value}")
+ return value
+ end
+
+ def execute_command(*command)
+ begin
+ command = [*command].flatten.join(' ')
+ message("running '#{command}'")
+ _puts_("\n")
+ ok = system(command)
+ _puts_("\n")
+ if true then # ok then
+ message("finished '#{command}'")
+ else
+ error("error in running #{command}")
+ end
+ rescue
+ error("unable to run #{command}")
+ end
+ end
+
+ def pipe_command(*command)
+ begin
+ command = [*command].flatten.join(' ')
+ message("running '#{command}'")
+ result = `#{command}`
+ _puts_("\n")
+ _puts_(result)
+ _puts_("\n")
+ rescue
+ error("unable to run #{command}")
+ end
+ end
+
+ def execute_script(script)
+ script = suffixed(script,'rb')
+ script = path(script_path,File.basename(script)) unless found(script)
+ if found(script) then
+ begin
+ message("loading script #{script}")
+ load(script)
+ rescue
+ error("error in loading script #{script} (#{$!})")
+ else
+ message("script #{script} finished")
+ end
+ else
+ warning("no script #{script}")
+ end
+ end
+
+ def execute_binary(*command)
+ command = [*command].flatten.join(' ').split(' ')
+ command[0] = binary(command[0])
+ execute_command(command)
+ end
+
+ def extend_path(pth)
+ export_variable('PATH',"#{path(pth)}#{File::PATH_SEPARATOR}#{ENV['PATH']}")
+ end
+
+ def startup_path
+ @startuppath
+ end
+
+ def current_path
+ Dir.getwd
+ end
+
+ def script_path
+ @ownpath
+ end
+
+ def push_path(newpath)
+ newpath = File.expand_path(newpath)
+ @paths.push(newpath)
+ change_dir(newpath)
+ end
+
+ def pop_path
+ change_dir(if @paths.length > 0 then @paths.pop else @startuppath end)
+ end
+
+ # runner = Runner.new
+ # runner.texmfstart('newtexexec.rb','--help')
+
+ def texmfstart(name,args,verbose=false)
+ command = ['texmfstart',"#{'--verbose' if verbose}",name,args].flatten.join(' ')
+ system(command)
+ end
+
+end
+
+class Job
+
+ # copied from texmfstart and patched (message/error), different name
+
+ def use_tree(tree)
+ unless tree.empty? then
+ begin
+ setuptex = File.join(tree,'setuptex.tmf')
+ if FileTest.file?(setuptex) then
+ message("tex tree : #{setuptex}")
+ ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/'
+ ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME']
+ case RUBY_PLATFORM
+ when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin'
+ when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux'
+ when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx'
+ # when /(netbsd|unix)/i then # todo
+ else # todo
+ end
+ ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}"
+ message("preset : TEXPATH => #{ENV['TEXPATH']}")
+ message("preset : TEXOS => #{ENV['TEXOS']}")
+ message("preset : TEXMFOS => #{ENV['TEXMFOS']}")
+ message("preset : TMP => #{ENV['TMP']}")
+ IO.readlines(File.join(tree,'setuptex.tmf')).each do |line|
+ case line
+ when /^[\#\%]/ then
+ # comment
+ when /^(.*?)\s+\=\s+(.*)\s*$/ then
+ k, v = $1, $2
+ ENV[k] = v.gsub(/\%(.*?)\%/) do
+ ENV[$1] || ''
+ end
+ message("user set : #{k} => #{ENV[k]}")
+ end
+ end
+ else
+ error("no setup file '#{setuptex}'")
+ end
+ rescue
+ warning("error in setup: #{$!}")
+ end
+ end
+ end
+
+end
+
+Job::set_own_path($0)
+
+if Job::ownfile == 'runtools.rb' then
+
+ begin
+ script = ARGV.shift
+ if script then
+ script += '.rb' if File.extname(script).empty?
+ fullname = File.expand_path(script)
+ fullname = File.join(Job::ownpath,script) unless FileTest.file?(fullname)
+ if FileTest.file?(fullname) then
+ puts("loading script #{fullname}")
+ Job::set_own_path(fullname)
+ load(fullname)
+ else
+ puts("unknown script #{fullname}")
+ end
+ else
+ puts("provide script name")
+ end
+ rescue
+ puts("fatal error: #{$!}")
+ end
+
+end
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 8a33961ec..f973cd364 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,6 +24,10 @@
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+% just in case we load something from a file (pdfr-ec for instance)
+
+\prependtoks \restoreendofline \to \everybeforeshipout
+
% \tracefilestrue
%
% \unexpanded\def\readfile#1#2#3%
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index d82338fbe..4e468a414 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.12.01}
+\def\contextversion{2005.12.18}
%D For those who want to use this:
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index 61bd6e342..ff0252069 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -1105,7 +1105,7 @@
\afterTABLEsplitbox
\@@tblsplitafter
\fi
- \pagina
+ \page
\fi}}
% ! ! ! ! TODO: naast \postprocessTABLEsplitbox ook evt \postprocessTABLEbox voor niet split
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 0b70df889..8db6dbc7c 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -123,8 +123,13 @@
% \ifvmode\nobreak\fi
% \GotoPar}
+\long\def\doflushatpar#1%
+% {\dogotopar{#1}}
+% {\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines
+ {\dogotopar{#1\ifvmode\nobreak\fi}} % while this one can mess up vertical space
+
\def\dodoregister[#1]#2#3%
- {\dogotopar{\doprocesspageregister[#1]{#2}{#3}}}
+ {\doflushatpar{\doprocesspageregister[#1]{#2}{#3}}}
\def\writetoregister[#1]% to be documented
{\doregister{#1}}
@@ -163,17 +168,42 @@
\def\currentregister{#1}%
\dodoregister[#2]{}{#3}} % key altnum entry
-\def\complexdoseeregister[#1]#2#3%
+% \def\complexdoseeregister[#1]#2#3%
+% {\begingroup
+% \thisisnextinternal\s!ind
+% \ifduplicate\getlastregisterentry{#2}\fi
+% \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
+% \convertexpanded{\registerparameter\c!expansion }{#2}\asciiregisterentryB
+% \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryC
+% \doifsomething{\registerparameter\c!keyexpansion}
+% {\ifx\asciiregisterentryA\empty
+% \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
+% \fi}%
+% \makesectionformat
+% \expanded
+% {\writeutility%
+% {r s %
+% {\currentregister} %
+% {\nextinternalreference} %
+% {\asciiregisterentryA} %
+% {\asciiregisterentryB} %
+% {\asciiregisterentryC} %
+% {\sectionformat}}}%
+% \endgroup
+% \registerinfo{> see}{#2}%
+% \GotoPar}
+
+\def\doprocessseeregister[#1]#2#3%
{\begingroup
\thisisnextinternal\s!ind
\ifduplicate\getlastregisterentry{#2}\fi
\convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
\convertexpanded{\registerparameter\c!expansion }{#2}\asciiregisterentryB
\convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryC
-\doifsomething{\registerparameter\c!keyexpansion}
- {\ifx\asciiregisterentryA\empty
- \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
- \fi}%
+ \doifsomething{\registerparameter\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
+ \fi}%
\makesectionformat
\expanded
{\writeutility%
@@ -185,16 +215,18 @@
{\asciiregisterentryC} %
{\sectionformat}}}%
\endgroup
- \registerinfo{> see}{#2}%
- \GotoPar}
+ \registerinfo{> see}{#2}}
+
+\def\complexdoseeregister[#1]#2#3%
+ {\doflushatpar{\doprocessseeregister[#1]{#2}{#3}}}
\def\doseeregister#1%
{\def\currentregister{#1}%
- \complexorsimpleempty\doseeregister}
+ \complexorsimpleempty\doseeregister} % = \dosingleempty\doseeregister
-\def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig
- {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
- \doprocesspageregister{}} % mogelijk te maken
+\def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig
+ {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
+ \doprocesspageregister} % mogelijk te maken
\def\writetoregister
{\dodoubleempty\dowritetoregister}
@@ -742,11 +774,29 @@
\docommandoprolinrefB{#1}\nextlistreference\v!next
\fi}}
-\def\dodolinkedregister[#1][#2]#3% page auto link
+% \def\dodolinkedregister[#1][#2]#3% page auto link
+% {\bgroup
+% \chardef\registerpagestatus\plusone
+% \def\currentregister{#1}%
+% \iflocation
+% \ifautoregisterhack
+% \def\next{\doprocessautoregister[#1][#2]}%
+% \else
+% \def\next{\doprocesslinkregister[#1][#2]}%
+% \fi
+% \else
+% \def\next{\doprocesspageregister[#2]{}}%
+% \fi
+% \next{#3}%
+% \egroup
+% \ifvmode\nobreak\fi
+% \GotoPar}
+
+\def\doprocesslinkedregister[#1][#2]#3% page auto link
{\bgroup
\chardef\registerpagestatus\plusone
\def\currentregister{#1}%
- \iflocation
+ \iflocation % \next is not needed
\ifautoregisterhack
\def\next{\doprocessautoregister[#1][#2]}%
\else
@@ -756,9 +806,10 @@
\def\next{\doprocesspageregister[#2]{}}%
\fi
\next{#3}%
- \egroup
- \ifvmode\nobreak\fi
- \GotoPar}
+ \egroup}
+
+\def\dodolinkedregister[#1][#2]#3% page auto link
+ {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}}
\def\dolinkedregister#1%
{\dodoubleempty\dodolinkedregister[#1]}
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 1825797c4..13be56e4d 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -3149,13 +3149,13 @@
\loop
\ifdim\pagetotal=\zeropoint % empty page
\scratchdimen\textheight
- \chardef\backgroundsplit1 % split to max height
+ \chardef\backgroundsplit\plusone % split to max height
\else
\scratchdimen\pagegoal
\setbox\scratchbox\vbox{\@@agbefore}%
\advance\scratchdimen -\ht\scratchbox
\advance\scratchdimen -\pagetotal
- \chardef\backgroundsplit2 % split to partial height
+ \chardef\backgroundsplit\plustwo % split to partial height
\fi
\advance\scratchdimen -\@@agtopoffset
\advance\scratchdimen -\@@agbottomoffset \relax
@@ -3164,7 +3164,7 @@
\setbox2\vsplit0 to \scratchdimen
\else
\setbox2\box0
- \chardef\backgroundsplit0 % no split
+ \chardef\backgroundsplit\zerocount % no split
\fi
\setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
{\vskip\@@agtopoffset
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index f6181648e..369061027 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -1574,7 +1574,7 @@
\def\godown[#1]%
{\relax
\ifhmode\endgraf\fi
- \ifvmode\nointerlineskip\vskip#1\relax}
+ \ifvmode\nointerlineskip\vskip#1\relax\fi}
%D A couple of plain macros:
@@ -4439,6 +4439,22 @@
\doglobal\appendtoks#2\to\everyfirstparagraphintro
\doglobal\appendtoks#2\to\everynextparagraphintro]}
+%D We can say:
+%D
+%D \starttyping
+%D \setupparagraphintro[first][\index{Knuth}]
+%D \stoptyping
+%D
+%D Maybe more convenient is:
+%D
+%D \starttyping
+%D \flushatparagraph{\index{Zapf}}
+%D \stoptyping
+
+\def\flushatparagraph#1%
+ {\global\chardef\everyparagraphintro\plusone
+ \global\appendtoks{#1}\to\everyfirstparagraphintro}
+
% \def\doinsertparagraphintro
% {\ifcase\everyparagraphintro\relax
% % no data
diff --git a/tex/context/base/enco-chi.tex b/tex/context/base/enco-chi.tex
index 5addd57e9..1aaf5b235 100644
--- a/tex/context/base/enco-chi.tex
+++ b/tex/context/base/enco-chi.tex
@@ -13,13 +13,123 @@
% actually this is also a filter -> enco-fcn.tex
-%D This is an experimental definition. Since we are dealing
-%D with unicode's, the registered values are not saved, so
-%D actually we're dealing with an pseudo encoding. The digits
-%D on the other hand are encoding specific.
+%D This is an experimental definition. Since we are dealing
+%D with unicode's, the registered values are not saved, so
+%D actually we're dealing with an pseudo encoding. The digits
+%D on the other hand are encoding specific.
% chinese classes: left=1|right=2|center=3
-
+
+% untested, probably wrong
+
+\startencoding[c-uni]
+
+\defineuclass 1 32 24
+\defineuclass 1 32 28
+\defineuclass 1 48 20
+\defineuclass 1 48 8
+\defineuclass 1 48 10
+\defineuclass 1 48 12
+\defineuclass 1 48 14
+\defineuclass 1 48 22
+\defineuclass 1 48 16
+\defineuclass 1 255 8
+\defineuclass 1 255 59
+\defineuclass 1 255 64
+\defineuclass 1 255 91
+
+\defineuclass 3 0 183
+\defineuclass 3 0 168
+\defineuclass 3 32 38
+\defineuclass 3 255 30
+
+\defineuclass 2 48 1
+\defineuclass 2 48 2
+\defineuclass 2 32 20
+\defineuclass 2 255 94
+\defineuclass 2 32 25
+\defineuclass 2 32 29
+\defineuclass 2 48 21
+\defineuclass 2 48 9
+\defineuclass 2 48 11
+\defineuclass 2 48 13
+\defineuclass 2 48 15
+\defineuclass 2 48 23
+\defineuclass 2 48 17
+\defineuclass 2 34 55
+\defineuclass 2 0 176
+\defineuclass 2 32 50
+\defineuclass 2 32 51
+\defineuclass 2 255 1
+\defineuclass 2 255 2
+\defineuclass 2 255 7
+\defineuclass 2 255 9
+\defineuclass 2 255 12
+\defineuclass 2 255 14
+\defineuclass 2 255 26
+\defineuclass 2 255 27
+\defineuclass 2 255 31
+\defineuclass 2 255 61
+\defineuclass 2 255 93
+
+\defineudigit 0 37 203
+\defineudigit 1 78 0
+\defineudigit 2 78 140
+\defineudigit 3 78 9
+\defineudigit 4 86 219
+\defineudigit 5 78 148
+\defineudigit 6 81 109
+\defineudigit 7 78 3
+\defineudigit 8 81 107
+\defineudigit 9 78 93
+\defineudigit 10 83 65
+\defineudigit 100 118 126
+\defineudigit 1000 83 67
+\defineudigit 10000 78 7
+\defineudigit 100000000 78 191
+
+\defineudigit 0* 150 246
+\defineudigit 1* 88 249
+\defineudigit 2* 141 48
+\defineudigit 3* 83 193
+\defineudigit 4* 128 134
+\defineudigit 5* 79 13
+\defineudigit 6* 150 70
+\defineudigit 7* 103 210
+\defineudigit 8* 99 76
+\defineudigit 9* 115 150
+\defineudigit 10* 98 254
+\defineudigit 100* 79 112
+\defineudigit 1000* 78 223
+\defineudigit 10000* 132 44
+\defineudigit 100000000* 78 191
+
+\defineudigit 20 94 255
+\defineudigit 21 78 0
+\defineudigit 22 78 140
+\defineudigit 23 78 9
+\defineudigit 24 86 219
+\defineudigit 25 78 148
+\defineudigit 26 81 109
+\defineudigit 27 78 3
+\defineudigit 28 81 107
+\defineudigit 29 78 93
+
+\defineudigit 30 83 69
+\defineudigit 31 78 0
+\defineudigit 32 78 140
+\defineudigit 33 78 9
+\defineudigit 34 86 219
+\defineudigit 35 78 148
+\defineudigit 36 81 109
+\defineudigit 37 78 3
+\defineudigit 38 81 107
+\defineudigit 39 78 93
+
+\stopencoding
+
+% \doif \currentregime {utf} \endinput
+
\startencoding[big5]
\defineuclass 1 161 93
@@ -138,7 +248,7 @@
\defineudigit 27 164 67
\defineudigit 28 164 75
\defineudigit 29 164 69
-
+
\defineudigit 30 164 202
\defineudigit 31 164 64
\defineudigit 32 164 71
@@ -258,4 +368,4 @@
\stopencoding
-\endinput
+\endinput
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 7a602d4ab..dd5c4211a 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -36,7 +36,6 @@
%M \def\WangLei{\purechinese{\uchar{205}{245}\uchar{192}{218}}}
\useencoding[chi]
-\loadmapfile[gbk]
%D When \WangLei\ sent me a mail asking if \CONTEXT\ was able
%D to support Chinese, I wasn't sure if the answer could be
@@ -154,66 +153,6 @@
\horizontalchineseunicodeglyph
\fi\fi}
-% This is a previous, very encoding specific, attempt. The
-% current implementation is more versatile.
-%
-% \starttypen
-% \def\chineseleftglyph {\chardef\chineseSstatus=1 }
-% \def\chineserightglyph {\chardef\chineseSstatus=2 }
-% \def\chinesecenterglyph {\chardef\chineseSstatus=3 }
-%
-% \def\analyzechineseunicodeglyph%
-% {% left
-% \ifnum\unicodeposition=161174 \chineseleftglyph \else
-% \ifnum\unicodeposition=161176 \chineseleftglyph \else
-% \ifnum\unicodeposition=161178 \chineseleftglyph \else
-% \ifnum\unicodeposition=161180 \chineseleftglyph \else
-% \ifnum\unicodeposition=161182 \chineseleftglyph \else
-% \ifnum\unicodeposition=161184 \chineseleftglyph \else
-% \ifnum\unicodeposition=161186 \chineseleftglyph \else
-% \ifnum\unicodeposition=161188 \chineseleftglyph \else
-% \ifnum\unicodeposition=161190 \chineseleftglyph \else
-% \ifnum\unicodeposition=163168 \chineseleftglyph \else
-% \ifnum\unicodeposition=163219 \chineseleftglyph \else
-% \ifnum\unicodeposition=163224 \chineseleftglyph \else
-% \ifnum\unicodeposition=163251 \chineseleftglyph \else
-% % right
-% \ifnum\unicodeposition=161162 \chineserightglyph \else
-% \ifnum\unicodeposition=161163 \chineserightglyph \else
-% \ifnum\unicodeposition=161175 \chineserightglyph \else
-% \ifnum\unicodeposition=161177 \chineserightglyph \else
-% \ifnum\unicodeposition=161179 \chineserightglyph \else
-% \ifnum\unicodeposition=161181 \chineserightglyph \else
-% \ifnum\unicodeposition=161183 \chineserightglyph \else
-% \ifnum\unicodeposition=161185 \chineserightglyph \else
-% \ifnum\unicodeposition=161187 \chineserightglyph \else
-% \ifnum\unicodeposition=161189 \chineserightglyph \else
-% \ifnum\unicodeposition=161191 \chineserightglyph \else
-% \ifnum\unicodeposition=161227 \chineserightglyph \else
-% \ifnum\unicodeposition=161228 \chineserightglyph \else
-% \ifnum\unicodeposition=161229 \chineserightglyph \else
-% \ifnum\unicodeposition=163161 \chineserightglyph \else
-% \ifnum\unicodeposition=163162 \chineserightglyph \else
-% \ifnum\unicodeposition=163167 \chineserightglyph \else
-% \ifnum\unicodeposition=163169 \chineserightglyph \else
-% \ifnum\unicodeposition=163172 \chineserightglyph \else
-% \ifnum\unicodeposition=163174 \chineserightglyph \else
-% \ifnum\unicodeposition=163186 \chineserightglyph \else
-% \ifnum\unicodeposition=163187 \chineserightglyph \else
-% \ifnum\unicodeposition=163191 \chineserightglyph \else
-% \ifnum\unicodeposition=163221 \chineserightglyph \else
-% \ifnum\unicodeposition=163253 \chineserightglyph \else
-% % center
-% \ifnum\unicodeposition=161164 \chinesecenterglyph \else
-% \ifnum\unicodeposition=161167 \chinesecenterglyph \else
-% \ifnum\unicodeposition=161173 \chinesecenterglyph \else
-% \ifnum\unicodeposition=163190 \chinesecenterglyph \else
-% % unknown
-% \chardef\chineseSstatus=0
-% \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi
-% \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi}
-% \stoptypen
-%
% chinese classes: left=1|right=2|center=3
\chardef\plusfour=4
@@ -918,12 +857,12 @@
%D \defineunicodefont
%D [SimChi]
%D [SimplifiedChinese]
-%D [ \c!scale=\chineseunicodescale,
-%D \c!height=\chineseunicodeheight,
-%D \c!depth=\chineseunicodedepth,
+%D [\c!scale=\chineseunicodescale,
+%D \c!height=\chineseunicodeheight,
+%D \c!depth=\chineseunicodedepth,
%D \c!conversion=\chinesenumber,
%D \c!commands=\setchineseencoding, % needed for digits
-%D \c!command=\handlechineseunicodeglyph]
+%D \c!command=\handlechineseunicodeglyph]
%D \stoptyping
%D
%D However, the former definitions is more general. Next we
@@ -943,6 +882,44 @@
\definefontsynonym [TraditionalChineseBoldSlanted] [b5heisl] [encoding=big5]
\definefontsynonym [TraditionalChineseBoldItalic] [b5heisl] [encoding=big5]
+% we need to move this to typescripts
+
+\doifelse \currentregime {utf} {
+
+ \useunicodevector[chi]
+
+ \definefontsynonym [SimplifiedChineseRegular] [ChineseRegular]
+ \definefontsynonym [SimplifiedChineseSlanted] [ChineseSlanted]
+ \definefontsynonym [SimplifiedChineseItalic] [ChineseItalic]
+ \definefontsynonym [SimplifiedChineseBold] [ChineseBold]
+ \definefontsynonym [SimplifiedChineseBoldSlanted] [ChineseBoldSlanted]
+ \definefontsynonym [SimplifiedChineseBoldItalic] [ChineseBoldItalic]
+
+ \definefontsynonym [TraditionalChineseRegular] [ChineseRegular]
+ \definefontsynonym [TraditionalChineseSlanted] [ChineseSlanted]
+ \definefontsynonym [TraditionalChineseItalic] [ChineseItalic]
+ \definefontsynonym [TraditionalChineseBold] [ChineseBold]
+ \definefontsynonym [TraditionalChineseBoldSlanted][ChineseBoldSlanted]
+ \definefontsynonym [TraditionalChineseBoldItalic] [ChineseBoldItalic]
+
+ \definefontsynonym [ChineseRegular] [uni-htsong-][encoding=c-uni]
+ \definefontsynonym [ChineseSlanted] [uni-htsong-][encoding=c-uni]
+ \definefontsynonym [ChineseItalic] [uni-htsong-][encoding=c-uni]
+ \definefontsynonym [ChineseBold] [uni-hthei-] [encoding=c-uni]
+ \definefontsynonym [ChineseBoldSlanted][uni-hthei-] [encoding=c-uni]
+ \definefontsynonym [ChineseBoldItalic] [uni-hthei-] [encoding=c-uni]
+
+ \loadmapfile[uni-htsong.map]
+ \loadmapfile[uni-htfs.map]
+ \loadmapfile[uni-hthei.map]
+ \loadmapfile[uni-htkai.map]
+
+} {
+
+ \loadmapfile[gbk]
+
+}
+
\defineunicodefont [SimChi] [SimplifiedChinese] [chinese]
\defineunicodefont [TraChi] [TraditionalChinese] [chinese]
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index ae27c1b6f..873d51716 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -4710,15 +4710,16 @@
\scaledfont\currentfontscale\bodyfontsize
\scaledfont\relativefontsize\scaledfont}
-\def\variant[#1]% slow
+\unexpanded\def\variant[#1]% slow
{\dosetscaledfont
\expanded{\definedfont
[\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
- at \scaledfont]}}
+ at \scaledfont]}%
+ \ignoreimplicitspaces}
\beginXETEX \font
- \def\variant[#1]%
+ \unexpanded\def\variant[#1]%
{\dosetscaledfont
\font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
at \scaledfont
diff --git a/tex/context/base/font-run.tex b/tex/context/base/font-run.tex
index f6221745e..d657aa402 100644
--- a/tex/context/base/font-run.tex
+++ b/tex/context/base/font-run.tex
@@ -17,6 +17,9 @@
\unprotect
+\gdef\@@onlyenglish#1%
+ {\blank{\tttf \type {#1} is only available in the english interface}\blank}
+
\gdef\dosetshowfonttitle#1%
{\tabskip\zeropoint
\parindent\zeropoint
@@ -227,7 +230,7 @@
\gdef\showligatures[#1]%
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showligatures} is only available in thr english interface}\blank
+ \@@onlyenglish\showligatures
\else
\bgroup
\setupcolors[\c!state=\v!local]%
@@ -247,7 +250,7 @@
\gdef\doshowfontstrip[#1]%
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showfontstrip} is only available in thr english interface}\blank
+ \@@onlyenglish\showfontstrip
\else
\bgroup
\def\dofontstripa##1##2%
@@ -303,7 +306,7 @@
\gdef\showminimalbaseline
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showminimalbaseline} is only available in thr english interface}\blank
+ \@@onlyenglish\showminimalbaseline
\else
\starttabulate[||T|T|T|T|T|T|T|T|T|]
\testminimalbaseline{\hbox to 1em{\hss\showstruts\strut\hss}}%
diff --git a/tex/context/base/font-uni.tex b/tex/context/base/font-uni.tex
index 09fcf22ea..942c61ae4 100644
--- a/tex/context/base/font-uni.tex
+++ b/tex/context/base/font-uni.tex
@@ -421,12 +421,12 @@
%D \starttyping
%D \defineunicodefont
%D [SimChi] [SimplifiedChinese]
-%D [ \c!scale=0.85,
-%D \c!height=1.25,
-%D \c!depth=1.00,
-%D \c!interlinespaceinterlinie=yes,
+%D [\c!scale=0.85,
+%D \c!height=1.25,
+%D \c!depth=1.00,
+%D \c!interlinespaceinterlinie=yes,
%D \c!conversion=\chinesenumber,
-%D \c!command=\handlechineseunicodeglyph]
+%D \c!command=\handlechineseunicodeglyph]
%D \stoptyping
%D
%D Together with:
@@ -502,7 +502,8 @@
\def\unicodedepth {\getvalue{\??uc#1\c!depth}}%
\def\unicodedigits {\getvalue{\??uc#1\c!conversion}}%
\def\handleunicodeglyph {\getvalue{\??uc#1\c!command}}%
- \enableregime[unicode]% the following \relax's are realy needed
+ \doifnot\currentregime{utf}{\enableregime[unicode]}%
+ % the following \relax's are realy needed
\doifvalue{\??uc#1\c!interlinespace}\v!yes\setupinterlinespace\relax
\getvalue{\??uc#1\c!commands}\relax}
diff --git a/tex/context/base/lang-chi.tex b/tex/context/base/lang-chi.tex
index b6c3ba20a..a9c36e80a 100644
--- a/tex/context/base/lang-chi.tex
+++ b/tex/context/base/lang-chi.tex
@@ -95,6 +95,53 @@
\def\cnencoding{\enableencoding[\chineseencoding]} % ugly and temporary
+\startencoding[uni-c]
+ \definecommand cnleftsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnrightsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnleftsubsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnrightsubsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnupperleftsinglequote {\uchar{32}{24}}
+ \definecommand cnupperrightsinglequote {\uchar{32}{25}}
+ \definecommand cnupperleftdoublequote {\uchar{32}{28}}
+ \definecommand cnupperrightdoublequote {\uchar{32}{29}}
+ \definecommand cnupperleftsinglequote-v {\uchar{48}{12}}
+ \definecommand cnupperrightsinglequote-v {\uchar{48}{13}}
+ \definecommand cnupperleftdoublequote-v {\uchar{48}{14}}
+ \definecommand cnupperrightdoublequote-v {\uchar{48}{15}}
+ \definecommand cnencodedcontents {\uchar{118}{238}\uchar{95}{85}}
+ \definecommand cnencodedtables {\uchar{136}{104}\uchar{104}{60}}
+ \definecommand cnencodedfigures {\uchar{86}{254}\uchar{95}{98}}
+ \definecommand cnencodedindex {\uchar{125}{34}\uchar{95}{21}}
+ \definecommand cnencodedabbreviations {\uchar{127}{41}\uchar{117}{101}\uchar{139}{237}}
+ \definecommand cnencodedlogos {\uchar{95}{189}\uchar{141}{44}}
+ \definecommand cnencodedunits {\uchar{139}{161}\uchar{145}{207}\uchar{83}{85}\uchar{79}{77}}
+ \definecommand cnencodedtable {\uchar{136}{104}}
+ \definecommand cnencodedfigure {\uchar{86}{254}}
+ \definecommand cnencodedintro {\uchar{123}{44}}
+ \definecommand cnencodedpart {\uchar{144}{232}\uchar{82}{6}}
+ \definecommand cnencodedchapter {\uchar{122}{224}}
+ \definecommand cnencodedsection {\uchar{130}{130}}
+ \definecommand cnencodedjanuary {\uchar{78}{0}\uchar{103}{8}}
+ \definecommand cnencodedfebrary {\uchar{78}{140}\uchar{103}{8}}
+ \definecommand cnencodedmarch {\uchar{78}{9}\uchar{103}{8}}
+ \definecommand cnencodedapril {\uchar{86}{219}\uchar{103}{8}}
+ \definecommand cnencodedmay {\uchar{78}{148}\uchar{103}{8}}
+ \definecommand cnencodedjune {\uchar{81}{109}\uchar{103}{8}}
+ \definecommand cnencodedjuly {\uchar{78}{3}\uchar{103}{8}}
+ \definecommand cnencodedaugust {\uchar{81}{107}\uchar{103}{8}}
+ \definecommand cnencodedseptember {\uchar{78}{93}\uchar{103}{8}}
+ \definecommand cnencodedoctober {\uchar{83}{65}\uchar{103}{8}}
+ \definecommand cnencodednovember {\uchar{83}{65}\uchar{78}{0}\uchar{103}{8}}
+ \definecommand cnencodeddecember {\uchar{83}{65}\uchar{78}{140}\uchar{103}{8}}
+ \definecommand cnencodedsunday {\uchar{102}{31}\uchar{103}{31}\uchar{101}{229}}
+ \definecommand cnencodedmonday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{0}}
+ \definecommand cnencodedtuesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{140}}
+ \definecommand cnencodedwednesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{9}}
+ \definecommand cnencodedthursday {\uchar{102}{31}\uchar{103}{31}\uchar{86}{219}}
+ \definecommand cnencodedfriday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{148}}
+ \definecommand cnencodedsaturday {\uchar{102}{31}\uchar{103}{31}\uchar{81}{109}}
+\stopencoding
+
\startencoding[gbk]
\definecommand cnleftsentence {\uchar{161}{170}\uchar{161}{170}}
\definecommand cnrightsentence {\uchar{161}{170}\uchar{161}{170}}
diff --git a/tex/context/base/lang-ger.tex b/tex/context/base/lang-ger.tex
index 919748c69..bda1e392c 100644
--- a/tex/context/base/lang-ger.tex
+++ b/tex/context/base/lang-ger.tex
@@ -406,12 +406,14 @@
\setuplabeltext [\s!af] [\v!graphic=Grafiek ]
\setuplabeltext [\s!no] [\v!graphic=Grafikk ]
-\setuplabeltext [\s!en] [\v!chapter=]
+%D We don't set these here. One can do that in a style.
+
+\setuplabeltext [\s!en] [\v!chapter=] % Chapter
\setuplabeltext [\s!nl] [\v!chapter=]
-\setuplabeltext [\s!de] [\v!chapter=]
+\setuplabeltext [\s!de] [\v!chapter=] % Kapitel
\setuplabeltext [\s!da] [\v!chapter=]
\setuplabeltext [\s!sv] [\v!chapter=]
-\setuplabeltext [\s!af] [\v!chapter=] % [\v!chapter=hoofstuk]
+\setuplabeltext [\s!af] [\v!chapter=] % Hoofstuk
\setuplabeltext [\s!no] [\v!chapter=]
\setuplabeltext [\s!en] [\v!section=]
@@ -419,7 +421,7 @@
\setuplabeltext [\s!de] [\v!section=]
\setuplabeltext [\s!da] [\v!section=]
\setuplabeltext [\s!sv] [\v!section=]
-\setuplabeltext [\s!af] [\v!section=] % [\v!section=paragraaf]
+\setuplabeltext [\s!af] [\v!section=] % Paragraaf
\setuplabeltext [\s!no] [\v!section=]
\setuplabeltext [\s!en] [\v!subsection=]
@@ -446,12 +448,12 @@
\setuplabeltext [\s!af] [\v!subsubsubsection=]
\setuplabeltext [\s!no] [\v!subsubsubsection=]
-\setuplabeltext [\s!en] [\v!appendix=]
+\setuplabeltext [\s!en] [\v!appendix=] % Appendix
\setuplabeltext [\s!nl] [\v!appendix=]
-\setuplabeltext [\s!de] [\v!appendix=]
-\setuplabeltext [\s!da] [\v!appendix=] % [\v!appendix=bilag]
+\setuplabeltext [\s!de] [\v!appendix=] % Anhang
+\setuplabeltext [\s!da] [\v!appendix=] % Bilag
\setuplabeltext [\s!sv] [\v!appendix=]
-\setuplabeltext [\s!af] [\v!appendix=] % [\v!appendix=bylae]
+\setuplabeltext [\s!af] [\v!appendix=] % Bylae
\setuplabeltext [\s!no] [\v!appendix=]
\setuplabeltext [\s!en] [\v!part=Part ]
diff --git a/tex/context/base/lang-sla.tex b/tex/context/base/lang-sla.tex
index 428796e8a..ee990dab0 100644
--- a/tex/context/base/lang-sla.tex
+++ b/tex/context/base/lang-sla.tex
@@ -24,6 +24,7 @@
%D \NC Polish \NC Grzegorz Sapijaszko \NC \NR
%D \NC Croatian \NC \Zcaron eljko Vrba \NC \NR
%D \NC Slovenian \NC Mojca Miklavec \NC \NR
+%D \NC Cz and Sk \NC Richard Gabriel \NC \NR
%D \stoptabulate
% Belarussian, Russian, Ukrainian, Bulgarian, Macedonian,
@@ -258,14 +259,14 @@
\setupheadtext [\s!sl] [\v!figures=Slike]
\setupheadtext [\s!pl] [\v!graphics=Grafika]
-\setupheadtext [\s!cz] [\v!graphics=Grafika] % new
-\setupheadtext [\s!sk] [\v!graphics=...]
+\setupheadtext [\s!cz] [\v!graphics=Graf]
+\setupheadtext [\s!sk] [\v!graphics=Graf]
\setupheadtext [\s!hr] [\v!graphics=Slike]
\setupheadtext [\s!sl] [\v!graphics=Slike]
\setupheadtext [\s!pl] [\v!intermezzi=Intermezza]
\setupheadtext [\s!cz] [\v!intermezzi=Intermezza]
-\setupheadtext [\s!sk] [\v!intermezzi=...]
+\setupheadtext [\s!sk] [\v!intermezzi=Intermezz\aacute]
\setupheadtext [\s!hr] [\v!intermezzi=Intermezza]
\setupheadtext [\s!sl] [\v!intermezzi=Intermezzi]
@@ -276,20 +277,20 @@
\setupheadtext [\s!sl] [\v!index=Kazalo]
\setupheadtext [\s!pl] [\v!abbreviations=Skr\oacute cenie]
-\setupheadtext [\s!cz] [\v!abbreviations=Zkratky] % new
-\setupheadtext [\s!sk] [\v!abbreviations=...]
+\setupheadtext [\s!cz] [\v!abbreviations=Zkratky]
+\setupheadtext [\s!sk] [\v!abbreviations=Skratky]
\setupheadtext [\s!hr] [\v!abbreviations=Kratice]
\setupheadtext [\s!sl] [\v!abbreviations=Kratice]
\setupheadtext [\s!pl] [\v!logos=Znaki]
-\setupheadtext [\s!cz] [\v!logos=Loga] % new
-\setupheadtext [\s!sk] [\v!logos=...]
+\setupheadtext [\s!cz] [\v!logos=Loga]
+\setupheadtext [\s!sk] [\v!logos=Log\aacute]
\setupheadtext [\s!hr] [\v!logos=Znakovi]
\setupheadtext [\s!sl] [\v!logos=Logotipi]
\setupheadtext [\s!pl] [\v!units=Jednostki]
-\setupheadtext [\s!cz] [\v!units=Jednotky] % new
-\setupheadtext [\s!sk] [\v!units=...]
+\setupheadtext [\s!cz] [\v!units=Jednotky]
+\setupheadtext [\s!sk] [\v!units=Jednotky]
\setupheadtext [\s!hr] [\v!units=Jednostki]
\setupheadtext [\s!sl] [\v!units=Enote]
@@ -301,19 +302,19 @@
\setuplabeltext [\s!pl] [\v!figure=Ilustracja ]
\setuplabeltext [\s!cz] [\v!figure=Obr\aacute zek ]
-\setuplabeltext [\s!sk] [\v!figure=... ]
+\setuplabeltext [\s!sk] [\v!figure=Obr\aacute zok ]
\setuplabeltext [\s!hr] [\v!figure=Slika ]
\setuplabeltext [\s!sl] [\v!figure=Slika ]
\setuplabeltext [\s!pl] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!cz] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!sk] [\v!intermezzo=... ]
+\setuplabeltext [\s!sk] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!hr] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!sl] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!pl] [\v!graphic=Grafika ]
-\setuplabeltext [\s!cz] [\v!graphic=... ]
-\setuplabeltext [\s!sk] [\v!graphic=... ]
+\setuplabeltext [\s!cz] [\v!graphic=Graf ]
+\setuplabeltext [\s!sk] [\v!graphic=Graf ]
\setuplabeltext [\s!hr] [\v!graphic=Slika ]
\setuplabeltext [\s!sl] [\v!graphic=Slika ]
@@ -324,32 +325,32 @@
\setuplabeltext [\s!sl] [\v!chapter=] % Poglavje
\setuplabeltext [\s!pl] [\v!section=] % Podrozdzia\l
-\setuplabeltext [\s!cz] [\v!section=] % Sekce % new
-\setuplabeltext [\s!sk] [\v!section=]
+\setuplabeltext [\s!cz] [\v!section=] % Sekce
+\setuplabeltext [\s!sk] [\v!section=] % Sekcia
\setuplabeltext [\s!hr] [\v!section=] % Podrozdzia\l
\setuplabeltext [\s!sl] [\v!section=]
\setuplabeltext [\s!pl] [\v!subsection=]
-\setuplabeltext [\s!cz] [\v!subsection=] % Podsekce % new
-\setuplabeltext [\s!sk] [\v!subsection=]
+\setuplabeltext [\s!cz] [\v!subsection=] % Podsekce
+\setuplabeltext [\s!sk] [\v!subsection=] % Podsekcia
\setuplabeltext [\s!hr] [\v!subsection=]
\setuplabeltext [\s!sl] [\v!subsection=]
\setuplabeltext [\s!pl] [\v!subsubsection=]
-\setuplabeltext [\s!cz] [\v!subsubsection=] % Podpodsekce % new
-\setuplabeltext [\s!sk] [\v!subsubsection=]
+\setuplabeltext [\s!cz] [\v!subsubsection=] % Podpodsekce
+\setuplabeltext [\s!sk] [\v!subsubsection=] % Podpodsekcia
\setuplabeltext [\s!hr] [\v!subsubsection=]
\setuplabeltext [\s!sl] [\v!subsubsection=]
\setuplabeltext [\s!pl] [\v!subsubsubsection=]
-\setuplabeltext [\s!cz] [\v!subsubsubsection=] % Podpodpodsekce % new
-\setuplabeltext [\s!sk] [\v!subsubsubsection=]
+\setuplabeltext [\s!cz] [\v!subsubsubsection=] % Podpodpodsekce
+\setuplabeltext [\s!sk] [\v!subsubsubsection=] % Podpodpodsekcia
\setuplabeltext [\s!hr] [\v!subsubsubsection=]
\setuplabeltext [\s!sl] [\v!subsubsubsection=]
\setuplabeltext [\s!pl] [\v!appendix=] % Dodatek
-\setuplabeltext [\s!cz] [\v!appendix=P\rcaron\iacute loha] % new
-\setuplabeltext [\s!sk] [\v!appendix=]
+\setuplabeltext [\s!cz] [\v!appendix=P\rcaron\iacute loha]
+\setuplabeltext [\s!sk] [\v!appendix=Pr\iacute loha]
\setuplabeltext [\s!hr] [\v!appendix=Dodatak ]
\setuplabeltext [\s!sl] [\v!appendix=Dodatek ]
@@ -360,14 +361,14 @@
\setuplabeltext [\s!sl] [\v!part=Del ]
\setuplabeltext [\s!pl] [\v!line=wiersz ]
-\setuplabeltext [\s!cz] [\v!line=\rcaron\aacute dek] % new
-\setuplabeltext [\s!sk] [\v!line=... ]
+\setuplabeltext [\s!cz] [\v!line=\rcaron\aacute dek]
+\setuplabeltext [\s!sk] [\v!line=riadok ]
\setuplabeltext [\s!hr] [\v!line=red ]
\setuplabeltext [\s!sl] [\v!line=vrstica ]
\setuplabeltext [\s!pl] [\v!lines=wiersze ]
-\setuplabeltext [\s!cz] [\v!lines=\rcaron\aacute dky] % new
-\setuplabeltext [\s!sk] [\v!lines=... ]
+\setuplabeltext [\s!cz] [\v!lines=\rcaron\aacute dky]
+\setuplabeltext [\s!sk] [\v!lines=riadky ]
\setuplabeltext [\s!hr] [\v!lines=redovi ]
\setuplabeltext [\s!sl] [\v!lines=vrstice ]
@@ -492,7 +493,7 @@
\setuplabeltext [\s!sl] [\v!see=glej ]
% new
-\setuplabeltext [\s!cz] [\v!page=strna ]
+\setuplabeltext [\s!cz] [\v!page=strana ]
\setuplabeltext [\s!cz] [\v!atpage=na stran\ecaron\ ]
\setuplabeltext [\s!cz] [\v!hencefore=viz v\yacute\scaron e ]
\setuplabeltext [\s!cz] [\v!hereafter=viz n\iacute\zcaron e ]
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index 799d441ad..0ccb60616 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -815,7 +815,10 @@
%D However, on a 1 Gig Pentium, the next alternative saves
%D us 20 seconds run time for the 300 page \METAFUN\ manual:
-\def\insertMPfile#1#2{\doinsertMPfile{#1}}
+\let\insertMPfileARG\insertMPfile
+
+\def\insertMPfile#1#2% in context #2 is empty
+ {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
\def\includeMPasEPS#1%
{\bgroup
diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex
index d5fe1f47a..842b3cafe 100644
--- a/tex/context/base/mult-com.tex
+++ b/tex/context/base/mult-com.tex
@@ -2049,9 +2049,12 @@ startcolumnmakeup: startkolomopmaak startcolumnmakeup
stopcolumnmakeup stopcolumnmakeup
stopcolumnmakeup stopcolumnmakeup
- usetypescript: gebruiktypescript usetypescript
- usetypescript usetypescript
- usetypescript usetypescript
+ usetypescript: gebruiktypescript usetypescript
+ usetypescript usetypescript
+ usetypescript usetypescript
+usetypescriptfile: gebruiktypescriptfile usetypescriptfile
+ usetypescriptfile usetypescriptfile
+ usetypescriptfile usetypescriptfile
\stopcommands
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 7348bc3e9..53508c297 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -1597,6 +1597,9 @@ textlayer: tekstlaag textlayer
width: breedte width
breite sirka
ampiezza latime
+ minwidth: minbreedte minwidth
+ minbreite minsirka
+ ampiezzamin latimeminima % TB TH
outer: buiten outer
aussen vnejsi
esterno extern
@@ -1738,6 +1741,9 @@ textlayer: tekstlaag textlayer
height: hoogte height
hoehe vyska
altezza inaltime
+ minheight: minhoogte minheight
+ minhoehe minvyska
+ altezzamin inaltimeminima
horizontal: horizontaal horizontal
horizontal horizontalne
orizzontale orizontal
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 97b0e3f14..33d19c605 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -866,7 +866,7 @@
\setbox0\vbox{\strut\blank[\@@bkspacebefore]\strut}%
\setbox2\vbox{\strut\blank[\@@bkspaceafter ]\strut}%
\ifdim\ht0>\ht2
- \blank[-\@@bkspaceafter,\@@bkspacebefore]
+ \blank[-\@@bkspaceafter,\@@bkspacebefore]%
\fi
\egroup}
@@ -2100,7 +2100,7 @@
\let\floatrow\empty
\edef\floatmethod{#2}}%
\doifundefined{\string\floatmethod\floatmethod}
- {\let\floatmethod\v!here}%
+ {\let\floatmethod\v!here}%
\getvalue{\string\floatmethod\floatmethod}[#1]%
\fi}
diff --git a/tex/context/base/regi-uni.tex b/tex/context/base/regi-uni.tex
index 2b749967f..4d694383a 100644
--- a/tex/context/base/regi-uni.tex
+++ b/tex/context/base/regi-uni.tex
@@ -2,17 +2,17 @@
%D [ file=enco-uni,
%D version=1998.10.18,
%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Unicode,
+%D subtitle=Unicode,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module activates all characters in the upper range
-%D and sets them to the basic unicodehandler.
+%D This module activates all characters in the upper range
+%D and sets them to the basic unicodehandler.
\startregime[unicode]
@@ -20,4 +20,4 @@
\stopregime
-\endinput
+\endinput
diff --git a/tex/context/base/s-chi-00.tex b/tex/context/base/s-chi-00.tex
index 7438f4d5c..956f362b7 100644
--- a/tex/context/base/s-chi-00.tex
+++ b/tex/context/base/s-chi-00.tex
@@ -14,7 +14,7 @@
\mainlanguage[cn]
-\setupbodyfont[chi]
+\setupbodyfont[chi] % loads font-chi
\unprotect
@@ -50,4 +50,27 @@
\setuptyping[\c!tab=\v!no]
+%D This module (and font support) adapts to the \UTF\ regime, but you
+%D need to enable \UTF\ first!
+%D
+%D \starttyping
+%D \enableregime[utf] \usemodule[chi-00]
+%D
+%D \starttext
+%D
+%D 兡也包因沘氓侷柵苗孫孫財
+%D 崧淫設弼琶跑愍窟榜蒸奭稽
+%D 霄瓢館縲擻鼕孃魔釁佉沎岠
+%D 狋垚柛胅娭涘罞偟惈牻荺傒
+%D 焱菏酡廅滘絺赩塴榗箂踃嬁
+%D 澕蓴醊獧螗餟燱螬駸礑鎞瀧
+%D 鄿瀯騬醹躕鱕
+%D
+%D \blank
+%D
+%D Wang Lei is written as: 王磊
+%D
+%D \stoptext
+%D \stoptyping
+
\protect \endinput
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index cd0c48150..b89ba295c 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -591,6 +591,8 @@
%D regards to active characters (german ", polish /,
%D french : and ;).
+%D We need to redo this: catcode sets and such
+
\def\startreadingfile% beter een every en \setnormalcatcodes
{\doglobal\increment\readingfilelevel
\setxvalue{\string\readingfilelevel::\readingfilelevel}%
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 5f0700deb..89c5f7ea8 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -135,8 +135,9 @@
{\convertargument #7\to\asciia
\convertcommand \DroppedString\to\asciib
\ExpandBothAfter\doifinstringelse\asciia\asciib
- {\dontleavehmode
- \ifhmode\hskip-\parindent\fi
+ {\noindenting
+ \dontleavehmode
+ %\ifhmode\hskip-\parindent\fi % sensitive for context mechanism
\keeplinestogether{#6}%
\setbox0\hbox{\definedfont[#2 at #3]#1{#7}\hskip#4}%
\ifdim\dp0>\strutdp % one of those Q's , will be option
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 23e6ccc89..97bd09a89 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -1640,7 +1640,7 @@
\def\getMPdrawing
{\ifMPdrawingdone
\expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
- \loadcurrentMPgraphic\empty
+ \loadcurrentMPgraphic{}%
\deallocateMPslot\currentMPgraphic
\placeMPgraphic
\fi}
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index b46b319d7..6112b6f6f 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -857,11 +857,26 @@
\endETEX
+\beginTEX
+
\def\uncompresslist[#1]%
{\def\uncompressedlist{#1}}
-\beginTEX
-
\endTEX
+%D \macros
+%D {ignoreimplicitspaces}
+%D
+%D \startbuffer
+%D \def\whatever[#1]{\expanded{\definedfont[#1 at 12pt]}\ignorespaces}
+%D {a\whatever[Serif]b a\whatever[Serif] b a\whatever[Serif]\space b}
+%D \def\whatever[#1]{\expanded{\definedfont[#1 at 12pt]}\ignoreimplicitspaces}
+%D {a\whatever[Serif]b a\whatever[Serif] b a\whatever[Serif]\space b}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\ignoreimplicitspaces
+ {\doifnextcharelse\relax\relax\relax}
+
\protect \endinput
diff --git a/tex/context/base/type-buy.tex b/tex/context/base/type-buy.tex
index 53a178d6e..92b32e0a1 100644
--- a/tex/context/base/type-buy.tex
+++ b/tex/context/base/type-buy.tex
@@ -887,7 +887,6 @@
\stoptypescript
-
\stoptypescriptcollection
\endinput
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index 71da7f0ad..c7c17585d 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -168,40 +168,7 @@
\stoptypescript
-% \starttypescript [serif] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Serif] [handling=\typescriptthree]
-% \setupfontsynonym [SerifBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [SerifSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [SerifItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [SerifBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [SerifBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-%
-% \starttypescript [sans] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Sans] [handling=\typescriptthree]
-% \setupfontsynonym [SansBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [SansSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [SansItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [SansBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [SansBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-%
-% \starttypescript [mono] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Mono] [handling=\typescriptthree]
-% \setupfontsynonym [MonoBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [MonoSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [MonoItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [MonoBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [MonoBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-
-\starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality]
+\starttypescript [serif,sans,mono] [handling,hanging] [pure,normal]
\setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
\setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree bold]
@@ -212,6 +179,18 @@
\stoptypescript
+\starttypescript [serif,sans,mono] [handling,hz] [hz,quality,highquality]
+
+ \setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Slanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Italic] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldSlanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldItalic] [handling=\typescriptthree]
+
+\stoptypescript
+
+
\starttypescript [serif,sans,mono] [handling] [noligs]
\setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
diff --git a/tex/context/base/type-ghz.tex b/tex/context/base/type-ghz.tex
index 23f71d583..318e6d596 100644
--- a/tex/context/base/type-ghz.tex
+++ b/tex/context/base/type-ghz.tex
@@ -1,8 +1,27 @@
-% run texfont from currentpath with the fonts on subpath fontsite/500
-
-% texfont --en=texnansi --ve=linotype --co=optima type-ghz.dat
-% texfont --en=texnansi --ve=linotype --co=optima-nova type-ghz.dat
-% texfont --en=texnansi --ve=linotype --co=palatino type-ghz.dat
+%D \module
+%D [ file=type-ghz,
+%D version=2005.06.07,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Hermann Zapf's Fonts,
+%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.
+
+% \usetypescriptfile[type-ghz]
+%
+% \definetypeface[optima] [ss][sans] [optima-nova] [default]
+% \definetypeface[palatino][rm][serif][palatino-nova][default]
+% \definetypeface[aldus] [rm][serif][aldus-nova] [default]
+%
+% \starttext
+% \setupbodyfont[optima] \input zapf \blank
+% \setupbodyfont[palatino] \input zapf \blank
+% \setupbodyfont[aldus] \input zapf \blank
+% \stoptext
\starttypescriptcollection[zapf collection]
@@ -66,28 +85,131 @@
% optima nova
+% see antykwa, we could define variants for light and osf
+
+\starttypescript[optima-nova][texnansi,ec] % will change to more narrow tt
+ \definetypeface[optima][ss][sans][optima-nova] [default][encoding=\typescripttwo]
+ \definetypeface[optima][rm][sans][optima-nova] [default][encoding=\typescripttwo]
+ \definetypeface[optima][tt][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.125]
+ \definetypeface[optima][mm][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.125]
+ \quittypescriptscanning
+\stoptypescript
+
\starttypescript [sans] [optima-nova] [name]
\definefontsynonym [Sans] [OptimaNovaLT-Regular]
\definefontsynonym [SansItalic] [OptimaNovaLT-Italic]
- \definefontsynonym [SansBold] [OptimaLT-Bold]
- \definefontsynonym [SansBoldItalic] [OptimaLT-BoldItalic]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Bold]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-Italic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+
+ \definefontvariant [Serif][osf][OsF]
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SansOsF] [OptimaNovaLT-RegularOsF]
+ \definefontsynonym [SansItalicOsF] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldOsF] [OptimaNovaLT-BoldOsF]
+ \definefontsynonym [SansBoldItalicOsF] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansSlantedOsF] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldSlantedOsF] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansCapsOsF] [OptimaNovaLT-RegularSC]
+
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+ \definefontsynonym [SansItalicCaps] [OptimaNovaLT-ItalicSC ]
+ \definefontsynonym [SansBoldCaps] [OptimaNovaLT-BoldSC]
+ \definefontsynonym [SansBoldItalicCaps] [OptimaNovaLT-BoldItalicSC]
+ \definefontsynonym [SansSlantedCaps] [OptimaNovaLT-ItalicSC]
+ \definefontsynonym [SansBoldSlantedCaps] [OptimaNovaLT-BoldItalicSC]
+ \definefontsynonym [SansCapsCaps] [OptimaNovaLT-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-os] [name]
+
+ \definefontsynonym [Sans] [OptimaNovaLT-RegularOsF]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBold] [OptimaNovaLT-BoldOsF]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-light] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNovaLT-Light]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-LightItalic]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Medium]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-LightItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-LightSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-medium] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNovaLT-Medium]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Heavy]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-HeavyItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-HeavyItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-MediumSC]
\stoptypescript
-\starttypescript [sans] [optima-nova] [texnansi,ec,8r]
+\starttypescript [sans] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r]
\loadmapfile[\typescriptthree-linotype-optima-nova.map]
- \definefontsynonym [OptimaNovaLT-Regular] [\typescriptthree-lt55483] [encoding=\typescriptthree]
- \definefontsynonym [OptimaNovaLT-Italic] [\typescriptthree-lt55486] [encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Light] [\typescriptthree-lt55476][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightSC] [\typescriptthree-lt55477][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightOsF] [\typescriptthree-lt55478][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalic] [\typescriptthree-lt55479][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalicSC] [\typescriptthree-lt55480][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalicOsF] [\typescriptthree-lt55481][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightCond] [\typescriptthree-lt55482][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Regular] [\typescriptthree-lt55483][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-RegularSC] [\typescriptthree-lt55484][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-RegularOsF] [\typescriptthree-lt55485][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Italic] [\typescriptthree-lt55486][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-ItalicSC] [\typescriptthree-lt55487][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-ItalicOsF] [\typescriptthree-lt55488][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Condensed] [\typescriptthree-lt55489][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Medium] [\typescriptthree-lt55490][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumSC] [\typescriptthree-lt55491][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumOsF] [\typescriptthree-lt55492][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalic] [\typescriptthree-lt55493][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalicSC] [\typescriptthree-lt55494][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalicOsF][\typescriptthree-lt55495][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumCond] [\typescriptthree-lt55496][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-TitlingInitials][\typescriptthree-lt55497][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Demi] [\typescriptthree-lt55498][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiSC] [\typescriptthree-lt55499][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiOsF] [\typescriptthree-lt55500][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalic] [\typescriptthree-lt55501][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalicSC] [\typescriptthree-lt55502][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalicOsF] [\typescriptthree-lt55503][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiCond] [\typescriptthree-lt55504][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Bold] [\typescriptthree-lt55505][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldSC] [\typescriptthree-lt55506][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldOsF] [\typescriptthree-lt55507][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalic] [\typescriptthree-lt55508][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalicSC] [\typescriptthree-lt55509][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalicOsF] [\typescriptthree-lt55510][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldCond] [\typescriptthree-lt55511][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Heavy] [\typescriptthree-lt55512][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-HeavyItalic] [\typescriptthree-lt55513][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Black] [\typescriptthree-lt55514][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BlackItalic] [\typescriptthree-lt55515][encoding=\typescriptthree]
\stoptypescript
-\starttypescript [map] [optima-nova] [texnansi,ec,8r]
+\starttypescript [map] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r]
\loadmapfile[\typescriptthree-linotype-optima-nova.map]
\stoptypescript
@@ -99,11 +221,10 @@
\definefontsynonym [SerifItalic] [PalatinoLT-Italic]
\definefontsynonym [SerifBold] [PalatinoLT-Bold]
\definefontsynonym [SerifBoldItalic] [PalatinoLT-BoldItalic]
-
\definefontsynonym [SerifSlanted] [SerifItalic]
\definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [Palatino-SC]
+ \definefontsynonym [SerifCaps] [PalatinoSC]
\stoptypescript
@@ -126,7 +247,7 @@
\definefontsynonym[Palatino-BoldOsF] [\typescriptthree-pobos] [encoding=\typescriptthree]
\definefontsynonym[Palatino-ItalicOsF] [\typescriptthree-poios] [encoding=\typescriptthree]
- \definefontsynonym[Palatino-SC] [\typescriptthree-posc] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoSC] [\typescriptthree-posc] [encoding=\typescriptthree]
\stoptypescript
@@ -134,7 +255,137 @@
\loadmapfile[\typescriptthree-linotype-palatino.map]
\stoptypescript
-\stoptypescriptcollection
+% palatino nova
+
+\starttypescript [serif] [palatino-nova] [name]
+
+ \definefontsynonym [Serif] [PalatinoNova-Regular]
+ \definefontsynonym [SerifItalic] [PalatinoNova-Italic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [PalatinoNova-Italic]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC]
+
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC]
+ \definefontsynonym [SerifItalicCaps] [PalatinoNova-ItalicSC]
+ \definefontsynonym [SerifBoldCaps] [PalatinoNova-BoldSC]
+ \definefontsynonym [SerifBoldItalicCaps] [PalatinoNova-BoldItalicSC]
+ \definefontsynonym [SerifSlantedCaps] [PalatinoNova-ItalicSC]
+ \definefontsynonym [SerifBoldSlantedCaps] [PalatinoNova-BoldItalicSC]
+ \definefontsynonym [SerifCapsCaps] [PalatinoNova-RegularSC]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova-light] [name] % may change
+
+ \definefontsynonym [Serif] [PalatinoNova-Light]
+ \definefontsynonym [SerifItalic] [PalatinoNova-LightItalic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Regular]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-Italic]
+ \definefontsynonym [SerifSlanted] [PalatinoNova-Regular]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-Italic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-LightSC]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova-medium] [name] % may change
+
+ \definefontsynonym [Serif] [PalatinoNova-Medium]
+ \definefontsynonym [SerifItalic] [PalatinoNova-MediumItalic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-MediumSC]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova,palatino-nova-light,palatino-nova-medium] [texnansi,ec,8r]
+
+ \loadmapfile[\typescriptthree-linotype-palatino-nova.map]
+
+ \definefontsynonym[PalatinoNova-Light] [\typescriptthree-PalatinoNova-Light] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-LightItalic] [\typescriptthree-PalatinoNova-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Regular] [\typescriptthree-PalatinoNova-Regular] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Italic] [\typescriptthree-PalatinoNova-Italic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Medium] [\typescriptthree-PalatinoNova-Medium] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumItalic][\typescriptthree-PalatinoNova-MediumItalic][encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Bold] [\typescriptthree-PalatinoNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldItalic] [\typescriptthree-PalatinoNova-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Imperial] [\typescriptthree-PalatinoNova-Imperial] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Titling] [\typescriptthree-PalatinoNova-Titling] [encoding=\typescriptthree]
+
+ \loadmapfile[\typescriptthree-sc-linotype-palatino-nova.map]
+
+ \definefontsynonym[PalatinoNova-LightSC] [\typescriptthree-sc-PalatinoNova-Light] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-LightItalicSC] [\typescriptthree-sc-PalatinoNova-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-RegularSC] [\typescriptthree-sc-PalatinoNova-Regular] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-ItalicSC] [\typescriptthree-sc-PalatinoNova-Italic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumSC] [\typescriptthree-sc-PalatinoNova-Medium] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumItalicSC][\typescriptthree-sc-PalatinoNova-MediumItalic][encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldSC] [\typescriptthree-sc-PalatinoNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldItalicSC] [\typescriptthree-sc-PalatinoNova-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-ImperialSC] [\typescriptthree-sc-PalatinoNova-Imperial] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-TitlingSC] [\typescriptthree-sc-PalatinoNova-Titling] [encoding=\typescriptthree]
+
+\stoptypescript
+
+\starttypescript [map] [palatino-nova,palatino-nova-light,palatino-nova-medium] [texnansi,ec,8r]
+ \loadmapfile[\typescriptthree-linotype-palatino-nova.map]
+ \loadmapfile[\typescriptthree-sc-linotype-palatino-nova.map]
+% \loadmapfile[\typescriptthree-os-linotype-palatino-nova.map]
+\stoptypescript
+
+% aldusnova
+
+\starttypescript [serif] [aldus-nova] [name]
+
+ \definefontsynonym [Serif] [AldusNova-Book]
+ \definefontsynonym [SerifItalic] [AldusNova-BookItalic]
+ \definefontsynonym [SerifBold] [AldusNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [AldusNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [AldusNova-BookItalic]
+ \definefontsynonym [SerifBoldSlanted] [AldusNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [AldusNova-BookSC]
+
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SerifCaps] [AldusNova-BookSC]
+ \definefontsynonym [SerifItalicCaps] [AldusNova-BookItalicSC]
+ \definefontsynonym [SerifBoldCaps] [AldusNova-BoldSC]
+ \definefontsynonym [SerifBoldItalicCaps] [AldusNova-BoldItalicSC]
+ \definefontsynonym [SerifSlantedCaps] [AldusNova-BookItalicSC]
+ \definefontsynonym [SerifBoldSlantedCaps] [AldusNova-BoldItalicSC]
+ \definefontsynonym [SerifCapsCaps] [AldusNova-BookSC]
+
+\stoptypescript
+
+\starttypescript [serif] [aldus-nova] [texnansi,ec,8r]
+
+ \loadmapfile[\typescriptthree-linotype-aldus-nova.map]
+
+ \definefontsynonym[AldusNova-Book] [\typescriptthree-AldusNova-Book] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BookItalic] [\typescriptthree-AldusNova-BookItalic] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-Bold] [\typescriptthree-AldusNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldItalic] [\typescriptthree-AldusNova-BoldItalic] [encoding=\typescriptthree]
+
+ \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map]
+
+ \definefontsynonym[AldusNova-BookSC] [\typescriptthree-sc-AldusNova-Book] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BookItalicSC] [\typescriptthree-sc-AldusNova-BookItalic] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldSC] [\typescriptthree-sc-AldusNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldItalicSC] [\typescriptthree-sc-AldusNova-BoldItalic] [encoding=\typescriptthree]
+
+\stoptypescript
+
+\starttypescript [map] [aldus-nova] [texnansi,ec,8r]
+ \loadmapfile[\typescriptthree-linotype-aldus-nova.map]
+ \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map]
+\stoptypescript
+
% melior
@@ -169,5 +420,6 @@
\loadmapfile[\typescriptthree-linotype-melior.map]
\stoptypescript
+\stoptypescriptcollection
\endinput
diff --git a/tex/context/base/unic-chi.tex b/tex/context/base/unic-chi.tex
new file mode 100644
index 000000000..b8e498690
--- /dev/null
+++ b/tex/context/base/unic-chi.tex
@@ -0,0 +1,26 @@
+%D \module
+%D [ file=unic-chi,
+%D version=2005.12.14,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Chinese Vectors,
+%D author=Hans Hagen,
+%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.
+
+% \def\chineseglyph#1#2#3% #1=hex (we know the font anyway), #2=dec, #3=chr
+% {\uchar{#2}{#3}}
+%
+% \dostepwiserecurse{78}{159}{1} % 4E-9F
+% {\expanded{\defineunicodecommand \recurselevel\space {\noexpand\chineseglyph{\lchexnumbers{\recurselevel}}}}}
+
+% \dostepwiserecurse{78}{159}{1}{\defineunicodecommand #1 {\uchar}} % 4E-9F
+
+% temp: we need proper ranges
+
+\dostepwiserecurse{40}{159}{1}{\defineunicodecommand #1 {\uchar}}
+
+\endinput
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index 1881eceb2..01cf8b2fa 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -235,6 +235,7 @@
%D and testing these macros) another 10\%.
\def\@@univector {univ}
+\def\@@unicommand {unic}
\def\@@unknownchar{unknownchar}
%D Now comes the nice part: turning codes into glyphs. The
@@ -401,11 +402,43 @@
\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname
\fi}
+%D Well, we also want a plug-in mechanism, so:
+
+\def\utfunihashglyph#1%
+ {\@EA\doutfunihashglyph\@EA{\number\utfdiv{#1}}{#1}} % only div once
+
+\def\doutfunihashglyph#1#2% div raw
+ {\csname
+ \ifnum#2<\utf@i
+ \strippedcsname\unicodeasciicharacter
+ \else\ifcsname\@@unicommand#1\endcsname
+ \@@unicommand#1%
+ \else\ifcsname\@@univector#1\endcsname
+ \@@univector#1%
+ \else
+ \strippedcsname\unicodeunknowncharacter
+ \fi\fi\fi
+ \@EA\endcsname\@EA{\number\utfmod{#2}}}
+
+\def\unicodeunknowncharacter#1%
+ {\unknownchar}
+
%D With:
\let\unicodeasciicharacter\rawcharacter
-%D Now we can say:
+%D Commands are defined with:
+
+\def\defineunicodecommand #1 #2% #2{range number}{char number}
+ {\setvalue{\@@unicommand#1}##1{#2{#1}{##1}}}
+
+%D For instance:
+%D
+%D \starttyping
+%D \defineutfcommand 81 {\uchar}
+%D \stoptyping
+
+%D Now we can also say:
\let\utfunihash\utfunihashglyph
@@ -455,7 +488,8 @@
\def\douseunicodevector#1%
{\ifundefined{\@@univector#1}%
- \readsysfile{\f!unicprefix\threedigits{#1}}
+ % \readsysfile{\f!unicprefix\threedigits{#1}}
+ \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}}
{\writestatus{unicode}{loading vector #1}}
{\writestatus{unicode}{unknown vector #1}}%
\fi}
@@ -665,3 +699,5 @@
% 31, text mem usage first
\protect \endinput
+
+\unprotect
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 773028fb2..7def67236 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="vrsek"/>
<cd:variable name="wide" value="siroce"/>
<cd:variable name="width" value="sirka"/>
+ <cd:variable name="minwidth" value="minsirka"/>
<cd:variable name="outer" value="vnejsi"/>
<cd:variable name="numbers" value="cisla"/>
<cd:variable name="Numbers" value="Cisla"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="zahlavi"/>
<cd:variable name="high" value="vysoko"/>
<cd:variable name="height" value="vyska"/>
+ <cd:variable name="minheight" value="minvyska"/>
<cd:variable name="horizontal" value="horizontalne"/>
<cd:variable name="current" value="aktualni"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
<cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
<cd:command name="usetypescript" value="usetypescript"/>
+ <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 8eb3cf1d9..d31b5a98c 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="oben"/>
<cd:variable name="wide" value="breit"/>
<cd:variable name="width" value="breite"/>
+ <cd:variable name="minwidth" value="minbreite"/>
<cd:variable name="outer" value="aussen"/>
<cd:variable name="numbers" value="ziffern"/>
<cd:variable name="Numbers" value="Ziffern"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="kopfzeile"/>
<cd:variable name="high" value="hoch"/>
<cd:variable name="height" value="hoehe"/>
+ <cd:variable name="minheight" value="minhoehe"/>
<cd:variable name="horizontal" value="horizontal"/>
<cd:variable name="current" value="aktuell"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
<cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
<cd:command name="usetypescript" value="usetypescript"/>
+ <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 296513d3d..39da2a27c 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="top"/>
<cd:variable name="wide" value="wide"/>
<cd:variable name="width" value="width"/>
+ <cd:variable name="minwidth" value="minwidth"/>
<cd:variable name="outer" value="outer"/>
<cd:variable name="numbers" value="numbers"/>
<cd:variable name="Numbers" value="Numbers"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="header"/>
<cd:variable name="high" value="high"/>
<cd:variable name="height" value="height"/>
+ <cd:variable name="minheight" value="minheight"/>
<cd:variable name="horizontal" value="horizontal"/>
<cd:variable name="current" value="current"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
<cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
<cd:command name="usetypescript" value="usetypescript"/>
+ <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 805f776ce..cd0bde1de 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="cima"/>
<cd:variable name="wide" value="ampio"/>
<cd:variable name="width" value="ampiezza"/>
+ <cd:variable name="minwidth" value="ampiezzamin"/>
<cd:variable name="outer" value="esterno"/>
<cd:variable name="numbers" value="numeri"/>
<cd:variable name="Numbers" value="Numeri"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="intestazione"/>
<cd:variable name="high" value="alto"/>
<cd:variable name="height" value="altezza"/>
+ <cd:variable name="minheight" value="altezzamin"/>
<cd:variable name="horizontal" value="orizzontale"/>
<cd:variable name="current" value="corrente"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
<cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
<cd:command name="usetypescript" value="usetypescript"/>
+ <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 9c24d7845..74856d310 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="boven"/>
<cd:variable name="wide" value="breed"/>
<cd:variable name="width" value="breedte"/>
+ <cd:variable name="minwidth" value="minbreedte"/>
<cd:variable name="outer" value="buiten"/>
<cd:variable name="numbers" value="cijfers"/>
<cd:variable name="Numbers" value="Cijfers"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="hoofd"/>
<cd:variable name="high" value="hoog"/>
<cd:variable name="height" value="hoogte"/>
+ <cd:variable name="minheight" value="minhoogte"/>
<cd:variable name="horizontal" value="horizontaal"/>
<cd:variable name="current" value="huidige"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startkolomopmaak"/>
<cd:command name="stopcolumnmakeup" value="stopkolomopmaak"/>
<cd:command name="usetypescript" value="gebruiktypescript"/>
+ <cd:command name="usetypescriptfile" value="gebruiktypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 2e82a773f..423e8a678 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.12.01">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.12.18">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -509,6 +509,7 @@
<cd:variable name="top" value="sus"/>
<cd:variable name="wide" value="larg"/>
<cd:variable name="width" value="latime"/>
+ <cd:variable name="minwidth" value="latimeminima"/>
<cd:variable name="outer" value="extern"/>
<cd:variable name="numbers" value="numere"/>
<cd:variable name="Numbers" value="Numere"/>
@@ -555,6 +556,7 @@
<cd:variable name="header" value="antet"/>
<cd:variable name="high" value="inalt"/>
<cd:variable name="height" value="inaltime"/>
+ <cd:variable name="minheight" value="inaltimeminima"/>
<cd:variable name="horizontal" value="orizontal"/>
<cd:variable name="current" value="curent"/>
<cd:variable name="hz" value="hz"/>
@@ -1586,6 +1588,7 @@
<cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
<cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
<cd:command name="usetypescript" value="usetypescript"/>
+ <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
</cd:commands>
<cd:commands>
diff --git a/web2c/context.cnf b/web2c/context.cnf
index c96630c10..a263d680b 100644
--- a/web2c/context.cnf
+++ b/web2c/context.cnf
@@ -16,7 +16,7 @@ TEXMFMAIN = $SELFAUTOPARENT/texmf
TEXMFLOCAL = $SELFAUTOPARENT/texmf-local
TEXMFFONTS = $SELFAUTOPARENT/texmf-fonts
TEXMFEXTRA = $SELFAUTOPARENT/texmf-extra
-TEXMFPROJECTS = $SELFAUTOPARENT/texmf-projects
+TEXMFPROJECT = $SELFAUTOPARENT/texmf-project
VARTEXMF = $SELFAUTOPARENT/texmf-var
HOMETEXMF = /nonexist
TEXMF = {!!$TEXMFPROJECT,!!$TEXMFFONTS,!!$TEXMFLOCAL,!!$TEXMFEXTRA,!!$TEXMFMAIN}