Quero que o htlatex coloque algum texto em meu arquivo HTML literalmente. O problema é que ele fica refazendo meu espaçamento. Então, por exemplo, eu uso um cf.cfg como este.
\Preamble{html}
\ConfigureEnv{tawny}
{\IgnorePar\EndP\HCode{<pre><code class="clojure">}\EndNoFonts}
{\NoFonts \HCode{</code></pre>}}{}{}
\begin{document}
\EndPreamble
E um documento como este...
\documentclass{article}
\newenvironment{tawny}%
{}%
{}%
\begin{document}
\begin{tawny}
(defclass Pizza
:super Thing)
\end{tawny}
\end{document}
que produz este pedaço de html (e o resto!)
<pre><code class="clojure"> (defclass Pizza :super Thing)
</code></pre>
enquanto o que eu quero é:
<pre><code class="clojure">
(defclass Pizza
:super Thing)
</code></pre>
com recuo e espaçamento preservados
Portanto, a pré-tag foi derrotada porque o htlatex reordenou as coisas. Tentei usar alltt - então redefina o tawny no exemplo acima.
\newenvironment{tawny}%
{\begin{alltt}}%
{\end{alltt}}%
E o htlatex coloca tags nbsp e br que realmente não fazem sentido em uma pré-tag.
<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>
Eu tentei a documentação e olhei a fonte, mas não consigo ver de onde vem esse comportamento nem se é configurável!
Responder1
Você pode usar \ScriptEnv
o comando para definir o ambiente literal:
\Preamble{html}
\ScriptEnv{tawny}
{\IgnorePar\EndP\HCode{<pre><code class="clojure">\Hnewline}\EndNoFonts}
{\NoFonts \HCode{</code></pre>}}
\begin{document}
\EndPreamble
HTML resultante:
<pre><code class="clojure">
(defclass Pizza
:super Thing)
</code></pre>