Я хочу, чтобы 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>