我正在努力在 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-core
1 ( \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
答案4
我认为最佳做法是使用 typescript。Context-Wiki 始终是查找 Context 特定内容的好地方。在这种情况下,它是上下文字体 (LauTeX)。