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 Pizza
<br />  :super 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 \ScriptEnv
den 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>