htlatex 在 verbatim 中插入环境

htlatex 在 verbatim 中插入环境

我想让 htlatex 将一些文本逐字逐句地放入我的 HTML 文件中。问题是它不断重做我的间距。因此,例如,我使用这样的 cf.cfg。

\Preamble{html}
\ConfigureEnv{tawny}
{\IgnorePar\EndP\HCode{<pre><code class="clojure">}\EndNoFonts}
{\NoFonts \HCode{</code></pre>}}{}{}
\begin{document}
\EndPreamble

还有这样的文件……

\documentclass{article}
\newenvironment{tawny}%
{}%
{}%

\begin{document}
\begin{tawny}
(defclass Pizza
  :super Thing)
\end{tawny}
\end{document}

生成此 html 片段(以及其余内容!)

<pre><code class="clojure"> (defclass Pizza :super Thing)
</code></pre>

而我想要的是:

<pre><code class="clojure"> 
(defclass Pizza 
   :super Thing)
</code></pre>

保留缩进和间距

因此,pre 标签已被淘汰,因为 htlatex 已重新排序。我尝试使用 alltt -- 因此重新定义了上述示例中的 tawny。

\newenvironment{tawny}%
{\begin{alltt}}%
{\end{alltt}}%

并且 htlatex 放入了 nbsp 和 br 标签,而这些标签在 pre 标签中实际上没有意义。

<pre><code class="clojure"><div class="alltt">
<!--l. 11--><p class="noindent" ><div class="obeylines-v">
(defclass&#x00A0;Pizza
<br />&#x00A0;&#x00A0;:super&#x00A0;Thing)
</div>
</div>
</code></pre>

我已经尝试过查看文档并查看过源代码,但无法知道这种行为来自何处,也不知道它是否可配置!

答案1

您可以使用\ScriptEnv命令来定义逐字环境:

\Preamble{html}
\ScriptEnv{tawny}
{\IgnorePar\EndP\HCode{<pre><code class="clojure">\Hnewline}\EndNoFonts}
{\NoFonts \HCode{</code></pre>}}
\begin{document}
\EndPreamble

生成的 html:

<pre><code class="clojure"> 
(defclass Pizza
  :super Thing)
</code></pre>

相关内容