texlive[44324] Master/texmf-dist: context (May 12 23:56)
commits+karl at tug.org
commits+karl at tug.org
Sun May 14 01:29:40 CEST 2017
Revision: 44324
http://tug.org/svn/texlive?view=revision&revision=44324
Author: karl
Date: 2017-05-14 01:29:40 +0200 (Sun, 14 May 2017)
Log Message:
-----------
context (May 12 23:56)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
trunk/Master/texmf-dist/doc/man/man1/context.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/luatools.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/texexec.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf
trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii
trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi
trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
trunk/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi
trunk/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
trunk/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
trunk/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
trunk/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
trunk/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
trunk/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
trunk/Master/texmf-dist/tex/context/sample/common/samples.tex
trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
Added Paths:
-----------
trunk/Master/texmf-dist/tex/context/sample/common/sapolsky.tex
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/context.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/luatools.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/texexec.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii 2017-05-13 23:29:40 UTC (rev 44324)
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.05.10 10:41}
+\newcontextversion{2017.05.12 22:40}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
Modified: trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii 2017-05-13 23:29:40 UTC (rev 44324)
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.05.10 10:41}
+\edef\contextversion{2017.05.12 22:40}
%D For those who want to use this:
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -553,15 +553,34 @@
return "dflt"
end)
-local splitter = lpeg.splitat(S(":-"))
+local splitter1 = lpeg.splitat(S(":-"))
+local splitter2 = lpeg.splitat(S(" +-"),true)
-function characters.getrange(name) -- used in font fallback definitions (name or range)
- local range = blocks[name]
+function characters.getrange(name,expression) -- used in font fallback definitions (name or range)
+ local range = rawget(blocks,lower(gsub(name,"[^a-zA-Z0-9]","")))
if range then
return range.first, range.last, range.description, range.gaps
end
name = gsub(name,'"',"0x") -- goodie: tex hex notation
- local start, stop = lpegmatch(splitter,name)
+ local start, stop
+ if expression then
+ local first, rest = lpegmatch(splitter2,name)
+ local range = rawget(blocks,lower(gsub(first,"[^a-zA-Z0-9]","")))
+ if range then
+ start = range.first
+ stop = range.last
+ local s = loadstring("return 0 " .. rest)
+ if type(s) == "function" then
+ local d = s()
+ if type(d) == "number" then
+ start = start + d
+ stop = stop + d
+ return start, stop, nil
+ end
+ end
+ end
+ end
+ start, stop = lpegmatch(splitter1,name)
if start and stop then
start, stop = tonumber(start,16) or tonumber(start), tonumber(stop,16) or tonumber(stop)
if start and stop then
@@ -572,6 +591,9 @@
return slot, slot, nil
end
+-- print(characters.getrange("lowercaseitalic + 123",true))
+-- print(characters.getrange("lowercaseitalic + 124",true))
+
local categorytags = allocate {
lu = "Letter Uppercase",
ll = "Letter Lowercase",
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv 2017-05-13 23:29:40 UTC (rev 44324)
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.05.10 10:41}
+\newcontextversion{2017.05.12 22:40}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv 2017-05-13 23:29:40 UTC (rev 44324)
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.05.10 10:41}
+\edef\contextversion{2017.05.12 22:40}
\edef\contextkind {beta}
%D For those who want to use this:
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -104,7 +104,7 @@
details = settings_to_hash(details)
-- todo, combine per font start/stop as arrays
for s in gmatch(ranges,"[^, ]+") do
- local start, stop, description, gaps = characters.getrange(s)
+ local start, stop, description, gaps = characters.getrange(s,true)
if start and stop then
if trace_collecting then
if description then
@@ -119,7 +119,7 @@
end
local offset = details.offset
if type(offset) == "string" then
- local start = characters.getrange(offset)
+ local start = characters.getrange(offset,true)
offset = start or false
else
offset = tonumber(offset) or false
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi 2017-05-13 23:29:40 UTC (rev 44324)
@@ -102,8 +102,8 @@
{\definedfont[#2*#3\space at #4\scaledpoint]}%
\ctxlua{mathematics.registerfallbackid(#1,\fontid\font)}}
-\def\font_fallbacks_finish_math
- {\ctxlua{mathematics.finishfallbacks()}}
+% \def\font_fallbacks_finish_math
+% {\ctxlua{mathematics.finishfallbacks()}}
% check : only replace when present in replacement font (default: no)
% force : force replacent even when basefont has glyph (default: yes)
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -1118,6 +1118,187 @@
-- function commands.definefont_two(global,cs,str,size,inheritancemode,classfeatures,fontfeatures,classfallbacks,fontfallbacks,
-- mathsize,textsize,relativeid,classgoodies,goodies,classdesignsize,fontdesignsize,scaledfontmode)
+-- scanners.definefont_two = function()
+
+-- local global = scanboolean() -- \ifx\fontclass\empty\s!false\else\s!true\fi
+-- local cs = scanstring () -- {#csname}%
+-- local str = scanstring () -- \somefontfile
+-- local size = scaninteger() -- \d_font_scaled_font_size
+-- local inheritancemode = scaninteger() -- \c_font_feature_inheritance_mode
+-- local classfeatures = scanstring () -- \m_font_class_features
+-- local fontfeatures = scanstring () -- \m_font_features
+-- local classfallbacks = scanstring () -- \m_font_class_fallbacks
+-- local fontfallbacks = scanstring () -- \m_font_fallbacks
+-- local mathsize = scaninteger() -- \fontface
+-- local textsize = scaninteger() -- \d_font_scaled_text_face
+-- local relativeid = scaninteger() -- \relativefontid
+-- local classgoodies = scanstring () -- \m_font_class_goodies
+-- local goodies = scanstring () -- \m_font_goodies
+-- local classdesignsize = scanstring () -- \m_font_class_designsize
+-- local fontdesignsize = scanstring () -- \m_font_designsize
+-- local scaledfontmode = scaninteger() -- \scaledfontmode
+
+-- if trace_defining then
+-- report_defining("start stage two: %s, size %s, features %a & %a",str,size,classfeatures,fontfeatures)
+-- end
+-- -- name is now resolved and size is scaled cf sa/mo
+-- local lookup, name, sub, method, detail = getspecification(str or "")
+-- -- new (todo: inheritancemode)
+-- local designsize = fontdesignsize ~= "" and fontdesignsize or classdesignsize or ""
+-- local designname = designsizefilename(name,designsize,size)
+-- if designname and designname ~= "" then
+-- if trace_defining or trace_designsize then
+-- report_defining("remapping name %a, specification %a, size %a, designsize %a",name,designsize,size,designname)
+-- end
+-- -- we don't catch detail here
+-- local o_lookup, o_name, o_sub, o_method, o_detail = getspecification(designname)
+-- if o_lookup and o_lookup ~= "" then lookup = o_lookup end
+-- if o_method and o_method ~= "" then method = o_method end
+-- if o_detail and o_detail ~= "" then detail = o_detail end
+-- name = o_name
+-- sub = o_sub
+-- end
+-- -- so far
+-- -- some settings can have been overloaded
+-- if lookup and lookup ~= "" then
+-- specification.lookup = lookup
+-- end
+-- if relativeid and relativeid ~= "" then -- experimental hook
+-- local id = tonumber(relativeid) or 0
+-- specification.relativeid = id > 0 and id
+-- end
+-- --
+-- specification.name = name
+-- specification.size = size
+-- specification.sub = (sub and sub ~= "" and sub) or specification.sub
+-- specification.mathsize = mathsize
+-- specification.textsize = textsize
+-- specification.goodies = goodies
+-- specification.cs = cs
+-- specification.global = global
+-- specification.scalemode = scaledfontmode -- context specific
+-- if detail and detail ~= "" then
+-- specification.method = method or "*"
+-- specification.detail = detail
+-- elseif specification.detail and specification.detail ~= "" then
+-- -- already set
+-- elseif inheritancemode == 0 then
+-- -- nothing
+-- elseif inheritancemode == 1 then
+-- -- fontonly
+-- if fontfeatures and fontfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = fontfeatures
+-- end
+-- if fontfallbacks and fontfallbacks ~= "" then
+-- specification.fallbacks = fontfallbacks
+-- end
+-- elseif inheritancemode == 2 then
+-- -- classonly
+-- if classfeatures and classfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = classfeatures
+-- end
+-- if classfallbacks and classfallbacks ~= "" then
+-- specification.fallbacks = classfallbacks
+-- end
+-- elseif inheritancemode == 3 then
+-- -- fontfirst
+-- if fontfeatures and fontfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = fontfeatures
+-- elseif classfeatures and classfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = classfeatures
+-- end
+-- if fontfallbacks and fontfallbacks ~= "" then
+-- specification.fallbacks = fontfallbacks
+-- elseif classfallbacks and classfallbacks ~= "" then
+-- specification.fallbacks = classfallbacks
+-- end
+-- elseif inheritancemode == 4 then
+-- -- classfirst
+-- if classfeatures and classfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = classfeatures
+-- elseif fontfeatures and fontfeatures ~= "" then
+-- specification.method = "*"
+-- specification.detail = fontfeatures
+-- end
+-- if classfallbacks and classfallbacks ~= "" then
+-- specification.fallbacks = classfallbacks
+-- elseif fontfallbacks and fontfallbacks ~= "" then
+-- specification.fallbacks = fontfallbacks
+-- end
+-- end
+-- local tfmdata = definers.read(specification,size) -- id not yet known (size in spec?)
+-- --
+-- local lastfontid = 0
+-- if not tfmdata then
+-- report_defining("unable to define %a as %a",name,nice_cs(cs))
+-- lastfontid = -1
+-- texsetcount("scaledfontsize",0)
+-- -- ctx_letvaluerelax(cs) -- otherwise the current definition takes the previous one
+-- elseif type(tfmdata) == "number" then
+-- if trace_defining then
+-- report_defining("reusing %s, id %a, target %a, features %a / %a, fallbacks %a / %a, goodies %a / %a, designsize %a / %a",
+-- name,tfmdata,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies,classdesignsize,fontdesignsize)
+-- end
+-- csnames[tfmdata] = specification.cs
+-- texdefinefont(global,cs,tfmdata)
+-- -- resolved (when designsize is used):
+-- local size = fontdata[tfmdata].parameters.size or 0
+-- -- ctx_setsomefontsize(size .. "sp")
+-- setmacro("somefontsize",size.."sp")
+-- texsetcount("scaledfontsize",size)
+-- lastfontid = tfmdata
+-- else
+-- -- setting the extra characters will move elsewhere
+-- local characters = tfmdata.characters
+-- local parameters = tfmdata.parameters
+-- -- we use char0 as signal; cf the spec pdf can handle this (no char in slot)
+-- characters[0] = nil
+-- -- characters[0x00A0] = { width = parameters.space }
+-- -- characters[0x2007] = { width = characters[0x0030] and characters[0x0030].width or parameters.space } -- figure
+-- -- characters[0x2008] = { width = characters[0x002E] and characters[0x002E].width or parameters.space } -- period
+-- --
+-- constructors.checkvirtualids(tfmdata) -- experiment, will become obsolete when slots can selfreference
+-- local id = definefont(tfmdata)
+-- csnames[id] = specification.cs
+-- tfmdata.properties.id = id
+-- definers.register(tfmdata,id) -- to be sure, normally already done
+-- texdefinefont(global,cs,id)
+-- constructors.cleanuptable(tfmdata)
+-- constructors.finalize(tfmdata)
+-- if trace_defining then
+-- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a",
+-- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+-- end
+-- -- resolved (when designsize is used):
+-- local size = tfmdata.parameters.size or 655360
+-- setmacro("somefontsize",size.."sp")
+-- -- ctx_setsomefontsize(size .. "sp")
+-- texsetcount("scaledfontsize",size)
+-- lastfontid = id
+-- end
+-- if trace_defining then
+-- report_defining("memory usage after: %s",statistics.memused())
+-- report_defining("stop stage two")
+-- end
+-- --
+-- texsetcount("global","lastfontid",lastfontid)
+-- specifiers[lastfontid] = { str, size }
+-- if not mathsize then
+-- -- forget about it
+-- elseif mathsize == 0 then
+-- lastmathids[1] = lastfontid
+-- else
+-- lastmathids[mathsize] = lastfontid
+-- end
+-- --
+-- stoptiming(fonts)
+-- end
+
scanners.definefont_two = function()
local global = scanboolean() -- \ifx\fontclass\empty\s!false\else\s!true\fi
@@ -1234,25 +1415,8 @@
local tfmdata = definers.read(specification,size) -- id not yet known (size in spec?)
--
local lastfontid = 0
- if not tfmdata then
- report_defining("unable to define %a as %a",name,nice_cs(cs))
- lastfontid = -1
- texsetcount("scaledfontsize",0)
- -- ctx_letvaluerelax(cs) -- otherwise the current definition takes the previous one
- elseif type(tfmdata) == "number" then
- if trace_defining then
- report_defining("reusing %s, id %a, target %a, features %a / %a, fallbacks %a / %a, goodies %a / %a, designsize %a / %a",
- name,tfmdata,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies,classdesignsize,fontdesignsize)
- end
- csnames[tfmdata] = specification.cs
- texdefinefont(global,cs,tfmdata)
- -- resolved (when designsize is used):
- local size = fontdata[tfmdata].parameters.size or 0
- -- ctx_setsomefontsize(size .. "sp")
- setmacro("somefontsize",size.."sp")
- texsetcount("scaledfontsize",size)
- lastfontid = tfmdata
- else
+ local tfmtype = type(tfmdata)
+ if tfmtype == "table" then
-- setting the extra characters will move elsewhere
local characters = tfmdata.characters
local parameters = tfmdata.parameters
@@ -1263,23 +1427,83 @@
-- characters[0x2008] = { width = characters[0x002E] and characters[0x002E].width or parameters.space } -- period
--
constructors.checkvirtualids(tfmdata) -- experiment, will become obsolete when slots can selfreference
- local id = definefont(tfmdata)
- csnames[id] = specification.cs
- tfmdata.properties.id = id
- definers.register(tfmdata,id) -- to be sure, normally already done
- texdefinefont(global,cs,id)
- constructors.cleanuptable(tfmdata)
- constructors.finalize(tfmdata)
+ local fallbacks = specification.fallbacks
+ if fallbacks and fallbacks ~= "" and tfmdata.properties.hasmath then
+ -- We need this ugly hack in order to resolve fontnames (at the \TEX end). Originally
+ -- math was done in Lua after loading (plugged into aftercopying).
+ --
+ -- After tl 2017 I'll also do text falbacks this way (although backups there are done
+ -- in a completely different way.
+ mathematics.resolvefallbacks(tfmdata,specification,fallbacks)
+ context(function()
+ mathematics.finishfallbacks(tfmdata,specification,fallbacks)
+ local id = definefont(tfmdata)
+ csnames[id] = specification.cs
+ tfmdata.properties.id = id
+ definers.register(tfmdata,id) -- to be sure, normally already done
+ texdefinefont(global,cs,id)
+ constructors.cleanuptable(tfmdata)
+ constructors.finalize(tfmdata)
+ if trace_defining then
+ report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a",
+ name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+ end
+ -- resolved (when designsize is used):
+ local size = tfmdata.parameters.size or 655360
+ setmacro("somefontsize",size.."sp")
+ -- ctx_setsomefontsize(size .. "sp")
+ texsetcount("scaledfontsize",size)
+ lastfontid = id
+ --
+ texsetcount("global","lastfontid",lastfontid)
+ specifiers[lastfontid] = { str, size }
+ if not mathsize then
+ -- forget about it
+ elseif mathsize == 0 then
+ lastmathids[1] = lastfontid
+ else
+ lastmathids[mathsize] = lastfontid
+ end
+ stoptiming(fonts)
+ end)
+ return
+ else
+ local id = definefont(tfmdata)
+ csnames[id] = specification.cs
+ tfmdata.properties.id = id
+ definers.register(tfmdata,id) -- to be sure, normally already done
+ texdefinefont(global,cs,id)
+ constructors.cleanuptable(tfmdata)
+ constructors.finalize(tfmdata)
+ if trace_defining then
+ report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a",
+ name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+ end
+ -- resolved (when designsize is used):
+ local size = tfmdata.parameters.size or 655360
+ setmacro("somefontsize",size.."sp")
+ -- ctx_setsomefontsize(size .. "sp")
+ texsetcount("scaledfontsize",size)
+ lastfontid = id
+ end
+ elseif tfmtype == "number" then
if trace_defining then
- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a",
- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+ report_defining("reusing %s, id %a, target %a, features %a / %a, fallbacks %a / %a, goodies %a / %a, designsize %a / %a",
+ name,tfmdata,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies,classdesignsize,fontdesignsize)
end
+ csnames[tfmdata] = specification.cs
+ texdefinefont(global,cs,tfmdata)
-- resolved (when designsize is used):
- local size = tfmdata.parameters.size or 655360
+ local size = fontdata[tfmdata].parameters.size or 0
+ -- ctx_setsomefontsize(size .. "sp")
setmacro("somefontsize",size.."sp")
- -- ctx_setsomefontsize(size .. "sp")
texsetcount("scaledfontsize",size)
- lastfontid = id
+ lastfontid = tfmdata
+ else
+ report_defining("unable to define %a as %a",name,nice_cs(cs))
+ lastfontid = -1
+ texsetcount("scaledfontsize",0)
+ -- ctx_letvaluerelax(cs) -- otherwise the current definition takes the previous one
end
if trace_defining then
report_defining("memory usage after: %s",statistics.memused())
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi 2017-05-13 23:29:40 UTC (rev 44324)
@@ -133,9 +133,9 @@
{\let\savedfontbody\fontbody
\let\fontfamily#family%
% the order is important as we depend on known id's when completing fonts
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusthree\font_helpers_set_math_family_a\scriptscriptfont#mrtag\font
+ \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusthree\font_helpers_set_math_family_a\scriptscriptfont#mrtag\font
\let\mathsizesuffix\mathscriptsuffix \let\fontface\!!plustwo \font_helpers_set_math_family_a\scriptfont #mrtag\font
- \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusone \font_helpers_set_math_family_a\textfont #mrtag\font
+ \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone \font_helpers_set_math_family_a\textfont #mrtag\font
\let\mathsizesuffix\empty \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\setfalse\c_font_auto_size}
@@ -161,9 +161,9 @@
\let\defaultfontclass\fontclass % else truefontname falls back on the wrong one
\let\savedfontbody\fontbody
\let\fontfamily#familytag%
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusthree\font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam%
+ \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusthree\font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam%
\let\mathsizesuffix\mathscriptsuffix \let\fontface\!!plustwo \font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam%
- \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusone \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam%
+ \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam%
\let\mathsizesuffix\empty \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\let\defaultfontclass\savedfontclass
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/math-act.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/math-act.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -632,7 +632,7 @@
-- fonts[index] = { id = id, size = size }
-- local chars = fontchars[id]
-- local function remap(unic,unicode,gap)
--- local unic = unicode + offset - start
+-- -- local unic = unicode + offset - start
-- if check and not chars[unicode] then
-- -- not in font
-- elseif force or (not done[unic] and not characters[unic]) then
@@ -659,143 +659,100 @@
-- end
-- end
-- end
+--
+-- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.finishfallbacks")
local stack = { }
function mathematics.registerfallbackid(n,id)
- local top = stack[#stack]
- if top then
- top.list[n] = id
- else
- report_math("stack underrun in math fallbacks")
- end
+ stack[#stack][n] = id
end
-function mathematics.injectfallbacks(target,original)
- if #stack > 0 then
- -- for now
- if trace_collecting then
- report_math("stack overflow in math fallbacks")
- end
- return
- end
- local properties = original.properties
- if properties and properties.hasmath then
- local specification = target.specification
- if specification then
- local fallbacks = specification.fallbacks
- if fallbacks then
- local definitions = fonts.collections.definitions[fallbacks]
- if definitions then
- insert(stack, {
- target = target,
- original = original,
- list = { },
- })
- if trace_collecting then
- report_math("adding fallback characters to font %a",specification.hash)
- end
- local size = specification.size -- target.size
- context.pushcatcodes("prt") -- context.unprotect()
- for i=1,#definitions do
- local definition = definitions[i]
- local name = definition.font
- local features = definition.features or ""
- local size = size * (definition.rscale or 1)
- context.font_fallbacks_register_math(i,name,features,size)
- end
- context.font_fallbacks_finish_math()
- context.popcatcodes()
- end
+function mathematics.resolvefallbacks(target,specification,fallbacks)
+ local definitions = fonts.collections.definitions[fallbacks]
+ if definitions then
+ local size = specification.size -- target.size
+ local list = { }
+ insert(stack,list)
+ context.pushcatcodes("prt") -- context.unprotect()
+ for i=1,#definitions do
+ local definition = definitions[i]
+ local name = definition.font
+ local features = definition.features or ""
+ local size = size * (definition.rscale or 1)
+ context.font_fallbacks_register_math(i,name,features,size)
+ if trace_collecting then
+ report_math("registering fallback font %i, name %a, size %a, features %a",i,name,size,features)
end
end
+ context.popcatcodes()
end
end
-function mathematics.finishfallbacks()
- local top = remove(stack)
- if not top then
- report_math("finish error in math fallbacks")
- return
- end
- local target = top.target
- local original = top.original
- local list = top.list
- local properties = original.properties
- if properties and properties.hasmath then
- local specification = target.specification
- if specification then
- local fallbacks = specification.fallbacks
- if fallbacks then
- local definitions = fonts.collections.definitions[fallbacks]
- if definitions and #definitions > 0 then
- if trace_collecting then
- report_math("adding fallback characters to font %a",specification.hash)
+function mathematics.finishfallbacks(target,specification,fallbacks)
+ local list = remove(stack)
+ if list and #list > 0 then
+ local definitions = fonts.collections.definitions[fallbacks]
+ if definitions and #definitions > 0 then
+ if trace_collecting then
+ report_math("adding fallback characters to font %a",specification.hash)
+ end
+ local definedfont = fonts.definers.internal
+ local copiedglyph = fonts.handlers.vf.math.copy_glyph
+ local fonts = target.fonts
+ local size = specification.size -- target.size
+ local characters = target.characters
+ if not fonts then
+ fonts = { }
+ target.fonts = fonts
+ end
+ target.type = "virtual"
+ target.properties.virtualized = true
+ if #fonts == 0 then
+ fonts[1] = { id = 0, size = size } -- self, will be resolved later
+ end
+ local done = { }
+ for i=1,#definitions do
+ local definition = definitions[i]
+ local name = definition.font
+ local start = definition.start
+ local stop = definition.stop
+ local gaps = definition.gaps
+ local check = definition.check
+ local force = definition.force
+ local rscale = definition.rscale or 1
+ local offset = definition.offset or start
+ local id = list[i]
+ if id then
+ local index = #fonts + 1
+ fonts[index] = { id = id, size = size }
+ local chars = fontchars[id]
+ local function remap(unic,unicode,gap)
+ if check and not chars[unicode] then
+ return
+ end
+ if force or (not done[unic] and not characters[unic]) then
+ if trace_collecting then
+ report_math("replacing math character %C by %C using vector %a and font %a named %a%s%s",
+ unic,unicode,fallbacks,id,name,check and ", checked",gap and ", gap plugged")
+ end
+ characters[unic] = copiedglyph(target,characters,chars,unicode,index)
+ done[unic] = true
+ end
end
- local definedfont = fonts.definers.internal
- local copiedglyph = fonts.handlers.vf.math.copy_glyph
- local fonts = target.fonts
- local size = specification.size -- target.size
- local characters = target.characters
- if not fonts then
- fonts = { }
- target.fonts = fonts
- target.type = "virtual"
- target.properties.virtualized = true
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ remap(unic,unicode,false)
end
- if #fonts == 0 then
- fonts[1] = { id = 0, size = size } -- sel, will be resolved later
- end
- local done = { }
- for i=1,#definitions do
- local definition = definitions[i]
- local name = definition.font
- local start = definition.start
- local stop = definition.stop
- local gaps = definition.gaps
- local check = definition.check
- local force = definition.force
- local rscale = definition.rscale or 1
- local offset = definition.offset or start
- local id = list[i]
- if id then
- local index = #fonts + 1
- fonts[index] = { id = id, size = size }
- local chars = fontchars[id]
- local function remap(unic,unicode,gap)
- local unic = unicode + offset - start
- if check and not chars[unicode] then
- -- not in font
- elseif force or (not done[unic] and not characters[unic]) then
- if trace_collecting then
- report_math("remapping math character, vector %a, font %a, character %C%s%s",
- fallbacks,name,unic,check and ", checked",gap and ", gap plugged")
- end
- characters[unic] = copiedglyph(target,characters,chars,unicode,index)
- done[unic] = true
- else
- end
- end
- for unicode = start, stop do
- local unic = unicode + offset - start
- remap(unic,unicode,false)
- end
- if gaps then
- for unic, unicode in next, gaps do
- remap(unic,unicode,true)
- end
- end
+ if gaps then
+ for unic, unicode in next, gaps do
+ remap(unic,unicode,true)
end
end
- xlist = nil
- xtarget = nil
- xoriginal = nil
- elseif trace_collecting then
- report_math("no fallback characters added to font %a",specification.hash)
end
end
+ elseif trace_collecting then
+ report_math("no fallback characters added to font %a",specification.hash)
end
end
end
-
-sequencers.appendaction("aftercopyingcharacters", "system","mathematics.injectfallbacks")
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -585,9 +585,10 @@
end
local newchar = remapalphabets(char,a,g)
if newchar then
- if characters[newchar] then
+ local newchardata = characters[newchar]
+ if newchardata then
if trace_remapping then
- report_remap("char",font,char,newchar)
+ report_remap("char",font,char,newchar,newchardata.commands and " (virtual)" or "")
end
if trace_analyzing then
setnodecolor(pointer,"font:isol")
@@ -618,6 +619,11 @@
report_remap("char",font,char,newchar," fails (no fallback style)")
end
end
+ elseif trace_remapping then
+ local chardata = characters[char]
+ if chardata and chardata.commands then
+ report_remap("char",font,char,char," (virtual)")
+ end
end
end
if not characters[char] then
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/context/sample/common/samples.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/sample/common/samples.tex 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/context/sample/common/samples.tex 2017-05-13 23:29:40 UTC (rev 44324)
@@ -48,6 +48,8 @@
\NC waltham.tex \NC David Waltham \NC Lucky Planet, why earth is exceptional and what that
means for life in the universe,
Icon Books Ltd, London, 2014, p. 168 \NC \NR
+\NC sapolsky.tex \NC Robert M. Sapolsky \NC Why Zebras Don't Have Ulsters, means for life in the universe,
+ St Martin's Press, 2004 \NC \NR
\stoptabulate
% Tufte: This quote will always produce hyphenated text, apart from the content,
Added: trunk/Master/texmf-dist/tex/context/sample/common/sapolsky.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/sample/common/sapolsky.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/context/sample/common/sapolsky.tex 2017-05-13 23:29:40 UTC (rev 44324)
@@ -0,0 +1,11 @@
+Agriculture is a fairly recent human invention, and in many ways it was one of
+the great stupid moves of all time. Hunter|-|gatherers have thousands of wild
+sources of food to subsist on. Agriculture changed that all, generating an
+overwhelming reliance on a few dozen domesticated food sources, making you
+extremely vulnerable to the next famine, the next locust infestation, the next
+potato blight. Agriculture allowed for stockpiling of surplus resources and thus,
+inevitably, the unequal stockpiling of them --- stratification of society and
+the invention of classes. Thus, it allowed for the invention of poverty. I think
+that the punch line of the primate|-|human difference is that when humans
+invented poverty, they came up with a way of subjugating the low|-|ranking like
+nothing ever seen before in the primate world.
Property changes on: trunk/Master/texmf-dist/tex/context/sample/common/sapolsky.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua 2017-05-13 23:07:11 UTC (rev 44323)
+++ trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua 2017-05-13 23:29:40 UTC (rev 44324)
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 05/10/17 10:41:46
+-- merge date : 05/12/17 22:40:43
do -- begin closure to overcome local limits and interference
More information about the tex-live-commits
mailing list