summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4104 -> 4107 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-col.mkvi3
-rw-r--r--tex/context/base/grph-fig.mkiv30
-rw-r--r--tex/context/base/math-act.lua123
-rw-r--r--tex/context/base/spac-ver.mkiv9
-rw-r--r--tex/context/base/status-files.pdfbin24732 -> 24669 bytes
-rw-r--r--tex/context/base/status-lua.log2
-rw-r--r--tex/context/base/type-imp-euler.mkiv9
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
11 files changed, 135 insertions, 47 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 044c99035..77153186e 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{2013.08.08 19:24}
+\newcontextversion{2013.08.09 00:38}
%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 9427b3d59..a52fb2e6c 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 266168631..fe04416cc 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.08.08 19:24}
+\edef\contextversion{2013.08.09 00:38}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/font-col.mkvi b/tex/context/base/font-col.mkvi
index 030e9aef7..34a1b04a8 100644
--- a/tex/context/base/font-col.mkvi
+++ b/tex/context/base/font-col.mkvi
@@ -15,7 +15,8 @@
%
% actually we can now do more at the lua end
-% todo: missing only, force always, multiple fallbacks with test, scale
+% todo : missing only, force always, multiple fallbacks with test, scale
+% beware : only english key/values
%
% \resetfontfallback [whatever]
%
diff --git a/tex/context/base/grph-fig.mkiv b/tex/context/base/grph-fig.mkiv
index 80b8e35d9..d74f257f5 100644
--- a/tex/context/base/grph-fig.mkiv
+++ b/tex/context/base/grph-fig.mkiv
@@ -25,12 +25,23 @@
% \appendtoks \setbuffer[typeset-b]\endbuffer\to \everystarttext
% \appendtoks \setbuffer[typeset-a]\endbuffer\to \everystarttext
-\newcount\c_grph_buffers_n
+% we could use \typesetbuffer[*] to access the last one
+
+\newcount \c_grph_buffers_n
+\newconstant\c_grph_buffers_mode
\let\m_grph_buffers_filename\empty
+\let\lasttypesetbuffer \empty
\unexpanded\def\typesetbuffer
- {\dodoubleempty\grph_buffers_typeset}
+ {\bgroup
+ \setconstant\c_grph_buffers_mode\plusone
+ \dodoubleempty\grph_buffers_typeset}
+
+\unexpanded\def\typesetbufferonly
+ {\bgroup
+ \setconstant\c_grph_buffers_mode\zerocount
+ \dodoubleempty\grph_buffers_typeset}
\def\grph_buffers_typeset[#1][#2]% beware: this will mix up the mp graphics
{\ifsecondargument
@@ -44,11 +55,16 @@
\fi\fi}
\def\grph_buffers_typeset_indeed[#1][#2]% we could use the via files
- {\bgroup
- \global\advance\c_grph_buffers_n\plusone
- \edef\m_grph_buffers_filename{\jobname-buffer-\the\c_grph_buffers_n}%
- \ctxcommand{runbuffer("\m_grph_buffers_filename.tmp","#1",true)}%
- \externalfigure[\m_grph_buffers_filename.pdf][#2]%
+ {\doifnot{#1}{*}
+ {\global\advance\c_grph_buffers_n\plusone
+ \edef\m_grph_buffers_filename{\jobname-buffer-\the\c_grph_buffers_n}%
+ \ctxcommand{runbuffer("\m_grph_buffers_filename.tmp","#1",true)}%
+ \xdef\lasttypesetbuffer{\m_grph_buffers_filename.pdf}}%
+ \ifcase\c_grph_buffers_mode
+ % typesetonly
+ \or
+ \externalfigure[\lasttypesetbuffer][#2]%
+ \fi
\egroup}
% For manuals and such:
diff --git a/tex/context/base/math-act.lua b/tex/context/base/math-act.lua
index 8cc2c20cc..31ca25ea5 100644
--- a/tex/context/base/math-act.lua
+++ b/tex/context/base/math-act.lua
@@ -512,6 +512,65 @@ end
-- experiment
+-- check: when true, only set when present in font
+-- force: when false, then not set when already set
+
+local blocks = characters.blocks -- this will move to char-ini
+
+blocks["uppercasenormal"] = { first = 0x00041, last = 0x0005A }
+blocks["uppercasebold"] = { first = 0x1D400, last = 0x1D419 }
+blocks["uppercaseitalic"] = { first = 0x1D434, last = 0x1D44D }
+blocks["uppercasebolditalic"] = { first = 0x1D468, last = 0x1D481 }
+blocks["uppercasescript"] = { first = 0x1D49C, last = 0x1D4B5 }
+blocks["uppercaseboldscript"] = { first = 0x1D4D0, last = 0x1D4E9 }
+blocks["uppercasefraktur"] = { first = 0x1D504, last = 0x1D51D }
+blocks["uppercasedoublestruck"] = { first = 0x1D538, last = 0x1D551 }
+blocks["uppercaseboldfraktur"] = { first = 0x1D56C, last = 0x1D585 }
+blocks["uppercasesansserifnormal"] = { first = 0x1D5A0, last = 0x1D5B9 }
+blocks["uppercasesansserifbold"] = { first = 0x1D5D4, last = 0x1D5ED }
+blocks["uppercasesansserifitalic"] = { first = 0x1D608, last = 0x1D621 }
+blocks["uppercasesansserifbolditalic"] = { first = 0x1D63C, last = 0x1D655 }
+blocks["uppercasemonospace"] = { first = 0x1D670, last = 0x1D689 }
+blocks["uppercasegreeknormal"] = { first = 0x00391, last = 0x003AA }
+blocks["uppercasegreekbold"] = { first = 0x1D6A8, last = 0x1D6C1 }
+blocks["uppercasegreekitalic"] = { first = 0x1D6E2, last = 0x1D6FB }
+blocks["uppercasegreekbolditalic"] = { first = 0x1D71C, last = 0x1D735 }
+blocks["uppercasegreeksansserifbold"] = { first = 0x1D756, last = 0x1D76F }
+blocks["uppercasegreeksansserifbolditalic"] = { first = 0x1D790, last = 0x1D7A9 }
+
+blocks["lowercasenormal"] = { first = 0x00061, last = 0x0007A }
+blocks["lowercasebold"] = { first = 0x1D41A, last = 0x1D433 }
+blocks["lowercaseitalic"] = { first = 0x1D44E, last = 0x1D467 }
+blocks["lowercasebolditalic"] = { first = 0x1D482, last = 0x1D49B }
+blocks["lowercasescript"] = { first = 0x1D4B6, last = 0x1D4CF }
+blocks["lowercaseboldscript"] = { first = 0x1D4EA, last = 0x1D503 }
+blocks["lowercasefraktur"] = { first = 0x1D51E, last = 0x1D537 }
+blocks["lowercasedoublestruck"] = { first = 0x1D552, last = 0x1D56B }
+blocks["lowercaseboldfraktur"] = { first = 0x1D586, last = 0x1D59F }
+blocks["lowercasesansserifnormal"] = { first = 0x1D5BA, last = 0x1D5D3 }
+blocks["lowercasesansserifbold"] = { first = 0x1D5EE, last = 0x1D607 }
+blocks["lowercasesansserifitalic"] = { first = 0x1D622, last = 0x1D63B }
+blocks["lowercasesansserifbolditalic"] = { first = 0x1D656, last = 0x1D66F }
+blocks["lowercasemonospace"] = { first = 0x1D68A, last = 0x1D6A3 }
+blocks["lowercasegreeknormal"] = { first = 0x003B1, last = 0x003CA }
+blocks["lowercasegreekbold"] = { first = 0x1D6C2, last = 0x1D6DB }
+blocks["lowercasegreekitalic"] = { first = 0x1D6FC, last = 0x1D715 }
+blocks["lowercasegreekbolditalic"] = { first = 0x1D736, last = 0x1D74F }
+blocks["lowercasegreeksansserifbold"] = { first = 0x1D770, last = 0x1D789 }
+blocks["lowercasegreeksansserifbolditalic"] = { first = 0x1D7AA, last = 0x1D7C3 }
+
+blocks["digitsnormal"] = { first = 0x00030, last = 0x0003A }
+blocks["digitsbold"] = { first = 0x1D7CE, last = 0x1D7D8 }
+blocks["digitsdoublestruck"] = { first = 0x1D7D8, last = 0x1D7E2 }
+blocks["digitssansserifnormal"] = { first = 0x1D7E2, last = 0x1D7EC }
+blocks["digitssansserifbold"] = { first = 0x1D7EC, last = 0x1D805 }
+blocks["digitsmonospace"] = { first = 0x1D7F6, last = 0x1D80F }
+
+-- operators : 0x02200
+-- symbolsa : 0x02701
+-- symbolsb : 0x02901
+-- supplemental : 0x02A00
+
function mathematics.injectfallbacks(target,original)
local specification = target.specification
if specification then
@@ -521,9 +580,9 @@ function mathematics.injectfallbacks(target,original)
if definitions then
local definedfont = fonts.definers.internal
local copiedglyph = fonts.handlers.vf.math.copy_glyph
- local fonts = target.fonts
- local size = specification.size -- target.size
- local characters = target.characters
+ local fonts = target.fonts
+ local size = specification.size -- target.size
+ local characters = target.characters
if not fonts then
fonts = { }
target.fonts = fonts
@@ -536,39 +595,39 @@ function mathematics.injectfallbacks(target,original)
local done = { }
for i=1,#definitions do
local definition = definitions[i]
- local name = definition.font
- local id = definedfont { name = name, size = size }
- local index = #fonts + 1
+ local name = definition.font
+ local start = definition.start
+ local stop = definition.stop
+ local check = definition.check
+ local force = definition.force
+ local rscale = definition.rscale
+ local offset = definition.offset or start
+ local id = definedfont { name = name, size = size * rscale }
+ local index = #fonts + 1
fonts[index] = { id = id, size = size }
- local first = definition.first or definition.start or definition.code
- local last = definition.last or definition.stop or first
- if first then
- local chars = fontchars[id]
- local check = toboolean(definition.check or "false",true)
- local force = toboolean(definition.force or "true",true)
- -- check: when true, only set when present in font
- -- force: when false, then not set when already set
- if check then
- for unicode = first, last do
- if chars[unicode] then
- -- not in font
- elseif force or (not done[unicode] and not characters[unicode]) then
- if trace_collecting then
- report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unicode,"checked")
- end
- characters[unicode] = copiedglyph(target,characters,chars,unicode,index)
- done[unicode] = true
+ local chars = fontchars[id]
+ if check then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if not chars[unicode] then
+ -- not in font
+ elseif force or (not done[unic] and not characters[unic]) then
+ if trace_collecting then
+ report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unic,"checked")
end
+ characters[unic] = copiedglyph(target,characters,chars,unicode,index)
+ done[unic] = true
end
- else
- for unicode = first, last do
- if force or (not done[unicode] and not characters[unicode]) then
- if trace_collecting then
- report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unicode,"unchecked")
- end
- characters[unicode] = copiedglyph(target,characters,chars,unicode,index)
- done[unicode] = true
+ end
+ else
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if force or (not done[unic] and not characters[unic]) then
+ if trace_collecting then
+ report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unic,"unchecked")
end
+ characters[unic] = copiedglyph(target,characters,chars,unicode,index)
+ done[unic] = true
end
end
end
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index cc5142818..12d864e96 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -2102,6 +2102,13 @@
% \ifvmode\ctxcommand{resetprevdepth()}\fi
% \to \everyafteroutput
%
-% this should only happen when there is nothing left over (how to detemine that)
+% this should only happen when there is nothing left over (how to detemine that) .. testcase:
+%
+% \dorecurse{41}{line\par}
+% \starttyping
+% line 1
+% line 2
+% line 3
+% \stoptyping
\protect \endinput
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 31f8762c6..586fed7d8 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.log b/tex/context/base/status-lua.log
index ac8836a0b..4168499a4 100644
--- a/tex/context/base/status-lua.log
+++ b/tex/context/base/status-lua.log
@@ -1,6 +1,6 @@
(cont-yes.mkiv
-ConTeXt ver: 2013.08.08 19:24 MKIV beta fmt: 2013.8.8 int: english/english
+ConTeXt ver: 2013.08.09 00:38 MKIV beta fmt: 2013.8.9 int: english/english
system > 'cont-new.mkiv' loaded
(cont-new.mkiv)
diff --git a/tex/context/base/type-imp-euler.mkiv b/tex/context/base/type-imp-euler.mkiv
index 34f04634e..a1302fdab 100644
--- a/tex/context/base/type-imp-euler.mkiv
+++ b/tex/context/base/type-imp-euler.mkiv
@@ -15,10 +15,15 @@
\loadtypescriptfile[dejavu]
\resetfontfallback [euleroverpagella]
-\definefontfallback [euleroverpagella] [\s!file:euler.otf] ["0000-"FFFF] [\s!check=\v!yes,\c!force=\v!yes]
+\definefontfallback [euleroverpagella] [\s!file:euler.otf] ["0000-"FFFF] [\s!check=yes,\c!force=yes]
\resetfontfallback [pagellaovereuler]
-\definefontfallback [pagellaovereuler] [texgyrepagella-math] ["0000-"FFFF] [\s!check=\v!yes]
+\definefontfallback [pagellaovereuler] [texgyrepagella-math] ["0000-"FFFF] [\s!check=yes]
+
+% example for aditya:
+%
+% \definefontfallback [pagellaovereuler] [texgyrepagella-math] [lowercasenormal] [offset=uppercasenormal,force=yes]
+% \definefontfallback [pagellaovereuler] [texgyrepagella-math] [uppercasenormal] [offset=lowercasenormal,force=yes]
\starttypescriptcollection[pagella-eulernova]
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index eafc874e7..5c805278f 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 : 08/08/13 19:24:01
+-- merge date : 08/09/13 00:38:49
do -- begin closure to overcome local limits and interference