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-fontspe...
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.
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. -- Ulrike Fischer http://www.troubleshooting-tex.de/