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
答案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 指令以较小的字体大小显示当前列表。
结果如下: