изменить средство визуализации mathjax в ноутбуках R (с self_contained: false)

Я создаю блокноты R, содержащие уравнения. Я использую RStudio 1.2.5033 в Windows 10, R 3.5.1 и rmarkdown 2.1. Когда мои записные книжки R отображаются как HTML, MathJax (v2.7.2) использует выходной процессор «HTML-CSS» для отображения уравнений. Но я думаю, что вывод процессора вывода "CommonHTML" выглядит лучше. Поэтому я хочу включить в свои блокноты R директиву, которая заставляет MathJax использовать процессор вывода CommonHTML. Как я могу это сделать?

Если бы я отображал обычный документ R Markdown с выходным форматом html_document, я мог бы решить проблему с помощью параметра mathjax в моем заголовке YAML. Например, когда следующий файл преобразуется в HTML, MathJax будет использовать процессор вывода CommonHTML:

---
title: "Trouble with MathJax"
output: 
  html_document:
    mathjax: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML.js"
    self_contained: false    
---

\begin{equation}
  R_3 = \alpha
\end{equation}

Но это решение не работает, когда я меняю формат output с html_document на html_notebook. В этом случае я получаю вывод, который выглядит следующим образом:

скриншот, показывающий проблему с рендерингом html_notebook

Уравнение отображается с помощью CommonHTML, но в верхней части страницы много мусора (обратите внимание на четыре маркера), а CSS R Notebook по умолчанию, похоже, не реализован.

Проблема кажется общей для рендеринга ноутбуков R с self_contained: FALSE, как это предлагается в Записные книжки R не отображаются должным образом, если для self_contained установлено значение FALSE, поскольку каталог файлов удаляется после рендеринга. Но я не вижу хорошего решения этой проблемы.


Тупики

документация MathJax указывает, что я могу указать процессор вывода, добавив массив jax при вызове MathJax.Hub.Config(). Но когда я это сделал, мои уравнения по-прежнему отображаются через процессор вывода HTML-CSS. Вот минимальный пример документа R Markdown, в котором проявляется проблема:

---
title: 'Trouble with MathJax'
output: html_notebook
---

<script type="text/x-mathjax-config"> 
  MathJax.Hub.Config({ 
    jax: ["input/TeX", "output/CommonHTML"],
  });
</script>

\begin{equation}
  R_3 = \alpha
\end{equation}

Вызов MathJax.Hub.Config() здесь, кажется, ничего не делает. И в Chrome, и в Edge уравнение отображается с помощью HTML-CSS, а не CommonHTML. Как изменить отображение на Common HTML?


Похожие сообщения


person user697473    schedule 09.02.2020    source источник


Ответы (1)


Решение состоит в том, чтобы просто опустить строку self_contained в заголовке YAML или, что то же самое, установить self_contained в true. Вот минимальный пример блокнота R, для которого пользователь выбрал средство визуализации mathjax:

---
title: "Self-contained notebook with non-default Mathjax config"
output:
  html_notebook:
    mathjax: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML.js"
---

$R_3 = 2$.

Когда файл преобразуется в HTML, уравнение отображается с помощью CommonHTML, а не с помощью HTML-CSS. И сценарий Mathjax содержится в создаваемом файле "nb.html".

Я был удивлен, что это работает, потому что документация для rmarkdown::html_document() говорит, что «даже для автономных документов MathJax по-прежнему загружается извне (это необходимо из-за его размера)». Но раздел 3.1.8 книги R Markdown указывает, что ограничение применяется только когда Mathjax загружается из локального файла. Так что, возможно, это не должно быть сюрпризом.

Примечание: конфигурация Mathjax по умолчанию, используемая пакетом rmarkdown, определяется как rmarkdown:::mathjax_config(). Начиная с rmarkdown v2.1, функция возвращает «MathJax.js?config=TeX-AMS-MML_HTMLorMML».

person user697473    schedule 12.02.2020