summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/buff-ini.lua19
-rw-r--r--tex/context/base/buff-ini.mkiv11
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-ini.mkiv2
-rw-r--r--tex/context/base/font-otb.lua2
-rw-r--r--tex/context/base/font-otf.lua2
-rw-r--r--tex/context/base/font-tfm.lua8
-rw-r--r--tex/context/base/luat-cbk.lua18
-rw-r--r--tex/context/base/luat-dum.lua2
-rw-r--r--tex/context/base/node-ini.mkiv19
-rw-r--r--tex/context/base/node-pag.lua11
-rw-r--r--tex/context/base/node-tsk.lua4
-rw-r--r--tex/context/base/spac-hor.mkiv96
-rw-r--r--tex/context/base/spac-ver.mkiv102
-rw-r--r--tex/context/base/toks-ini.lua2
-rw-r--r--tex/context/base/type-otf.mkiv1
-rw-r--r--tex/context/base/x-fig-03.tex10
-rw-r--r--tex/context/bib/bibl-apa-de.tex4
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua16
21 files changed, 240 insertions, 95 deletions
diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua
index 1c20e24ac..1a76791ad 100644
--- a/tex/context/base/buff-ini.lua
+++ b/tex/context/base/buff-ini.lua
@@ -217,15 +217,12 @@ end
-- The optional prefix hack is there for the typesetbuffer feature and
-- in mkii we needed that (this hidden feature is used in a manual).
-local function prepared(name,list)
- if not name or name == "" then
- name = tex.jobname
- end
- if list then
- -- ok
- else
+local function prepared(name,list) -- list is optional
+ if not list or list == "" then
list = name
- name = tex.jobname .. "-" .. name .. ".tmp"
+ end
+ if not name or name == "" then
+ name = tex.jobname .. "-" .. list .. ".tmp"
end
local content = buffers.collect(list,nil) or ""
if content == "" then
@@ -237,11 +234,15 @@ end
local capsule = "\\starttext\n%s\n\\stoptext\n"
local command = "context %s"
-function buffers.save(name,list,encapsulate)
+function buffers.save(name,list,encapsulate) -- list is optional
local name, content = prepared(name,list)
io.savedata(name, (encapsulate and format(capsule,content)) or content)
end
+function commands.savebuffer(list,name) -- name is optional
+ buffers.save(name,list)
+end
+
function buffers.run(name,list,encapsulate)
local name, content = prepared(name,list)
local data = io.loaddata(name)
diff --git a/tex/context/base/buff-ini.mkiv b/tex/context/base/buff-ini.mkiv
index 001796cfe..c6300a624 100644
--- a/tex/context/base/buff-ini.mkiv
+++ b/tex/context/base/buff-ini.mkiv
@@ -338,8 +338,15 @@
\c!after=]
% only mkiv:
+%
+% \startbuffer[x]
+% x
+% \stopbuffer
+%
+% \savebuffer[x][temp.log]
+
+\unexpanded\def\savebuffer{\dodoubleempty\dosavebuffer}
-\def\savebuffer{\dosingleempty\dosavebuffer}
-\def\dosavebuffer[#1]{\ctxlua{buffers.save("#1")}}
+\def\dosavebuffer[#1][#2]{\ctxlua{commands.savebuffer("#1","#2")}}
\protect \endinput
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 9022a8e99..45e1675b7 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2010.02.22 19:38}
+\newcontextversion{2010.02.23 14:10}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index a650f03b9..826b90c7e 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -73,7 +73,7 @@
\loadmarkfile{node-fin}
\loadmarkfile{node-mig}
\loadmarkfile{node-par}
-\loadmarkfile{node-pag}
+%loadmarkfile{node-pag}
\loadmarkfile{core-var}
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index eb2750649..bbc70ee28 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2010.02.22 19:38}
+\edef\contextversion{2010.02.23 14:10}
%D For those who want to use this:
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv
index ef2e259c0..94d14de8c 100644
--- a/tex/context/base/font-ini.mkiv
+++ b/tex/context/base/font-ini.mkiv
@@ -483,7 +483,7 @@
\let\currentmathsize\empty
-\def\mathsizesuffix{\ifcase0\currentmathsize\or\mathtextsuffix\or\mathscriptscriptsuffix\or\mathscriptsuffix\fi}
+\def\mathsizesuffix{\ifcase0\currentmathsize\or\mathtextsuffix\or\mathscriptsuffix\or\mathscriptscriptsuffix\fi}
\def\dodosetmathfamily#1#2%
{\ifcsname\fontclass \fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \autofontsizefalse
diff --git a/tex/context/base/font-otb.lua b/tex/context/base/font-otb.lua
index a6845800d..a4cd5be02 100644
--- a/tex/context/base/font-otb.lua
+++ b/tex/context/base/font-otb.lua
@@ -218,7 +218,7 @@ function prepare_base_substitutions(tfmdata,kind,value) -- we can share some cod
end
if characters[upc] then
if trace_baseinit and trace_alternatives then
- logs.report("define otf","%s: base alternate %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upc))
+ logs.report("define otf","%s: base alternate %s %s => %s",cref(kind,lookup),tostring(value),gref(descriptions,k),gref(descriptions,upc))
end
changed[k] = upc
end
diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua
index 3488bdfe8..94f5dcf16 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -175,7 +175,7 @@ otf.tables.valid_fields = {
local function load_featurefile(ff,featurefile)
if featurefile then
- featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea')) -- "FONTFEATURES"
+ featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea'),'fea')
if featurefile and featurefile ~= "" then
if trace_loading then
logs.report("load otf", "featurefile: %s", featurefile)
diff --git a/tex/context/base/font-tfm.lua b/tex/context/base/font-tfm.lua
index fd3d8b4dd..1e39dc4e3 100644
--- a/tex/context/base/font-tfm.lua
+++ b/tex/context/base/font-tfm.lua
@@ -36,6 +36,7 @@ fonts.initializers = fonts.initializers or { }
fonts.initializers.common = fonts.initializers.common or { }
local fontdata = fonts.ids
+local disc = node.id('disc')
local glyph = node.id('glyph')
local set_attribute = node.set_attribute
@@ -679,7 +680,8 @@ function fonts.analyzers.aux.setstate(head,font)
local descriptions = tfmdata.descriptions
local first, last, current, n, done = nil, nil, head, 0, false -- maybe make n boolean
while current do
- if current.id == glyph and current.font == font then
+ local id = current.id
+ if id == glyph and current.font == font then
local d = descriptions[current.char]
if d then
if d.class == "mark" then
@@ -700,6 +702,10 @@ function fonts.analyzers.aux.setstate(head,font)
end
first, last, n = nil, nil, 0
end
+ elseif id == disc then
+ -- always in the middle
+ set_attribute(current,state,2) -- midi
+ last = current
else -- finish
if first and first == last then
set_attribute(last,state,4) -- isol
diff --git a/tex/context/base/luat-cbk.lua b/tex/context/base/luat-cbk.lua
index 30930a40c..aa6f8c794 100644
--- a/tex/context/base/luat-cbk.lua
+++ b/tex/context/base/luat-cbk.lua
@@ -123,14 +123,16 @@ function callbacks.push(name, func)
end
function callbacks.pop(name)
- if frozen[name] then
- -- do nothing
- elseif #stack == 0 then
- -- some error
- else
- -- this fails: register_callback(name, remove(stack[name]))
- local func = remove(stack[name])
- register_callback(name, func)
+ if not frozen[name] then
+ local sn = stack[name]
+ if not sn or #sn == 0 then
+ -- some error
+ register_callback(name, nil) -- ! really needed
+ else
+ -- this fails: register_callback(name, remove(stack[name]))
+ local func = remove(sn)
+ register_callback(name, func)
+ end
end
end
diff --git a/tex/context/base/luat-dum.lua b/tex/context/base/luat-dum.lua
index 34dd9ed6b..832f80d86 100644
--- a/tex/context/base/luat-dum.lua
+++ b/tex/context/base/luat-dum.lua
@@ -64,7 +64,7 @@ local remapper = {
function resolvers.find_file(name,kind)
name = string.gsub(name,"\\","\/")
kind = string.lower(kind)
- return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or "tex")
+ return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or file.extname(name,"tex"))
end
function resolvers.findbinfile(name,kind)
diff --git a/tex/context/base/node-ini.mkiv b/tex/context/base/node-ini.mkiv
index 76a714704..0659539bc 100644
--- a/tex/context/base/node-ini.mkiv
+++ b/tex/context/base/node-ini.mkiv
@@ -66,25 +66,6 @@
\def\resetallattributes{\the\attributesresetlist}
-% \appendtoks
-% \ctxlua {
-% callbacks.push('hpack_filter')
-% callbacks.push('vpack_filter')
-% callbacks.push('buildpage_filter')
-% callbacks.push('pre_linebreak_filter')
-% callbacks.push('pre_output_filter')
-% }%
-% \to \everybeforeoutput
-% \appendtoks
-% \ctxlua {
-% callbacks.pop('hpack_filter')
-% callbacks.pop('vpack_filter')
-% callbacks.pop('buildpage_filter')
-% callbacks.pop('pre_linebreak_filter')
-% callbacks.pop('pre_output_filter')
-% }%
-% \to \everyafteroutput
-
\newcount\shownodescounter
\def\shownextnodes {\afterassignment\doshownodes\shownextnodescounter}
diff --git a/tex/context/base/node-pag.lua b/tex/context/base/node-pag.lua
index fd1504eac..2f149ab44 100644
--- a/tex/context/base/node-pag.lua
+++ b/tex/context/base/node-pag.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['node-pag'] = {
license = "see context related readme files"
}
+-- this callback might disappear
+
pagebuilders = pagebuilders or { }
local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
@@ -17,10 +19,11 @@ local function processor(head,groupcode,size,packtype,maxdepth,direction)
local _, done = actions(head,groupcode,size,packtype,maxdepth,direction)
stoptiming(pagebuilders)
return (done and head) or true
+-- return vpack(head)
end
-callbacks.register('pre_output_filter', processor, "preparing output box")
+--~ callbacks.register('pre_output_filter', processor, "preparing output box")
-statistics.register("output preparation time", function()
- return statistics.elapsedseconds(pagebuilders)
-end)
+--~ statistics.register("output preparation time", function()
+--~ return statistics.elapsedseconds(pagebuilders)
+--~ end)
diff --git a/tex/context/base/node-tsk.lua b/tex/context/base/node-tsk.lua
index 553f0fc3b..9accfc6d7 100644
--- a/tex/context/base/node-tsk.lua
+++ b/tex/context/base/node-tsk.lua
@@ -218,8 +218,9 @@ function tasks.table(name) --maybe move this to task-deb.lua
local list, order = lst.list, lst.order
if list and order then
context.starttabulate { "|l|l|" }
- HL() NC() bold("category") NC() bold("function") NC() NR() HL()
+ NC() bold("category") NC() bold("function") NC() NR()
for i=1,#order do
+ HL()
local o = order[i]
local l = list[o]
if #l == 0 then
@@ -229,7 +230,6 @@ function tasks.table(name) --maybe move this to task-deb.lua
NC() type(o) NC() type(v) NC() NR()
end
end
- HL()
end
context.stoptabulate()
end
diff --git a/tex/context/base/spac-hor.mkiv b/tex/context/base/spac-hor.mkiv
index a6754937b..74893bf25 100644
--- a/tex/context/base/spac-hor.mkiv
+++ b/tex/context/base/spac-hor.mkiv
@@ -478,29 +478,99 @@
\definenarrowermethod[\v!none ]{}
% todo: definenarrower
+%
+% \definecomplexorsimple\startnarrower
+%
+% \def\simplestartnarrower
+% {\startnarrower[\v!middle]}
+%
+% \def\complexstartnarrower[#1]%
+% {\@@slbefore % was hard coded \par
+% \bgroup
+% \global\ctxleftskip \zeropoint
+% \global\ctxrightskip\zeropoint
+% \global\ctxmidskip \zeropoint
+% \processcommalistwithparameters[#1]\donarrower
+% \advance\leftskip \dimexpr\ctxleftskip +\ctxmidskip\relax
+% \advance\rightskip \dimexpr\ctxrightskip+\ctxmidskip\relax
+% \seteffectivehsize}
+%
+% \def\stopnarrower
+% {\@@slafter % was hard coded \par / needed, else skips forgotten
+% \egroup}
+%
+% \def\setupnarrower
+% {\dodoubleargument\getparameters[\??sl]}
+
+%D Contrary to \MKII\ we can now define classes of narrower (generalized
+%D by Wolfgang). This environment will be enhanced for bidi.
+
+\def\narrowerparameter #1{\csname\donarrowerparameter{\??sl\@@narrower}#1\endcsname}
+\def\donarrowerparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\donarrowerparentparameter\csname#1\s!parent\endcsname#2\fi}
+\def\donarrowerparentparameter#1#2{\ifx#1\relax\s!empty\else\donarrowerparameter#1#2\fi}
+
+\getparameters
+ [\??sl]
+ [\c!before=\endgraf,
+ \c!after=\endgraf,
+ \c!left=1.5em,
+ \c!right=1.5em,
+ \c!middle=1.5em]
+
+\def\definenarrower
+ {\dodoubleempty\dodefinenarrower}
+
+\def\dodefinenarrower[#1][#2]%
+ {\getparameters[\??sl#1][\s!parent=\??sl,#2]%
+ \setvalue{\e!start#1}{\dodoubleempty\dostartnarrower[#1]}%
+ \setvalue{\e!stop #1}{\dostopnarrower}}
-\definecomplexorsimple\startnarrower
+\def\setupnarrower
+ {\dodoubleempty\dosetupnarrower}
+
+\def\dosetupnarrower[#1][#2]%
+ {\doifelsenothing{#2}
+ {\getparameters[\??sl][#1]}
+ {\def\docommand##1{\getparameters[\??sl##1][#2]}%
+ \processcommacommand[#1]\docommand}}
+
+\definenarrowermethod[\v!left ]{\global\advance\ctxleftskip \narrowerparameter\c!left \relax}
+\definenarrowermethod[\v!middle ]{\global\advance\ctxmidskip \narrowerparameter\c!middle\relax}
+\definenarrowermethod[\v!right ]{\global\advance\ctxrightskip \narrowerparameter\c!right \relax}
+\definenarrowermethod[-\v!left ]{\global\advance\ctxleftskip -\narrowerparameter\c!left \relax}
+\definenarrowermethod[-\v!middle]{\global\advance\ctxmidskip -\narrowerparameter\c!middle\relax}
+\definenarrowermethod[-\v!right ]{\global\advance\ctxrightskip-\narrowerparameter\c!right \relax}
+\definenarrowermethod[\v!reset ]{\global\ctxleftskip \zeropoint
+ \global\ctxmidskip \zeropoint
+ \global\ctxrightskip\zeropoint\relax}
+\definenarrowermethod[\v!none ]{}
-\def\simplestartnarrower
- {\startnarrower[\v!middle]}
+\def\dostartnarrower[#1][#2]%
+ {\bgroup
+ \ifsecondargument % \doifsomethingelse{#2}?
+ \dodostartnarrower[#1][#2]%
+ \else
+ \dodostartnarrower[#1][\v!middle]%
+ \fi}
-\def\complexstartnarrower[#1]%
- {\@@slbefore % was hard coded \par
- \bgroup
+\def\dodostartnarrower[#1][#2]%
+ {\edef\@@narrower{#1}%
+ \narrowerparameter\c!before
\global\ctxleftskip \zeropoint
\global\ctxrightskip\zeropoint
\global\ctxmidskip \zeropoint
- \processcommalistwithparameters[#1]\donarrower
- \advance\leftskip \dimexpr\ctxleftskip +\ctxmidskip\relax
- \advance\rightskip \dimexpr\ctxrightskip+\ctxmidskip\relax
+ \processcommalistwithparameters[#2]\donarrower
+ \advance\leftskip \dimexpr\ctxleftskip +\ctxmidskip\relax
+ \advance\rightskip\dimexpr\ctxrightskip+\ctxmidskip\relax
\seteffectivehsize}
-\def\stopnarrower
- {\@@slafter % was hard coded \par / needed, else skips forgotten
+\def\dostopnarrower
+ {\narrowerparameter\c!after
\egroup}
-\def\setupnarrower
- {\dodoubleargument\getparameters[\??sl]}
+\def\v!narrower{narrower}
+
+\definenarrower[\v!narrower]
\newdimen\@@effectivehsize \def\effectivehsize {\hsize}
\newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip}
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index 7768f80b5..07b47b92d 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -1826,16 +1826,89 @@
%D \stoplines
%D \stoptyping
+% \def\setuplines
+% {\dodoubleargument\getparameters[\??rg]}
+%
+% \def\startlines
+% {\@@rgbefore
+% \pushmacro\checkindentation
+% \whitespace
+% %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
+% \begingroup
+% \setupindenting[\@@rgindenting]%
+% \typesettinglinestrue
+% \setupwhitespace[\v!none]%
+% \obeylines
+% \ignorespaces
+% \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
+% {\gdef\afterfirstobeyedline
+% {\nobreak
+% \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}%
+% \def\obeyedline
+% {\par
+% \futurelet\next\dobetweenthelines}%
+% \activatespacehandler\@@rgspace
+% \GotoPar}
+%
+% \def\stoplines
+% {\endgroup
+% \popmacro\checkindentation
+% \@@rgafter}
+%
+% \def\dobetweenthelines
+% {\doifmeaningelse\next\obeyedline
+% {\@@rginbetween}
+% {\afterfirstobeyedline}}
+%
+% \setuplines
+% [\c!option=,
+% \c!before=\blank,
+% \c!after=\blank,
+% \c!inbetween=\blank,
+% \c!indenting=\v!no,
+% \c!space=\v!default]
+
+%D Contrary to \MKII\ we can now define classes of lines (generalized by
+%D Wolfgang). I will probably rewrite bits in \LUA.
+
+\def\linesparameter #1{\csname\dolinesparameter{\??rg\@@lines}#1\endcsname}
+\def\dolinesparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dolinesparentparameter\csname#1\s!parent\endcsname#2\fi}
+\def\dolinesparentparameter#1#2{\ifx#1\relax\s!empty\else\dolinesparameter#1#2\fi}
+
+\getparameters
+ [\??rg]
+ [\c!option=,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!inbetween=\blank,
+ \c!indenting=\v!no,
+ \c!space=\v!default]
+
+\def\definelines
+ {\dodoubleempty\dodefinelines}
+
+\def\dodefinelines[#1][#2]%
+ {\getparameters[\??rg#1][\s!parent=\??rg,#2]%
+ \setvalue{\e!start#1}{\dostartlines[#1]}%
+ \setvalue{\e!stop #1}{\dostoplines}}
+
\def\setuplines
- {\dodoubleargument\getparameters[\??rg]}
+ {\dodoubleempty\dosetuplines}
+
+\def\dosetuplines[#1][#2]%
+ {\doifelsenothing{#2}
+ {\getparameters[\??rg][#1]}
+ {\def\docommand##1{\getparameters[\??rg##1][#2]}%
+ \processcommacommand[#1]\docommand}}
-\def\startlines
- {\@@rgbefore
+\def\dostartlines[#1]%
+ {\bgroup
+ \edef\@@lines{#1}%
+ \linesparameter\c!before
\pushmacro\checkindentation
\whitespace
- %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
\begingroup
- \setupindenting[\@@rgindenting]%
+ \setupindenting[\linesparameter\c!indenting]%
\typesettinglinestrue
\setupwhitespace[\v!none]%
\obeylines
@@ -1843,30 +1916,25 @@
\gdef\afterfirstobeyedline % tzt two pass, net als opsomming
{\gdef\afterfirstobeyedline
{\nobreak
- \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}%
+ \doifnot{\linesparameter\c!option}\v!packed{\global\let\afterfirstobeyedline\relax}}}%
\def\obeyedline
{\par
\futurelet\next\dobetweenthelines}%
- \activatespacehandler\@@rgspace
+ \activatespacehandler{\linesparameter\c!space}%
\GotoPar}
-\def\stoplines
+\def\dostoplines
{\endgroup
\popmacro\checkindentation
- \@@rgafter}
+ \linesparameter\c!after
+ \egroup}
\def\dobetweenthelines
{\doifmeaningelse\next\obeyedline
- {\@@rginbetween}
+ {\linesparameter\c!inbetween}
{\afterfirstobeyedline}}
-\setuplines
- [\c!option=,
- \c!before=\blank,
- \c!after=\blank,
- \c!inbetween=\blank,
- \c!indenting=\v!no,
- \c!space=\v!default]
+\definelines[\v!lines]
\def\emptylines
{\dosingleempty\doemptylines}
diff --git a/tex/context/base/toks-ini.lua b/tex/context/base/toks-ini.lua
index 1313b04a2..46dfa4eff 100644
--- a/tex/context/base/toks-ini.lua
+++ b/tex/context/base/toks-ini.lua
@@ -56,7 +56,7 @@ collectors.data = collectors.data or { }
function tex.printlist(data)
callbacks.push('token_filter', function ()
- callbacks.pop('token_filter')
+ callbacks.pop('token_filter') -- tricky but the nil assignment helps
return data
end)
end
diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv
index 01971147d..262de7b86 100644
--- a/tex/context/base/type-otf.mkiv
+++ b/tex/context/base/type-otf.mkiv
@@ -1709,6 +1709,7 @@
\stoptypescript
\starttypescript [math] [euler] [name]
+ % \definefontsynonym [MathRoman] [EulerMath] [\s!features=math]
\definefontsynonym [MathRoman] [EulerMath] [\s!features=math\mathsizesuffix]
\stoptypescript
diff --git a/tex/context/base/x-fig-03.tex b/tex/context/base/x-fig-03.tex
index bf5ea226c..131752823 100644
--- a/tex/context/base/x-fig-03.tex
+++ b/tex/context/base/x-fig-03.tex
@@ -11,8 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\ifx \undefined \convertMPtoPDF \input supp-pdf.tex \fi
-\ifx \undefined \includefigurefile \else \expandafter \endinput \fi
+\ifx \undefined \convertMPtoPDF \input supp-pdf.mkii \fi
+\ifx \undefined \includefigurefile \else \expandafter \endinput \fi
\gdef\getfigurefile#1%
{\expandafter\ifx\csname x-fig-f-#1\endcsname\relax
@@ -37,8 +37,8 @@
{\doincludefigurefile{#1}}
\def\doincludefigurefile#1#2%
- {\edef\next{\noexpand\pdfimage
+ {\edef\next{\noexpand\pdfimage
#1 page \getfigurepage{#2} {\getfigurefile{#2}.pdf}}%
- \next}
+ \next}
-\endinput
+\endinput
diff --git a/tex/context/bib/bibl-apa-de.tex b/tex/context/bib/bibl-apa-de.tex
index 8f8be59fb..afeebd260 100644
--- a/tex/context/bib/bibl-apa-de.tex
+++ b/tex/context/bib/bibl-apa-de.tex
@@ -108,7 +108,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{Kapitel\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
@@ -383,4 +383,4 @@
\insertnote{ }{.}{}%
}
-\protect \ No newline at end of file
+\protect
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 3704975a2..e5ea88025 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
--- merge date : 02/22/10 19:49:18
+-- merge date : 02/23/10 14:20:59
do -- begin closure to overcome local limits and interference
@@ -1997,7 +1997,7 @@ local remapper = {
function resolvers.find_file(name,kind)
name = string.gsub(name,"\\","\/")
kind = string.lower(kind)
- return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or "tex")
+ return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or file.extname(name,"tex"))
end
function resolvers.findbinfile(name,kind)
@@ -3410,6 +3410,7 @@ fonts.initializers = fonts.initializers or { }
fonts.initializers.common = fonts.initializers.common or { }
local fontdata = fonts.ids
+local disc = node.id('disc')
local glyph = node.id('glyph')
local set_attribute = node.set_attribute
@@ -4053,7 +4054,8 @@ function fonts.analyzers.aux.setstate(head,font)
local descriptions = tfmdata.descriptions
local first, last, current, n, done = nil, nil, head, 0, false -- maybe make n boolean
while current do
- if current.id == glyph and current.font == font then
+ local id = current.id
+ if id == glyph and current.font == font then
local d = descriptions[current.char]
if d then
if d.class == "mark" then
@@ -4074,6 +4076,10 @@ function fonts.analyzers.aux.setstate(head,font)
end
first, last, n = nil, nil, 0
end
+ elseif id == disc then
+ -- always in the middle
+ set_attribute(current,state,2) -- midi
+ last = current
else -- finish
if first and first == last then
set_attribute(last,state,4) -- isol
@@ -5914,7 +5920,7 @@ otf.tables.valid_fields = {
local function load_featurefile(ff,featurefile)
if featurefile then
- featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea')) -- "FONTFEATURES"
+ featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea'),'fea')
if featurefile and featurefile ~= "" then
if trace_loading then
logs.report("load otf", "featurefile: %s", featurefile)
@@ -7820,7 +7826,7 @@ function prepare_base_substitutions(tfmdata,kind,value) -- we can share some cod
end
if characters[upc] then
if trace_baseinit and trace_alternatives then
- logs.report("define otf","%s: base alternate %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upc))
+ logs.report("define otf","%s: base alternate %s %s => %s",cref(kind,lookup),tostring(value),gref(descriptions,k),gref(descriptions,upc))
end
changed[k] = upc
end