HCode 中的命令

HCode 中的命令

我如何在 HCode 中使用命令 \\?在我使用 HCode 嵌入的 javascript 部分中,我需要使用“\\alpha”,但我的 htlatex 总是返回奇怪的错误。最佳基督教示例

\documentclass[12pt,a4paper,notitlepage,german,twoside]{book}
\begin{document}
\HCode{<div id="box"  class="jxgbox" style="width: 650px; height: 530px;"></div>
<script>// \Hnewline
  board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 5, 5, -5]});
  board.create('text',[-1,function(){return pal.Y()/2},"$\\alpha$"],{strokeColor:'black'}); }
</script> 
\end{document}

以及来自该 cfg 文件

\Preamble{xhtml,mathml}
\Configure{@HEAD}{\HCode{   <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/MathJax/MathJax.js"></script>}
 \begin{document}
 \EndPreamble

答案1

您需要转义该\字符,例如使用\string命令。首先,我会将用于插入板的代码移出 TeX 文件,因为您无法将其编译为 PDF 而不会出错。我会创建包jsxgraph.sty,其中包含一些用于 PDF 模式的虚拟命令:

\ProvidesPackage{jsxgraph}
\newcommand\jsxgraph{}

\endinput

TeX文件可以简化为以下形式:

\documentclass[12pt,a4paper,notitlepage,german,twoside]{book}
\usepackage{jsxgraph}
\begin{document}
\jsxgraph
\end{document}

真正的工作将在的配置文件中完成tex4htjsxgraph.4ht

\renewcommand\jsxgraph{\a:jsxgraph}
\NewConfigure{jsxgraph}{1}
\Configure{jsxgraph}{\ifvmode\IgnorePar\fi\EndP\HCode{<div id="box"  class="jxgbox" style="width: 650px; height: 530px;"></div>
  <script type="text/javascript">// \Hnewline
  board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 5, 5, -5]});
  board.create('text',[-1,function(){return pal.Y()/2},"$\string\\alpha$"],{strokeColor:'black'}); 
</script>}}

此处定义了新的配置jsxgraph,带有一个参数。然后重新定义命令\jsxgraph以包含配置(使用\a:jsxgraph)。然后我们可以使用\Configure{jsxgraph}{...}。我对您的原始代码进行了两处更改:\ifvmode\IgnorePar\fi\EndP将阻止在图表周围插入段落标签,因为这会导致无效的 HTML 代码,并将正确\string\\alpha插入\\alpha字符串。

这是最终的 HTML:

<link rel="stylesheet" type="text/css" href="sample.css" /> 
<script type="text/javascript">var a = "\\alpha";</script><script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/MathJax/MathJax.js"></script></head><body 
>
   <div id="box" class="jxgbox" style="width: 650px; height: 530px;"></div> <script type="text/javascript">//  
board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 5, 5, -5]}); board.create('text',[-1,function(){return pal.Y()/2},"$\\alpha$"],{strokeColor:'black'}); </script> 
</body></html> 

相关内容