summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-10-03 21:02:43 +0300
committerMarius <mariausol@gmail.com>2010-10-03 21:02:43 +0300
commit592d84d67cf9d58d8a205b46bb912ed9fe84d7a2 (patch)
treeacaad0ce860fd120a1ccb2a4181bc3e00228fc01
parent5d142291629d880a27e52af2d359a94e67c045b1 (diff)
downloadcontext-592d84d67cf9d58d8a205b46bb912ed9fe84d7a2.tar.gz
beta 2010.10.03 18:07
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-fbk.lua9
-rw-r--r--tex/context/base/strc-lst.lua39
-rw-r--r--tex/context/base/type-otf.mkiv12
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua2
6 files changed, 45 insertions, 21 deletions
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index a02a84d71..5a5e36911 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.10.01 23:14}
+\newcontextversion{2010.10.03 18:07}
%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.tex b/tex/context/base/context.tex
index 6b859c758..99e6f2f8c 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.10.01 23:14}
+\edef\contextversion{2010.10.03 18:07}
%D For those who want to use this:
diff --git a/tex/context/base/font-fbk.lua b/tex/context/base/font-fbk.lua
index d91e1f08b..865e92623 100644
--- a/tex/context/base/font-fbk.lua
+++ b/tex/context/base/font-fbk.lua
@@ -232,10 +232,11 @@ function vf.aux.compose_characters(g) -- todo: scaling depends on call location
end
elseif c_ury > a_lly then
--~ local dy = cap_ury - a_lly
-local X = byte("x")
-local xdesc = descs[X]
-local x_ury = scale*xdesc.boundingbox[4] -- x height
-local dy = c_ury - x_ury
+local lower_x = byte("x")
+local upper_x = byte("X")
+local Xdesc = descs[upper_x]
+local xdesc = descs[lower_x]
+local dy = scale*(Xdesc.boundingbox[4] - xdesc.boundingbox[4] - 30) -- x height
if trace_combining then
t.commands = { push, {"right", dx+dd}, {"down", -dy}, green, acc_t, black, pop, chr_t }
diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua
index 17de279a5..ebdb68bd5 100644
--- a/tex/context/base/strc-lst.lua
+++ b/tex/context/base/strc-lst.lua
@@ -189,17 +189,40 @@ end
-- will be split
+-- Historically we had blocks but in the mkiv approach that could as well be a level
+-- which would simplify things a bit.
+
+local splitter = lpeg.splitat(":")
+
+-- this will become filtercollected(specification) and then we'll also have sectionblock as key
+
local function filtercollected(names, criterium, number, collected, forced, nested) -- names is hash or string
local numbers, depth = documents.data.numbers, documents.data.depth
local result, detail = { }, nil
+ local block = false -- all
criterium = gsub(criterium or ""," ","") -- not needed
+ -- new, will be applied stepwise
+ local wantedblock, wantedcriterium = lpegmatch(splitter,criterium) -- block:criterium
+ if not wantedcriterium then
+ block = documents.data.block
+ elseif wantedblock == "" or wantedblock == variables.all or wantedblock == variables.text then
+ criterium = wantedcriterium ~= "" and wantedcriterium or criterium
+ else
+ block, criterium = wantedblock, wantedcriterium
+ end
+ if block == "" then
+ block = false
+ end
+--~ print(">>",block,criterium)
+ --
forced = forced or { } -- todo: also on other branched, for the moment only needed for bookmarks
if type(names) == "string" then
names = settings_to_hash(names)
end
local all = not next(names) or names[variables.all] or false
if trace_lists then
- report_lists("filtering names: %s, criterium: %s, number: %s",simple_hash_to_string(names),criterium,number or "-")
+ report_lists("filtering names: %s, criterium: %s, block: %s, number: %s",
+ simple_hash_to_string(names),criterium,block or "*", number or "-")
end
if criterium == variables.intro then
-- special case, no structure yet
@@ -232,7 +255,7 @@ local function filtercollected(names, criterium, number, collected, forced, nest
for i=1,#collected do
local v = collected[i]
local r = v.references
- if r then
+ if r and (not block or block == r.block) then
local sectionnumber = sections.collected[r.section]
if sectionnumber then -- and not sectionnumber.hidenumber then
local cnumbers = sectionnumber.numbers
@@ -264,8 +287,8 @@ local function filtercollected(names, criterium, number, collected, forced, nest
for i=1,#collected do
local v = collected[i]
local r = v.references
- if r then
- local sectionnumber = sections.collected[r.section]
+ if r and (not block or block == r.block) then
+ctionnumber = sections.collected[r.section]
if sectionnumber then -- and not sectionnumber.hidenumber then
local cnumbers = sectionnumber.numbers
local metadata = v.metadata
@@ -296,7 +319,7 @@ local function filtercollected(names, criterium, number, collected, forced, nest
for i=1,#collected do
local v = collected[i]
local r = v.references
- if r then
+ if r and (not block or block == r.block) then
local sectionnumber = sections.collected[r.section]
if sectionnumber then -- and not sectionnumber.hidenumber then
local cnumbers = sectionnumber.numbers
@@ -342,7 +365,7 @@ local function filtercollected(names, criterium, number, collected, forced, nest
for i=1,#collected do
local v = collected[i]
local r = v.references
- if r then
+ if r then -- block ?
local sectionnumber = sections.collected[r.section]
if sectionnumber then
local metadata = v.metadata
@@ -359,9 +382,9 @@ local function filtercollected(names, criterium, number, collected, forced, nest
end
if trace_lists then
if detail then
- report_lists("criterium: %s, %s, found: %s",criterium,detail,#result)
+ report_lists("criterium: %s, block: %s, %s, found: %s",criterium,block or "*",detail,#result)
else
- report_lists("criterium: %s, found: %s",criterium,#result)
+ report_lists("criterium: %s, block: %s, found: %s",criterium,block or "*",#result)
end
end
return result
diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv
index a68379f64..2879fa1bd 100644
--- a/tex/context/base/type-otf.mkiv
+++ b/tex/context/base/type-otf.mkiv
@@ -1571,12 +1571,12 @@
\definefontsynonym [\s!SansBoldItalic] [\s!file:candaraz] [\s!features=\s!default]
\stoptypescript
- \starttypescript [sans] [consolas] [name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [\s!file:consola] [\s!features=\s!default]
- \definefontsynonym [\s!SansBold] [\s!file:consolab] [\s!features=\s!default]
- \definefontsynonym [\s!SansItalic] [\s!file:consolai] [\s!features=\s!default]
- \definefontsynonym [\s!SansBoldItalic] [\s!file:consolaz] [\s!features=\s!default]
+ \starttypescript [mono] [consolas] [name]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:consola] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold] [\s!file:consolab] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoItalic] [\s!file:consolai] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:consolaz] [\s!features=\s!none]
\stoptypescript
\starttypescript [serif] [constantia] [name]
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 6b9fd6bce..a54ca0a09 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 10/01/10 23:14:47
+-- merge date : 10/03/10 18:07:20
do -- begin closure to overcome local limits and interference