ConTeXt mkiv 中的字体切换

ConTeXt mkiv 中的字体切换

我正在努力在 ConTeXt 中相应地切换字体,感觉我缺少了一些基本的东西。我试图模仿

\RequirePackage{fontspec}

% Use Neo Euler as math font
\RequirePackage[vargreek-shape=TeX]{unicode-math}% 
\setmathfont{Asana Math}%
% Use the Palatino-Clone Tex Gyre Pagella as main font
\setmainfont[Ligatures=TeX, Numbers=OldStyle]{Tex Gyre Pagella}%
% Use Tex Gyre Cursor as Monospace Font
\setmonofont{Tex Gyre Cursor}%
% Use Tex Gyre Heros Cn as Sans Serif Font
\setsansfont{Tex Gyre Heros}%
% fontsize is 10pt, 13pt for book and 12pt, 15pt for handout
\renewcommand{\normalsize}{\fontsize{10pt}{13pt}\selectfont}%
% fontsize is 10pt, 13pt for book and 9pt, 11pt for kindle
\renewcommand{\footnotesize}{\fontsize{8pt}{10pt}\selectfont}%

在 LuaLaTeX 文件中运行良好。

我迄今为止最好的尝试是

%setup the fonts
\usemodule[simplefonts] 
\definefontfeature[default][default][onum=yes]
%
\setmathfont[Asana Math]%
% Use the Palatino-Clone Tex Gyre Pagella as main font
\setmainfont[Tex Gyre Pagella]%
% Use Tex Gyre Cursor as Monospace Font
\setmonofont[Tex Gyre Cursor]%
% Use Tex Gyre Heros Cn as Sans Serif Font
\setsansfont[Tex Gyre Heros]%
\setupbodyfont[TeX Gyre Pagella,10pt]

\definebodyfontenvironment [10pt] [a=16pt]

\starttext
italic but not math \it mathmode 123

$123 mathmode$

\tfa Big
\stoptext

我知道这里有几件事出错了。我现在的问题是:在上下文中最佳实践是什么?我觉得我把simplefonts宏 ( setmainfont) 与context-core1 ( \setupbodyfont[TeX Gyre Pagella,10pt]) 混在一起了。

有人能解释一下我是否必须使用不同的simplefonts宏,例如字体大小吗?我是否必须决定,要么只使用context-core,要么使用simplefonts。推荐哪一个?

答案1

基于 Simplefonts 的解决方案:

\definefontfeature[default][default][onum=yes]
\usemodule[simplefonts][size=10pt]

\setmathfont[Asana]
\setmainfont[Tex Gyre Pagella]
\setmonofont[Tex Gyre Cursor]
\setsansfont[Tex Gyre Heros]

\definebodyfontenvironment [10pt] [a=16pt]

\starttext
italic but not math {\it mathmode 123}

$123 mathmode$

\tfa Big

\stoptext

答案2

基于 Typescript 的版本:

\usetypescriptfile[asana]

\definefontfeature[default][default][onum=yes]

\starttypescript[me]
    \definetypeface [me] [rm] [serif] [pagella] [default]
    \definetypeface [me] [ss] [sans]  [heros]   [default]
    \definetypeface [me] [tt] [mono]  [cursor]  [default]
    \definetypeface [me] [mm] [math]  [asana]   [default]
\stoptypescript

\definebodyfontenvironment [10pt] [a=16pt]

\setupbodyfont[me,10pt]

\starttext
italic but not math \it mathmode 123

$123 mathmode$

\tfa Big
\stoptext

答案3

Aditya 的解决方案很棒,但不幸的是已经过时了。ConTeXt 的发展速度非常快,自 2012 年以来发生了很多事情。simplefonts模块列出了一些变化,我已经在 Aditya 的示例基础上实现了它们。

今天您可能想使用 TeX Gyre Pagella 的官方配套数学字体,而不是 Asana Math。

\definefontfeature[default][default][onum=yes]
\definefontfamily[texgyre][serif][TeX Gyre Pagella]
\definefontfamily[texgyre][sans] [TeX Gyre Heros]
\definefontfamily[texgyre][mono] [TeX Gyre Cursor][features=none]
\definefontfamily[texgyre][math] [TeX Gyre Pagella Math]
\setupbodyfont[texgyre,10pt]

\starttext
italic but not math {\it mathmode 123}

$123 mathmode$

\tfa Big
\stoptext

enter image description here

答案4

我认为最佳做法是使用 typescript。Context-Wiki 始终是查找 Context 特定内容的好地方。在这种情况下,它是上下文字体 (LauTeX)

相关内容