htlatex-Umgebung in Verbatim einfügen

htlatex-Umgebung in Verbatim einfügen

Ich möchte, dass htlatex einen Text wortwörtlich in meine HTML-Datei einfügt. Das Problem ist, dass es meine Leerzeichen ständig neu einstellt. Daher verwende ich beispielsweise eine cf.cfg wie diese.

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

Und ein Dokument wie dieses ...

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

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

das dieses HTML-Stück (und den Rest!) erzeugt

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

während ich Folgendes will:

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

mit Beibehaltung von Einrückung und Abstand

Das Pre-Tag wurde also verworfen, weil htlatex die Dinge neu geordnet hat. Ich habe versucht, alltt zu verwenden – also tawny im obigen Beispiel neu zu definieren.

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

Und htlatex fügt nbsp- und br-Tags ein, die in einem Pre-Tag nicht wirklich Sinn ergeben.

<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>

Ich habe die Dokumentation durchgesehen und den Quellcode durchgesehen, kann jedoch nicht erkennen, woher dieses Verhalten kommt oder ob es konfigurierbar ist.

Antwort1

Sie können \ScriptEnvden folgenden Befehl verwenden, um die Umgebung wörtlich zu definieren:

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

resultierendes HTML:

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

verwandte Informationen