2

这是由 hlatex 生成的 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上的屏幕输出:

在此处输入图像描述

现在,当我从 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看起来像

在此处输入图像描述

foo.tex仅供参考,用于生成上述 HTML的原始乳胶文件是

\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 会导致显示的文本周围出现一个框架并将其置于页面中间?

4

2 回答 2

3

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

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

于 2013-06-08T21:45:10.597 回答
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 默认忽略的文本包装在 pre 中。

<!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>
于 2013-06-08T21:54:57.647 回答