LaTeX 列表包仅在 tex4ht 中提供不间断空格

LaTeX 列表包仅在 tex4ht 中提供不间断空格

我正在尝试制作一本编程电子书,但 listings 包正在将列表中的所有空格转换为不间断空格。我尝试过breakatwhitespacetrue 和 false 以及其他几种设置。我尝试过定义\def\lst@outputspace{\char32}\def\lst@visiblespace{\char32}(以及将它们定义为HCode{ }\),但我不确定我是否做得正确。无论如何,我似乎无法让它在通过 tex4ht 运行时停止输出不间断空格。

我知道它们是不间断空格的原因是,(1)当我在电子书阅读器中查看它时,如果书太小,它们不会中断,并且(2)在 HTML 代码中,它充斥着 x00A0(我省略了 HTML-y 部分,因为我不知道如何在这里写它们)。

理想情况下,领导空格不会中断,但所有其他空格都将是普通空格。

另外,如果我可以使用其他包,那就太好了。我只需要来自外部文件的逐字输入。

我正在使用 tex4book 来构建,如果有任何区别的话。

答案1

我们可以使用lst@outputspace配置字间距,但 id 不足以将其设置为正常间距,我们还必须配置CSS列表环境以换行。

尝试这个配置文件:

\Preamble{xhtml}

\begin{document}
\makeatletter
\def\lst@outputspace{\HCode{ }}
\makeatother
\Css{div.lstlisting{white-space:pre-wrap;}}
\EndPreamble

环境的默认white-space属性是,根据lstlistingnowrapMozzila 开发者网络

像平常一样折叠空格,但抑制文本内的换行符(文本换行)。

这显然不是我们想要的,pre-wrap看起来更好:

保留空格序列。行会在换行符、 处换行<br>,并根据需要填充行框。

一些示例-无换行符:

在此处输入图片描述

并换行:

在此处输入图片描述

相关内容