While working to get italic smallcaps in a secondary font face, I came across an issue with \switchbodyfont. When this is used in a certain way, the \tf font-style is changed, but not the \it, \bf, and so on.

The example below compiles cleanly as presented, and the problem is not present. Each test line shows the expected font name and text.

When the Oops! line is uncommented, the only test line for the test font that is correct is the \tf line. Other lines use the default font face in the specified font styles, but the font features are a mix (note that some are onum, some lining, and that long-s t ligatures are inconsistent).

When the newotf module is enabled, the example fails to compile without errors, but produces similar results to non-newotf when the errors are ignored.

This is not a problem with individual fonts—I have tried a variety of fonts both as default and secondary and get the same result.

%\usemodule[newotf]
 \setupwhitespace[medium]
 \define\testAlphabet{\purefontname\font\quad
    ABCDEFGHIJKLmnopqrsſtuvwxyz \& 012345789}
 \starttypescript[Secondary]
   \definetypeface[Secondary][rm][serif][ebgaramond][default]
%  \definetypeface[Secondary][rm][serif][palatino][default]
%  \definetypeface[Secondary][rm][serif][libertine][default]
 \stoptypescript
 \setupbodyfont [modern, 10pt]
%\setupbodyfont [palatino, 10pt]
 \starttext
% {\switchtobodyfont[Secondary]Oops!\par}%          Oops!
  Default tf: {\tf \testAlphabet}\par
  Default bf: {\bf \testAlphabet}\par
  Default it: {\it \testAlphabet}\par
  Default sl: {\sl \testAlphabet}\par
  Default bi: {\bi \testAlphabet}\par
  Default bs: {\bs \testAlphabet}\par
  Default sc: {\sc \testAlphabet}\par
  Default xx: {\it\setff{smallcaps}\testAlphabet}\par
  \switchtobodyfont[Secondary]
  Secondary tf: {\tf \testAlphabet}\par
  Secondary bf: {\bf \testAlphabet}\par
  Secondary it: {\it \testAlphabet}\par
  Secondary sl: {\sl \testAlphabet}\par
  Secondary bi: {\bi \testAlphabet}\par
  Secondary bs: {\bs \testAlphabet}\par
  Secondary sc: {\sc \testAlphabet}\par
  Secondary xx: {\it\setff{smallcaps}\testAlphabet}\par
\stoptext
Have I failed to properly specify the secondary typeface? Do I need a more complete typescript? Or is there a bug here?
--
Rik