[lltx] luaotfload-database.lua

Philipp Gesang Philipp.Gesang at alumni.uni-heidelberg.de
Mon May 27 23:48:16 CEST 2013

Hi Reinhard!

···<Datum: Monday, 27. May 2013>···<Von: Reinhard Kotucha>···

> On 2013-05-26 at 11:10:08 +0200, Philipp Gesang wrote:
>  > You could also replace the file resolver.
>  > 
>  >     fonts.definers.resolvers.file = function (spec)
>  >       --- rewrite spec.name here
>  >     end
> Hi Philipp,
> spec.name contains the name without a path, so I suppose that the path
> is added somewhere else later.

The resolver replaces the file name along with other fields of
the spec. If it doesn’t resolve to a full path, then check_otf()
(see font-otf.lua) will do it at a later stage; if it can locate
the font, anyways. Sorry for the mislead.

Replacing the resolver is a bit crude in my eyes, so I added a
gimmick: the “my” lookup that lets you call your own resolver in
a “luaotfload.resolve_font” callback. Here’s a demo:


It can’t solve your problem, though.

> Using the patch_font callback works fine.

That would depend on how the font is \dump’ed. Having never
looked at that code I can’t predict what might happen (Élie
might). But since the path information is lost it is possible
that this will fail with non-texmf fonts.

>  > > If somebody installs TL from tug.org, I suppose that he wants to
>  > > use the versions provided by TeX Live.  Or even newer versions in
>  > > own TEXMF trees.
>  > 
>  > Or those in ~/.fonts, which is *the* canonical directory to
>  > install your preferred fonts in.
> I maintain a TeX Live system on a server, so the only way to make
> fonts accessible to all machines is to put them into a TEXMF tree.

>  > Since you are loading fonts by their filename and don’t care for
>  > system fonts, you probably have no need for a names database. We
>  > could make it optional, I guess, by installing a kpse-only file:
>  > resolver and omitting the others. This could be toggled by
>  > setting a flag in config.luaotfload.
> Yes, making it configurable is certainly a good idea.

There is now a dedicated kpse: lookup that bypasses the database
entirely. Example:

    \input luaotfload.sty
    \font\foo = "kpse:Iwona-Regular.otf:+onum"
    \font\bar = "kpse:Iwona-Regular.otf:+smcp"

    {\foo baz {\bar whatever} xyzzy}\par

>  > The texmf vs. system fonts matter could be made configurable as
>  > well, allowing the user to prioritize as they see fit. This would
>  > require either a dotfile or separate tables in the database for
>  > each of the search paths. Either way, it’s a more complex
>  > addition so it’ll probably require testing.
>  > 
>  > For a start, you can test with this branch:
>  > 
>  >     https://github.com/phi-gamma/luaotfload/commits/texmf-fonts
>  > 
>  > it restores the previous behavior of not indexing full paths for
>  > texmf fonts and also prefers them over system fonts.
> It prefers texmf fonts but they are still specified with a full path.
> The latter has always been the case in the TL-2012 version.

This is caused by the fontloader and thus outside of our sphere
of influence.

Furthermore, luaotfload-tool now has an option --prefer-texmf
that prioritizes fonts in the tex tree. To achieve that, the
filename data needs to be reorganized a bit, so I incremented the
database version. Don’t forget to erase the font cache. For this
to work during a tex run you have to set the “prioritize” field
before loading luaotfload:

      config                       = config or { }
      config.luaotfload            = config.luaotfload or { }
      config.luaotfload.prioritize = "texmf"
    \input luaotfload.sty

All these additions are still experimental and require testing.

Best regards

> Regards,
>   Reinhard
> -- 
> ----------------------------------------------------------------------------
> Reinhard Kotucha                                      Phone: +49-511-3373112
> Marschnerstr. 25
> D-30167 Hannover                              mailto:reinhard.kotucha at web.de
> ----------------------------------------------------------------------------
> Microsoft isn't the answer. Microsoft is the question, and the answer is NO.
> ----------------------------------------------------------------------------

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://tug.org/pipermail/lualatex-dev/attachments/20130527/756998ac/attachment.bin>

More information about the lualatex-dev mailing list