为什么MathJax在HTML中添加了一个没有数学指标的文本框架?

时间:2013-06-08 20:49:51

标签: mathjax

这是由htlatex生成的HTML。当我使用Mathjax时,HTML中没有数学,显示完全不同。 MathJax在HTML主体的文本周围添加了一个框架。

当我删除MathJax时,框架消失了。

这是HTML

<!DOCTYPE html> 
<html> 
<head> <title></title> 
<meta charset="UTF-8" /> 

<script type="text/javascript" 
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script> 

</head>

<body>

&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;this&#x00A0;is&#x00A0;verbatim

&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\begin{foo}
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;test
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\end{foo}
&#x00A0;<br />&#x00A0;&#x00A0;

</body> 
</html>

这是firefox上的屏幕输出:

enter image description here

现在,当我从HTML头中删除MathJax时,这就是输出:

<!DOCTYPE html> 
<html> 
<head> <title></title> 
<meta charset="UTF-8" /> 

</head>

<body>

&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;this&#x00A0;is&#x00A0;verbatim

&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\begin{foo}
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;test
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\end{foo}
&#x00A0;<br />&#x00A0;&#x00A0;

</body> 
</html>

,HTML看起来像

enter image description here

Fyi,用于生成上述HTML的原始乳胶文件foo.tex

\documentclass[]{article}
\begin{document}

  \begin{verbatim}
     this is verbatim
    \begin{foo}    
         test  
    \end{foo}
  \end{verbatim}
\end{document}

使用命令

编译
htlatex foo.tex "t.cfg"

其中t.cfg

\Preamble{}


\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}

\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{}
\Configure{@HEAD}{\HCode{<meta charset="UTF-8" />\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="stylesheet" type="text/css" href="\expandafter\csname aa:CssFile\endcsname" />\Hnewline}}
\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}}
\Configure{@HEAD}{\HCode{<style type="text/css">\Hnewline
  .MathJax_MathML {text-indent: 0;}\Hnewline
</style>\Hnewline}
}    

\begin{document}
\EndPreamble

问题为什么加载Mathjax导致在显示的文本周围放置一个框架并将其置于页面中间?

2 个答案:

答案 0 :(得分:3)

我也意识到我实际上没有回答你的问题,这对我来说非常糟糕:MathJax会在框架框中显示纯文本,如果有LaTeX代码,它不知道如何转换:MathJax将不会加载所有默认情况下可能的包,因此对于相当多的包,您需要先设置MathJax配置对象,请参阅http://docs.mathjax.org/en/latest/tex.html,了解您可以加载的对象。

例如,http://jsfiddle.net/HPDDn/1/显示两个MathJax块,一个知道如何转换,另一个框架为纯文本,因为它不知道verbatim是什么。

答案 1 :(得分:1)

问题与间距无关,你可以从

获得相同的框架
<!DOCTYPE html> 
<html> 
<head> <title></title> 
<meta charset="UTF-8" /> 

<script type="text/javascript" 
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script> 

</head>

<body>

\begin{foo}
test
\end{foo}

</body> 
</html>

您可以将mathjax配置为不查看某些元素,或者只是将文本包装在mathjax默认忽略的前面。

<!DOCTYPE html> 
<html> 
<head> <title></title> 
<meta charset="UTF-8" /> 

<script type="text/javascript" 
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script> 

</head>

<body>

<pre>
\begin{foo}
test
\end{foo}
</pre>

</body> 
</html>