HTML поддержка сущностей (<,> и &) в MathJax - PullRequest
0 голосов
/ 03 марта 2020

Я столкнулся с проблемой с сущностью HTML внутри кода TEX. Я прошел по этой ссылке и попробовал все шаги оттуда, но тем не менее я сталкиваюсь с проблемами в символе "&".

Вот мой объект конфигурации Mathjax:

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    messageStyle: 'none', 
    showMathMenu: false,
    processEnvironments:true,
    tex2jax: { inlineMath: [['$', '$'], ["\\(", "\\)"]], 
    processClass: "equationrender", 
    ignoreClass:"StylePara"
    } });
</script>

Когда я рендерим нижний латекс,

\begin{align}
h(x) &= \int \left( \frac{f(x) + g(x)}{1+ f^{2}(x)}\right)\nonumber\\
r^{2} &= s^{2} + t^{2}, \nonumber\\
2u + 1 &= v + w^{\alpha},\nonumber\\
x &= \frac{y + z}{\sqrt{s + 2u}};
\end{align}

После рендеринга на веб-странице код TEX изменился, как показано ниже,

\begin{align}
h(x)  &amp; = \int \left( \frac{f(x) + g(x)}{1+ f^{2}(x)}\right)\nonumber\\
r^{2}  &amp; = s^{2} + t^{2}, \nonumber\\
2u + 1  &amp; = v + w^{\alpha},\nonumber\\
x  &amp; = \frac{y + z}{\sqrt{s + 2u}};
\end{align}

Как я могу преобразовать & в mathjax понятный латексный код (см. скриншот, TEX отображается в браузере). Пожалуйста, посоветуйте мне. enter image description here

1 Ответ

1 голос
/ 09 марта 2020

В HTML амперсанд (&) используется в качестве специального символа для введения сущностей , например &lt; для < и &gt; для > и т. Д. на. Таким образом, чтобы получить явный амперсанд в вашем документе, вам нужно использовать &amp;, который является сущностью для амперсанда. Большинство систем управления контентом (CMS), которые предоставляют вам редактор для ввода содержимого страницы, автоматически переводят & в &amp;, что является правильным решением.

Я подозреваю, что в вашем случае перевод & в &amp; выполняется дважды, а результат - &amp;amp; на вашей странице HTML. Когда браузер читает это, он переводит первый &amp; обратно на &, оставляя &amp; на вашей странице. Тогда MathJax выглядит как r^{2} &amp; = s^{2} + t^{2} \\ как одна строка в вашем выравнивании и (правильно) анализирует это как r^{2} в первом столбце и amp; = s^{2} + t^{2} во втором.

Если вы используете вид браузера " Опция "источник", вы должны иметь возможность видеть исходный &amp;amp; в HTML (если ваша CMS не загружает содержимое динамически, в котором вы не можете просматривать исходный источник).

Так что проблема связана с вашей CMS, которая, кажется, дважды выполняет преобразование & в &amp;. Хотя вы можете настроить MathJax для запуска фильтра для преобразования &amp; обратно в & во второй раз (после того, как браузер выполнил преобразование), реальная проблема связана с CMS, а не MathJax, так что именно здесь следует исправить быть примененным (к CMS, а не к MathJax).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...