为什么列表放在由 htlatex 撰写?

为什么列表放在由 htlatex 撰写?

以下是 MWE:

\documentclass{book}
\usepackage{listings}
\begin{document}

\begin{lstlisting}
var x = 10;

// Some code
if(x == 10) return null;
\end{lstlisting}

\end{document}

当像这样处理时htlatexhtlatex MyFile.tex它会给我这个列表的 HTML:

<div class="lstlisting">
    <!--l. 5-->
    <pre class="listings">&nbsp;<br><span class="label"><a id="x1-2r1"></a></span>var&nbsp;x&nbsp;=&nbsp;10;&nbsp;<br><span class="label"><a id="x1-3r2"></a></span>&nbsp;<br><span class="label"><a id="x1-4r3"></a></span>//&nbsp;Some&nbsp;code&nbsp;<br><span class="label"><a id="x1-5r4"></a></span>if(x&nbsp;==&nbsp;10)&nbsp;return&nbsp;null;
   &nbsp;<br><span class="label"><a id="x1-6r5"></a></span></pre>
    <!--l. 10-->
    <p class="noindent"></p>
</div>

正如你所看到的,它被放在一个与环境相对应的 div 中,但随后它又添加了一个<pre>,我可以配置htlatex不是添加那个?

我尝试添加cfg这个:

\Preamble{html}
\begin{document}
    \ConfigureEnv{listings}{\HCode{<div class="listing">}}{\HCode{</div>}}{}{}
    \ConfigureEnv{lstlisting}{\HCode{<div class="lstlisting">}}{\HCode{</div>}}{}{}
\EndPreamble

但它没有帮助。

答案1

有特别的配置文件对于列表,它有点神秘,但有一行NewConfigure{listings}{4},它似乎为列表提供了配置钩子,不是作为环境,而是作为命令。所以尝试这个配置:

\Preamble{xhtml}
\begin{document}
    \Css{.listings{white-space:pre;}}
    \Configure{listings}{\HCode{<div class="listing">}}{\HCode{</div>}}{}{}
\EndPreamble

相关内容