summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2009-09-15 12:27:00 +0200
committerHans Hagen <pragma@wxs.nl>2009-09-15 12:27:00 +0200
commit2527b228386c22af57e3d72a739c74930fd09eb6 (patch)
tree34994fdc3f4798fc638a7c7668872cacae827248
parentb6f05180d27bb8e4cb3e570633f16185eba987fe (diff)
downloadcontext-2527b228386c22af57e3d72a739c74930fd09eb6.tar.gz
beta 2009.09.15 12:27
-rw-r--r--scripts/context/lua/mtx-context.lua23
-rw-r--r--scripts/context/lua/mtx-server-ctx-help.lua92
-rw-r--r--tex/context/base/attr-ini.lua34
-rw-r--r--tex/context/base/attr-ini.mkiv37
-rw-r--r--tex/context/base/back-pdf.lua7
-rw-r--r--tex/context/base/bibl-tra.mkiv8
-rw-r--r--tex/context/base/chem-ini.mkiv2
-rw-r--r--tex/context/base/colo-ext.mkii10
-rw-r--r--tex/context/base/colo-ext.mkiv35
-rw-r--r--tex/context/base/colo-ini.mkiv26
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-env.mkiv84
-rw-r--r--tex/context/base/core-spa.mkiv43
-rw-r--r--tex/context/base/math-ali.mkiv6
-rw-r--r--tex/context/base/math-ini.mkiv5
-rw-r--r--tex/context/base/mult-cld.lua36
-rw-r--r--tex/context/base/mult-de.tex2
-rw-r--r--tex/context/base/mult-def.lua13
-rw-r--r--tex/context/base/mult-en.tex2
-rw-r--r--tex/context/base/mult-fr.tex2
-rw-r--r--tex/context/base/mult-it.tex2
-rw-r--r--tex/context/base/mult-nl.tex2
-rw-r--r--tex/context/base/mult-ro.tex2
-rw-r--r--tex/context/base/mult-sys.tex1
-rw-r--r--tex/context/base/page-mak.mkiv4
-rw-r--r--tex/context/base/prop-mis.mkiv40
-rw-r--r--tex/context/base/s-pre-60.tex2
-rw-r--r--tex/context/base/strc-ref.lua6
-rw-r--r--tex/context/base/strc-ref.mkiv32
-rw-r--r--tex/context/base/task-ini.lua2
-rw-r--r--tex/context/bib/t-bib.tex4
-rw-r--r--tex/context/interface/cont-cs.xml5
-rw-r--r--tex/context/interface/cont-de.xml5
-rw-r--r--tex/context/interface/cont-en.xml5
-rw-r--r--tex/context/interface/cont-fr.xml5
-rw-r--r--tex/context/interface/cont-it.xml5
-rw-r--r--tex/context/interface/cont-nl.xml5
-rw-r--r--tex/context/interface/cont-pe.xml5
-rw-r--r--tex/context/interface/cont-ro.xml5
-rw-r--r--tex/context/interface/keys-cs.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-fr.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-pe.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua2
49 files changed, 333 insertions, 293 deletions
diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua
index e95aead49..b94b330bd 100644
--- a/scripts/context/lua/mtx-context.lua
+++ b/scripts/context/lua/mtx-context.lua
@@ -1370,20 +1370,41 @@ messages.help = [[
--purge(all) purge files (--pattern=...)
--result=name rename result to given name
--arrange run extra arrange pass
+--noarrange ignore arrange commands in the file
+--batchmode run without stopping and don't show messages on the console
+--nonstopmode run without stopping
+--usemodule=list load the given module (or style)
+--environment=list load the given file first
+--mode=list enable given the mode(s)
+--path=list also consult the given paths when files are looked for
+--paranoid don't descend to .. and ../..
+--randomseed=number set the randomseed
+--arguments=list set variables that can be consulted during a run (key/value pairs)
+--interface use specified user interface
--expert expert options
---interface use specified user interface
]]
+-- filter=list is kind of obsolete
+-- color is obsolete for mkiv, always on
+-- separation is obsolete for mkiv, no longer available
+-- output is currently obsolete for mkiv
+-- setuppath=list must check
+-- modefile=name must check
+-- inputfile=name load the given inputfile (must check)
+
messages.expert = [[
expert options:
--touch update context version number (remake needed afterwards, also provide --expert)
+--nostats omit runtime statistics at the end of the run
--update update context from website (not to be confused with contextgarden)
--profile profile job (use: mtxrun --script profile --analyse)
--track show/set tracker variables
--timing generate timing and statistics overview
--extra=name process extra (mtx-context-<name> in distribution)
+--tracefiles show some extra info when locating files (at the tex end)
+--randomseed
]]
messages.private = [[
diff --git a/scripts/context/lua/mtx-server-ctx-help.lua b/scripts/context/lua/mtx-server-ctx-help.lua
index c06f3cec4..8364bd43e 100644
--- a/scripts/context/lua/mtx-server-ctx-help.lua
+++ b/scripts/context/lua/mtx-server-ctx-help.lua
@@ -6,8 +6,10 @@ if not modules then modules = { } end modules ['mtx-server-ctx-help'] = {
license = "see context related readme files"
}
---~ dofile(resolvers.find_file("l-xml.lua","tex"))
+-- todo in lua interface: noargument, oneargument, twoarguments, threearguments
+
dofile(resolvers.find_file("l-aux.lua","tex"))
+dofile(resolvers.find_file("l-url.lua","tex"))
dofile(resolvers.find_file("trac-lmx.lua","tex"))
-- problem ... serialize parent stack
@@ -277,18 +279,23 @@ document.setups.translations = document.setups.translations or {
}
document.setups.formats = {
- interface = [[<a href='mtx-server-ctx-help.lua?interface=%s'>%s</a>]],
- href = [[<a href='mtx-server-ctx-help.lua?command=%s'>%s</a>]],
- source = [[<a href='mtx-server-ctx-help.lua?source=%s'>%s</a>]],
- optional_single = "[optional string %s]",
- optional_list = "[optional list %s]",
- mandate_single = "[mandate string %s]",
- mandate_list = "[mandate list %s]",
- parameter = [[<tr><td width='15%%'>%s</td><td width='15%%'>%s</td><td width='70%%'>%s</td></tr>]],
- parameters = [[<table width='100%%'>%s</table>]],
- listing = [[<pre><t>%s</t></listing>]],
- special = "<i>%s</i>",
- default = "<u>%s</u>",
+ open_command = { [[\%s]], [[context.%s (]] },
+ close_command = { [[]], [[ )]] },
+ connector = { [[]], [[, ]] },
+ href_in_list = { [[<a href='mtx-server-ctx-help.lua?command=%s&mode=%s'>%s</a>]], [[<a href='mtx-server-ctx-help.lua?command=%s&mode=%s'>%s</a>]] },
+ href_as_command = { [[<a href='mtx-server-ctx-help.lua?command=%s&mode=%s'>\%s</a>]], [[<a href='mtx-server-ctx-help.lua?command=%s&mode=%s'>context.%s</a>]] },
+ interface = [[<a href='mtx-server-ctx-help.lua?interface=%s&mode=%s'>%s</a>]],
+ source = [[<a href='mtx-server-ctx-help.lua?source=%s&mode=%s'>%s</a>]],
+ modes = { [[<a href='mtx-server-ctx-help.lua?mode=2'>lua mode</a>]], [[<a href='mtx-server-ctx-help.lua?mode=1'>tex mode</a>]] },
+ optional_single = { "[optional string %s]", "{optional string %s}" },
+ optional_list = { "[optional list %s]", "{optional table %s}" } ,
+ mandate_single = { "[mandate string %s]", "{mandate string %s}" },
+ mandate_list = { "[mandate list %s]", "{mandate list %s}" },
+ parameter = [[<tr><td width='15%%'>%s</td><td width='15%%'>%s</td><td width='70%%'>%s</td></tr>]],
+ parameters = [[<table width='100%%'>%s</table>]],
+ listing = [[<pre><t>%s</t></listing>]],
+ special = [[<i>%s</i>]],
+ default = [[<u>%s</u>]],
}
local function translate(tag,int,noformat)
@@ -318,7 +325,8 @@ end
document.setups.loaded = document.setups.loaded or { }
document.setups.current = { }
-document.setups.showsources = false
+document.setups.showsources = true
+document.setups.mode = 1
function document.setups.load(filename)
filename = resolvers.find_file(filename) or ""
@@ -431,7 +439,7 @@ function document.setups.resolve(name)
end
end
-function document.setups.collect(name,int)
+function document.setups.collect(name,int,lastmode)
local current = document.setups.current
local formats = document.setups.formats
local command = xml.filter(current.root,format("cd:command[@name='%s']",name))
@@ -442,35 +450,45 @@ function document.setups.collect(name,int)
category = attributes.category or "",
}
if document.setups.showsources then
- data.source = (attributes.file and formats.source:format(attributes.file,attributes.file)) or ""
+ data.source = (attributes.file and formats.source:format(attributes.file,lastmode,attributes.file)) or ""
else
data.source = attributes.file or ""
end
- local sequence, n = { "\\" .. document.setups.csname(command,int) }, 0
- local arguments = { }
+ local n, sequence, tags = 0, { }, { }
+ sequence[#sequence+1] = formats.open_command[lastmode]:format(document.setups.csname(command,int))
+ local arguments, tag = { }, ""
for r, d, k in xml.elements(command,"(cd:keywords|cd:assignments)") do
n = n + 1
local attributes = d[k].at
+ if #sequence > 1 then
+ local c = formats.connector[lastmode]
+ if c ~= "" then
+ sequence[#sequence+1] = c
+ end
+ end
if attributes.optional == 'yes' then
if attributes.list == 'yes' then
- sequence[#sequence+1] = formats.optional_list:format(n)
+ tag = formats.optional_list[lastmode]:format(n)
else
- sequence[#sequence+1] = formats.optional_single:format(n)
+ tag = formats.optional_single[lastmode]:format(n)
end
else
if attributes.list == 'yes' then
- sequence[#sequence+1] = formats.mandate_list:format(n)
+ tag = formats.mandate_list[lastmode]:format(n)
else
- sequence[#sequence+1] = formats.mandate_single:format(n)
+ tag = formats.mandate_single[lastmode]:format(n)
end
end
+ sequence[#sequence+1] = tag
+ tags[#tags+1] = tag
end
+ sequence[#sequence+1] = formats.close_command[lastmode]
data.sequence = concat(sequence, " ")
local parameters, n = { }, 0
for r, d, k in xml.elements(command,"(cd:keywords|cd:assignments)") do
n = n + 1
if d[k].tg == "keywords" then
- local left = sequence[n+1]
+ local left = tags[n]
local right = { }
for r, d, k in xml.elements(d[k],"(cd:constant|cd:resolve)") do
local tag = d[k].tg
@@ -488,13 +506,13 @@ function document.setups.collect(name,int)
end
parameters[#parameters+1] = formats.parameter:format(left,"",concat(right, ", "))
else
- local what = sequence[n+1]
+ local what = tags[n]
for r, d, k in xml.elements(d[k],"(cd:parameter|cd:inherit)") do
local tag = d[k].tg
local left, right = d[k].at.name or "?", { }
if tag == "inherit" then
local name = d[k].at.name or "?"
- local goto = document.setups.formats.href:format(name,"\\"..name)
+ local goto = document.setups.formats.href_as_command[lastmode]:format(name,lastmode,name)
if #parameters > 0 and not parameters[#parameters]:find("<br/>") then
parameters[#parameters+1] = formats.parameter:format("<br/>","","")
end
@@ -522,6 +540,7 @@ function document.setups.collect(name,int)
parameters[#parameters+1] = formats.parameter:format("<br/>","","")
end
data.parameters = parameters
+ data.mode = formats.modes[lastmode or 1]
return data
else
return nil
@@ -564,7 +583,7 @@ local interfaces = {
romanian = 'ro',
}
-local lastinterface, lastcommand, lastsource = "en", "", ""
+local lastinterface, lastcommand, lastsource, lastmode = "en", "", "", 1
local function doit(configuration,filename,hashed)
@@ -572,9 +591,12 @@ local function doit(configuration,filename,hashed)
local start = os.clock()
- local detail = aux.settings_to_hash(hashed.query or "")
+ local detail = url.query(hashed.query or "")
- lastinterface, lastcommand, lastsource = detail.interface or lastinterface, detail.command or lastcommand, detail.source or lastsource
+ lastinterface = detail.interface or lastinterface
+ lastcommand = detail.command or lastcommand
+ lastsource = detail.source or lastsource
+ lastmode = tonumber(detail.mode or lastmode) or 1
if lastinterface then
logs.simple("checking interface: %s",lastinterface)
@@ -588,10 +610,12 @@ local function doit(configuration,filename,hashed)
local names, refs, ints = document.setups.names(lastinterface), { }, { }
for k,v in ipairs(names) do
- refs[k] = document.setups.formats.href:format(v[1],v[2])
+ refs[k] = formats.href_in_list[lastmode]:format(v[1],lastmode,v[2])
end
- for k,v in ipairs(table.sortedkeys(interfaces)) do
- ints[k] = document.setups.formats.interface:format(interfaces[v],v)
+ if lastmode ~= 2 then
+ for k,v in ipairs(table.sortedkeys(interfaces)) do
+ ints[k] = formats.interface:format(interfaces[v],lastmode,v)
+ end
end
lmx.restore()
@@ -619,17 +643,17 @@ local function doit(configuration,filename,hashed)
lmx.set('maintext', formats.listing:format(data))
lastsource = ""
elseif lastcommand and lastcommand ~= "" then
- local data = document.setups.collect(lastcommand,lastinterface)
+ local data = document.setups.collect(lastcommand,lastinterface,lastmode)
if data then
lmx.set('maintitle', data.sequence)
local extra = { }
- for k, v in ipairs { "environment", "category", "source" } do
+ for k, v in ipairs { "environment", "category", "source", "mode" } do
if data[v] and data[v] ~= "" then
lmx.set(v, data[v])
extra[#extra+1] = v .. ": " .. data[v]
end
end
- lmx.set('extra', concat(extra,", "))
+ lmx.set('extra', concat(extra,"&nbsp;&nbsp;&nbsp;"))
lmx.set('maintext', formats.parameters:format(concat(data.parameters)))
else
lmx.set('maintext', "select command")
diff --git a/tex/context/base/attr-ini.lua b/tex/context/base/attr-ini.lua
index 4e3b52e1d..100743c91 100644
--- a/tex/context/base/attr-ini.lua
+++ b/tex/context/base/attr-ini.lua
@@ -336,24 +336,24 @@ shipouts.handle_transparency = nodes.install_attribute_handler {
processor = states.process,
}
---- overprint / knockout
+--- colorintents: overprint / knockout
-overprints = overprints or { }
-overprints.data = overprints.data or { }
-overprints.enabled = false
-overprints.attribute = attributes.private('overprint')
+colorintents = colorintents or { }
+colorintents.data = colorintents.data or { }
+colorintents.enabled = false
+colorintents.attribute = attributes.private('colorintent')
-overprints.registered = {
+colorintents.registered = {
overprint = 1,
knockout = 2,
}
-local data, registered = overprints.data, overprints.registered
+local data, registered = colorintents.data, colorintents.registered
-local function extender(overprints,key)
+local function extender(colorintents,key)
if key == "none" then
local d = data[2]
- overprints.none = d
+ colorintents.none = d
return d
end
end
@@ -370,21 +370,23 @@ local function reviver(data,n)
end
end
-setmetatable(overprints, { __index = extender })
-setmetatable(overprints.data, { __index = reviver })
+setmetatable(colorintents, { __index = extender })
+setmetatable(colorintents.data, { __index = reviver })
-function overprints.register(stamp)
+function colorintents.register(stamp)
return registered[stamp] or registered.overprint
end
-shipouts.handle_overprint = nodes.install_attribute_handler {
- name = "overprint",
- namespace = overprints,
+shipouts.handle_colorintent = nodes.install_attribute_handler {
+ name = "colorintent",
+ namespace = colorintents,
initializer = states.initialize,
finalizer = states.finalize,
processor = states.process,
}
+local s = shipouts.handle_colorintent
+
--- negative / positive
negatives = negatives or { }
@@ -463,7 +465,7 @@ end
local function reviver(data,n)
local e = values[n] -- we could nil values[n] now but hardly needed
- local d = effect(v[1],v[2],v[3])
+ local d = effect(e[1],e[2],e[3])
data[n] = d
return d
end
diff --git a/tex/context/base/attr-ini.mkiv b/tex/context/base/attr-ini.mkiv
index b90d4976b..49a109e7d 100644
--- a/tex/context/base/attr-ini.mkiv
+++ b/tex/context/base/attr-ini.mkiv
@@ -20,6 +20,21 @@
\registerctxluafile{attr-ini}{1.001}
+%D This might move:
+
+\def\pushattribute#1%
+ {\global\advance\csname\??ae:\string#1\endcsname\plusone
+ \global\expandafter\mathchardef\csname\??ae:\string#1:\number\csname\??ae:\string#1\endcsname\endcsname\attribute#1}
+
+\def\popattribute#1%
+ {\attribute#1\csname\??ae:\string#1:\number\csname\??ae:\string#1\endcsname\endcsname
+ \global\advance\csname\??ae:\string#1\endcsname\minusone}
+
+\def\installattributestack#1%
+ {\expandafter\newcount\csname\??ae:\string#1\endcsname}
+
+%D For the moment we put this here (later it will move to where it's used):
+
\definesystemattribute[state]
\definesystemattribute[skip]
\definesystemattribute[penalty]
@@ -27,7 +42,7 @@
\definesystemattribute[color] \chardef\colorattribute \dogetattributeid{color}
\definesystemattribute[transparency] \chardef\transparencyattribute \dogetattributeid{transparency}
\definesystemattribute[background] \chardef\backgroundattribute \dogetattributeid{background}
-\definesystemattribute[overprint]
+\definesystemattribute[colorintent] \chardef\colorintentattribute \dogetattributeid{colorintent}
\definesystemattribute[negative]
\definesystemattribute[effect]
\definesystemattribute[viewerlayer] \chardef\viewerlayerattribute \dogetattributeid{viewerlayer}
@@ -84,16 +99,20 @@
% overprint
-\def\registeroverprint#1#2%
- {\setevalue{(os:#1)}{\dosetattribute{overprint}{\ctxlua{tex.print(overprints.register('#2'))}}}}
+\def\registercolorintent#1#2%
+ {\setevalue{(os:#1)}{\dosetattribute{colorintent}{\ctxlua{tex.print(colorintents.register('#2'))}}}}
+
+\def\dotriggercolorintent
+ {\ctxlua{colorintents.enabled=true}%
+ \gdef\dotriggercolorintent##1{\csname(os:##1)\endcsname}%
+ \dotriggercolorintent}
+
+\registercolorintent{knockout} {knockout}
+\registercolorintent{overprint}{overprint}
-\def\dotriggeroverprint
- {\ctxlua{overprints.enabled=true}%
- \gdef\dotriggeroverprint##1{\csname(os:##1)\endcsname}%
- \dotriggeroverprint}
+\installattributestack\colorintentattribute
-\registeroverprint{knockout} {knockout}
-\registeroverprint{overprint}{overprint}
+\setevalue{(os:#\v!none}{\doresetattribute{colorintent}} % does this work out ok?
% negative
diff --git a/tex/context/base/back-pdf.lua b/tex/context/base/back-pdf.lua
index 52151aa6e..e3e3ebcda 100644
--- a/tex/context/base/back-pdf.lua
+++ b/tex/context/base/back-pdf.lua
@@ -21,8 +21,7 @@ local concat = table.concat
local round = math.round
local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
local texsprint, texwrite = tex.sprint, tex.write
-
-ctxcatcodes = tex.ctxcatcodes
+local ctxcatcodes = tex.ctxcatcodes
local copy_node = node.copy
@@ -72,9 +71,9 @@ local effects = {
hidden = 3,
}
-function nodeinjections.effect(stretch,rulethickness,effect)
+function nodeinjections.effect(effect,stretch,rulethickness)
-- always, no zero test (removed)
- rulethickness = number.dimenfactors["bp"]*rulethickness
+ rulethickness = number.dimenfactors["bp"] * rulethickness
effect = effects[effect] or effects['normal']
return register(pdfliteral(format("%s Tc %s w %s Tr",stretch,rulethickness,effect))) -- watch order
end
diff --git a/tex/context/base/bibl-tra.mkiv b/tex/context/base/bibl-tra.mkiv
index 4dff006b5..13ef316b8 100644
--- a/tex/context/base/bibl-tra.mkiv
+++ b/tex/context/base/bibl-tra.mkiv
@@ -53,7 +53,7 @@
%D \item added headtext for it (23/11/2005)
%D \item make \type{\cite[url]} and \type{\cite[doi]} interactive (23/11/2005)
%D \item make right-aligned labels in the list work even when autohang=no
-%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter M�nster (30/12/2005)
+%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter M\"unster (30/12/2005)
%D \item added headtext for cz (31/12/2005)
%D \item Keep whitespace after \type{\cite} with single argument (31/12/2005)
%D \item Fix broken \type{\cite{}} support (31/12/2005)
@@ -123,7 +123,7 @@
%D Thomas Schmitz (15/9/2006)
%D \item Removed some spurious spaces pointed out by willi egger (19/9/2006)
%D \item Add configuration of bibtex executable name (4/11/2006)
-%D \item Fix numbering=short and numbering=bib (spotted by Matthias W�chter) (4/11/2006)
+%D \item Fix numbering=short and numbering=bib (spotted by Matthias W\"achter) (4/11/2006)
%D \item third attempt to get a correct release (5/11/2006)
%D \item fix a few missing dots in bibl-num.tex (7/12/2006)
%D \item Patch for DOI's by Tobias Burnus (17/4/2007)
@@ -161,8 +161,8 @@
%D to the latest \CONTEXT. Change some names in order to avoid conflicts
%D with existing core names (like \type {\insertpages}).
%D \item All constants, variables, message etc.\ are now in the core.
-%D \item Added: method=local|global (when global, previous shown entries are
-%D not shown again.
+%D \item Added key: \type {method} (when \type {global}, previous shown entries are
+%D not shown again, when \type {local} they are repeated).
%D \stopitemize
%D
%D \subject{WISHLIST}
diff --git a/tex/context/base/chem-ini.mkiv b/tex/context/base/chem-ini.mkiv
index da240dbac..5184fe1a7 100644
--- a/tex/context/base/chem-ini.mkiv
+++ b/tex/context/base/chem-ini.mkiv
@@ -17,7 +17,7 @@
\unprotect
%D \macros
-%D {\molecule}
+%D {molecule}
%D
%D Quick and dirty:
%D
diff --git a/tex/context/base/colo-ext.mkii b/tex/context/base/colo-ext.mkii
index 06facd34e..473c010e0 100644
--- a/tex/context/base/colo-ext.mkii
+++ b/tex/context/base/colo-ext.mkii
@@ -42,12 +42,14 @@
%D handling. Here we deal with a per-document setting.
\setupcolors
- [\c!overprint=\v!no]
+ [\c!intent=\v!none]
\def\starttextoverprint
- {\doifelse\@@cloverprint\v!yes
- {\let\stoptextoverprint\dostopoverprint\dostartoverprint}
- {\let\stoptextoverprint\donothing}}
+ {\doifelse\@@clintent\v!overprint
+ {\glet\stoptextoverprint \dostopoverprint
+ \glet\starttextoverprint\dostartoverprint
+ \dostartoverprint}
+ {\glet\stoptextoverprint\donothing}}
\let\stoptextoverprint\donothing
diff --git a/tex/context/base/colo-ext.mkiv b/tex/context/base/colo-ext.mkiv
index 1c1f0d1af..074a0130e 100644
--- a/tex/context/base/colo-ext.mkiv
+++ b/tex/context/base/colo-ext.mkiv
@@ -41,17 +41,38 @@
%D or independent. For the moment we only support independent overprint
%D handling. Here we deal with a per-document setting.
+\unexpanded\def\startcolorintent[#1]%
+ {\pushattribute\colorintentattribute
+ \dotriggercolorintent{#1}}
+
+\unexpanded\def\stopcolorintent
+ {\popattribute\colorintentattribute}
+
+\unexpanded\def\startoverprint{\startcolorintent[\v!overprint]}
+\unexpanded\def\stopoverprint {\stopcolorintent}
+
+\unexpanded\def\startknockout {\startcolorintent[\v!knockout ]}
+\unexpanded\def\stopknockout {\stopcolorintent}
+
+\let\starttextcolorintent\relax
+\let\stoptextcolorintent \relax
+
\setupcolors
[\c!overprint=\v!no]
-\def\starttextoverprint
- {\doifelse\@@cloverprint\v!yes
- {\let\stoptextoverprint\stopoverprintproperty\startoverprintproperty}
- {\let\stoptextoverprint\donothing}}
+\appendtoks
+ \dosettextcolorintent
+\to \everysetupcolors
+
+\def\dosettextcolorintent
+ {\doifnot\@@clintent\v!none
+ {\xdef\starttextcolorintent{\noexpand\dotriggercolorintent{\@@clintent}}%
+ \glet\dosettextcolorintent\relax
+ \dotriggercolorintent\@@clintent}}
-\let\stoptextoverprint\donothing
+\appendtoks \starttextcolorintent \to \everystarttextproperties
+\appendtoks \stoptextcolorintent \to \everystoptextproperties
-\appendtoks \starttextoverprint \to \everystarttextproperties
-\appendtoks \stoptextoverprint \to \everystoptextproperties
+\setupcolors[\c!intent=\v!none]
\protect \endinput
diff --git a/tex/context/base/colo-ini.mkiv b/tex/context/base/colo-ini.mkiv
index e7a849805..3890a77df 100644
--- a/tex/context/base/colo-ini.mkiv
+++ b/tex/context/base/colo-ini.mkiv
@@ -221,6 +221,8 @@
\let\showcolormessage\gobblethreearguments
+\newtoks\everysetupcolors
+
\def\dosetupcolors[#1]% some no longer make sense in MkIV
{\getparameters[\??cl][#1]%
\doifelse\@@clspot\v!yes
@@ -273,7 +275,7 @@
{\incolorfalse\forcegrayMPcolorstrue}%
{\ifincolor\else\showcolormessage\m!colors1\colorstyle\fi\incolortrue\let\@@clstate\v!start}%
\dosetupcolormodel
- \initializemaintextcolor}
+ \the\everysetupcolors}
%D In this documentation we will not go into too much details
%D on palets. Curious users can find more information on this
@@ -874,15 +876,18 @@
\def\defaulttextcolor {black}
\def\@@themaintextcolor{themaintextcolor}
-\appendtoks\deactivatecolor\to\everybeforeoutput
-
-\def\startregistercolor[#1]% probably obsolete
- {\doifelsenothing{#1}
- {\let\stopregistercolor\relax}
- {\edef\stopregistercolor
- {\dosetattribute\s!color {\dogetattribute\s!color }%
- \dosetattribute\s!transparency{\dogetattribute\s!transparency}}%
- \doactivatecolor{#1}}}
+\appendtoks
+ \deactivatecolor
+ \ifx\maintextcolor\empty\else\doactivatecolor\maintextcolor\fi
+\to \everybeforeoutput
+
+% \def\startregistercolor[#1]% probably obsolete
+% {\doifelsenothing{#1}
+% {\let\stopregistercolor\relax}
+% {\edef\stopregistercolor
+% {\dosetattribute\s!color {\dogetattribute\s!color }%
+% \dosetattribute\s!transparency{\dogetattribute\s!transparency}}%
+% \doactivatecolor{#1}}}
\def\registermaintextcolor{\ctxlua{colors.main = \thecolorattribute\maintextcolor}}
@@ -904,6 +909,7 @@
\registermaintextcolor}
\appendtoks \initializemaintextcolor \to \everyjob
+\appendtoks \initializemaintextcolor \to \everysetupcolors
\def\dodefinepaletcolor#1#2#3%
{\doifassignmentelse{#3}% \definepalet[test][xx={y=.4}]
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 76599f6d4..1379af14b 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{2009.09.13 14:24}
+\newcontextversion{2009.09.15 12:27}
%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 0e8e16e7d..4124f5924 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{2009.09.13 14:24}
+\edef\contextversion{2009.09.15 12:27}
%D For those who want to use this:
diff --git a/tex/context/base/core-env.mkiv b/tex/context/base/core-env.mkiv
index c97987268..72f7278d8 100644
--- a/tex/context/base/core-env.mkiv
+++ b/tex/context/base/core-env.mkiv
@@ -243,90 +243,6 @@
\dodoglobal\letbeundefined{\??su:#1}%
\fi}
-%D \defineshortcut [style=type]
-%D \defineshortcut [b] [style=bold]
-%D \defineshortcut [e] [style=\em]
-%D \defineshortcut [t] [style=type]
-%D \defineshortcut [c] [style=cap]
-%D \defineshortcut [k] [style=cap]
-%D \defineshortcut [u] [style=type,command=\hyphenatedurl]
-%D
-%D \startlines
-%D test <ziezo> test
-%D test test <t:ziezo>
-%D test test <b:ziezo>
-%D test test <w:ziezo>
-%D zus<>zo zus<:>zo zus<::>zo
-%D test test <t:ziezo> dat (ziezo)
-%D test test <t::ziezo> dat (:ziezo)
-%D test test <t:ziezo:> dat (ziezo:)
-%D test test <t:zi:ezo:> dat (zi:ezo:)
-%D well, <u:http://www.pragma-ade.nl> looks fuzzy
-%D $10<20$
-%D \stoplines
-%D
-%D \defineshortcut [<>] [i] [style=\it]
-%D \defineshortcut [()] [b] [style=\bf]
-%D \defineshortcut [++] [s] [style=\sl]
-%D \defineshortcut [//] [u] [style=\underbars]
-%D \defineshortcut [--] [a] [style=\overstrike]
-%D
-%D \startlines
-%D it seems <i:to work> well
-%D it seems (b:to work) well
-%D it seems +s:to work+ well
-%D it seems /u:to work/ well
-%D it seems -a:to work- well
-%D \stoplines
-
-\def\defineshortcut
- {\dotripleargument\dodefineshortcut}
-
-\def\dodefineshortcut[#1][#2][#3]%
- {\ifthirdargument
- \doifelsenothing{#1}
- {\dododefineshortcut[<>][#2][#3]}
- {\dododefineshortcut[#1][#2][#3]}%
- \else\ifsecondargument
- \dododefineshortcut[<>][#1][#2]%
- \else
- \dododefineshortcut[<>][][#1]%
- \fi\fi}
-
-\def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag
- {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}%
- \defineactivecharacter #1 {\@EA\doshortcut\string#2} % we need to deactivate in math
- \getparameters
- [\??te\string#2#3]
- [\c!commands=,\c!command=,\c!style=,\c!color=,#4]}
-
-\def\doshortcut#1%
- {\ifmmode
- \getvalue{\??te\??te#1}%
- \else
- \bgroup
- \catcode`#1=\@@other
- \def\dodoshortcut##1#1%
- {\def\shorttag{\??te#1}%
- \def\shortcut{##1}%
- \dododoshortcut##1:\end}%
- \@EA\dodoshortcut
- \fi}
-
-\def\dododoshortcut#1:#2\end
- {\doifelsenothing{#2}
- {\doifundefinedelse{\shorttag\c!commands}
- {\shortcut}
- {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}}
- {\doifundefinedelse{\shorttag#1\c!commands}
- {\shortcut}
- {\dodododoshortcut\shorttag#1:#2\end}}%
- \egroup}
-
-\def\dodododoshortcut#1:#2:\end
- {\getvalue{#1\c!commands}%
- \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
-
%D \macros
%D {setvariables,getvariable,getvariabledefault}
%D
diff --git a/tex/context/base/core-spa.mkiv b/tex/context/base/core-spa.mkiv
index 5d7836f5b..2b17cad11 100644
--- a/tex/context/base/core-spa.mkiv
+++ b/tex/context/base/core-spa.mkiv
@@ -937,60 +937,33 @@
%D \setuptyping [indentnext=auto]
%D \setupformulas[indentnext=auto]
%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
+%D \input tufte \startitemize \item itemize \stopitemize
+%D \input tufte \startitemize \item itemize \stopitemize
+%D \input tufte \startitemize \item itemize \stopitemize
%D
%D \page
%D
%D \input tufte
-%D
%D \starttyping
%D verbatim
%D \stoptyping
-%D \input tufte
%D
+%D \input tufte
%D \starttyping
%D verbatim
%D \stoptyping
%D
%D \input tufte
-%D
%D \starttyping
%D verbatim
%D \stoptyping
%D
%D \page
%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
+%D \input tufte \startformula a = b \stopformula
+%D \input tufte \startformula a = b \stopformula
+%D \input tufte \startformula a = b \stopformula
+%D \stoptyping
%D \macros
diff --git a/tex/context/base/math-ali.mkiv b/tex/context/base/math-ali.mkiv
index 1279126b5..2ef77c6a8 100644
--- a/tex/context/base/math-ali.mkiv
+++ b/tex/context/base/math-ali.mkiv
@@ -19,7 +19,7 @@
%D \MKIV\ code is not gathered in files with the same name.
%D \macros
-%D {\definemathalignment, setupmathalignment, startmathalignment}
+%D {definemathalignment, setupmathalignment, startmathalignment}
%D
%D Modules may provide additional alignment features. The following
%D mechanisms are provided by the core.
@@ -849,7 +849,7 @@
%D \stopformula
%D \stopbuffer
%D
-%D \typebuffer \getbuffer
+%D \typebuffer % does not run well: \getbuffer
%D \macros
%D {startintertext}
@@ -940,6 +940,8 @@
%D \text{ and }
%D \sum_{\scriptstyle a \atop \scriptstyle}
%D \stopformula
+%D \stopbuffer
+%D
%D \typebuffer which gives \getbuffer
\def\startsubstack
diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv
index 0d01b0e7a..bb561a483 100644
--- a/tex/context/base/math-ini.mkiv
+++ b/tex/context/base/math-ini.mkiv
@@ -29,6 +29,11 @@
\ifx\v!compact\undefined \def\v!compact{compact} \fi
+%D New:
+
+\let\startimath\Ustartmath \let\stopimath \Ustopmath
+\let\startdmath\Ustartdisplaymath \let\stopdmath \Ustopmath
+
%D We move these definitions into the format:
% test [[\char948 \ctxlua{tex.sprint(utf.char(948))}]]
diff --git a/tex/context/base/mult-cld.lua b/tex/context/base/mult-cld.lua
index 10ca5e1d2..257921cb1 100644
--- a/tex/context/base/mult-cld.lua
+++ b/tex/context/base/mult-cld.lua
@@ -19,11 +19,15 @@ context = context or { }
local format, concat = string.format, table.concat
local next, type = next, type
-local texsprint, texiowrite = tex.sprint, texio.write
+local texsprint, texiowrite, ctxcatcodes = tex.sprint, texio.write, tex.ctxcatcodes
local flush = texsprint
local cache
+function tex.fprint(...) -- goodie
+ texsprint(ctxcatcodes,format(...))
+end
+
local function cached_flush(c,...)
local tt = { ... }
for i=1,#tt do
@@ -31,6 +35,17 @@ local function cached_flush(c,...)
end
end
+function context.trace(intercept)
+ local normalflush = flush
+ flush = function(c,...)
+ logs.report("context",concat({...}))
+ if not intercept then
+ normalflush(c,...)
+ end
+ end
+ context.trace = function() end
+end
+
local function writer(k,...)
flush(ctxcatcodes,k)
local t = { ... }
@@ -38,21 +53,24 @@ local function writer(k,...)
for i=1,#t do
local ti = t[i]
local typ, force = type(ti), nil
+ local saved_flush = flush
+ flush = cached_flush
while typ == "function" do
- local saved_flush = flush
cache = { }
- flush = cached_flush
ti, force = ti()
if force then
typ = false -- force special cases
- elseif typ == "nil" then
- typ = "string"
- ti = concat(cache)
- elseif typ == "string" then
- ti = concat(cache)
+ else
+ typ = type(ti)
+ if typ == "nil" then
+ typ = "string"
+ ti = concat(cache)
+ elseif typ == "string" then
+ ti = concat(cache)
+ end
end
- flush = saved_flush
end
+ flush = saved_flush
if ti == nil then
-- next
elseif typ == "string" or typ == "number" then
diff --git a/tex/context/base/mult-de.tex b/tex/context/base/mult-de.tex
index d5a1a400a..ea3644751 100644
--- a/tex/context/base/mult-de.tex
+++ b/tex/context/base/mult-de.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{innen}
\setinterfaceconstant{innermargin}{innermargin}
\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interaktion}
\setinterfaceconstant{interlinespace}{zeilenabstande}
\setinterfaceconstant{itemalign}{itemalign}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{textlayer}
\setinterfaceconstant{textmargin}{textmargin}
\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{textseparator}
\setinterfaceconstant{textsize}{textgroesse}
\setinterfaceconstant{textstate}{textstatus}
diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua
index 4ec4b154f..20438a484 100644
--- a/tex/context/base/mult-def.lua
+++ b/tex/context/base/mult-def.lua
@@ -7183,6 +7183,9 @@ return {
["pe"]="رنگ",
["ro"]="culoare",
},
+ ["intent"]={
+ ["en"]="intent",
+ },
["column"]={
["cs"]="sloupec",
["de"]="spalte",
@@ -9156,16 +9159,6 @@ return {
["pe"]="overprint",
["ro"]="overprint",
},
- ["textoverprint"]={
- ["cs"]="textoverprint",
- ["de"]="textoverprint",
- ["en"]="textoverprint",
- ["fr"]="textoverprint",
- ["it"]="textoverprint",
- ["nl"]="textoverprint",
- ["pe"]="textoverprint",
- ["ro"]="textoverprint",
- },
["ownnumber"]={
["cs"]="vlastnicislo",
["de"]="eigenenummer",
diff --git a/tex/context/base/mult-en.tex b/tex/context/base/mult-en.tex
index 2298668ee..8ffcd96ec 100644
--- a/tex/context/base/mult-en.tex
+++ b/tex/context/base/mult-en.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{inner}
\setinterfaceconstant{innermargin}{innermargin}
\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interaction}
\setinterfaceconstant{interlinespace}{interlinespace}
\setinterfaceconstant{itemalign}{itemalign}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{textlayer}
\setinterfaceconstant{textmargin}{textmargin}
\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{textseparator}
\setinterfaceconstant{textsize}{textsize}
\setinterfaceconstant{textstate}{textstate}
diff --git a/tex/context/base/mult-fr.tex b/tex/context/base/mult-fr.tex
index 9c0c725d6..93dd1cd9d 100644
--- a/tex/context/base/mult-fr.tex
+++ b/tex/context/base/mult-fr.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{interieur}
\setinterfaceconstant{innermargin}{margeinterieure}
\setinterfaceconstant{inputfile}{fichierentree}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interaction}
\setinterfaceconstant{interlinespace}{espaceinterligne}
\setinterfaceconstant{itemalign}{itemalign}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{calquetexte}
\setinterfaceconstant{textmargin}{margetexte}
\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{separateurtexte}
\setinterfaceconstant{textsize}{tailletexte}
\setinterfaceconstant{textstate}{etattexte}
diff --git a/tex/context/base/mult-it.tex b/tex/context/base/mult-it.tex
index 9d42da744..1efbb1a00 100644
--- a/tex/context/base/mult-it.tex
+++ b/tex/context/base/mult-it.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{interno}
\setinterfaceconstant{innermargin}{margineinterno}
\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interazione}
\setinterfaceconstant{interlinespace}{interlinea}
\setinterfaceconstant{itemalign}{itemalign}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{textlayer}
\setinterfaceconstant{textmargin}{textmargin}
\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{separatoretesto}
\setinterfaceconstant{textsize}{dimensionetesto}
\setinterfaceconstant{textstate}{statotesto}
diff --git a/tex/context/base/mult-nl.tex b/tex/context/base/mult-nl.tex
index 07b0ab070..2c465ca46 100644
--- a/tex/context/base/mult-nl.tex
+++ b/tex/context/base/mult-nl.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{binnen}
\setinterfaceconstant{innermargin}{binnenmarge}
\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interactie}
\setinterfaceconstant{interlinespace}{interlinie}
\setinterfaceconstant{itemalign}{itemuitlijnen}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{tekstlaag}
\setinterfaceconstant{textmargin}{tekstmarge}
\setinterfaceconstant{textmethod}{tekstmethode}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{tekstscheider}
\setinterfaceconstant{textsize}{tekstformaat}
\setinterfaceconstant{textstate}{tekststatus}
diff --git a/tex/context/base/mult-ro.tex b/tex/context/base/mult-ro.tex
index c79e64d0f..b0c1beadd 100644
--- a/tex/context/base/mult-ro.tex
+++ b/tex/context/base/mult-ro.tex
@@ -679,6 +679,7 @@
\setinterfaceconstant{inner}{intern}
\setinterfaceconstant{innermargin}{innermargin}
\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interactiune}
\setinterfaceconstant{interlinespace}{spatiereinterliniara}
\setinterfaceconstant{itemalign}{itemalign}
@@ -935,7 +936,6 @@
\setinterfaceconstant{textlayer}{textlayer}
\setinterfaceconstant{textmargin}{textmargin}
\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textoverprint}{textoverprint}
\setinterfaceconstant{textseparator}{separatortext}
\setinterfaceconstant{textsize}{dimensiunetext}
\setinterfaceconstant{textstate}{staretext}
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 40d8d49d3..6a6cba5d5 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -388,6 +388,7 @@
\definesystemvariable {ab} % AlignedBoxes
\definesystemvariable {ac} % ACcent
+\definesystemvariable {ae} % AttributEs
\definesystemvariable {ag} % AchterGrond
\definesystemvariable {al} % ALinea's
\definesystemvariable {am} % interActieMenu
diff --git a/tex/context/base/page-mak.mkiv b/tex/context/base/page-mak.mkiv
index 45a1f1167..fae68b38f 100644
--- a/tex/context/base/page-mak.mkiv
+++ b/tex/context/base/page-mak.mkiv
@@ -126,10 +126,10 @@
\setsystemmode\v!makeup
\setupmakeuplayout
\makeupparameter\c!commands % hm, what is this one doing here ?
- \startregistercolor[\makeupparameter\c!color]%
\forgetall % else indented flush
\global\setbox\makeupbox\vbox to \makeupparameter\c!height
\bgroup
+ \doifsomething{\makeupparameter\c!color}{\startcolor[\makeupparameter\c!color]}% can be made faster
\setups[\makeupparameter\c!setups]%
\hsize\makeupparameter\c!width
\doifsomething{\makeupparameter\c!align}
@@ -139,9 +139,9 @@
\def\dodostopmakeup
{\endgraf
\makeupparameter\c!bottom
+ \doifsomething{\makeupparameter\c!color}{\stopcolor}%
\egroup
\flushmarks % new, here, else empty pages
- \stopregistercolor
\doflushmakeup
\egroup
\calculatehsizes
diff --git a/tex/context/base/prop-mis.mkiv b/tex/context/base/prop-mis.mkiv
index 0d52097ed..4bc9ab4c0 100644
--- a/tex/context/base/prop-mis.mkiv
+++ b/tex/context/base/prop-mis.mkiv
@@ -21,16 +21,28 @@
\unprotect
-%D Stream based overprint and knockout:
+% D Overprint cum suis.
+%
+% \defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
+% \defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
+%
+% \definepropertyhandler \v!overprint {\dotriggeroverprint\v!overprint}
+% \definepropertyhandler \v!knockout {\dotriggeroverprint\v!knockout }
+%
+% \def\startoverprintproperty{\dotriggeroverprint\v!overprint}
+% \def\stopoverprintproperty {\dotriggeroverprint\v!knockout }
-\defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
-\defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
-
-%D Negation.
+%D Negative cum suis.
\defineproperty [\v!negative] [\s!negative] [\c!method=\v!command]
\defineproperty [\v!positive] [\s!negative] [\c!method=\v!command]
+\definepropertyhandler \v!negative {\dotriggernegative\v!negative}
+\definepropertyhandler \v!positive {\dotriggernegative\v!positive}
+
+\def\startnegativeproperty{\dotriggernegative\v!negative}
+\def\stopnegativeproperty {\dotriggernegative\v!positive}
+
%D Special font effects.
\setupproperty
@@ -46,24 +58,6 @@
\defineproperty [\v!stretch] [\s!effect] [\c!stretch=1]
-%D Overprint cum suis.
-
-\definepropertyhandler \v!overprint {\dotriggeroverprint\v!overprint}
-\definepropertyhandler \v!knockout {\dotriggeroverprint\v!knockout }
-
-\def\startoverprintproperty{\dotriggeroverprint\v!overprint}
-\def\stopoverprintproperty {\dotriggeroverprint\v!knockout }
-
-%D Negative cum suis.
-
-\definepropertyhandler \v!negative {\dotriggernegative\v!negative}
-\definepropertyhandler \v!positive {\dotriggernegative\v!positive}
-
-\def\startnegativeproperty{\dotriggernegative\v!negative}
-\def\stopnegativeproperty {\dotriggernegative\v!positive}
-
-%D Effects.
-
\def\mktriggereffect#1%
{\dotriggereffect{#1}{\propertyparameter{#1}\c!stretch}{\propertyparameter{#1}\c!rulethickness}}
diff --git a/tex/context/base/s-pre-60.tex b/tex/context/base/s-pre-60.tex
index 89ddbbba4..f12b98b06 100644
--- a/tex/context/base/s-pre-60.tex
+++ b/tex/context/base/s-pre-60.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\startmode[paper]
+\startmode[paper,print]
\let\StartSteps\relax
\let\StopSteps \relax
\let\FlushStep \relax
diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua
index aa71f88dc..675adcc15 100644
--- a/tex/context/base/strc-ref.lua
+++ b/tex/context/base/strc-ref.lua
@@ -122,9 +122,9 @@ local special_reference = special * lparent * (operation * optional_arguments +
local scanner = (reset * outer_reference * (special_reference + inner_reference)^-1 * -1) / function() return result end
-function jobreferences.analyse(str)
- return scanner:match(str)
-end
+--~ function jobreferences.analyse(str) -- overloaded
+--~ return scanner:match(str)
+--~ end
function jobreferences.split(str)
return scanner:match(str or "")
diff --git a/tex/context/base/strc-ref.mkiv b/tex/context/base/strc-ref.mkiv
index 5b2045fb8..5416c17f1 100644
--- a/tex/context/base/strc-ref.mkiv
+++ b/tex/context/base/strc-ref.mkiv
@@ -787,22 +787,26 @@
% Yet untested:
\unexpanded\def\somewhere#1#2#3[#4]% #3 gobbles space around #2 % todo
- {\goto{\ifcase\referencepagestate#1/#2\or#2\or#1\or#2\fi}[#4]}
+ {\doifreferencefoundelse{#4}% kind of inefficient as \goto also analyses
+ {\goto{\analyzecurrentreference\ifcase\referencepagestate\relax#1/#2\or#2\or#1\or#2\fi}[#4]}
+ {[#1/#2]}}
\unexpanded\def\atpage[#1]% todo
- {\goto{\ifcase\referencepagestate
- \labeltexts\v!page\dummyreference
- \or
- \labeltexts\v!atpage\currentreferencepage
- \or
- \labeltexts\v!atpage\currentreferencepage
- \or
- \labeltexts\v!atpage\currentreferencepage
- \or
- \labeltext\v!hereafter
- \or
- \labeltext\v!hencefore
- \fi}[#1]}
+ {\doifreferencefoundelse{#1}% kind of inefficient as \goto also analyses
+ {\goto{\analyzecurrentreference\ifcase\referencepagestate
+ \labeltexts\v!page\dummyreference
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltext\v!hereafter
+ \or
+ \labeltext\v!hencefore
+ \fi}[#1]}
+ {[?]}}
\def\dosymbolreference#1#2[#3]%
{\removeunwantedspaces
diff --git a/tex/context/base/task-ini.lua b/tex/context/base/task-ini.lua
index a4aa4b0e5..d00b4535a 100644
--- a/tex/context/base/task-ini.lua
+++ b/tex/context/base/task-ini.lua
@@ -35,7 +35,7 @@ tasks.appendaction("shipouts", "normalizers", "nodes.add_destinations")
tasks.appendaction("shipouts", "finishers", "shipouts.handle_color")
tasks.appendaction("shipouts", "finishers", "shipouts.handle_transparency")
-tasks.appendaction("shipouts", "finishers", "shipouts.handle_overprint")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_colorintent")
tasks.appendaction("shipouts", "finishers", "shipouts.handle_negative")
tasks.appendaction("shipouts", "finishers", "shipouts.handle_effect")
tasks.appendaction("shipouts", "finishers", "shipouts.handle_viewerlayer")
diff --git a/tex/context/bib/t-bib.tex b/tex/context/bib/t-bib.tex
index 876bad8e2..11ed1309c 100644
--- a/tex/context/bib/t-bib.tex
+++ b/tex/context/bib/t-bib.tex
@@ -1092,7 +1092,7 @@
\else\ifcsname#2\s!en#3\endcsname
\csname#2\s!en#3\endcsname
\fi\fi
- \fi\fi}
+ \fi\fi}
\def\docompletepublications[#1]%
{\begingroup
@@ -1435,7 +1435,7 @@
\edef\currentbibauthor{\currentbibauthor ##1\bibalternative{andtext}}%
\else
\edef\currentbibauthor{\currentbibauthor ##1\bibalternative{namesep}}%
- \fi
+ \fi
\fi }%
\processcommalist[#2]\bibprocessauthoritem }
diff --git a/tex/context/interface/cont-cs.xml b/tex/context/interface/cont-cs.xml
index 754249d75..f85a07d73 100644
--- a/tex/context/interface/cont-cs.xml
+++ b/tex/context/interface/cont-cs.xml
@@ -619,6 +619,11 @@
<cd:constant type="vse"/>
<cd:constant type="zadny"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="zadny"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index fe97020ff..77c8d62f7 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -619,6 +619,11 @@
<cd:constant type="alles"/>
<cd:constant type="kein"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="kein"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 8f0f76f52..97b3b4e15 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -619,6 +619,11 @@
<cd:constant type="all"/>
<cd:constant type="none"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="none"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index 9d298d6b9..11a7c89b3 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -619,6 +619,11 @@
<cd:constant type="tout"/>
<cd:constant type="rien"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="rien"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 337255228..0c8a1e6c2 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -619,6 +619,11 @@
<cd:constant type="tutti"/>
<cd:constant type="nessuno"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 2961ac83c..fa710019c 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -619,6 +619,11 @@
<cd:constant type="alles"/>
<cd:constant type="geen"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="geen"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-pe.xml b/tex/context/interface/cont-pe.xml
index fc18282d3..6c6edc594 100644
--- a/tex/context/interface/cont-pe.xml
+++ b/tex/context/interface/cont-pe.xml
@@ -619,6 +619,11 @@
<cd:constant type="همه"/>
<cd:constant type="هیچکدام"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 786f95b6c..e1a27912a 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -619,6 +619,11 @@
<cd:constant type="tot"/>
<cd:constant type="niciunul"/>
</cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml
index 2e2e896f9..15ff191b9 100644
--- a/tex/context/interface/keys-cs.xml
+++ b/tex/context/interface/keys-cs.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='vnitrni'/>
<cd:constant name='innermargin' value='innermargin'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interakce'/>
<cd:constant name='interlinespace' value='meziradkovamezera'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='textlayer'/>
<cd:constant name='textmargin' value='textmargin'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='oddelovactextu'/>
<cd:constant name='textsize' value='velikosttextu'/>
<cd:constant name='textstate' value='statustextu'/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index c968ef5a7..7e700570e 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='innen'/>
<cd:constant name='innermargin' value='innermargin'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interaktion'/>
<cd:constant name='interlinespace' value='zeilenabstande'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='textlayer'/>
<cd:constant name='textmargin' value='textmargin'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='textseparator'/>
<cd:constant name='textsize' value='textgroesse'/>
<cd:constant name='textstate' value='textstatus'/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 4f47eba5c..942bc6ba3 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='inner'/>
<cd:constant name='innermargin' value='innermargin'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interaction'/>
<cd:constant name='interlinespace' value='interlinespace'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='textlayer'/>
<cd:constant name='textmargin' value='textmargin'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='textseparator'/>
<cd:constant name='textsize' value='textsize'/>
<cd:constant name='textstate' value='textstate'/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index eeb9dd0b7..653a49bf4 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='interieur'/>
<cd:constant name='innermargin' value='margeinterieure'/>
<cd:constant name='inputfile' value='fichierentree'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interaction'/>
<cd:constant name='interlinespace' value='espaceinterligne'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='calquetexte'/>
<cd:constant name='textmargin' value='margetexte'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='separateurtexte'/>
<cd:constant name='textsize' value='tailletexte'/>
<cd:constant name='textstate' value='etattexte'/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 393fee324..1f0d73af2 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='interno'/>
<cd:constant name='innermargin' value='margineinterno'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interazione'/>
<cd:constant name='interlinespace' value='interlinea'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='textlayer'/>
<cd:constant name='textmargin' value='textmargin'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='separatoretesto'/>
<cd:constant name='textsize' value='dimensionetesto'/>
<cd:constant name='textstate' value='statotesto'/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 5847ec9d8..a6f527ec9 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='binnen'/>
<cd:constant name='innermargin' value='binnenmarge'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interactie'/>
<cd:constant name='interlinespace' value='interlinie'/>
<cd:constant name='itemalign' value='itemuitlijnen'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='tekstlaag'/>
<cd:constant name='textmargin' value='tekstmarge'/>
<cd:constant name='textmethod' value='tekstmethode'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='tekstscheider'/>
<cd:constant name='textsize' value='tekstformaat'/>
<cd:constant name='textstate' value='tekststatus'/>
diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml
index 396435277..98e37b6f4 100644
--- a/tex/context/interface/keys-pe.xml
+++ b/tex/context/interface/keys-pe.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='داخلی'/>
<cd:constant name='innermargin' value='حاشیه‌داخلی'/>
<cd:constant name='inputfile' value='پرونده‌ورودی'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='پانل'/>
<cd:constant name='interlinespace' value='فضای‌بین‌خط'/>
<cd:constant name='itemalign' value='تنظیم‌آیتم'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='لایه‌متن'/>
<cd:constant name='textmargin' value='حاشیه‌متن'/>
<cd:constant name='textmethod' value='روش‌متن'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='جداکننده‌متن'/>
<cd:constant name='textsize' value='اندازه‌متن'/>
<cd:constant name='textstate' value='وضعیت‌متن'/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 7218a29cf..fde4533d1 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -685,6 +685,7 @@
<cd:constant name='inner' value='intern'/>
<cd:constant name='innermargin' value='innermargin'/>
<cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interactiune'/>
<cd:constant name='interlinespace' value='spatiereinterliniara'/>
<cd:constant name='itemalign' value='itemalign'/>
@@ -941,7 +942,6 @@
<cd:constant name='textlayer' value='textlayer'/>
<cd:constant name='textmargin' value='textmargin'/>
<cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textoverprint' value='textoverprint'/>
<cd:constant name='textseparator' value='separatortext'/>
<cd:constant name='textsize' value='dimensiunetext'/>
<cd:constant name='textstate' value='staretext'/>
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 8e8de0a3a..6166237f7 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 : 09/13/09 14:26:14
+-- merge date : 09/15/09 12:29:59
do -- begin closure to overcome local limits and interference