From f180acf05ebaa586f8ba705e4b58672416bede5e Mon Sep 17 00:00:00 2001 From: Marius Date: Sat, 26 Mar 2011 12:40:18 +0200 Subject: beta 2011.03.26 11:35 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-ctx.lua | 2 +- tex/context/base/font-enh.lua | 167 +++++++++++++--------- tex/context/base/font-gds.lua | 44 ++++-- tex/context/base/font-ini.mkiv | 8 ++ tex/context/base/math-lbr.mkii | 12 +- tex/context/base/page-lay.mkii | 13 +- tex/context/base/status-files.pdf | Bin 23536 -> 23564 bytes tex/context/fonts/dingbats.lfg | 212 ++++++++++++++++++++++++++++ tex/generic/context/luatex-fonts-merged.lua | 2 +- 13 files changed, 374 insertions(+), 94 deletions(-) create mode 100644 tex/context/fonts/dingbats.lfg diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 376e958e3..e6239cf11 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.03.25 19:31} +\newcontextversion{2011.03.26 11:35} %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/cont-new.mkiv b/tex/context/base/cont-new.mkiv index a206d29d5..8a87d5d6d 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{2011.03.25 19:31} +\newcontextversion{2011.03.26 11:35} %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.mkii b/tex/context/base/context.mkii index d0d0f24e1..87de9a1ae 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.03.25 19:31} +\edef\contextversion{2011.03.26 11:35} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 1c3ea57f9..da17e89a1 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.03.25 19:31} +\edef\contextversion{2011.03.26 11:35} %D For those who want to use this: diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua index 9b1dc03ec..f425b79de 100644 --- a/tex/context/base/font-ctx.lua +++ b/tex/context/base/font-ctx.lua @@ -529,7 +529,7 @@ local somevalue = sometext * spaces * Cc(tru local pattern = Cf(Ct("") * (space + separator + Cg(keyvalue + falsevalue + truevalue + somevalue))^0, rawset) local function colonized(specification) - specification.features.normal = normalize_features(lpegmatch(pattern,specification.specification)) + specification.features.normal = normalize_features(lpegmatch(pattern,specification.detail)) return specification end diff --git a/tex/context/base/font-enh.lua b/tex/context/base/font-enh.lua index 3e3535f87..54e5e242a 100644 --- a/tex/context/base/font-enh.lua +++ b/tex/context/base/font-enh.lua @@ -17,76 +17,117 @@ local constructors = fonts.constructors local tfmfeatures = constructors.newfeatures("tfm") local registertfmfeature = tfmfeatures.register -local fontencodings = fonts.encodings -fontencodings.remappings = fontencodings.remappings or { } +local afmfeatures = fonts.constructors.newfeatures("afm") +local registerafmfeature = afmfeatures.register -local function reencode(tfmdata,encoding) - if encoding and fontencodings.known[encoding] then - local data = fontencodings.load(encoding) - if data then - tfmdata.properties.encoding = encoding - local characters = tfmdata.characters - local original = { } - local vector = data.vector - for unicode, character in next, characters do - character.name = vector[unicode] - character.index = unicode, character - original[unicode] = character - end - for newcode, oldcode in next, data.unicodes do - if newcode ~= oldcode then - if trace_defining then - report_defining("reencoding U+%04X to U+%04X",newcode,oldcode) - end - characters[newcode] = original[oldcode] - end - end - end - end -end +-- -- these will become goodies (when needed at all) +-- +-- local fontencodings = fonts.encodings +-- fontencodings.remappings = fontencodings.remappings or { } +-- +-- local function reencode(tfmdata,encoding) +-- if encoding and fontencodings.known[encoding] then +-- local data = fontencodings.load(encoding) +-- if data then +-- tfmdata.properties.encoding = encoding +-- local characters = tfmdata.characters +-- local original = { } +-- local vector = data.vector +-- for unicode, character in next, characters do +-- character.name = vector[unicode] +-- character.index = unicode, character +-- original[unicode] = character +-- end +-- for newcode, oldcode in next, data.unicodes do +-- if newcode ~= oldcode then +-- if trace_defining then +-- report_defining("reencoding U+%04X to U+%04X",newcode,oldcode) +-- end +-- characters[newcode] = original[oldcode] +-- end +-- end +-- end +-- end +-- end +-- +-- registertfmfeature { +-- name = "reencode", +-- description = "reencode", +-- manipulators = { +-- base = reencode, +-- node = reencode, +-- } +-- } +-- +-- local function remap(tfmdata,remapping) +-- local vector = remapping and fontencodings.remappings[remapping] +-- if vector then +-- local characters, original = tfmdata.characters, { } +-- for k, v in next, characters do +-- original[k], characters[k] = v, nil +-- end +-- for k,v in next, vector do +-- if k ~= v then +-- if trace_defining then +-- report_defining("remapping U+%04X to U+%04X",k,v) +-- end +-- local c = original[k] +-- characters[v] = c +-- c.index = k +-- end +-- end +-- local properties = tfmdata.properties +-- if not properties then +-- properties = { } +-- tfmdata.properties = properties +-- else +-- properties.encodingbytes = 2 +-- properties.format = properties.format or 'type1' +-- end +-- end +-- end +-- +-- registertfmfeature { +-- name = "remap", +-- description = "remap", +-- manipulators = { +-- base = remap, +-- node = remap, +-- } +-- } -registertfmfeature { - name = "reencode", - description = "reencode", - manipulators = { - base = reencode, - node = reencode, - } -} +-- \definefontfeature[dingbats][goodies=dingbats,unicoding=yes] -local function remap(tfmdata,remapping) - local vector = remapping and fontencodings.remappings[remapping] - if vector then - local characters, original = tfmdata.characters, { } - for k, v in next, characters do - original[k], characters[k] = v, nil - end - for k,v in next, vector do - if k ~= v then - if trace_defining then - report_defining("remapping U+%04X to U+%04X",k,v) - end - local c = original[k] - characters[v] = c - c.index = k - end +-- we only add and don't replace +-- we could also add kerns but we asssume symbols + +local function initializeunicoding(tfmdata) + local goodies = tfmdata.goodies + local newcoding = nil + for i=1,#goodies do + local remapping = goodies[i].remapping + if remapping and remapping.unicodes then + newcoding = remapping.unicodes -- names to unicodes end - local properties = tfmdata.properties - if not properties then - properties = { } - tfmdata.properties = properties - else - properties.encodingbytes = 2 - properties.format = properties.format or 'type1' + end + if newcoding then + local characters = tfmdata.characters + local descriptions = tfmdata.descriptions + local oldcoding = tfmdata.resources.unicodes + for name, newcode in next, newcoding do + local oldcode = oldcoding[name] + characters [newcode] = characters [oldcode] + descriptions[newcode] = descriptions[oldcode] end end end -registertfmfeature { - name = "remap", - description = "remap", - manipulators = { - base = remap, - node = remap, +registerafmfeature { + name = "unicoding", + description = "adapt unicode table", + initializers = { + base = initializeunicoding, + node = initializeunicoding, } } + diff --git a/tex/context/base/font-gds.lua b/tex/context/base/font-gds.lua index c2ff92fbf..556f093d4 100644 --- a/tex/context/base/font-gds.lua +++ b/tex/context/base/font-gds.lua @@ -21,6 +21,12 @@ local allocate = utilities.storage.allocate local otffeatures = fonts.constructors.newfeatures("otf") local registerotffeature = otffeatures.register +local afmfeatures = fonts.constructors.newfeatures("afm") +local registerafmfeature = afmfeatures.register + +local tfmfeatures = fonts.constructors.newfeatures("tfm") +local registertfmfeature = tfmfeatures.register + local fontgoodies = { } fonts.goodies = fontgoodies @@ -311,6 +317,26 @@ registerotffeature { } } +registerafmfeature { + name = "goodies", + description = "goodies on top of built in features", + initializers = { + position = 1, + base = setgoodies, + node = setgoodies, + } +} + +registertfmfeature { + name = "goodies", + description = "goodies on top of built in features", + initializers = { + position = 1, + base = setgoodies, + node = setgoodies, + } +} + registerotffeature { name = "featureset", description = "goodie feature set", @@ -345,9 +371,9 @@ registerotffeature { local function initialize(goodies) local mathgoodies = goodies.mathematics if mathgoodies then - local virtuals = mathgoodies.virtuals - local mapfiles = mathgoodies.mapfiles - local maplines = mathgoodies.maplines + local virtuals = mathgoodies.virtuals + local mapfiles = mathgoodies.mapfiles + local maplines = mathgoodies.maplines if virtuals then for name, specification in next, virtuals do -- beware, they are all constructed @@ -418,18 +444,6 @@ end fontgoodies.register("typefaces", initialize) -local function initialize(goodies) - local typefaces = goodies.typefaces - if typefaces then - local ft = fonts.typefaces - for k, v in next, typefaces do - ft[k] = v - end - end -end - -fontgoodies.register("typefaces", initialize) - local compositions = { } function fontgoodies.getcompositions(tfmdata) diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 69a00450b..f4a1fc5ba 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -2916,6 +2916,14 @@ init=yes,medi=yes,fina=yes,calt=yes, rlig=yes,curs=yes,mark=yes,mkmk=yes] +% symbols: + +\definefontfeature + [dingbats] + [mode=base, + goodies=dingbats, + unicoding=yes] + % math: \definefontfeature diff --git a/tex/context/base/math-lbr.mkii b/tex/context/base/math-lbr.mkii index 048559700..6392c762e 100644 --- a/tex/context/base/math-lbr.mkii +++ b/tex/context/base/math-lbr.mkii @@ -295,12 +295,12 @@ \stopmathcollection -% \startmathcollection[lbr] -% -% \definemathcharacter [:] [punct] [tf] ["3A] % unbelievable -% \definemathcharacter [;] [punct] [tf] ["3B] % unbelievable -% -% \stopmathcollection +\startmathcollection[lbr] + +\definemathcharacter [:] [punct] [tf] ["3A] % unbelievable, but enabled again for Mojca +\definemathcharacter [;] [punct] [tf] ["3B] % unbelievable, but enabled again for Mojca + +\stopmathcollection \startmathcollection[lbr] diff --git a/tex/context/base/page-lay.mkii b/tex/context/base/page-lay.mkii index 0bf375102..d40e1ccb7 100644 --- a/tex/context/base/page-lay.mkii +++ b/tex/context/base/page-lay.mkii @@ -295,7 +295,7 @@ {\doifelsenothing{#2} {\expanded{\dodosetuppapersize [\executeifdefined{\??pp:1:#1}{#1}]% - [\executeifdefined{\??pp:2:#1}{}]}} + [\executeifdefined{\??pp:2:#1}{\v!default}]}} {\doifassignmentelse{#2} {\getparameters[\??pp\executeifdefined{\??pp:1:#1}{#1}][#2]} {\expanded{\dodosetuppapersize @@ -1390,9 +1390,14 @@ \c!height=\dimexpr2\paperwidth +1.5cm\relax] \definepapersize - [samesized] - [ \c!width=\paperwidth, - \c!height=\paperheight] + [\v!default] + [ \c!width=\paperwidth, + \c!height=\paperheight] + +\definepapersize + [samesized] + [ \c!width=\paperwidth, + \c!height=\paperheight] \setuppapersize [A4][samesized] diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index ddd731194..453aa9d08 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/fonts/dingbats.lfg b/tex/context/fonts/dingbats.lfg new file mode 100644 index 000000000..2e2ed7c37 --- /dev/null +++ b/tex/context/fonts/dingbats.lfg @@ -0,0 +1,212 @@ +return { + name = "dingbats", + version = "1.00", + comment = "Goodies that complement dingbats (funny names).", + author = "Hans Hagen", + copyright = "ConTeXt development team", + remapping = { + unicodes = { + a1 = 0x2701, + a10 = 0x2721, + a100 = 0x275E, + a101 = 0x2761, + a102 = 0x2762, + a103 = 0x2763, + a104 = 0x2764, + a105 = 0x2710, + a106 = 0x2765, + a107 = 0x2766, + a108 = 0x2767, + a109 = 0x2660, + a11 = 0x261B, + a110 = 0x2665, + a111 = 0x2666, + a112 = 0x2663, + a117 = 0x2709, + a118 = 0x2708, + a119 = 0x2707, + a12 = 0x261E, + a120 = 0x2460, + a121 = 0x2461, + a122 = 0x2462, + a123 = 0x2463, + a124 = 0x2464, + a125 = 0x2465, + a126 = 0x2466, + a127 = 0x2467, + a128 = 0x2468, + a129 = 0x2469, + a13 = 0x270C, + a130 = 0x2776, + a131 = 0x2777, + a132 = 0x2778, + a133 = 0x2779, + a134 = 0x277A, + a135 = 0x277B, + a136 = 0x277C, + a137 = 0x277D, + a138 = 0x277E, + a139 = 0x277F, + a14 = 0x270D, + a140 = 0x2780, + a141 = 0x2781, + a142 = 0x2782, + a143 = 0x2783, + a144 = 0x2784, + a145 = 0x2785, + a146 = 0x2786, + a147 = 0x2787, + a148 = 0x2788, + a149 = 0x2789, + a15 = 0x270E, + a150 = 0x278A, + a151 = 0x278B, + a152 = 0x278C, + a153 = 0x278D, + a154 = 0x278E, + a155 = 0x278F, + a156 = 0x2790, + a157 = 0x2791, + a158 = 0x2792, + a159 = 0x2793, + a16 = 0x270F, + a160 = 0x2794, + a161 = 0x2192, + a162 = 0x27A3, + a163 = 0x2194, + a164 = 0x2195, + a165 = 0x2799, + a166 = 0x279B, + a167 = 0x279C, + a168 = 0x279D, + a169 = 0x279E, + a17 = 0x2711, + a170 = 0x279F, + a171 = 0x27A0, + a172 = 0x27A1, + a173 = 0x27A2, + a174 = 0x27A4, + a175 = 0x27A5, + a176 = 0x27A6, + a177 = 0x27A7, + a178 = 0x27A8, + a179 = 0x27A9, + a18 = 0x2712, + a180 = 0x27AB, + a181 = 0x27AD, + a182 = 0x27AF, + a183 = 0x27B2, + a184 = 0x27B3, + a185 = 0x27B5, + a186 = 0x27B8, + a187 = 0x27BA, + a188 = 0x27BB, + a189 = 0x27BC, + a19 = 0x2713, + a190 = 0x27BD, + a191 = 0x27BE, + a192 = 0x279A, + a193 = 0x27AA, + a194 = 0x27B6, + a195 = 0x27B9, + a196 = 0x2798, + a197 = 0x27B4, + a198 = 0x27B7, + a199 = 0x27AC, + a2 = 0x2702, + a20 = 0x2714, + a200 = 0x27AE, + a201 = 0x27B1, + a202 = 0x2703, + a203 = 0x2750, + a204 = 0x2752, + a205 = 0xF8DD, + a206 = 0xF8DF, + a21 = 0x2715, + a22 = 0x2716, + a23 = 0x2717, + a24 = 0x2718, + a25 = 0x2719, + a26 = 0x271A, + a27 = 0x271B, + a28 = 0x271C, + a29 = 0x2722, + a3 = 0x2704, + a30 = 0x2723, + a31 = 0x2724, + a32 = 0x2725, + a33 = 0x2726, + a34 = 0x2727, + a35 = 0x2605, + a36 = 0x2729, + a37 = 0x272A, + a38 = 0x272B, + a39 = 0x272C, + a4 = 0x260E, + a40 = 0x272D, + a41 = 0x272E, + a42 = 0x272F, + a43 = 0x2730, + a44 = 0x2731, + a45 = 0x2732, + a46 = 0x2733, + a47 = 0x2734, + a48 = 0x2735, + a49 = 0x2736, + a5 = 0x2706, + a50 = 0x2737, + a51 = 0x2738, + a52 = 0x2739, + a53 = 0x273A, + a54 = 0x273B, + a55 = 0x273C, + a56 = 0x273D, + a57 = 0x273E, + a58 = 0x273F, + a59 = 0x2740, + a6 = 0x271D, + a60 = 0x2741, + a61 = 0x2742, + a62 = 0x2743, + a63 = 0x2744, + a64 = 0x2745, + a65 = 0x2746, + a66 = 0x2747, + a67 = 0x2748, + a68 = 0x2749, + a69 = 0x274A, + a7 = 0x271E, + a70 = 0x274B, + a71 = 0x25CF, + a72 = 0x274D, + a73 = 0x25A0, + a74 = 0x274F, + a75 = 0x2751, + a76 = 0x25B2, + a77 = 0x25BC, + a78 = 0x25C6, + a79 = 0x2756, + a8 = 0x271F, + a81 = 0x25D7, + a82 = 0x2758, + a83 = 0x2759, + a84 = 0x275A, + a85 = 0xF8DE, + a86 = 0xF8E0, + a87 = 0xF8E1, + a88 = 0xF8E2, + a89 = 0xF8D7, + a9 = 0x2720, + a90 = 0xF8D8, + a91 = 0xF8DB, + a92 = 0xF8DC, + a93 = 0xF8D9, + a94 = 0xF8DA, + a95 = 0xF8E3, + a96 = 0xF8E4, + a97 = 0x275B, + a98 = 0x275C, + a99 = 0x275D, + }, + }, +} diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index cfe417ab9..840e64e4a 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 03/25/11 19:31:40 +-- merge date : 03/26/11 11:35:06 do -- begin closure to overcome local limits and interference -- cgit v1.2.3