From f4ff686750ca9405662c7615e9c4b04685b5be5c Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 22 Nov 2016 20:44:35 +0100 Subject: 2016-11-22 20:10:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/back-exp.lua | 2 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/font-oup.lua | 35 +- tex/context/base/mkiv/font-syn.lua | 12 +- tex/context/base/mkiv/page-mix.lua | 13 +- tex/context/base/mkiv/status-files.pdf | Bin 25651 -> 25633 bytes tex/context/base/mkiv/status-lua.pdf | Bin 368477 -> 368494 bytes tex/context/base/mkiv/strc-not.lua | 23 + tex/context/base/mkiv/strc-not.mkvi | 59 +- tex/context/base/mkiv/strc-tag.mkiv | 17 +- tex/context/interface/mkiv/i-context.pdf | Bin 835956 -> 803706 bytes tex/context/interface/mkiv/i-ipsum.xml | 81 ++ tex/context/interface/mkiv/i-itemgroup.xml | 64 +- tex/context/interface/mkiv/i-label.xml | 3 + tex/context/interface/mkiv/i-labeltext.xml | 876 ++++++++++----------- tex/context/interface/mkiv/i-linenumber.xml | 16 +- tex/context/interface/mkiv/i-lines.xml | 24 +- tex/context/interface/mkiv/i-list.xml | 64 +- tex/context/interface/mkiv/i-lohi.xml | 20 +- tex/context/interface/mkiv/i-makeup.xml | 69 +- tex/context/interface/mkiv/i-margindata.xml | 496 +++++------- tex/context/interface/mkiv/i-mathalignment.xml | 39 +- tex/context/interface/mkiv/i-mathcases.xml | 39 +- tex/context/interface/mkiv/i-mathmatrix.xml | 39 +- tex/context/interface/mkiv/i-mixedcolumns.xml | 25 +- tex/context/interface/mkiv/i-note.xml | 217 ++--- tex/context/interface/mkiv/i-pairedbox.xml | 68 +- tex/context/interface/mkiv/i-readme.pdf | Bin 60766 -> 60766 bytes tex/context/interface/mkiv/i-register.xml | 192 ++--- tex/context/interface/mkiv/i-ruby.xml | 76 ++ tex/context/interface/mkiv/i-scite.xml | 26 + tex/context/interface/mkiv/i-script.xml | 46 +- tex/context/interface/mkiv/i-section.xml | 409 +++++----- tex/context/interface/mkiv/i-sectionblock.xml | 93 +-- tex/context/interface/mkiv/i-setup.xml | 145 ++++ tex/context/interface/mkiv/i-shift.xml | 31 +- tex/context/interface/mkiv/i-sort.xml | 66 +- tex/context/interface/mkiv/i-spreadsheet.xml | 140 ++++ tex/context/interface/mkiv/i-steps.xml | 412 ++++++++++ tex/context/interface/mkiv/i-synonym.xml | 66 +- tex/context/interface/mkiv/i-tabulation.xml | 41 +- tex/context/interface/mkiv/i-tagging.xml | 7 + tex/context/interface/mkiv/i-tooltip.xml | 56 +- tex/context/interface/mkiv/i-translate.xml | 26 + tex/context/interface/mkiv/i-unit.xml | 20 +- tex/context/interface/mkiv/i-verbatim.xml | 222 +++--- tex/context/interface/mkiv/i-visual.xml | 154 ++++ tex/generic/context/luatex/luatex-fonts-merged.lua | 33 +- 51 files changed, 2825 insertions(+), 1745 deletions(-) create mode 100644 tex/context/interface/mkiv/i-ipsum.xml create mode 100644 tex/context/interface/mkiv/i-ruby.xml create mode 100644 tex/context/interface/mkiv/i-scite.xml create mode 100644 tex/context/interface/mkiv/i-setup.xml create mode 100644 tex/context/interface/mkiv/i-spreadsheet.xml create mode 100644 tex/context/interface/mkiv/i-steps.xml create mode 100644 tex/context/interface/mkiv/i-translate.xml create mode 100644 tex/context/interface/mkiv/i-visual.xml (limited to 'tex') diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 0d8872594..a2d4494c2 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2016.11.18 22:20} +\newcontextversion{2016.11.22 20:03} %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/mkii/context.mkii b/tex/context/base/mkii/context.mkii index ac560b607..76bba0781 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2016.11.18 22:20} +\edef\contextversion{2016.11.22 20:03} %D For those who want to use this: diff --git a/tex/context/base/mkiv/back-exp.lua b/tex/context/base/mkiv/back-exp.lua index 82142910b..bd87075d0 100644 --- a/tex/context/base/mkiv/back-exp.lua +++ b/tex/context/base/mkiv/back-exp.lua @@ -122,7 +122,7 @@ local getlist = nuts.getlist local getid = nuts.getid local getfield = nuts.getfield local getattr = nuts.getattr -local setattr = nuts.setattr +local setattr = nuts.setattr -- maybe use properties local isglyph = nuts.isglyph local traverse_id = nuts.traverse_id diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 7a5ca1f7b..e4c556665 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2016.11.18 22:20} +\newcontextversion{2016.11.22 20:03} %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/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 57f84ee79..734fe35a2 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -39,7 +39,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2016.11.18 22:20} +\edef\contextversion{2016.11.22 20:03} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-oup.lua b/tex/context/base/mkiv/font-oup.lua index c4945734f..cfa90c794 100644 --- a/tex/context/base/mkiv/font-oup.lua +++ b/tex/context/base/mkiv/font-oup.lua @@ -29,7 +29,12 @@ local f_index = formatters["I%05X"] local f_character_y = formatters["%C"] local f_character_n = formatters["[ %C ]"] -local doduplicates = true -- can become an option (pseudo feature) +local check_duplicates = true -- can become an option (pseudo feature) / aways needed anyway +local check_soft_hyphen = false -- can become an option (pseudo feature) / needed for tagging + +directives.register("otf.checksofthyphen",function(v) + check_soft_hyphen = v +end) local function replaced(list,index,replacement) if type(list) == "number" then @@ -106,7 +111,7 @@ local function unifyresources(fontdata,indices) -- local done = { } -- we need to deal with shared ! -- - local duplicates = doduplicates and resources.duplicates + local duplicates = check_duplicates and resources.duplicates if duplicates and not next(duplicates) then duplicates = false end @@ -359,12 +364,34 @@ local function unifyresources(fontdata,indices) end local function copyduplicates(fontdata) - if doduplicates then + if check_duplicates then local descriptions = fontdata.descriptions local resources = fontdata.resources local duplicates = resources.duplicates + if check_soft_hyphen then + -- ebgaramond has a zero width empty soft hyphen + local ds = descriptions[0xAD] + if not ds or ds.width == 0 then + if ds then + descriptions[0xAD] = nil + report("patching soft hyphen") + else + report("adding soft hyphen") + end + if not duplicates then + duplicates = { } + resources.duplicates = duplicates + end + local dh = duplicates[0x2D] + if dh then + dh[#dh+1] = { [0xAD] = true } + else + duplicates[0x2D] = { [0xAD] = true } + end + end + end if duplicates then - for u, d in next, duplicates do + for u, d in next, duplicates do local du = descriptions[u] if du then local t = { f_character_y(u), "@", f_index(du.index), "->" } diff --git a/tex/context/base/mkiv/font-syn.lua b/tex/context/base/mkiv/font-syn.lua index 372a16ca1..dce668842 100644 --- a/tex/context/base/mkiv/font-syn.lua +++ b/tex/context/base/mkiv/font-syn.lua @@ -620,7 +620,7 @@ local function check_name(data,result,filename,modification,suffix,subfont) local pfmwidth = result.pfmwidth or 0 local pfmweight = result.pfmweight or 0 -- - specifications[#specifications + 1] = { + specifications[#specifications+1] = { filename = filename, -- unresolved cleanfilename = cleanfilename, -- subfontindex = subfont, @@ -1078,16 +1078,10 @@ local function analyzefiles(olddata) if result then if #result > 0 then for r=1,#result do - local ok = check_name(data,result[r],storedname,modification,suffix,r) -- subfonts start at zero - -- if not ok then - -- nofskipped = nofskipped + 1 - -- end + check_name(data,result[r],storedname,modification,suffix,r) -- subfonts start at zero end else - local ok = check_name(data,result,storedname,modification,suffix) - -- if not ok then - -- nofskipped = nofskipped + 1 - -- end + check_name(data,result,storedname,modification,suffix) end if trace_warnings and message and message ~= "" then report_names("warning when identifying %s font %a, %s",suffix,completename,message) diff --git a/tex/context/base/mkiv/page-mix.lua b/tex/context/base/mkiv/page-mix.lua index 725073f55..b5e97da4d 100644 --- a/tex/context/base/mkiv/page-mix.lua +++ b/tex/context/base/mkiv/page-mix.lua @@ -15,6 +15,8 @@ if not modules then modules = { } end modules ["page-mix"] = { -- local trackers, logs, storage = trackers, logs, storage -- local number, table = number, table +-- todo: explore vsplit (for inserts) + local next, type = next, type local concat = table.concat local ceil, floor = math.ceil, math.floor @@ -106,8 +108,15 @@ local forcedbreak = -123 local function collectinserts(result,nxt,nxtid) local inserts, currentskips, nextskips, inserttotal = { }, 0, 0, 0 +local i = result.i +if not i then + i = 0 + result.i = i +end while nxt do if nxtid == insert_code then + i = i + 1 +result.i = i inserttotal = inserttotal + getfield(nxt,"height") -- height includes depth local s = getsubtype(nxt) local c = inserts[s] @@ -115,9 +124,11 @@ local function collectinserts(result,nxt,nxtid) report_state("insert of class %s found",s) end if not c then +local skip = structures.notes.check_spacing(s,i) -- before +local width = getfield(getskip(skip),"width") c = { } inserts[s] = c - local width = getfield(getskip(s),"width") +-- local width = getfield(getskip(s),"width") if not result.inserts[s] then currentskips = currentskips + width end diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index c5314a03a..fe68167ac 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index e97bc9c18..f50a9aa88 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkiv/strc-not.lua b/tex/context/base/mkiv/strc-not.lua index ddbd2ae06..523b9dc92 100644 --- a/tex/context/base/mkiv/strc-not.lua +++ b/tex/context/base/mkiv/strc-not.lua @@ -448,3 +448,26 @@ function notes.internalid(tag,n) return r.internal end end + +-- for the moment here but better in some builder modules + +local report_insert = logs.reporter("pagebuilder","insert") +local trace_insert = false trackers.register("pagebuilder.insert",function(v) trace_insert = v end) + +local texgetglue = tex.getglue +local texsetglue = tex.setglue + +function notes.check_spacing(n,i) + local gn, pn, mn = texgetglue(n) + local gi, pi, mi = texgetglue(i > 1 and "s_strc_notes_inbetween" or "s_strc_notes_before") + local gt, pt, mt = gn+gi, pn+pi, mn+mi + if trace_insert then + report_insert("%s %i: %p plus %p minus %p","always ",n,gn,pn,mn) + report_insert("%s %i: %p plus %p minus %p",i > 1 and "inbetween" or "before ",n,gi,pi,mi) + report_insert("%s %i: %p plus %p minus %p","effective",n,gt,pt,mt) + end + texsetglue(0,gt,pt,mt) -- for the moment we use skip register 0 + return 0 +end + +callback.register("build_page_insert", notes.check_spacing) diff --git a/tex/context/base/mkiv/strc-not.mkvi b/tex/context/base/mkiv/strc-not.mkvi index e1c445ab6..d2626d2ab 100644 --- a/tex/context/base/mkiv/strc-not.mkvi +++ b/tex/context/base/mkiv/strc-not.mkvi @@ -1053,17 +1053,55 @@ \newskip \s_strc_notes_distance % we need to implement stretch \newcount\c_strc_notes_columns +% \def\strc_notes_set_distance +% {\begingroup +% \setbox\scratchbox\vbox % no reuse as it can mirror +% {\forgetall +% \restoreglobalbodyfont % really needed +% \dontcomplain +% \noteparameter\c!before +% \placenoterule +% \noteparameter\c!after}% +% \expandafter\endgroup\expandafter +% \s_strc_notes_distance\the\htdp\scratchbox\relax} % also dp now + +\newskip \s_strc_notes_before +\newskip \s_strc_notes_inbetween +\newconditional\c_strc_notes_first_flushed + +\appendtoks + \edef\p_spacebefore{\rootnoteparameter\c!spacebefore}% + \ifx\p_spacebefore\empty + \global\s_strc_notes_before\zeropoint + \else + \setbox\scratchbox\vbox{\blank[\p_spacebefore]\global\s_strc_notes_before\lastskip}% + \fi + \edef\p_spaceinbetween{\rootnoteparameter\c!spaceinbetween}% + \ifx\p_spaceinbetween\empty + \global\s_strc_notes_inbetween\zeropoint + \else + \setbox\scratchbox\vbox{\blank[\p_spaceinbetween]\global\s_strc_notes_inbetween\lastskip}% + \fi +\to \everysynchronizenote + \def\strc_notes_set_distance {\begingroup + \restoreglobalbodyfont \setbox\scratchbox\vbox % no reuse as it can mirror {\forgetall - % \strc_notes_set_bodyfont \dontcomplain \noteparameter\c!before \placenoterule + \strut \noteparameter\c!after}% + % also dp now + \scratchdimen\dimexpr\htdp\scratchbox-\lineheight\relax + \ifgridsnapping + \getnoflines\scratchdimen + \scratchdimen\noflines\lineheight + \fi \expandafter\endgroup\expandafter - \s_strc_notes_distance\the\htdp\scratchbox\relax} % also dp now + \s_strc_notes_distance\the\scratchdimen\relax} \def\strc_notes_set_columns {\c_strc_notes_columns\noteparameter\c!n\relax @@ -1356,14 +1394,18 @@ % % \dorecurse{6}{\input tufte\footnote{\input ward \input tufte \relax}} +\newconditional\c_strc_notes_first_placed + \unexpanded\def\placenoteinserts - {\strc_notes_process\strc_notes_place_inserts} + {\setfalse\c_strc_notes_first_placed + \strc_notes_process\strc_notes_place_inserts} \def\strc_notes_place_inserts {\strc_notes_set_delayed % \strc_notes_synchronize % we need to know if it's delayed \ifconditional\c_strc_notes_delayed \else \ifdim\ht\currentnoteinsertionnumber>\zeropoint % or a faster delayed test \strc_notes_place_inserts_indeed + \settrue\c_strc_notes_first_placed \fi \fi} @@ -1373,6 +1415,17 @@ \endgraf \ifvmode \whitespace + \ifconditional\c_strc_notes_first_placed + \edef\p_spaceinbetween{\noteparameter\c!spaceinbetween}% + \ifx\p_spaceinbetween\empty\else + \blank[\p_spaceinbetween]% + \fi + \else + \edef\p_spacebefore{\noteparameter\c!spacebefore}% + \ifx\p_spacebefore\empty\else + \blank[\p_spacebefore]% + \fi + \fi \noteparameter\c!before \fi \placenoterule diff --git a/tex/context/base/mkiv/strc-tag.mkiv b/tex/context/base/mkiv/strc-tag.mkiv index c9132bf04..7fdfd7afa 100644 --- a/tex/context/base/mkiv/strc-tag.mkiv +++ b/tex/context/base/mkiv/strc-tag.mkiv @@ -215,8 +215,23 @@ \unexpanded\def\strc_tags_element_stop_nop {} +\def\strc_tags_report_hyphen#1% + {\writestatus\m!languages{setting #1 to U+00AD}} + +\unexpanded\def\strc_tags_patch_hyphen + {% for the moment here + \ifnum\languageparameter\s!lefthyphenchar>\zerocount + \setuplanguage[\s!default][\s!lefthyphenchar="AD]% + \strc_tags_report_hyphen\s!lefthyphenchar + \fi + \ifnum\languageparameter\s!righthyphenchar>\zerocount + \setuplanguage[\s!default][\s!righthyphenchar="AD]% + \strc_tags_report_hyphen\s!righthyphenchar + \fi + \let\strc_tags_report_hyphen\gobbleoneargument} + \unexpanded\def\strc_tags_enable_elements - {\setuplanguage[\s!default][\s!righthyphenchar="AD]% for the moment here + {\strc_tags_patch_hyphen \let\startelement\strc_tags_element_start_yes \let\stopelement \strc_tags_element_stop_yes \let\dosettagproperty\strc_tags_set_aspect_yes} diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index ba645e318..161c42371 100644 Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ diff --git a/tex/context/interface/mkiv/i-ipsum.xml b/tex/context/interface/mkiv/i-ipsum.xml new file mode 100644 index 000000000..f96fc5229 --- /dev/null +++ b/tex/context/interface/mkiv/i-ipsum.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-itemgroup.xml b/tex/context/interface/mkiv/i-itemgroup.xml index eb3412c3d..6fb28b635 100644 --- a/tex/context/interface/mkiv/i-itemgroup.xml +++ b/tex/context/interface/mkiv/i-itemgroup.xml @@ -393,10 +393,10 @@ - + - + @@ -411,13 +411,13 @@ - + - + - + @@ -428,7 +428,7 @@ - + @@ -563,30 +563,34 @@ - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-label.xml b/tex/context/interface/mkiv/i-label.xml index 592193c35..fe7851d9d 100644 --- a/tex/context/interface/mkiv/i-label.xml +++ b/tex/context/interface/mkiv/i-label.xml @@ -149,6 +149,9 @@ + + + diff --git a/tex/context/interface/mkiv/i-labeltext.xml b/tex/context/interface/mkiv/i-labeltext.xml index a5a0a5706..34c70231f 100644 --- a/tex/context/interface/mkiv/i-labeltext.xml +++ b/tex/context/interface/mkiv/i-labeltext.xml @@ -11,10 +11,10 @@ - + - + @@ -22,22 +22,14 @@ - - - - - - - - - + - + - + @@ -45,22 +37,14 @@ - - - - - - - - - + - + - + @@ -68,21 +52,13 @@ - - - - - - - - - + - + - + @@ -90,60 +66,36 @@ - - - - - - - - - + - + - + - - - - - - - - - + - + - + - - - - - - - - - + - + - + @@ -151,427 +103,421 @@ - - - + - + - + - - - + - + - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-linenumber.xml b/tex/context/interface/mkiv/i-linenumber.xml index 12d069535..1c7ca2f75 100644 --- a/tex/context/interface/mkiv/i-linenumber.xml +++ b/tex/context/interface/mkiv/i-linenumber.xml @@ -93,7 +93,21 @@ - + + + + + + + + + + + + + + + diff --git a/tex/context/interface/mkiv/i-lines.xml b/tex/context/interface/mkiv/i-lines.xml index 2d6f56eaf..32c3c6b70 100644 --- a/tex/context/interface/mkiv/i-lines.xml +++ b/tex/context/interface/mkiv/i-lines.xml @@ -88,9 +88,9 @@ - + - + @@ -98,17 +98,21 @@ - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-list.xml b/tex/context/interface/mkiv/i-list.xml index da0a4438a..7e0def052 100644 --- a/tex/context/interface/mkiv/i-list.xml +++ b/tex/context/interface/mkiv/i-list.xml @@ -409,10 +409,10 @@ - + - + @@ -420,14 +420,14 @@ - + - + - + @@ -435,14 +435,14 @@ - + - + - + @@ -450,33 +450,37 @@ - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-lohi.xml b/tex/context/interface/mkiv/i-lohi.xml index 878f1deff..1fe891b2c 100644 --- a/tex/context/interface/mkiv/i-lohi.xml +++ b/tex/context/interface/mkiv/i-lohi.xml @@ -34,15 +34,15 @@ - + - + - + @@ -82,15 +82,15 @@ - + - + - + @@ -133,9 +133,9 @@ - + - + @@ -199,9 +199,9 @@ - + - + diff --git a/tex/context/interface/mkiv/i-makeup.xml b/tex/context/interface/mkiv/i-makeup.xml index 4424f9fde..8831a8b0b 100644 --- a/tex/context/interface/mkiv/i-makeup.xml +++ b/tex/context/interface/mkiv/i-makeup.xml @@ -122,9 +122,9 @@ - + - + @@ -133,43 +133,44 @@ - - - - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-margindata.xml b/tex/context/interface/mkiv/i-margindata.xml index 1085daa1e..a54362fec 100644 --- a/tex/context/interface/mkiv/i-margindata.xml +++ b/tex/context/interface/mkiv/i-margindata.xml @@ -128,9 +128,9 @@ - + - + @@ -145,28 +145,7 @@ - - - - - - - - - - - - - - - - - - + @@ -186,318 +165,253 @@ - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - diff --git a/tex/context/interface/mkiv/i-mathcases.xml b/tex/context/interface/mkiv/i-mathcases.xml index 945565651..8a27c4413 100644 --- a/tex/context/interface/mkiv/i-mathcases.xml +++ b/tex/context/interface/mkiv/i-mathcases.xml @@ -41,9 +41,9 @@ - + - + @@ -51,25 +51,28 @@ - - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-mathmatrix.xml b/tex/context/interface/mkiv/i-mathmatrix.xml index 3007cf555..50f99205a 100644 --- a/tex/context/interface/mkiv/i-mathmatrix.xml +++ b/tex/context/interface/mkiv/i-mathmatrix.xml @@ -53,9 +53,9 @@ - + - + @@ -63,26 +63,29 @@ - - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-mixedcolumns.xml b/tex/context/interface/mkiv/i-mixedcolumns.xml index 031347401..6d0142536 100644 --- a/tex/context/interface/mkiv/i-mixedcolumns.xml +++ b/tex/context/interface/mkiv/i-mixedcolumns.xml @@ -105,9 +105,9 @@ - + - + @@ -115,17 +115,20 @@ - - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-note.xml b/tex/context/interface/mkiv/i-note.xml index bcb9f7507..a7ecb5401 100644 --- a/tex/context/interface/mkiv/i-note.xml +++ b/tex/context/interface/mkiv/i-note.xml @@ -156,6 +156,9 @@ + + + @@ -180,69 +183,61 @@ - + + + + + + + + - + - + - - + - + - + - - + - + - + - - + - + - + - - + @@ -391,18 +386,14 @@ - + + + + + + + + @@ -499,30 +490,34 @@ - - - - - + @@ -555,30 +550,34 @@ - - - - - + @@ -614,42 +613,42 @@ - + - + - + - + - + - + - + - + - + @@ -666,23 +665,27 @@ - - - - - + diff --git a/tex/context/interface/mkiv/i-pairedbox.xml b/tex/context/interface/mkiv/i-pairedbox.xml index aa492b2a5..bbab966ba 100644 --- a/tex/context/interface/mkiv/i-pairedbox.xml +++ b/tex/context/interface/mkiv/i-pairedbox.xml @@ -90,10 +90,10 @@ - + - + @@ -101,14 +101,14 @@ - + - + - + @@ -118,14 +118,14 @@ - + - + - + @@ -133,35 +133,39 @@ - + - - - - - - - + diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf index cc1285fb9..c42739e8c 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ diff --git a/tex/context/interface/mkiv/i-register.xml b/tex/context/interface/mkiv/i-register.xml index 564fb1340..e13b009ea 100644 --- a/tex/context/interface/mkiv/i-register.xml +++ b/tex/context/interface/mkiv/i-register.xml @@ -344,35 +344,31 @@ - + + + + + + + + + + + - + - + @@ -382,13 +378,13 @@ - + - + - + @@ -399,14 +395,14 @@ - + - + - + @@ -420,14 +416,14 @@ - + - + - + @@ -435,14 +431,14 @@ - + - + - + @@ -450,14 +446,14 @@ - + - + - + @@ -466,69 +462,73 @@ - + - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-ruby.xml b/tex/context/interface/mkiv/i-ruby.xml new file mode 100644 index 000000000..698e4f24f --- /dev/null +++ b/tex/context/interface/mkiv/i-ruby.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/mkiv/i-scite.xml b/tex/context/interface/mkiv/i-scite.xml new file mode 100644 index 000000000..e62bc9067 --- /dev/null +++ b/tex/context/interface/mkiv/i-scite.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-script.xml b/tex/context/interface/mkiv/i-script.xml index e4c100538..10ae6a79e 100644 --- a/tex/context/interface/mkiv/i-script.xml +++ b/tex/context/interface/mkiv/i-script.xml @@ -36,18 +36,14 @@ - + + + + + + + + @@ -79,34 +75,28 @@ - + - + - - - - - - - + - + + + + + + + + + - + - + - - - - - - - - - - - - - + - + - + @@ -287,252 +272,220 @@ - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - + - - - - - - + diff --git a/tex/context/interface/mkiv/i-sectionblock.xml b/tex/context/interface/mkiv/i-sectionblock.xml index 594fecd15..d6fc97ee0 100644 --- a/tex/context/interface/mkiv/i-sectionblock.xml +++ b/tex/context/interface/mkiv/i-sectionblock.xml @@ -58,9 +58,9 @@ - + - + @@ -71,10 +71,7 @@ - - - - + @@ -84,48 +81,52 @@ - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-setup.xml b/tex/context/interface/mkiv/i-setup.xml new file mode 100644 index 000000000..4771230eb --- /dev/null +++ b/tex/context/interface/mkiv/i-setup.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-shift.xml b/tex/context/interface/mkiv/i-shift.xml index cd3c6650e..792a8d84f 100644 --- a/tex/context/interface/mkiv/i-shift.xml +++ b/tex/context/interface/mkiv/i-shift.xml @@ -55,16 +55,15 @@ - + - + - - + @@ -74,16 +73,20 @@ - - - - - + diff --git a/tex/context/interface/mkiv/i-sort.xml b/tex/context/interface/mkiv/i-sort.xml index 817dd9c97..a72df624b 100644 --- a/tex/context/interface/mkiv/i-sort.xml +++ b/tex/context/interface/mkiv/i-sort.xml @@ -78,16 +78,16 @@ - + - + - + @@ -103,10 +103,10 @@ - + - + @@ -114,14 +114,14 @@ - + - + - + @@ -129,7 +129,7 @@ - + @@ -171,27 +171,31 @@ - - - - - - - - - - - - - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-spreadsheet.xml b/tex/context/interface/mkiv/i-spreadsheet.xml new file mode 100644 index 000000000..9f6273891 --- /dev/null +++ b/tex/context/interface/mkiv/i-spreadsheet.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-steps.xml b/tex/context/interface/mkiv/i-steps.xml new file mode 100644 index 000000000..47a3b45ca --- /dev/null +++ b/tex/context/interface/mkiv/i-steps.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-synonym.xml b/tex/context/interface/mkiv/i-synonym.xml index 07c69e4dd..6c615b12a 100644 --- a/tex/context/interface/mkiv/i-synonym.xml +++ b/tex/context/interface/mkiv/i-synonym.xml @@ -80,9 +80,9 @@ - + - + @@ -90,7 +90,7 @@ - + @@ -107,10 +107,10 @@ - + - + @@ -118,14 +118,14 @@ - + - + - + @@ -133,7 +133,7 @@ - + @@ -188,34 +188,38 @@ - - - - - - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-tabulation.xml b/tex/context/interface/mkiv/i-tabulation.xml index 62ad41d17..be3a602ac 100644 --- a/tex/context/interface/mkiv/i-tabulation.xml +++ b/tex/context/interface/mkiv/i-tabulation.xml @@ -138,9 +138,9 @@ - + - + @@ -149,8 +149,7 @@ - - + @@ -174,25 +173,25 @@ - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-translate.xml b/tex/context/interface/mkiv/i-translate.xml new file mode 100644 index 000000000..ba3510f0b --- /dev/null +++ b/tex/context/interface/mkiv/i-translate.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/context/interface/mkiv/i-unit.xml b/tex/context/interface/mkiv/i-unit.xml index 551ff533f..3380585dc 100644 --- a/tex/context/interface/mkiv/i-unit.xml +++ b/tex/context/interface/mkiv/i-unit.xml @@ -75,23 +75,27 @@ - + - + - + - - - - - + diff --git a/tex/context/interface/mkiv/i-verbatim.xml b/tex/context/interface/mkiv/i-verbatim.xml index 6a6d725df..7000cf77c 100644 --- a/tex/context/interface/mkiv/i-verbatim.xml +++ b/tex/context/interface/mkiv/i-verbatim.xml @@ -251,25 +251,9 @@ - - - - - - - - - - - - - - - - - + - + @@ -277,18 +261,13 @@ - - - - - - + - + - + @@ -296,12 +275,7 @@ - - - - - - + @@ -379,87 +353,107 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/tex/context/interface/mkiv/i-visual.xml b/tex/context/interface/mkiv/i-visual.xml new file mode 100644 index 000000000..64ae3f79d --- /dev/null +++ b/tex/context/interface/mkiv/i-visual.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 18ed3da02..28f6848ae 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 11/18/16 22:20:13 +-- merge date : 11/22/16 20:03:56 do -- begin closure to overcome local limits and interference @@ -13540,7 +13540,11 @@ local f_unicode=formatters["U%05X"] local f_index=formatters["I%05X"] local f_character_y=formatters["%C"] local f_character_n=formatters["[ %C ]"] -local doduplicates=true +local check_duplicates=true +local check_soft_hyphen=false +directives.register("otf.checksofthyphen",function(v) + check_soft_hyphen=v +end) local function replaced(list,index,replacement) if type(list)=="number" then return replacement @@ -13608,7 +13612,7 @@ local function unifyresources(fontdata,indices) end end local done={} - local duplicates=doduplicates and resources.duplicates + local duplicates=check_duplicates and resources.duplicates if duplicates and not next(duplicates) then duplicates=false end @@ -13845,10 +13849,31 @@ local function unifyresources(fontdata,indices) unifythem(resources.sublookups) end local function copyduplicates(fontdata) - if doduplicates then + if check_duplicates then local descriptions=fontdata.descriptions local resources=fontdata.resources local duplicates=resources.duplicates + if check_soft_hyphen then + local ds=descriptions[0xAD] + if not ds or ds.width==0 then + if ds then + descriptions[0xAD]=nil + report("patching soft hyphen") + else + report("adding soft hyphen") + end + if not duplicates then + duplicates={} + resources.duplicates=duplicates + end + local dh=duplicates[0x2D] + if dh then + dh[#dh+1]={ [0xAD]=true } + else + duplicates[0x2D]={ [0xAD]=true } + end + end + end if duplicates then for u,d in next,duplicates do local du=descriptions[u] -- cgit v1.2.3