Перезагрузить Mathjax = снова принудительно набрать текст

я хотел перезагрузить Mathjax, т.е. принудительно печатать еще раз при нажатии на кнопку.

Поэтому я написал следующий код:

<button onClick="newTask()"></button>

Функция перезагрузки содержит:

function newTask(){

  // This is a function creating a new task, i.e. replacing HTML between some tags

  newCode();



 // Now i want to renew typesetting by calling Mathjax

  MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}

Мой скрипт не сработал. Где я должен поместить строку "MathJax.Hub.Queue(["Typeset",MathJax.Hub]);" ? Любая помощь будет принята с благодарностью! :)


person Alex    schedule 09.09.2014    source источник
comment
Какие-то ошибки в консоли? Работает ли newCode() как задумано?   -  person Owlvark    schedule 10.09.2014
comment
newCode() работает отлично, он отображает код mathjax, как $$ мое уравнение $$.   -  person Alex    schedule 10.09.2014
comment
Я спрашиваю только потому, что вызов MathJax выглядит нормально. Вы подтвердили newCode(), вообще не вызывая MathJax?   -  person Owlvark    schedule 10.09.2014
comment
Случайно ли newCode асинхронен?   -  person Peter Krautzberger    schedule 10.09.2014
comment
Возможный дубликат Как отозвать или перезапустить MathJax?   -  person Vadzim    schedule 25.01.2019


Ответы (2)


Я понятия не имею, почему это работает сейчас или не работало раньше, но я изменил настройку на следующее:

внутри html-файла:

<button onClick="createBasicTask()">

где createBasicTask() — новая версия newTask().

и в js-файле:

function createBasicTask(){
...
newTypeset();
}

с newTypeset

function newTypeset(){
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}

если интересно, весь скрипт будет генератором задач, полный исходник можно посмотреть здесь: Источник

Демонстрация в реальном времени (первое задание): Демонстрация

person Alex    schedule 10.09.2014
comment
Другие методы, которые стоит попробовать: Rerender, Reprocess - person Vadzim; 25.01.2019

Для меня, использующего MathJax 3, мне пришлось заменить MathJax.Hub.Queue(["Typeset",MathJax.Hub]); на MathJax.typeset(); в решении Алекса.

person Faraz Ahmad    schedule 26.07.2020