htlatex verbatim に環境を挿入する

htlatex verbatim に環境を挿入する

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>

インデントとスペースを維持

つまり、htlatex が順序を変更したため、pre タグは無効になりました。私は alltt を使用して、上記の例の tawny を再定義してみました。

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

また、htlatex は、pre タグでは意味をなさない nbsp タグと br タグを挿入します。

<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

\ScriptEnvverbatim 環境を定義するには、次のコマンドを使用します。

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

関連情報