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>

相關內容