ConTeXt 中每种字体的默认颜色不同

ConTeXt 中每种字体的默认颜色不同

使用时,有没有办法指定颜色和字体名称simplefonts?目前,我使用以下内容设置我的默认字体。

\usemodule[simplefonts]
\setmainfont[Ubuntu]
\setsansfont[charter] % the reversal of serif and sans roles was intentional
\setmonofont[FreeMono]
\setmathfont[euler]

这按预期工作。但是,我希望所有数学都以深红色显示。我可以每次手动切换,如下所示:

\color[darkred]{$my+new+equation$}
  1. 我可以添加一些东西\setmathfont来改变颜色而不必每次都输入额外的颜色命令吗?理想情况下,它应该适用于 display-math 和 inline-math 使用的所有命令。
  2. 此外,当周围的文本覆盖颜色时,颜色应改为新的覆盖颜色。因此,\color[green]{Important: you need to tune $x$ to use the above.}应完全设置为绿色。

答案1

对于你的两个问题中的第一个问题,解决方案是使用\appendtoks类似本例的方法:

% For inline math
% \appendtoks\green\to\everymath

% For display math
% \appendtoks\green\to\everydisplay

% For inline and display math
\appendtoks\green\to\everymathematics

\starttext

\math{a^2+b^2=c^2}

\startformula
    a^2+b^2=c^2
\stopformula

\stoptext

绿色开关用于内联和显示数学。

编辑:更改也会应用于\everydisplay\everymathematics影响显示数学中包含的文本。我不确定是否有一个干净的解决方案,但您可以在打印之前直接注入代码\text。在这里我用蓝色打印显示数学中的文本:

\unprotect
\unexpanded\def\mathtext
  {\mathortext\blue\math_text_choice\hbox}
\protect

例子:

\appendtoks\green\to\everymathematics

\unprotect
\unexpanded\def\mathtext
  {\mathortext\blue\math_text_choice\hbox}
\protect

\starttext

\math{a^2+b^2=c^2}

\startformula
    a^2+b^2=c^2
\stopformula

\stoptext

结果:

结果

相关内容