summaryrefslogtreecommitdiff
path: root/src/luaotfload-database.lua
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'canonical/pr/402'Philipp Gesang2017-02-021-1/+10
|\
| * use design size to calculate the distance for `inrange`Yan Zhou2017-02-021-1/+10
| |
* | Merge remote-tracking branch 'canonical/pr/401'Philipp Gesang2017-02-021-1/+1
|\ \
| * | Avoid more than one `inrange` when there’s no overlapYan Zhou2017-02-021-1/+1
| |/
* / [db] fix design size scalingPhilipp Gesang2017-02-021-14/+29
|/ | | | | | | | | | | | | | | | | | | | | | | | As discussed in issue #398. Ad futuram rei memoriam the gist of it: - For the index, all values are scaled (decipoints * sp) / 10 * (7227 / 7200). - The ``bp`` case (the default, OT-standard), needs no conversion because it matches how values are stored in the index. - The ``pt`` case essentially reverts the bp→pt part of scaling done for the database by scaling the asked size by the same factor, i. e. by 7227 / 7200. - The ``dd`` needs an extra 1238 / 1157. Requesting a font at 10pt will then: - ask for a size of 655360 for ``bp`` / default; - ask for 657817 for ``pt``; - ask for 703870 for ``dd``.
* Fix calculation of database optical sizesYan Zhou2017-02-021-5/+5
| | | The conversion from reported design size etc., to "true `sp` value" is actually converting from `bp` to `pt`.
* [db] fix duplicate files in scan listPhilipp Gesang2017-01-291-3/+1
| | | | | | Fix #394 Due to an oversight, all files except AFM got scanned twice.
* [*] bump year and versionPhilipp Gesang2017-01-291-1/+1
|
* [db] move design size handling into lookupPhilipp Gesang2017-01-291-44/+45
| | | | | Store design sizes in sp in index. Lookups are performed using sp so the design size factor can be applied at runtime.
* [conf] improve defaults handling of designsize-dimenPhilipp Gesang2017-01-291-6/+4
|
* [conf,db] make design size dimension configurablePhilipp Gesang2017-01-291-7/+32
|
* [db] scale optical sizes to ptPhilipp Gesang2017-01-291-21/+33
| | | | Fix #389
* [db] tentatively reintroduce fallback for italicPhilipp Gesang2016-10-191-6/+12
| | | | | | | | | | Fix assignment of LM series fonts. Currently these are broken because of borked typosub identifiers like “8oblique” that prevent exact name matching and at the same time exclude matching the (usable) subfamily. Introduce a heuristic based on the italic angle value that assigns italic as a fallback in these cases. Test: https://bitbucket.org/phg/lua-la-tex-tests/src/857c83ca98cb35153979a0613d3a742bfd93f834/lua/tla-names-3-lm.lua
* [db,conf,doc] kill off references to FF loaderPhilipp Gesang2016-10-171-2/+0
| | | | | The config option must go since the FF based code was removed already some time ago.
* [db] install required functions from font-synPhilipp Gesang2016-09-201-0/+44
| | | | | | The loader makes some assumptions about available lookup functions early on. Since fonts-syn.lua only installed dummies for most of these, we might as well do that too.
* [db] fix initialization behavior to prevent crashPhilipp Gesang2016-06-151-5/+4
| | | | | | | | | | | Reported by @dohyunkim: https://github.com/lualatex/luaotfload/pull/364#issuecomment-226059150 Under certain circumstances, update_names() was invoked with an empty table instead of a correctly initialized one, breaking the assumptions of the db populating code. This commit also guards more strongly against this kind of oversight and tidies up the db constructor.
* [db] adapt error handling to new fontloader conventionsPhilipp Gesang2016-06-121-14/+21
|
* [db] fix crash with missing name dataPhilipp Gesang2016-06-121-2/+2
|
* [db] resolve symlinks when traversing the file systemPhilipp Gesang2016-06-081-31/+41
| | | | | | | | | Addresses #359 and #325 To avoid duplicate entries, paths have to be resolved before collecting them. This necessitates loop detection of some sort, currently implemented naively as a flat table containing the directories already traversed.
* [db] include values of missing fields in diagnosticPhilipp Gesang2016-06-071-2/+3
|
* [db] fix name assignmentPhilipp Gesang2016-05-311-11/+34
| | | | | | | | | Address issue #356 The DejaVu Family needs stricter handling of fallback choices so we take the font’s avertised width into consideration. This used to be easier with the old loader since it had some decent heuristics in place for the more or less reliable “fontstyle_name”.
* [db] ditch fontforge compatibility codePhilipp Gesang2016-05-261-179/+116
| | | | | | | | Remove all the FF stuff and the config option. The transition is complete, no need to keep these things around any longer. Since we won’t be going back to the FF loader we might as well dispose of the junk identifiers and the translation layer as well.
* [db] fix inclusion of AFM fontsPhilipp Gesang2016-05-091-14/+19
| | | | | The assumption that the AFM/PFB pair will reside in the same directory together is wrong for TeX Live. Hence the new lookup against kpse.
* [db] restrict bold style fallback heuristicPhilipp Gesang2016-04-271-7/+15
| | | | | | @dohyunkim pointed out that due to the too broad criteria, secondary style variants like “heavy”, “black” ended up getting picked over the actual “bold”.
* [db] disarm fallback assignmentPhilipp Gesang2016-04-271-6/+6
| | | | | | | When adapting to the new loader we repeated the mistake of classifying “bold” faces by too broad criteria, thereby sabotaging the recognition of large families from Adobe. Restore the old behavior by only treating those faces as bold fallback that advertise and exact weight of 700.
* [db] adapt call to getinfo() for revised interfacePhilipp Gesang2016-04-271-3/+10
|
* [db] fix family / style matchingPhilipp Gesang2016-04-271-65/+24
| | | | | | | | | | Fix #342 Due to the reassigned fontname fields, certain values designating styles ended up being interpreted wrongly and members of the font families ended up in the wrong table. Thanks to @dohyunkim for spotting the issue.
* [db] fix version fieldPhilipp Gesang2016-04-241-1/+1
| | | | | | | Fix #337 This amends the apparent failure of luaotfload-tool as reported by @eg9 and others.
* [db,loaders] clarify support for PFBPhilipp Gesang2016-04-241-3/+4
| | | | | | | | | | The current PFB loader, although it is indeed completely independent of the FF libraries, is not yet feature complete. Only the loading of vectors is supported which suffices for font rendering given the AFM information. According to Hans, we have decent chance of it growing into a full-fledged reader for 1.0.
* Revert "[db,conf] drop support for PS fonts"Philipp Gesang2016-04-211-6/+64
| | | | | | | | This reverts commit c4c250414a83cc8c4ae99d286ed69a3763510609. Partially, anyways: All mentions of the PFA format were stripped. Since the new loader adds back in support for PFB-flavored PS fonts without AFM we should support it from Luaotfload as well.
* [*] remove references to obsolete formats (PF{A,B}, DFONT, FEA)Philipp Gesang2016-04-201-5/+3
| | | | | | | Thanks to @dohyunkim for reminding me to be thorough! At least in our own files. A patch has been sent upstream to apply the same change to the generic loader.
* [db,conf] drop support for PS fontsPhilipp Gesang2016-04-201-66/+5
| | | | | The “AFM” code stays since PFB accompanied by an AFM file is still supported by the fontloader.
* [*] shred 2014 fontloaderPhilipp Gesang2016-04-191-1/+0
| | | | | | This one hasn’t been touched for ages. The will be no compatibility loader this year. For testing, creating a loader on the fly from the Git repos is sufficient.
* [db,fontloader] fix subfont table handling (by Dohyun Kim)Philipp Gesang2016-04-181-1/+1
| | | | | | TTC subfonts must be considered if there is at least one subfont. Discovered and fixed by @dohyunkim; the fix for ``font-otr.lua`` goes upstream.
* [db] fix misleading error messagePhilipp Gesang2016-04-181-4/+2
| | | | | | | No such warnings with the new loader. Instead we need to test for the ``fontname`` / ``fullname`` fields. Thanks to @dohyunkim for reporting.
* [db] undo commented out texmf tree processingPhilipp Gesang2016-04-171-1/+1
| | | | D’oh! Too much debugging =)
* [db] fix extraction of name info important for family clusteringPhilipp Gesang2016-04-151-76/+98
| | | | | | | … or perhaps more accurately, “megafamily”. For the time being we prefer the “windows” versions of the fonts due to the higher quality of the “typographic family” and “subfamily” fields. Another advantage of the new loader over FF is that we’re even given that choice.
* [db] pull raw name information with getinfo()Philipp Gesang2016-04-131-3/+9
| | | | | | This facility was added by Hans to accomodate our peculiar requirements: There should be no fallback from prefmodifiers to familyname since that removes valuable information about larger font sets like the Adobe ones.
* [db] add some stats regarding the new loaderPhilipp Gesang2016-04-131-25/+99
|
* [db] adjust names extraction to Lua loaderPhilipp Gesang2016-04-121-59/+79
|
* [db] in ff mode, collect font object after accessPhilipp Gesang2016-04-101-3/+1
|
* [db] do not rely on __gc for font object lifetimesPhilipp Gesang2016-04-101-0/+5
| | | | | | | The penalty for having font object closed automatically is huge: It takes around nine seconds more to rebuild the font database: 58 s with __gc, 49 s by closing manually. Even if it’s not the default, we reintroduce the code for closing fonts manually to avoid that situation.
* [conf,db] allow switching back to fontforgePhilipp Gesang2016-04-091-4/+17
| | | | | | There are some non-negligible differences in the reader output, especially concerning font names. Until this is sorted out we need a fast way to switch back to the old code for reference.
* [tool,db] kill off fontforgePhilipp Gesang2016-04-091-39/+12
| | | | | | | | This has been coming for some time: Upstream now provides full Opentype reader capabilities. This allows Luatex to drop those horrible fontforge libraries. Since the API is pretty similar, for Luaotfload it means little change and a decent speed gain. Though we still need to investigate whether the result is equivalent or at least acceptable.
* [db] ditch our gzip wrappersPhilipp Gesang2016-04-081-41/+4
| | | | | We again depend on the full Lualibs set for some time so our wrappers are irrelevant as we can just use the similar once from there.
* [*] update dates, versionPhilipp Gesang2016-04-071-1/+1
|
* [features,loaders] fix lookup conflicts via introduction of “evl” lookupPhilipp Gesang2016-02-191-2/+2
| | | | | | | | This introduces a forced lookup type “evl” that bypasses the other methods. The specification is extended with the correct values including a more meaningful hash string. As a result, the loader no longer attempts to interpret the specification as a “file:” request but the backend can still resolve the necessary files.
* [*] bump version and datePhilipp Gesang2015-12-091-2/+2
| | | | | We still had some 2014 values lingering around dark corners. In theory this is all meaningless wrt. the Git repo.
* [tool,db] make cache directives work againPhilipp Gesang2015-11-281-1/+1
| | | | | These were rendered unusable due to the suspended initialization. Creating the directives mapping on the fly is just as good.
* [db] fix search path construction on Win hostsPhilipp Gesang2015-11-221-1/+1
| | | | | | | | | | This seems to help with the examples from #165 that rely on setting ``$OPENTYPEFONTS`` via the environment. Referencing a non-existing value caused a branch to always pick Unix path separators. The affair was pretty insidious since the paths we received from kpse were sane so the behavior was only triggered with manual overrides.