我遇到的问题是,我需要生成具有特定结构的 JavaScript 代码。我需要在某个点处换行或换行,但我的代码中没有 html 标签或类似的东西。下面是一个简化的示例。(显然,我真的不知道我需要哪些有关字体处理的包。任何有关这方面的提示都值得赞赏。)第二点,我想让字母 ä 出现在 html 代码中,即下面示例中的 var b1ä = ...,到目前为止,我所有的尝试都没有成功。
最好的
基督教
\documentclass[12pt,a4paper,notitlepage,german,twoside]{book}%
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{eurosym}
\usepackage{amsfonts}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\setcounter{MaxMatrixCols}{30}
\Preamble{xhtml}
% Configure for mathjax
\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{\HCode{
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />\Hnewline
}}
\begin{document}
\EndPreamble
\shorthandoff{"}
\author{Ich}
\title{Dynamische Volkswirtschaftslehre }
Text \newline
\HCode{
<div id="box" class="jxgbox" style="width: 770px; height:
500px;"></div> <script >// <![CDATA[ }\Hnewline
\HCode{
var b1 = JXG.JSXGraph.initBoard('box',
{boundingbox: [-1, 11, 11, -1], axis:true, keepaspectratio:true,
showCopyright:false});
// ]] } \HCode{> </script>}
\end{document}
最终的代码如下:
<body>
<!--l. 28--><p class="noindent" >Text <br
class="newline" /> <div id="box" class="jxgbox" style="width: 770px; height: 500px;"></div> <script >// <![CDATA[ ˙ var b1 = JXG.JSXGraph.initBoard('box', {boundingbox: [-1, 11, 11, -1], axis:true, keepaspectratio:true, showCopyright:false}); // ]] > </script>
</p>
</body>
我只需要换行符,即
<div id="box" class="jxgbox" style="width: 770px; height: 500px;"></div> <script >// <![CDATA[
var b1 = JXG.JSXGraph.initBoard('box', {boundingbox: [-1, 11, 11, -1], axis:true, keepaspectratio:true, showCopyright:false}); // ]] > </script>
答案1
您可以使用\Hnewline
,它仅在\HCode
命令内部用于插入换行符。
我会修改你的代码,使它更易于移植,它不会编译为 PDF,而且,即使使用tex4ht
\documentclass[12pt,a4paper,notitlepage,german,twoside]{book}%
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{eurosym}
\usepackage{amsfonts}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\newenvironment{mygraph}{}{}
\setcounter{MaxMatrixCols}{30}
\begin{document}
\shorthandoff{"}
\author{Ich}
\title{Dynamische Volkswirtschaftslehre }
Text \newline
\begin{mygraph}
\end{mygraph}
\end{document}
我已经删除了所有tex4ht
命令并引入了mygraph
环境,它们将用于插入脚本环境。
tex4ht
配置将放置在自定义.cfg
文件中hello.cfg
:
\Preamble{xhtml}
% Configure for mathjax
\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{\HCode{
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />\Hnewline
}}
\ScriptCommand{\JavaScript}{}{}
\ConfigureEnv{mygraph}{%
\HCode{%
<div id="box" class="jxgbox" style="width: 770px; height:
500px;"></div> <script >// <![CDATA[ \Hnewline
var bä1 = JXG.JSXGraph.initBoard('box',\Hnewline
{boundingbox: [-1, 11, 11, -1], axis:true, keepaspectratio:true,\Hnewline
showCopyright:false});\Hnewline
// ]]></script>}}
{}{}{}
\begin{document}
\EndPreamble
myscript
环境是使用配置的\ConfigureEnv{myscript}
,如您所见,只\HCode
需要使用一个命令,使用插入换行符\Hnewline
。
至于里面的重音符号\HCode
,使用unicode TeX引擎(也就是LuaTeX)是可能的,因为XeTeX 目前不受 tex4ht 支持。
使用以下方法编译文档:
make4ht -ulc hello.cfg filename.tex
最终的 HTML 代码如下:
<!DOCTYPE html>
<html>
<head> <title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<!-- charset=utf-8,html,xhtml -->
<meta name="src" content="sample.tex" />
<link rel="stylesheet" type="text/css" href="sample.css" />
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
</head><body
>
<!--l. 18--><p class="noindent" >Text <br
class="newline" /><div id="box" class="jxgbox" style="width: 770px; height: 500px;"></div> <script >// <![CDATA[
var bä1 = JXG.JSXGraph.initBoard('box',
{boundingbox: [-1, 11, 11, -1], axis:true, keepaspectratio:true,
showCopyright:false});
// ]]></script>
</p>
</body>
</html>