textit を mathjax モードで tex4ht と共に使用する

textit を mathjax モードで tex4ht と共に使用する

私は Maple によって生成された Latex コードをコンパイルしようとしています。生成された Latex\textit{\_C1}には、pdf では問題なく動作するようなものが含まれていますが、tex4ht を使用して mathjax モードで HTML にコンパイルすると、mathjax がこのマクロ内でのネストをサポートしていないため動作しません (参照

MathJax は数式モードのマクロのみを処理するため、テキスト モードではマクロを処理しません。したがって、数式モード内に埋め込まれた \text{} や \hbox{} などのテキスト モードの素材では、マクロは実行されません。これはバグではなく機能です。:-)

HTML/mathjaxで動作するを\renewcommand再定義するために使用しようとしましたが、できませんでした。コマンドはHTMLでは変更されず、次のように表示されます。\textit{\_C1}{\it \_C1}\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>

を自動的に に変更して、 mathjax を満足させるに\renewcommandは、 を修正するにはどうすればよいですか? (Maple Latex コード生成コードは変更できません) または、 を使用する以外に、これを修正するより良い方法はありますか? mathjax のこのマクロ用に、tex4ht に新しい構成を追加する必要がある可能性がありますか?\textit{#}{\it #}\renewcommand

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}

ここに画像の説明を入力してください

関連情報