我想让 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 Pizza
<br />  :super 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>