Michael Urban via ntg-context schrieb am 05.02.2022 um 20:28:
I am experiencing an odd behavior switching text styles in a defined startstop group
("blockquote"). I get different behavior depending on whether the
switchtobodyfont in the startstop definition includes the dummy {\it } and {\bf } text.
If they are not there, the italic and boldface switches in the second blockquote revert
to the gyreschola body font of the main text; but this only happens if there is an
earlier blockquote with no style changes. This is with:
[...]
Do I need a newer version of ConTeXt, or am I doing something wrong?
Fonts in ConTeXt are always perilous, alas. For me, anyway.
\definefallbackfamily[story][serif][notoserif][range={greekandcoptic,greekextended},force=yes]
\definefontfamily[story][serif][TeX Gyre Schola]
The following two font settings are wrong, you're passing the name of a
typescript for the third argument while \definefontfamily expects the
family name of a font.
Even though the usage of the command is wrong you didn't notice it
because as a fallback \definefontfamily uses the Latin Modern version of
the requested style when no font was found.
\definefontfamily[story][sans][modern]
\definefontfamily[story][mono][modern]
The correct settings for both settings are
\definefontfamily [story] [sans] [Latin Modern Sans]
\definefontfamily [story] [mono] [Latin Modern Mono] [features=none]
with the "features=none" for the mono font to ensure no ligatures are
formed.
An alternative for \definefontfamily is to use \definetypeface and
choose a predefined typescript for the Latin Modern family. You can
either use
\definetypeface [story] [ss] [sans] [modern] [default]
\definetypeface [story] [ss] [mono] [modern] [default]
which uses the 10pt optical size even for smaller and bigger sizes or
you enable optical sizes with the following typescript
\definetypeface [story] [ss] [sans] [modern-designsize] [default]
\definetypeface [story] [ss] [mono] [modern-designsize] [default]
\definefontfamily[story][mm][TeX Gyre Pagella Math]
I recommend to load the math font with the provided typescript because
they ensure existing patches (e.g. spacing corrections) for the selected
font are applied.
\definetypeface [story] [mm] [math] [pagella] [default]
\setupbodyfont[story,11pt]
\definestartstop[blockquote]
[
before={ \blank \startnarrower \setupwhitespace[2pt] \setupindenting[none]
\switchtobodyfont[termes]{\it }{\bf }% This is so weird. Put a
comment marker after [termes] for a different result
},
after={ \stopnarrower \blank \indenting[next]},
]%
ConTeXt already provides a blockquote-environment which can be
configured to have the same style as your custom environment.
\startsetups [blockquote:style]
\switchtobodyfont[termes]
\setupwhitespace[2pt]
\stopsetups
\setupdelimitedtext
[blockquote]
[spacebefore=big,
style=\directsetup{blockquote:style},
indenting=none,
indentnext=yes]
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________