использование textit с tex4ht в режиме mathjax

использование textit с tex4ht в режиме mathjax

Я пытаюсь скомпилировать код Latex, сгенерированный Maple. Сгенерированный Latex содержит такие вещи, как , \textit{\_C1}которые нормально работают в pdf, но при компиляции в HTML с помощью tex4ht в режиме mathjax не работают, так как mathjax не поддерживает вложенность внутри этого макроса (ссылка)

MathJax не обрабатывает макросы в текстовом режиме, поскольку он обрабатывает только макросы математического режима. Поэтому внутри \text{} или \hbox{} или другого текстового материала, встроенного в математический режим, макросы не выполняются. Это функция, а не ошибка. :-)

Я пытался использовать \renewcommandдля переопределения \textit{\_C1}того {\it \_C1}, что работает в HTML/mathjax, но не смог этого сделать. Команда не меняется в HTML, она по-прежнему отображается как\textit{\_C1}

Вот МВЕ

\documentclass[12pt]{article}
\usepackage{amsmath}

\ifdefined\HCode 
\renewcommand{\textit}[1]{{\it#1}}
\fi 

\begin{document}

\[
y(t) = \textit{\_C1}
\]

  
\[
y (t) = {\it \_C1}
\]
\end{document}

Скомпилировано в PDF с помощью lualatex, оба дают одинаковый результат

введите описание изображения здесь

Но скомпилирован в html

  make4ht -ulm default foo3.tex "mathjax,htm"

введите описание изображения здесь

Сгенерированный HTML-код:

<!DOCTYPE html> 
<html lang="en-US" xml:lang="en-US" > 
<head><title></title> 
<meta  charset="utf-8" /> 
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)" /> 
<meta name="viewport" content="width=device-width,initial-scale=1" /> 
<link rel="stylesheet" type="text/css" href="foo3.css" /> 
<meta name="src" content="foo3.tex" /> 
<script>window.MathJax = { tex: { tags: "ams", inlineMath: [ ["\\\(","\\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true, processEnvironments: true, packages: ['base', 'color', 'ams'] }, loader: { load: ['[tex]/color', '[tex]/ams'] } }; </script> 
 <script type="text/javascript" async="async" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js"></script>  
</head><body 
>
<!--l. 12--><p class="noindent" >\[ y(t) = \textit{\_C1} \]
</p><!--l. 17--><p class="indent" >   \[ y (t) ={\it \_C1} \] </p> 
</body> 
</html>

Как исправить мой \renewcommand, чтобы он автоматически \textit{#}менялся на, {\it #}чтобы mathjax был доволен? (Я не могу изменить код генерации кода Maple Latex) Или есть лучший способ исправить это, кроме использования \renewcommand? Может быть, нужно добавить новую конфигурацию в tex4ht для этого макроса для mathjax?

Использование TL 2020

решение1

Ваш генератор LaTeX выдает данные \textitв математическом режиме? Я бы сказал, что это ошибка. \mathitВместо этого следует использовать. \itне следует использовать вообще, это устаревшая команда. В любом случае, поскольку ваш документ визуализируется MathJax, и он явно говорит, что не поддерживает математическое содержимое внутри \textit, мы ничего не можем сделать.

Это работает pdflatexи в MathJax:

\documentclass[12pt]{article}
\usepackage{amsmath}

\begin{document}


\[
y(t) = \mathit{\_C1}
\]

  
\[
y (t) = {\it \_C1}
\]
\end{document}

введите описание изображения здесь

Связанный контент