Am 23.01.2018 um 17:47 schrieb Hans Hagen:
On 1/23/2018 5:06 PM, Urs Liska wrote:


...


While this compiles the three fonts always show the font that is active before the function starts to execute.

So is there a way to select one of the three predefined font families *from within Lua* so subsequent statements in the same Lua chunk see the results?
I'm not sure if this thread belongs to this list as it relates more to a macro package than to luatex

I see that - by now. Originally I thought I was looking for the right incantation to ask Lua for the relevant information. Actually I still think it would be good if it were available as some property in the font tables.

but anyhow, you can do something like this (untested):

\begingroup
  \rmfamily \edef\rmfamilyid{\fontid\font}%
  \ssfamily \edef\ssfamilyid{\fontid\font}%
  \ttfamily \edef\ttfamilyid{\fontid\font}%
  \directlua{
    myfonts = { }
    myfonts.rm = fonts.hashes.identifiers[\rmfamilyid].shared.rawdata.metadata['familyname']     myfonts.sf = fonts.hashes.identifiers[\ssfamilyid].shared.rawdata.metadata['familyname']     myfonts.tt = fonts.hashes.identifiers[\ttfamilyid].shared.rawdata.metadata['familyname']
    print("")
    print('Main font: '..myfonts.rm)
    print('Sans font: '..myfonts.sf)
    print('Mono font: '..myfonts.tt)
  }%
\endgroup

or just

\begingroup
  \rmfamily \edef\rmfamilyid{\fontid\font}%
  \ssfamily \edef\ssfamilyid{\fontid\font}%
  \ttfamily \edef\ttfamilyid{\fontid\font}%
  \directlua{
    print('Main font: '..fonts.hashes.identifiers[\rmfamilyid].shared.rawdata.metadata['familyname'])     print('Sans font: '..fonts.hashes.identifiers[\ssfamilyid].shared.rawdata.metadata['familyname'])     print('Mono font: '..fonts.hashes.identifiers[\ttfamilyid].shared.rawdata.metadata['familyname'])
  }%
\endgroup


Thank you, this finally made it to a working state. Instead of the print statements I set these values to entries in a table which I can then read in the Lua part.

Thank you to all contributors to this thread.
Best
Urs

Hans


-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------

Reply via email to