使用较小字体时,tex4ht 无法正确处理列表

使用较小字体时,tex4ht 无法正确处理列表

tex4ht 使用时(无论是否指定字体系列)与不使用 basicstyle 时相比,代码对齐会混乱basicstyle=\small。这只发生在 HTML 中。pdf 是正确的。这是 MWE

\documentclass[12pt]{article}
\usepackage{listings}

\begin{document}

\begin{lstlisting}[language={},keepspaces=true,basicstyle=\small]
local case_one_gamma_entry := module()
    option object;
    export pole_location := 0;
    export pole_order    := 0;
    export sqrt_r        := 0;
    export alpha_plus    := 0;
    export alpha_minus   := 0; 
    export b             := 0;
end module;
\end{lstlisting}

\begin{lstlisting}[language={},keepspaces=true]
local case_one_gamma_entry := module()
    option object;
    export pole_location := 0;
    export pole_order    := 0;
    export sqrt_r        := 0;
    export alpha_plus    := 0;
    export alpha_minus   := 0; 
    export b             := 0;
end module;
\end{lstlisting}

\end{document}

编译为

 make4ht -ulm default -a warning foo2.tex "mathjax,htm"

这是 HTML

在此处输入图片描述

与使用较小字体不会改变源代码对齐的 pdf 相比

在此处输入图片描述

我喜欢在 HTML 中使用较小的字体。有没有办法让 tex4ht 在使用较小字体时不更改源代码?我也试过了,basicstyle=\ttfamily\small但没有效果。

TL2022。

>which tex4ht
/usr/local/texlive/2022/bin/x86_64-linux/tex4ht
>make4ht --version
make4ht version v0.3l

票已添加到 tex4ht

答案1

我认为这个问题是由于字体较小导致使用 CSS 设置列表文本的样式,但只有文本而不是空格需要更大。这个问题已经在 的开发版本中修复make4ht,但目前,您可以尝试此配置文件:

\Preamble{xhtml}
\makeatletter
\lst@AddToHook{Init}{%
\ifx\@currsize\small%
\Css{\#listing-\listingN{font-size:small;}}%
\fi%
\normalsize}
\makeatother
\begin{document}
\EndPreamble

它添加了一个在列表开始时执行的代码,并切换到正常字体大小,以防止错误的间距。但在切换之前,它会测试当前字体是否\small。如果是,它会插入 CSS 指令以较小的字体大小显示当前列表。

结果如下:

在此处输入图片描述

相关内容