
Estou tentando compilar o código Latex gerado pelo Maple. O Latex gerado contém coisas como \textit{\_C1}
which funciona bem em pdf, mas quando compilado para HTML usando tex4ht, no modo mathjax, não funciona, pois mathjax não suporta aninhamento dentro desta macro (referência)
MathJax não processa macros em modo texto, pois apenas lida com macros em modo matemático. Portanto, dentro de \text{} ou \hbox{} ou outro material em modo texto incorporado no modo matemático, nenhuma macro é executada. Esse é um recurso, não um bug. :-)
Tentei usar \renewcommand
para redefinir \textit{\_C1}
o {\it \_C1}
que funciona em HTML/mathjax, mas não consegui. O comando não está mudando em HTML, ainda aparece como\textit{\_C1}
Aqui está 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}
Compilado para pdf usando lualatex, ambos fornecem a mesma saída
Mas compilado para html
make4ht -ulm default foo3.tex "mathjax,htm"
O HTML gerado é
<!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>
Como corrigir o meu \renewcommand
para que \textit{#}
seja alterado {\it #}
automaticamente para deixar o mathjax feliz? (Não posso alterar o código de geração de código Maple Latex) Ou existe uma maneira melhor de corrigir isso além de usar \renewcommand
? Pode ser necessário adicionar uma nova configuração no tex4ht para esta macro para mathjax?
Usando TL 2020
Responder1
O seu gerador LaTeX produz \textit
no modo matemático? Eu diria que é um erro. Deveria usar \mathit
em seu lugar. \it
não deve ser usado, é um comando obsoleto. De qualquer forma, como seu documento é renderizado por MathJax e diz explicitamente que não suporta conteúdo matemático interno \textit
, não há nada que possamos fazer.
Isso funciona em ambos pdflatex
e no MathJax:
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\[
y(t) = \mathit{\_C1}
\]
\[
y (t) = {\it \_C1}
\]
\end{document}