From df96ce30a9d14d115fef77a6abe1a5e852906f88 Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 7 Oct 2013 23:20:22 +0300 Subject: beta 2013.10.07 22:06 --- doc/context/scripts/mkiv/mtx-fonts.html | 77 ++++++++++++++++++++ doc/context/scripts/mkiv/mtx-fonts.man | 63 ++++++++++++++++ doc/context/scripts/mkiv/mtx-fonts.xml | 59 +++++++++++++++ scripts/context/lua/mtx-fonts.lua | 2 +- tex/context/base/catc-def.mkiv | 2 + tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4112 -> 4109 bytes tex/context/base/context.mkiv | 4 +- tex/context/base/font-syn.lua | 5 +- tex/context/base/font-trt.lua | 7 +- tex/context/base/node-aux.lua | 19 +++++ tex/context/base/node-ref.lua | 15 ++-- tex/context/base/s-inf-03.pdf | Bin 1981 -> 0 bytes tex/context/base/status-files.pdf | Bin 24695 -> 24520 bytes tex/context/base/status-lua.log | 79 --------------------- tex/context/base/status-lua.pdf | Bin 0 -> 224671 bytes tex/context/base/strc-not.mkvi | 2 +- tex/context/base/typo-tal.mkiv | 2 +- tex/context/fonts/treatments.lfg | 36 ++++++++-- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 20 files changed, 275 insertions(+), 101 deletions(-) create mode 100644 doc/context/scripts/mkiv/mtx-fonts.html create mode 100644 doc/context/scripts/mkiv/mtx-fonts.man create mode 100644 doc/context/scripts/mkiv/mtx-fonts.xml delete mode 100644 tex/context/base/s-inf-03.pdf delete mode 100644 tex/context/base/status-lua.log create mode 100644 tex/context/base/status-lua.pdf diff --git a/doc/context/scripts/mkiv/mtx-fonts.html b/doc/context/scripts/mkiv/mtx-fonts.html new file mode 100644 index 000000000..3ddc2fa8e --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-fonts.html @@ -0,0 +1,77 @@ + + + + + + + + + + + ConTeXt Font Database Management 0.21 + + + + + +
+
ConTeXt Font Database Management 0.21
+
+
+
+
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl
+
+
+
+ +
+
+

Command line options

+ + + + + + + + + + + + + + + + + + + +
flagvaluedescription
--savesave open type font in raw table
--unpacksave a tma file in a more readable format
--reloadgenerate new font database (use --force when in doubt)
--reload--simple:generate luatex-fonts-names.lua (not for context!)
--list--name: list installed fonts, filter by name [--pattern]
--list--spec: list installed fonts, filter by spec [--filter]
--list--file: list installed fonts, filter by file [--pattern]
--patternstrfilter files using pattern
--filterlistkey-value pairs
--allshow all found instances (combined with other flags)
--infogive more details
--tracklistenable trackers
--statisticssome info about the database
+
+

Examples

+mtxrun --script font --list somename (== --pattern=*somename*) +

mtxrun --script font --list --name somename +
mtxrun --script font --list --name --pattern=*somename* +

mtxrun --script font --list --spec somename +
mtxrun --script font --list --spec somename-bold-italic +
mtxrun --script font --list --spec --pattern=*somename* +
mtxrun --script font --list --spec --filter="fontname=somename" +
mtxrun --script font --list --spec --filter="familyname=somename,weight=bold,style=italic,width=condensed" +
mtxrun --script font --list --spec --filter="familyname=crap*,weight=bold,style=italic" +

mtxrun --script font --list --all +
mtxrun --script font --list --file somename +
mtxrun --script font --list --file --all somename +
mtxrun --script font --list --file --pattern=*somename* +

+
+ + diff --git a/doc/context/scripts/mkiv/mtx-fonts.man b/doc/context/scripts/mkiv/mtx-fonts.man new file mode 100644 index 000000000..b31e39abd --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-fonts.man @@ -0,0 +1,63 @@ +.TH "mtx-fonts" "1" "01-01-2013" "version 0.21" "ConTeXt Font Database Management" +.SH NAME +.B mtx-fonts +.SH SYNOPSIS +.B mtxrun --script fonts [ +.I OPTIONS ... +.B ] [ +.I FILENAMES +.B ] +.SH DESCRIPTION +.B ConTeXt Font Database Management +.SH OPTIONS +.TP +.B --save +save open type font in raw table +.TP +.B --unpack +save a tma file in a more readable format +.TP +.B --reload +generate new font database (use --force when in doubt) +.TP +.B --reload +--simple:generate luatex-fonts-names.lua (not for context!) +.TP +.B --list +--name: list installed fonts, filter by name [--pattern] +.TP +.B --list +--spec: list installed fonts, filter by spec [--filter] +.TP +.B --list +--file: list installed fonts, filter by file [--pattern] +.TP +.B --pattern=str +filter files using pattern +.TP +.B --filter=list +key-value pairs +.TP +.B --all +show all found instances (combined with other flags) +.TP +.B --info +give more details +.TP +.B --track=list +enable trackers +.TP +.B --statistics +some info about the database +.SH AUTHOR +More information about ConTeXt and the tools that come with it can be found at: + + +.B "maillist:" +ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context + +.B "webpage:" +http://www.pragma-ade.nl / http://tex.aanhet.net + +.B "wiki:" +http://contextgarden.net diff --git a/doc/context/scripts/mkiv/mtx-fonts.xml b/doc/context/scripts/mkiv/mtx-fonts.xml new file mode 100644 index 000000000..b138a064a --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-fonts.xml @@ -0,0 +1,59 @@ + + + + mtx-fonts + ConTeXt Font Database Management + 0.21 + + + + + save open type font in raw table + save a tma file in a more readable format + + + generate new font database (use when in doubt) + :generate luatex-fonts-names.lua (not for context!) + + + : list installed fonts, filter by name [] + : list installed fonts, filter by spec [] + : list installed fonts, filter by file [] + + + filter files using pattern + key-value pairs + show all found instances (combined with other flags) + give more details + enable trackers + some info about the database + + + + + + Examples + + mtxrun --script font --list somename (== --pattern=*somename*) + + + mtxrun --script font --list --name somename + mtxrun --script font --list --name --pattern=*somename* + + + mtxrun --script font --list --spec somename + mtxrun --script font --list --spec somename-bold-italic + mtxrun --script font --list --spec --pattern=*somename* + mtxrun --script font --list --spec --filter="fontname=somename" + mtxrun --script font --list --spec --filter="familyname=somename,weight=bold,style=italic,width=condensed" + mtxrun --script font --list --spec --filter="familyname=crap*,weight=bold,style=italic" + + + mtxrun --script font --list --all + mtxrun --script font --list --file somename + mtxrun --script font --list --file --all somename + mtxrun --script font --list --file --pattern=*somename* + + + + diff --git a/scripts/context/lua/mtx-fonts.lua b/scripts/context/lua/mtx-fonts.lua index 745f7b90a..7d8b5f610 100644 --- a/scripts/context/lua/mtx-fonts.lua +++ b/scripts/context/lua/mtx-fonts.lua @@ -85,8 +85,8 @@ local report = application.report if not fontloader then fontloader = fontforge end dofile(resolvers.findfile("font-otp.lua","tex")) -- we need to unpack the font for analysis -dofile(resolvers.findfile("font-trt.lua","tex")) dofile(resolvers.findfile("font-syn.lua","tex")) +dofile(resolvers.findfile("font-trt.lua","tex")) dofile(resolvers.findfile("font-mis.lua","tex")) scripts = scripts or { } diff --git a/tex/context/base/catc-def.mkiv b/tex/context/base/catc-def.mkiv index cfbaed171..bf794f045 100644 --- a/tex/context/base/catc-def.mkiv +++ b/tex/context/base/catc-def.mkiv @@ -142,4 +142,6 @@ \normalprotected\def\unprotect{\pushcatcodetable\setcatcodetable\prtcatcodes} \normalprotected\def\protect {\popcatcodetable} +% \prependtoks \catcodetable\ctxcatcodes \to \everyjob + \endinput diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 5c1d3dfab..03c066abb 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.10.07 12:02} +\newcontextversion{2013.10.07 22:06} %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 300e54312..3b273abfa 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 6bf94d34b..920e03081 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.10.07 12:02} +\edef\contextversion{2013.10.07 22:06} \edef\contextkind {beta} %D For those who want to use this: @@ -91,6 +91,8 @@ \loadmarkfile{cldf-ini} +% \tracecatcodetables + % From here on we have \unexpanded being \normalprotected, as we already had % \unexpanded long before etex came around. diff --git a/tex/context/base/font-syn.lua b/tex/context/base/font-syn.lua index ead571938..18da4f2e1 100644 --- a/tex/context/base/font-syn.lua +++ b/tex/context/base/font-syn.lua @@ -56,6 +56,9 @@ fonts.names = names local filters = names.filters or { } names.filters = filters +local treatments = names.treatments or { } +names.treatments = treatments + names.data = names.data or allocate { } names.version = 1.123 @@ -828,7 +831,7 @@ local function analyzefiles(olddata) local oldindices = olddata and olddata.indices or { } local oldspecifications = olddata and olddata.specifications or { } local oldrejected = olddata and olddata.rejected or { } - local treatmentdata = fonts.treatments and fonts.treatments.data or { } -- when used outside context + local treatmentdata = treatments.data or { } -- when used outside context local function identify(completename,name,suffix,storedname) local pathpart, basepart = splitbase(completename) nofread = nofread + 1 diff --git a/tex/context/base/font-trt.lua b/tex/context/base/font-trt.lua index 319863fa3..ebe8007b7 100644 --- a/tex/context/base/font-trt.lua +++ b/tex/context/base/font-trt.lua @@ -17,14 +17,17 @@ something in a manual). It's one of the few places where an lfg file gets loaded outside the goodies manager.

--ldx]]-- -local treatments = utilities.storage.allocate() +local treatments = fonts.treatments or { } fonts.treatments = treatments -local treatmentdata = { } + +local treatmentdata = treatments.data or utilities.storage.allocate() treatments.data = treatmentdata + treatments.filename = "treatments.lfg" local trace_treatments = false trackers.register("fonts.treatments", function(v) trace_treatments = v end) local report_treatment = logs.reporter("fonts","treatment") + treatments.report = report_treatment function treatments.trace(...) diff --git a/tex/context/base/node-aux.lua b/tex/context/base/node-aux.lua index 16e6d55a0..443c78547 100644 --- a/tex/context/base/node-aux.lua +++ b/tex/context/base/node-aux.lua @@ -369,3 +369,22 @@ local function locate(start,wantedid,wantedsubtype) end nodes.locate = locate + +-- I have no use for this yet: +-- +-- \skip0=10pt plus 2pt minus 2pt +-- \cldcontext{"\letterpercent p",tex.stretch_amount(tex.skip[0],1000)} -- 14.30887pt +-- +-- local gluespec_code = nodes.nodecodes.gluespec +-- +-- function tex.badness_to_ratio(badness) +-- return (badness/100)^(1/3) +-- end +-- +-- function tex.stretch_amount(skip,badness) +-- if skip.id == gluespec_code then +-- return skip.width + (badness and (badness/100)^(1/3) or 1) * skip.stretch +-- else +-- return 0 +-- end +-- end diff --git a/tex/context/base/node-ref.lua b/tex/context/base/node-ref.lua index baece6e50..aa864fb1c 100644 --- a/tex/context/base/node-ref.lua +++ b/tex/context/base/node-ref.lua @@ -498,13 +498,16 @@ local function makedestination(width,height,depth,reference) nofdestinations = nofdestinations + 1 for n=1,#name do local annot = nodeinjections.destination(width,height,depth,name[n],view) - if not result then - result = annot - else - current.next = annot - annot.prev = current + if annot then + -- probably duplicate + if not result then + result = annot + else + current.next = annot + annot.prev = current + end + current = find_node_tail(annot) end - current = find_node_tail(annot) end if result then -- some internal error diff --git a/tex/context/base/s-inf-03.pdf b/tex/context/base/s-inf-03.pdf deleted file mode 100644 index 30df291ed..000000000 Binary files a/tex/context/base/s-inf-03.pdf and /dev/null differ diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 054703a76..13ebd5715 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 deleted file mode 100644 index c65fcd67e..000000000 --- a/tex/context/base/status-lua.log +++ /dev/null @@ -1,79 +0,0 @@ -(cont-yes.mkiv - -ConTeXt ver: 2013.10.07 12:02 MKIV beta fmt: 2013.10.7 int: english/english - -system > 'cont-new.mkiv' loaded -(cont-new.mkiv) -system > 'cont-loc.mkiv' loaded -(c:/data/develop/context/sources/cont-loc.mkiv -!!!! > testing prevdepth across page -) -system > 'cont-exp.mkiv' loaded -interface > macros > processed mkvi file 'c:/data/develop/context/sources/cont-exp.mkiv', delta 0 -interface > macros > processed mkvi file 'c:/data/develop/context/sources/cont-exp.mkiv', delta 0 -(c:/data/develop/context/sources/cont-exp.mkiv) -system > files > jobname 's-inf-03', input './s-inf-03.mkiv', result 'status-lua.pdf' -fonts > latin modern fonts are not preloaded -languages > language 'en' is active -(c:/data/develop/context/texmf/tex/context/base/s-inf-03.mkiv (c:/data/develop/context/sources/type-loc.mkiv) (type-imp-dejavu.mkiv) (type-imp-xits.mkiv (type-imp-texgyre.mkiv)){c:/data/develop/tex-context/tex/texmf-context/fonts/map/pdftex/context/mkiv-base.map} (virtual://buffer.noname.1 -references > unknown reference '[][]' -references > unknown reference '[][attributes]' -references > unknown reference '[][backends]' -references > unknown reference '[][bibtex]' -references > unknown reference '[][bit32]' -references > unknown reference '[][blobs]' -references > unknown reference '[][boolean]' -references > unknown reference '[][buffers]' -references > unknown reference '[][builders]' -references > unknown reference '[][caches]' -references > unknown reference '[][callback]' -references > unknown reference '[][callbacks]' -references > unknown reference '[][catcodes]' -references > unknown reference '[][characters]' -references > unknown reference '[][chemistry]' -references > unknown reference '[][commands]' -references > unknown reference '[][containers]' -references > unknown reference '[][context]' -references > unknown reference '[][converters]' -references > unknown reference '[][coroutine]' -references > unknown reference '[][ctxrunner]' -references > unknown reference '[][debug]' -references > unknown reference '[][dir]' -references > unknown reference '[][directives]' -references > unknown reference '[][document]' -references > unknown reference '[][documentdata]' -references > unknown reference '[][environment]' -references > unknown reference '[][epdf]' -references > unknown reference '[][experiments]' -references > unknown reference '[][figures]' -references > unknown reference '[][file]' -references > unknown reference '[][floats]' -references > unknown reference '[][font]' -references > unknown reference '[][fontloader]' -references > unknown reference '[][fonts]' -references > unknown reference '[][functions]' -references > unknown reference '[][graphics]' -references > unknown reference '[][gzip]' -references > unknown reference '[][img]' -references > unknown reference '[][interactions]' -references > unknown reference '[][interfaces]' -references > unknown reference '[][io]' -references > unknown reference '[][job]' -references > unknown reference '[][lang]' -references > unknown reference '[][languages]' -references > unknown reference '[][layouts]' -references > unknown reference '[][lfs]' -references > unknown reference '[][libraries]' -references > unknown reference '[][lmx]' -references > unknown reference '[][logs]' -references > unknown reference '[][lpdf]' -references > unknown reference '[][lpeg]' -references > unknown reference '[][ltn12]' -references > unknown reference '[][lua]' -references > unknown reference '[][luatex]' -references > unknown reference '[][lxml]' -references > unknown reference '[][math]' -references > unknown reference '[][mathematics]' -references > unknown reference '[][mbox]' -references > unknown reference '[][md5]' -references > unknown reference '[][metapost \ No newline at end of file diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf new file mode 100644 index 000000000..c5d63ed66 Binary files /dev/null and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-not.mkvi b/tex/context/base/strc-not.mkvi index d2c916daa..cf1735da8 100644 --- a/tex/context/base/strc-not.mkvi +++ b/tex/context/base/strc-not.mkvi @@ -1200,7 +1200,7 @@ % as we can have collected notes (e.g. in tables) we need to recover % \currentdescriptionattribute and \currentdescriptionsynchronize % - %\reinstateconstructionnumberentry\currentconstructionlistentry % we could store the number in the entry + \reinstateconstructionnumberentry\currentconstructionlistentry % we could store the number in the entry (e.g. needed when local notes in table) % \dontcomplain % \begingroup diff --git a/tex/context/base/typo-tal.mkiv b/tex/context/base/typo-tal.mkiv index f67eadc49..a34cb8bb6 100644 --- a/tex/context/base/typo-tal.mkiv +++ b/tex/context/base/typo-tal.mkiv @@ -109,4 +109,4 @@ \def\setfirstpasscharacteralign {\let\checkcharacteralign\gobbleoneargument} \def\setsecondpasscharacteralign{\let\checkcharacteralign\firstofoneargument} -\endinput +\protect \endinput diff --git a/tex/context/fonts/treatments.lfg b/tex/context/fonts/treatments.lfg index 54f35d535..18a43525b 100644 --- a/tex/context/fonts/treatments.lfg +++ b/tex/context/fonts/treatments.lfg @@ -8,14 +8,16 @@ -- applied at runtime. An experimental auto-loaded goodie approach is not yet -- enabled and will never be if treatments can do the job. -local unifraktur = { +local report = fonts.treatments.report + +local fix_unifraktur = { comment = "suspicious x height", fixes = function(data) local pfminfo = data.metadata.pfminfo if pfminfo then local os2_xheight = pfminfo.os2_xheight if os2_xheight and os2_xheight < 350 then - fonts.treatments.report("suspicious x-height %a, nilling",os2_xheight) + report("suspicious x-height %a, nilling",os2_xheight) pfminfo.os2_xheight_original = os2_xheight pfminfo.os2_xheight = nil end @@ -23,6 +25,25 @@ local unifraktur = { end, } +local fix_lmmonoregular = { + comment = "wrong widths of some glyphs", + fixes = function(data) + report("fixing some wrong widths") + local unicodes = data.resources.unicodes + local descriptions = data.descriptions + local defaultwidth = descriptions[unicodes["zero"]].width + descriptions[unicodes["six"] ].width = defaultwidth + descriptions[unicodes["nine"] ].width = defaultwidth + descriptions[unicodes["caron"] ].width = defaultwidth + descriptions[unicodes["perthousand"] ].width = defaultwidth + descriptions[unicodes["numero"] ].width = defaultwidth + descriptions[unicodes["caron.cap"] ].width = defaultwidth + descriptions[unicodes["six.taboldstyle"] ].width = defaultwidth + descriptions[unicodes["nine.taboldstyle"]].width = defaultwidth + descriptions[unicodes["dollar.oldstyle" ]].width = defaultwidth + end +} + return { name = "treatments", version = "1.00", @@ -43,10 +64,11 @@ return { comment = "a text file with suffix ttf", -- used in test file ignored = true, }, - ["latinmodern-math.otf"] = { - comment = "experimental", - }, - ["unifrakturcook.ttf"] = unifraktur, - ["unifrakturmaguntia.ttf"] = unifraktur, + -- ["latinmodern-math.otf"] = { + -- comment = "experimental", + -- }, + ["lmmono12regular.otf"] = fix_lmmonoregular, + ["unifrakturcook.ttf"] = fix_unifraktur, + ["unifrakturmaguntia.ttf"] = fix_unifraktur, }, } diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 103249c29..1a5fd0a34 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 : 10/07/13 12:02:11 +-- merge date : 10/07/13 22:06:08 do -- begin closure to overcome local limits and interference -- cgit v1.2.3