htlatex inserindo ambiente literalmente

htlatex inserindo ambiente literalmente

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&#x00A0;Pizza
<br />&#x00A0;&#x00A0;:super&#x00A0;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 \ScriptEnvo 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>

informação relacionada