| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Another take on https://github.com/lualatex/luaotfload/issues/334
The parsing issues we aim to prevent occur with spaces because Luatex
treats them as argument separators. Hence apply quoting only if
necessary. Also use the appropriate format string as a defense against
garbage inputs.
|
| |
|
|
|
|
|
|
|
| |
Fixes https://github.com/lualatex/luaotfload/issues/334
Old-style font definitions only need a font name, so the extra quotes
aren’t necessary to feed the \fontname string back into \font.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The option has become redundant with the new loader so we might as well
get rid of it.
|
| |
|
| |
|
|
|
|
|
|
|
| |
No such warnings with the new loader. Instead we need to test for the
``fontname`` / ``fullname`` fields.
Thanks to @dohyunkim for reporting.
|
|
|
|
|
| |
Only font indexing is affected by “use-fontforge”. The fontloader itself
will always use the new code.
|
|
|
|
|
|
| |
The new Lua based loader consistently numbers subfonts from one, not
zero like the Fontforge one. We correct the value immediately before
passing a handled font request on to the loader.
|
| |
|
|
|
|
| |
D’oh! Too much debugging =)
|
|
|
|
|
|
|
| |
Addresses #326
This is a hot-fix with non-official code. The actual fix will come
downstream later from Context as usual.
|
| |
|
| |
|
|
|
|
|
| |
Note that this will explode on the current loader code due to a typo in
font-otr.lua. Patch submitted upstream, please be patient.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The tables emitted by the new font reader functions do not correspond to
their Fontforge counterparts. Thus, some of the display routines had to
be rewritten, in some cases like the names table this resulted in the
removal of a good deal of obsolete code.
|
| |
|
|
|
|
|
|
|
| |
… 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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fallout of the new character table loading routine.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After some discussion, Hans came up with these extensions to the new
reader. We get access to more items from the hideous “name” table. On
the one hand, this means more brokenness to endure and a less sane
matter to work with. But since our tracker was devoid of font-matching
related bug reports for some time, it’s the right move nonetheless.
In addition to the name table junk, the font loader now also includes
the “version” field in the output of “getinfo()”. It’s meaningless per
se, but it sure helps to distinguish historical bugs from the ones that
matter.
**UNTESTED**
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
Obviously, since Fontforge has been ditched, we need to adapt to the
slightly different data structures created by the Lua reader. For the
time being, we revise the code so it will not crash instantly due to the
lack of a missing ``pfminfo`` table.
Hans has been notified of our use of the ``capheight`` data and may
add that value grudgingly again.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fontloader requires parts of the ``characters`` table to be present
at load time. This turns out to interfere with our custom of installing
the lazy loader for the table components only after the fontloader has
been injected. Since inserting the code at the appropriate place in the
loading chain would be tedious and unmaintainable due to the various
load options, we just preinstall the metatable onto an empty table prior
to loading the loader.
Some precautions had to be taken regarding the ``classifiers`` subhash
of the table that needs to be relocated from the data we received via
mkcharacters.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
With revision 5624, the status library was overhauled. Among others we
lose the ``luatex_svn`` field which was rather useful for debugging :/
|
|
|
|
| |
Now that we’re heading towards TL 2016, this seems necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Building on the combination mechanism, this allows defining fallback
fonts of which all glyphs are pulled that aren’t currently part of the
base font. Example:
\input luaotfload.sty
\font \lm = file:lmroman10-regular.otf:mode=base
\font \cmu = file:cmunrm.otf:mode=base
\font \lmu = "combo: 1->\fontid\lm; 2->\fontid\cmu,fallback"
\lmu Eh bien, mon prince. Gênes et Lueques ne sont plus que des
apanages, des поместья, de la famille Buonaparte.
\bye
This allows setting Latin Modern text that contains Cyrillic letters.
Note that -- as with the other combinations -- only glyphs are
considered, no other properties of the fallback font. So besides the
occasional letter in a different script this functionality is probably
useless.
|
|
|
|
|
|
|
|
|
|
|
| |
Use arrows to emphasise what’s mapped. Allow whitespace to visually
separate items. Also allow optional grouping with parentheses.
Now it’s possible to define a combination as follows:
\font \f = "combo: 1 -> 42;
2 -> 1337, U+0042-U+0084;
3 -> (55, 0x54 * 0x45 * 0x58)"
|
|
|
|
|
|
|
|
|
|
| |
This gives more leeway to the notation, allowing font definitions to
become more readable:
\font \f = "combo: 1 / \fontid\one,
2 / \fontid\two / 0x41-0x5a,
3 / \fontid\three / 0x42,
4 / \fontid\three / 0x54 * 69 * U+58"
|
|
|
|
|
|
|
|
| |
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.
|
| |
|