我经常使用矢量操作,通常矢量是用粗体字写的,例如
FileWriter writer = new FileWriter("output.txt");
for(LocalDate str: fechas) {
writer.write(str);
}
writer.close();
这太长了,所以我想定义一些新命令\ bx,\ ba,\ bb首先,
$$ \boldsymbol x = \boldsymbol a \times \boldsymbol b + \boldsymbol c $$
那么上面的等式可以写成:
$$
\newcommand{\bx}{\boldsymbol x}
\newcommand{\ba}{\boldsymbol a}
\newcommand{\bb}{\boldsymbol b}
\newcommand{\bc}{\boldsymbol c}
$$
因为我经常使用这些Bold字体,所以我不想每次都键入它们,所以我打算将它们定义为文件中的宏:boldfont.js,当我需要输入vector时,我只需要boldfont .js。
我将文件编写如下(将文件另存为:/config/TeX/boldfont.js,其他文件(例如color.js)保存在同一目录下):
$$ \bx = \ba \times \bb + \bc $$
然后我尝试将文件(使用\ require命令)用作
MathJax.Hub.Config({
TeX: {
Macros: {
ba: '{\\boldsymbol a}',
bb: '{\\boldsymbol b}',
bc: '{\\boldsymbol c}',
bd: '{\\boldsymbol d}',
be: '{\\boldsymbol e}',
bf: '{\\boldsymbol f}',
bg: '{\\boldsymbol g}',
bh: '{\\boldsymbol h}',
bi: '{\\boldsymbol i}',
bj: '{\\boldsymbol j}',
bk: '{\\boldsymbol k}',
bl: '{\\boldsymbol l}',
bm: '{\\boldsymbol m}',
bn: '{\\boldsymbol n}',
bo: '{\\boldsymbol o}',
bp: '{\\boldsymbol p}',
bq: '{\\boldsymbol q}',
br: '{\\boldsymbol r}',
bs: '{\\boldsymbol s}',
bt: '{\\boldsymbol t}',
bu: '{\\boldsymbol u}',
bv: '{\\boldsymbol v}',
bw: '{\\boldsymbol w}',
bx: '{\\boldsymbol x}',
by: '{\\boldsymbol y}',
bz: '{\\boldsymbol z}',
}
}
});
但是它不起作用,怎么了?怎么定义宏并使用它?
请帮助我。
答案 0 :(得分:0)
第一次加载TeX输入jax时会读取TeX配置块,因此,如果在此之后调用MathJax.Hub.Config()
,则TeX输入jax将看不到您所做的更改。因此,以这种方式添加的任何宏都将无效。
您应该使用
MathJax.InputJax.TeX.Macro('bx', '\\boldsymbol{x}');
MathJax.InputJax.TeX.Macro('ba', '\\boldsymbol{a}');
...
如果您有一个接受参数的宏,则可以添加第三个参数,即所需的参数数量。例如
MathJax.InputJax.TeX.Macro('bs', '\\boldsymbol{#1}', 1);
该文件应存储在MathJax/extensions/TeX
文件夹(而不是MathJax/config/TeX
)中,如果您将其命名为boldfont.js
,则在文件末尾,您需要添加以下行
MathJax.Ajax.loadComplete('[MathJax]/extensions/TeX/boldfont.js');
有了这些更改,我认为您应该能够使其工作。如果没有,请检查控制台日志中是否有消息,并使用
MathJax.Message.Log()
查看是否列出了任何文件加载失败。
(这是我交叉回答该问题的MathJax User's Forum的答案)。