htlatex вставка среды в дословном виде

htlatex вставка среды в дословном виде

Я хочу, чтобы 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&#x00A0;Pizza
<br />&#x00A0;&#x00A0;:super&#x00A0;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>

Связанный контент