![ConTeXt 中每种字体的默认颜色不同](https://linux22.com/image/246471/ConTeXt%20%E4%B8%AD%E6%AF%8F%E7%A7%8D%E5%AD%97%E4%BD%93%E7%9A%84%E9%BB%98%E8%AE%A4%E9%A2%9C%E8%89%B2%E4%B8%8D%E5%90%8C.png)
使用时,有没有办法指定颜色和字体名称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$}
- 我可以添加一些东西
\setmathfont
来改变颜色而不必每次都输入额外的颜色命令吗?理想情况下,它应该适用于 display-math 和 inline-math 使用的所有命令。 - 此外,当周围的文本覆盖颜色时,颜色应改为新的覆盖颜色。因此,
\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
结果: