Textit-Verwendung mit Tex4ht im Mathjax-Modus

Textit-Verwendung mit Tex4ht im Mathjax-Modus

Ich versuche, von Maple generierten Latex-Code zu kompilieren. Der generierte Latex-Code enthält Dinge wie: \textit{\_C1}was in PDF einwandfrei funktioniert, aber wenn es mit tex4ht im MathJax-Modus in HTML kompiliert wird, funktioniert es nicht, da MathJax die Verschachtelung innerhalb dieses Makros nicht unterstützt (Referenz)

MathJax verarbeitet keine Makros im Textmodus, da es nur Mathematikmodus-Makros verarbeitet. Innerhalb von \text{} oder \hbox{} oder anderem Textmodusmaterial, das in den Mathematikmodus eingebettet ist, werden also keine Makros ausgeführt. Das ist ein Feature, kein Fehler. :-)

Ich habe versucht, es zu verwenden, \renewcommandum \textit{\_C1}es neu zu definieren {\it \_C1}, was in HTML/mathjax funktioniert, aber es ist mir nicht gelungen. Der Befehl ändert sich in HTML nicht, er wird immer noch als angezeigt\textit{\_C1}

Hier ist 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}

Mit Lualatex in PDF kompiliert, beide geben dasselbe Ergebnis aus

Bildbeschreibung hier eingeben

Aber kompiliert zu html

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

Bildbeschreibung hier eingeben

Das generierte HTML ist

<!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>

Wie korrigiere ich meins \renewcommand, sodass es automatisch \textit{#}geändert wird {\it #}, damit MathJax zufrieden ist? (Ich kann den Code zur Codegenerierung von Maple Latex nicht ändern.) Oder gibt es eine bessere Möglichkeit, dies zu beheben, als zu verwenden \renewcommand? Möglicherweise muss für dieses Makro für MathJax eine neue Konfiguration in tex4ht hinzugefügt werden?

Verwenden von TL 2020

Antwort1

Produziert Ihr LaTeX-Generator \textitim Mathematikmodus? Ich würde sagen, das ist ein Fehler. \mathitStattdessen sollte verwendet werden. \itsollte überhaupt nicht verwendet werden, es ist ein veralteter Befehl. Da Ihr Dokument jedoch von MathJax gerendert wird und ausdrücklich angegeben wird, dass es keinen mathematischen Inhalt unterstützt \textit, können wir nichts tun.

Dies funktioniert sowohl in pdflatexals auch in MathJax:

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

\begin{document}


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

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

Bildbeschreibung hier eingeben

verwandte Informationen