帖子中的解决方案https://tex.stackexchange.com/a/100625效率很高。遗憾的是,它不能与 unicode-math 一起使用,因为 unicode-math 会抹去个别符号的颜色。虽然 unicode-math 允许通过 单独着色符号\setmathfont
,但如果太多符号以这种方式单独着色,源代码将无法编译。
有什么方法可以使\colorizemath
代码(上面链接)与 unicode-math 兼容?
答案1
以下代码片段导致变量X在数学模式下显示蓝色,而不会影响其在文本模式下的外观。此外,它似乎与unicode-math相处得很好。(此代码片段可以扩展为独立着色许多符号,并且可以快速编译。)
\begingroup
\lccode`~=`x
\lowercase{\endgroup
\def~{{\color{blue}\symnormal{x}}}%
}%
\mathcode`x="8000
答案2
lcc 小写代码方法是一种查找。
可以使用 expl3 查找方法。
这里,有一个标记列表映射函数作为概念证明:
作为替代方案,还可以在 expl3 中使用键值属性列表。
需要很大的耐心才能设置每一个符号(和运算符)。
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{TexGyrePagella-Math}
\usepackage{xparse}
\ExplSyntaxOn
\cs_new:Npn \sym_to_col:n #1
{
\tl_set:Nn \l_tmpb_tl { #1 }
\str_case:VnTF
\l_tmpb_tl
{
{