这是一个很小的问题,我可以轻松解决它,但还是想提一下,以防万一发生这种情况。
使用\usepackage{fancyvrb}
,我需要逐行打印相同大小的行。所以我发现我可以使用 ,
\begin{BVerbatim}
效果很好。但必须\\
在每行后插入,以便每行显示在自己的行上。这在 PDF 中效果很好。但在 HTML 中,tex4ht 会在它们之间创建一个额外的空行。这是一个 MWE
\documentclass[11pt]{article}
\usepackage{fancyvrb}
\begin{document}
\begingroup
\ttfamily
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\\%This is needed in PDF, else all lines show up on same line
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\\
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\\
\endgroup
\end{document}
使用 lualatex 编译为 pdf
但是make4ht foo.tex
HTML 看起来像这样。添加了额外的空行。
解决方法很简单。在 tex4ht 模式下,不要添加\\
,仅在 pdf 模式下添加\\
\documentclass[11pt]{article}
\usepackage{fancyvrb}
\ifdefined\HCode
\newcommand{\Z}{}%do not add new line for tex4ht
\else
\newcommand{\Z}{\\}
\fi
\begin{document}
\begingroup
\ttfamily
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\Z
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\Z
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\Z
\endgroup
\end{document}
现在 HTML 看起来像
与PDF相同。
问题是:tex4ht 的这种行为正确吗或者这是一个错误?
Linux 上的 Texlive 2018
答案1
如果您留下一个简单的空行,而不是明确的换行符,您将获得所需的结果而无需任何解决方法。
\documentclass[11pt]{article}
\usepackage{fancyvrb}
\begin{document}
\begingroup
\ttfamily
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\begin{BVerbatim}
1234567890123456789012345678901234567890123456789012345678901234567890
\end{BVerbatim}
\endgroup
\end{document}
从html
生成make4ht foo.tex
: