TeX4HT 方程式使用 newcommand 或 def 命令不变

TeX4HT 方程式使用 newcommand 或 def 命令不变

我想转换所有的 inline-math 和 display-math 应该LaTeX只用于格式而不是图像。我曾提到tex4ht 保持方程不变tex4ht 保持方程不变 - 包括 \[...\] 和 \(...\). 但作者定义的宏不会转换为HTML

LaTeX 最小二乘法:

\documentclass{article}
\usepackage{amsmath,amssymb}
\newcommand{\La}{\Lambda}
\def\B{\beta}
\newcommand{\twosilt}{\mbox{\rm 2-silt}}
\begin{document}
In this section, we $\B$ recall some definitions and results. 
Throughout $\alpha+\B$ this section, let ${\La}$ be a finite dimensional algebra. 
\begin{equation*}
\Phi:\Lambda\longrightarrow\twosilt\Lambda,\ \ \ (X,P)\mapsto \Phi(X,P):=P_X\oplus P[1].
\end{equation*}
\end{document}

如何实现这个目标?

答案1

我不太确定,你正在寻找什么,你链接到的问题和答案的目的恰恰不是将宏转换为 html,而是使用 mathjax 等工具进行处理。尝试这个配置文件,其中包含 mathjax 的宏定义:

\usepackage{verbatim}
\Preamble{xhtml}
% Configure for mathjax
\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{\HCode{
<script type="text/x-mathjax-config">                                           
  MathJax.Hub.Config({
    TeX: {           
      Macros: {     
        \unexpanded{La : "\\Lambda",
        B: "\\beta", 
        twosilt: "\\textrm{2-silt}",}
      }        
    },        
    extensions: ["tex2jax.js"], 
    tex2jax: {       
        \unexpanded{
      inlineMath: [ ['\$','\$'], ["\\\\(","\\\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],}
      processEscapes: true
    }                   
  });                  
</script>   
}}
\Configure{@HEAD}{\HCode{<script type="text/javascript"\Hnewline
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"\Hnewline
></script>\Hnewline}}

\newtoks\eqtoks 
\def\AltMath#1${\eqtoks{$#1$}% 
   \HCode{\the\eqtoks}$}
\Configure{$}{}{}{\expandafter\AltMath}  
\def\AltlMathI#1\){\eqtoks{\(#1\)}% 
        \HCode{\the\eqtoks}}
\Configure{()}{\AltlMathI}{}
\def\AltlDisplay#1\]{\eqtoks{\[#1\]}%
        \HCode{\the\eqtoks}}
\Configure{[]}{\AltlDisplay}{}
\begin{document} 
\newcommand\VerbMath[1]{%
\renewenvironment{#1}{%
\NoFonts%
\string\begin\{#1\}%
\verbatim}{\endverbatim\string\end\{#1\}\EndNoFonts}%
}


\VerbMath{equation*}
\EndPreamble

我结合了“保持方程不变”中的定义,添加了宏的定义mathjax并创建了新命令\VerbMath。您需要对每个数学环境使用此命令,就像equation*您的情况一样。它还会保持数学环境不变。将此文件命名为myconfig.cfg

我还对您的示例文件进行了稍微的编辑:

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{amsmath,amssymb}
\newcommand{\La}{\Lambda}
\def\B{\beta}
\newcommand{\twosilt}{\mbox{\rm 2-silt}}
\begin{document}
In this section, we $\B$ recall some definitions and results. 
Throughout $\alpha+\B$ this section, let ${\La}$ be a finite dimensional algebra. 

\begin{equation*}
\Phi:\Lambda\longrightarrow\twosilt\Lambda,\; (X,P)\mapsto \Phi(X,P):=P_X\oplus P[1].
\end{equation*}

\end{document}

我添加了fontenc包以便正确转换所有字符,并\ \ \在您的等式中用替换\;。我想您想要更大的空间,但\似乎不受 mathjax 支持。

现在你可以使用以下命令编译你的文件:

htlatex mwo myconfig

你可以看到结果这里

相关内容