如何在 \Hcode 中的 tex4ht 中插入换行符?

如何在 \Hcode 中的 tex4ht 中插入换行符?

我遇到的问题是,我需要生成具有特定结构的 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[  &#x02D9; 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>

相关内容