我如何在 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}
真正的工作将在的配置文件中完成tex4ht
:jsxgraph.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>