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>

環境内の空白行はverbatimHTML 出力で削除されました。その結果、出力は、.texファイルを にコンパイルした場合とは異なって見えます.pdf

make4ht環境内の空白行が削除されないようにする方法はありますかverbatim?

答え1

最近別のバグを修正したときにこのバグが入り込んだと思います。TeX4ht ですぐに修正します。その間、次の設定ファイルを使用できますmyconfig.cfg

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

\Configure{verbatim}2 つのパラメータを取ります。最初のパラメータは各改行に挿入されるコードで、2 番目はスペース文字です。\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>

これは次のようにレンダリングされます:

ここに画像の説明を入力してください

関連情報