make4ht 正在从 verbatim 环境中删除空行

make4ht 正在从 verbatim 环境中删除空行

我的 LaTeX 代码文件foo.tex

\documentclass{article}
\usepackage{amsmath}
\title{Demo}
\begin{document}
\begin{verbatim}
Foo

Bar

Baz
\end{verbatim}
\end{document}

下面是我将其转换为 HTML 的方法make4ht

$ make4ht foo.tex
[STATUS]  make4ht: Conversion started
[STATUS]  make4ht: Input file: foo.tex
[STATUS]  make4ht: Conversion finished

看起来如下foo.html

<!DOCTYPE html> 
<html lang='en-US' xml:lang='en-US'> 
<head><title></title> 
<meta charset='utf-8' /> 
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' /> 
<meta content='width=device-width,initial-scale=1' name='viewport' /> 
<link type='text/css' rel='stylesheet' href='foo.css' /> 
<meta content='foo.tex' name='src' /> 
</head><body>

   <pre id='verbatim-1' class='verbatim'>
Foo
Bar
Baz
</pre>
<!-- l. 11 --><p class='nopar'> </p> 
</body> 
</html>

HTML 输出中的环境中的空白行verbatim已被删除。因此,输出看起来与我将文件编译.tex.pdf.

有没有办法可以防止make4ht删除verbatim环境中的空白行?

答案1

我觉得这个错误是我最近在修复另一个错误时引入的。我会立即在 TeX4ht 中修复它。同时,您可以使用以下配置文件myconfig.cfg

\Preamble{xhtml}
\Configure{verbatim}
{\HCode{}}
{\csname a:sp\endcsname}
\begin{document}
\EndPreamble

需要\Configure{verbatim}两个参数,第一个参数是在每个换行符处插入的代码,第二个参数是空格字符。\csname a:sp\endcsname插入不间断空格,这对于正确缩进是必要的。\HCode{}不插入任何内容,但它强制tex4ht在正确的位置插入换行符。

这是更改前的 HTML 代码:

   <pre id='verbatim-1' class='verbatim'>
Foo
Bar 
Baz
</pre>

您可以看到空白行处的换行符丢失了。

现在使用配置文件编译你的文件:

make4ht -m draft -c myconfig.cfg filename.tex

你将获得正确的 HTML:

   <pre id='verbatim-1' class='verbatim'>
Foo

Bar

Baz
</pre>

渲染结果如下:

在此处输入图片描述

相关内容