[NTG-context] copyfont and font features

Hans Hagen pragma at wxs.nl
Thu Nov 17 13:07:22 CET 2016


On 11/17/2016 11:02 AM, Ulrike Fischer wrote:
> Am Thu, 17 Nov 2016 09:46:26 +0100 schrieb Hans Hagen:
>
>> On 11/16/2016 6:17 PM, Ulrike Fischer wrote:
>>> This comes from a tex.sx question
>>> https://tex.stackexchange.com/questions/338942/cancellation-of-color-fontspec-font-settings-while-defining-microtype-context/
>>>
>>> The primitive \copyfont looses with open type fonts all font
>>> features:
>>>
>>> \starttext
>>>
>>> \font\testa={Arial:mode=node;script=latn;language=DFLT;+tlig;+smcp;}
>>> {\testa abc -- }  normal
>>>
>>> \copyfont\testb\testa
>>>
>>> {\testb abc -- } normal
>>>
>>> \stoptext
>>>
>>> As one can see \testb has neither ligatures nor it is in small caps.
>>> Is this a bug or to be expected?
>
>> It's to be expected as \copyfont makes a copy at the tfm level. One can
>> just use
>>
>> \let\testb\testa
>>
>> instead.
>
> Simply using \let doesn't work when you want locally a different
> expansion behaviour:
>
>    ! error:  (font expansion): font has been expanded with different
> stretch limit.
>
> (with pdflatex + lualatex), that's imho the reason why microtype
> copies the fonts.

in fact that is also the case with pdftex: afaik expansion and 
protrusion values are global and once a font is used they get frozen

in luatex (at least the lua font loader) one can set the expansion at 
definition time (which is more natural but not possible in pdftex)

>> It makes no sense to have a replacement (at least I can't think of a
>> case that can't be handled already). Just define the font again.
>
> The question is if microtype can easily retrieve the current font
> features and if it will slow down the code much if it has to
> redefine fonts again and again.

that's a matter of implementation

(because expansion slows down processing anyway, defining an extra font 
is hardly the bottleneck - just some milliseconds)

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
-----------------------------------------------------------------


More information about the ntg-context mailing list