summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4208 -> 4207 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/core-uti.lua27
-rw-r--r--tex/context/base/font-ctx.lua3
-rw-r--r--tex/context/base/font-ots.lua2
-rw-r--r--tex/context/base/lpdf-ano.lua3
-rw-r--r--tex/context/base/status-files.pdfbin24380 -> 24393 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin255453 -> 255458 bytes
-rw-r--r--tex/context/base/strc-def.mkiv8
-rw-r--r--tex/context/base/strc-doc.lua44
-rw-r--r--tex/context/base/type-imp-lucida-opentype.mkiv44
-rw-r--r--tex/context/base/type-set.mkiv2
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
14 files changed, 80 insertions, 59 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index fcfbd2a0d..6dc526737 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2015.07.27 19:36}
+\newcontextversion{2015.07.28 15:15}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 9e52fef87..3cf18d5b9 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 96484b5aa..072164505 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2015.07.27 19:36}
+\edef\contextversion{2015.07.28 15:15}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/core-uti.lua b/tex/context/base/core-uti.lua
index a4b747680..b3c8b5a5f 100644
--- a/tex/context/base/core-uti.lua
+++ b/tex/context/base/core-uti.lua
@@ -17,6 +17,7 @@ utility file under different setups, we now load a table once. This
saves much runtime but at the cost of more memory usage.</p>
--ldx]]--
+local math = math
local format, match = string.format, string.match
local next, type, tostring = next, type, tostring
local concat = table.concat
@@ -82,7 +83,7 @@ function job.initialize(loadname,savename)
if not savename or savename == "" then
savename = tex.jobname .. ".tua"
end
- job.load(loadname) -- has to come after structure is defined !
+ job.load(loadname) -- has to come after structure is defined !
luatex.registerstopactions(function()
if enabled and not status.lasterrorstring or status.lasterrorstring == "" then
-- if kept then
@@ -121,12 +122,14 @@ end
job.register('job.variables.checksums', 'job.variables.checksums', initializer)
local rmethod, rvalue
+local collectedmacros, tobesavedmacros
local ctx_setxvalue = context.setxvalue
local function initializer()
tobesaved = jobvariables.tobesaved
collected = jobvariables.collected
+ --
rvalue = collected.randomseed
if not rvalue then
rvalue = math.random()
@@ -137,19 +140,33 @@ local function initializer()
rmethod = "resumed"
end
tobesaved.randomseed = rvalue
- for cs, value in next, collected do
- ctx_setxvalue(cs,value)
+ --
+ collectedmacros = collected.macros
+ tobesavedmacros = tobesaved.macros
+ if not collectedmacros then
+ collectedmacros = { }
+ collected.macros = collectedmacros
+ end
+ if not tobesavedmacros then
+ tobesavedmacros = { }
+ tobesaved.macros = tobesavedmacros
+ end
+ -- will become collected.macros
+ for cs, value in next, collectedmacros do
+ if type(value) == "string" then -- safeguard
+ ctx_setxvalue(cs,value)
+ end
end
end
job.register('job.variables.collected', tobesaved, initializer)
function jobvariables.save(cs,value)
- tobesaved[cs] = value
+ tobesavedmacros[cs] = value
end
function jobvariables.restore(cs)
- return collected[cs] or tobesaved[cs]
+ return collectedmacros[cs] or tobesavedmacros[cs]
end
-- checksums
diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua
index 84de6026f..8c6142abb 100644
--- a/tex/context/base/font-ctx.lua
+++ b/tex/context/base/font-ctx.lua
@@ -738,13 +738,14 @@ local function registercontextfeature(mergedname,extraname,how)
for k, v in next, extra do
mergedfeatures[k] = v
end
- local number = #numbers + 1
+ local number = #numbers + 1 -- we somehow end up with steps of 2
mergedfeatures.number = number
numbers[number] = mergedname
merged[number] = how == "=" and 1 or 2 -- 1=replace, 2=combine
setups[mergedname] = mergedfeatures
return number -- contextnumber(mergedname)
else
+ report_features("unknown feature %a cannot be merged into %a using method %a",extraname,mergedname,how)
return 0
end
end
diff --git a/tex/context/base/font-ots.lua b/tex/context/base/font-ots.lua
index 827413f42..4b5c04dc2 100644
--- a/tex/context/base/font-ots.lua
+++ b/tex/context/base/font-ots.lua
@@ -304,7 +304,7 @@ end
local function mref(rlmode)
if not rlmode or rlmode == 0 then
return "---"
- elseif rlmode < 0 then
+ elseif rlmode == -1 or rlmode == "+TRT" then
return "r2l"
else
return "l2r"
diff --git a/tex/context/base/lpdf-ano.lua b/tex/context/base/lpdf-ano.lua
index 9994be2df..8384313c2 100644
--- a/tex/context/base/lpdf-ano.lua
+++ b/tex/context/base/lpdf-ano.lua
@@ -1063,6 +1063,7 @@ local function build(levels,start,parent,method,nested)
local level = current.level
local title = current.title
local reference = current.reference
+ local block = reference.block
local opened = current.opened
local reftype = type(reference)
local variant = "unknown"
@@ -1087,7 +1088,7 @@ local function build(levels,start,parent,method,nested)
if variant == "unknown" then
-- error, ignore
i = i + 1
- elseif level < startlevel then
+ elseif (level < startlevel) or (i > 1 and block ~= levels[i-1].reference.block) then
if nested then -- could be an option but otherwise we quit too soon
if entry then
pdfflushobject(child,entry)
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 69a42bdc6..fa2ce1a80 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 408a0546d..a79641b6d 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/strc-def.mkiv b/tex/context/base/strc-def.mkiv
index 015e02d67..962c46b48 100644
--- a/tex/context/base/strc-def.mkiv
+++ b/tex/context/base/strc-def.mkiv
@@ -65,6 +65,14 @@
\setsectionblock [\v!bodypart] % default
+% \appendtoks
+% \setsectionblock[\v!bodypart]% default
+% \to \everyjob
+%
+% \appendtoks
+% \clf_setinitialsectionblock{\v!bodypart}%
+% \to \everystarttext
+
\appendtoks
\clf_setinitialsectionblock{\v!bodypart}%
\to \everyjob
diff --git a/tex/context/base/strc-doc.lua b/tex/context/base/strc-doc.lua
index 66b30fe3a..885e2de0b 100644
--- a/tex/context/base/strc-doc.lua
+++ b/tex/context/base/strc-doc.lua
@@ -240,26 +240,36 @@ function sections.setblock(name,settings)
return block
end
+local jobvariables = job.variables
local pushed_order = { }
local pushed_done = { }
-function sections.order()
- return job.variables.collected.sectionblockorder or pushed_order -- so we have a first pass list too
+jobvariables.tobesaved.sectionblockorder = pushed_order
+
+-- function sections.order()
+-- return jobvariables.collected.sectionblockorder or pushed_order -- so we have a first pass list too
+-- end
+
+function sections.setinitialblock(default)
+ local order = jobvariables.collected.sectionblockorder or pushed_order
+ local name = #order > 0 and order[1] or default or "bodypart"
+ context.setsectionblock { name }
+ -- interfaces.setmacro("currentsectionblock",name)
+ -- sections.setblock(name,{})
end
function sections.pushblock(name,settings)
counters.check(0) -- we assume sane usage of \page between blocks
local block = name or data.block
+ insert(data.blocks,block)
+ data.block = block
+ sectionblockdata[block] = settings
+ documents.reset()
if not pushed_done[name] then
pushed_done[name] = true
local nofpushed = #pushed_order + 1
pushed_order[nofpushed] = name
- job.variables.tobesaved.sectionblockorder = pushed_order
end
- insert(data.blocks,block)
- data.block = block
- sectionblockdata[block] = settings
- documents.reset()
return block
end
@@ -1107,6 +1117,13 @@ implement {
}
implement {
+ name = "setinitialsectionblock",
+ actions = sections.setinitialblock,
+ arguments = "string",
+ -- onlyonce = true,
+}
+
+implement {
name = "pushsectionblock",
actions = sections.pushblock,
arguments = { "string", { { "bookmark" } } }
@@ -1116,16 +1133,3 @@ implement {
name = "popsectionblock",
actions = sections.popblock,
}
-
--- bah, i'll probably forget about this hack but it's needed for
--- preamble list mess as used by some users for booksmarks
-
-implement {
- name = "setinitialsectionblock",
- onlyonce = true,
- arguments = "string",
- actions = function(default)
- local name = sections.order()[1]
- context.setsectionblock { name ~= "" and name or default }
- end
-}
diff --git a/tex/context/base/type-imp-lucida-opentype.mkiv b/tex/context/base/type-imp-lucida-opentype.mkiv
index 63a331cad..f39ed6e1f 100644
--- a/tex/context/base/type-imp-lucida-opentype.mkiv
+++ b/tex/context/base/type-imp-lucida-opentype.mkiv
@@ -11,11 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% NOTA BENE: class feattures and goodies get expanded!
+% NOTA BENE: class features and goodies get expanded!
\starttypescriptcollection[lucida-opentype]
- \starttypescript [lucidanova,lucidaot,otlucida]
+ \starttypescript [lucidaot,lucidadk]
\loadfontgoodies[lucida-opentype-math]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!features=\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!features=\s!default]
@@ -28,7 +28,7 @@
\quittypescriptscanning
\stoptypescript
- \starttypescript [\s!serif] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!serif] [lucidaot,lucidadk]
\definefontsynonym [\s!Serif] [\s!file:LucidaBrightOT.otf]
\definefontsynonym [\s!SerifBold] [\s!file:LucidaBrightOT-Demi.otf]
\definefontsynonym [\s!SerifItalic] [\s!file:LucidaBrightOT-Italic.otf]
@@ -37,7 +37,7 @@
\definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
\stoptypescript
- \starttypescript [\s!sans] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!sans] [lucidaot,lucidadk]
\definefontsynonym [\s!Sans] [\s!file:LucidaSansOT.otf]
\definefontsynonym [\s!SansBold] [\s!file:LucidaSansOT-Demi.otf]
\definefontsynonym [\s!SansItalic] [\s!file:LucidaSansOT-Italic.otf]
@@ -46,7 +46,7 @@
\definefontsynonym [\s!SansBoldSlanted] [\s!SansBoldItalic]
\stoptypescript
- \starttypescript [\s!mono] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!mono] [lucidaot]
\definefontsynonym [\s!Mono] [\s!file:LucidaSansTypewriterOT.otf]
\definefontsynonym [\s!MonoBold] [\s!file:LucidaSansTypewriterOT-Bold.otf]
\definefontsynonym [\s!MonoItalic] [\s!file:LucidaSansTypewriterOT-Oblique.otf]
@@ -55,38 +55,28 @@
\definefontsynonym [\s!MonoBoldSlanted] [\s!MonoBoldItalic]
\stoptypescript
- \starttypescript [\s!math] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!mono] [lucidadk]
+ \definefontsynonym [\s!Mono] [\s!file:LucidaGrandeMonoDK.otf]
+ \definefontsynonym [\s!MonoBold] [\s!file:LucidaGrandeMonoDK-Bold.otf]
+ \definefontsynonym [\s!MonoItalic] [\s!file:LucidaGrandeMonoDK-Oblique.otf]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:LucidaGrandeMonoDK-BoldOblique.otf]
+ \definefontsynonym [\s!MonoSlanted] [\s!MonoItalic]
+ \definefontsynonym [\s!MonoBoldSlanted] [\s!MonoBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!math] [lucidaot,lucidadk]
\definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lucida-opentype-math]
\definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lucida-opentype-math]
\stoptypescript
- \starttypescript [\s!handwriting] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!handwriting] [lucidaot,lucidadk]
\definefontsynonym [\s!Handwriting] [\s!file:LucidaHandwritingOT.otf]
\stoptypescript
- \starttypescript [\s!calligraphy] [lucidanova,lucidaot,otlucida]
+ \starttypescript [\s!calligraphy] [lucidaot,lucidadk]
\definefontsynonym [\s!Calligraphy] [\s!file:LucidaCalligraphyOT.otf]
\stoptypescript
\stoptypescriptcollection
\endinput
-
-\starttext
-
- \setupbodyfont[lucidanova]
-
-% \showfont[Serif][all]
-% \showfont[MathRoman][all]
-
- \usemodule[fnt-31]
-
- \startluacode
- fonts.tracers.coverage {
- "LucidaMathOT.otf",
- "LucidaBrightOT.otf",
- "LucidaSansOT-Typewriter.otf",
- }
- \stopluacode
-
-\stoptext
diff --git a/tex/context/base/type-set.mkiv b/tex/context/base/type-set.mkiv
index b07944afe..a5a3bf5ef 100644
--- a/tex/context/base/type-set.mkiv
+++ b/tex/context/base/type-set.mkiv
@@ -58,8 +58,8 @@
\fi
\definefilesynonym [type-imp-lucida.mkiv] [type-imp-lucida-typeone.mkiv]
-\definefilesynonym [type-imp-lucidanova.mkiv] [type-imp-lucida-opentype.mkiv]
\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida-opentype.mkiv]
+\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida-opentype.mkiv]
\definefilesynonym [type-imp-palatino.mkiv] [type-imp-texgyre.mkiv]
\definefilesynonym [type-imp-courier.mkiv] [type-imp-texgyre.mkiv]
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 5de00c5d4..1c1d2db94 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 07/27/15 19:36:10
+-- merge date : 07/28/15 15:15:23
do -- begin closure to overcome local limits and interference