From d26b620e63dc75f6ac6eec81bddae133d663aa56 Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 9 Aug 2013 01:40:21 +0300 Subject: beta 2013.08.09 00:38 --- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4104 -> 4107 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/font-col.mkvi | 3 +- tex/context/base/grph-fig.mkiv | 30 +++-- tex/context/base/math-act.lua | 123 +++++++++++++++------ tex/context/base/spac-ver.mkiv | 9 +- tex/context/base/status-files.pdf | Bin 24732 -> 24669 bytes tex/context/base/status-lua.log | 2 +- tex/context/base/type-imp-euler.mkiv | 9 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 11 files changed, 135 insertions(+), 47 deletions(-) (limited to 'tex') 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 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf 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 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf 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 -- cgit v1.2.3