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>

Пустые строки в verbatimenvironment были удалены в HTML-выводе. В результате вывод выглядит иначе, чем если бы я скомпилировал файл .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>

Что отображается следующим образом:

введите описание изображения здесь

Связанный контент