Как определить и использовать макрос в Mathjax? - PullRequest
0 голосов
/ 17 ноября 2018

Я часто использую векторную операцию, и обычно вектор пишется шрифтом Bold, например,

$$ \boldsymbol x = \boldsymbol a \times \boldsymbol b + \boldsymbol c $$

, что слишком длинно, поэтому мне нравится определять некоторые новые команды \ bx, \ ba, \ bbво-первых,

$$ 
\newcommand{\bx}{\boldsymbol x} 
\newcommand{\ba}{\boldsymbol a} 
\newcommand{\bb}{\boldsymbol b}
\newcommand{\bc}{\boldsymbol c} 
$$

, затем приведенное выше уравнение можно записать в следующем виде:

$$ \bx = \ba \times \bb + \bc $$

Поскольку я так часто использую эти полужирные шрифты, я не хочу набирать их времясо временем я планирую определить их как макрос в файле: boldfont.js, когда мне нужно набрать vector, мне просто потребуется boldfont.js.

Я пишу файл следующим образом (сохраните файл как: /config / TeX / boldfont.js, другой файл (например, color.js) в том же каталоге):

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}',
        }
    }
});

И я пытаюсь использовать файл (используя команду \ require) как

$$ 
\require{boldfont} 
\bf=\bu+\bv-\bw
$$

Но это не работает, что не так? Как определить макрос и использовать его?

Помогите, пожалуйста.

enter image description here

1 Ответ

0 голосов
/ 15 декабря 2018

Блок конфигурации TeX считывается при первой загрузке входного джека TeX, поэтому, если после этого вы наберете MathJax.Hub.Config(), внесенные вами изменения не будут видны входному джеаку TeX. Поэтому любые макросы, добавленные вами таким образом, не будут иметь эффекта.

Вместо этого вы должны использовать

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 , на котором этот вопрос был опубликован в перекрестном порядке).

...