textit 在 mathjax 模式下与 tex4ht 一起使用

textit 在 mathjax 模式下与 tex4ht 一起使用

我正在尝试编译 Maple 生成的 Latex 代码。生成的 Latex 包含类似\textit{\_C1}这样的内容,在 pdf 中可以正常工作,但在 mathjax 模式下使用 tex4ht 编译为 HTML 时,它不起作用,因为 mathjax 不支持在此宏内嵌套(参考

MathJax 不处理文本模式下的宏,因为它只处理数学模式宏。因此,在 \text{} 或 \hbox{} 或数学模式中嵌入的其他文本模式材料中,不会执行任何宏。这是一项功能,而不是错误。:-)

我尝试使用\renewcommand重新定义\textit{\_C1}{\it \_C1}在 HTML/mathjax 中工作,但无法做到。该命令在 HTML 中没有改变,它仍然显示为\textit{\_C1}

这是 MWE

\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}

使用 lualatex 编译为 pdf,均给出相同的输出

在此处输入图片描述

但编译为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}

在此处输入图片描述

相关内容