Safari 字体与 TeX4ht 存在错误

Safari 字体与 TeX4ht 存在错误

我遇到了以下 TeX4ht 问题:如果文档包含多列列表,并且我在 Safari 中打开生成的 HTML 文件,则列表中的某些项目不会显示。例如,查看此处的第 11 和第 12 项:

缺少项目的多列列表

我测试过的其他浏览器都没有出现这种情况。奇怪的是,如果我在 Safari 中放大或缩小,丢失的项目会再次出现。

我使用的是 Safari 15.1 版(17612.2.9.1.20)。为了重现这个错误,如下mwe.tex

\documentclass{article}

\usepackage{multicol}
\usepackage{enumitem}

\begin{document}

\begin{enumerate}[
    before = {
        \raggedcolumns
        \begin{multicols}{4}
    },
    after = \end{multicols}
]
    \item
    $\frac{1}{4}$    
    \item
    $\frac{1}{5}$ 
    \item
    $\frac{3}{4}$   
    \item
    $\frac{3}{5}$   
    \item
    $\frac{2}{5}$
    \item
    $\frac{4}{5}$   
    \item
    $\frac{1}{3}$
    \item
    $\frac{2}{3}$
    \item
    $\frac{32}{48}$
    \item
    $\frac{1}{40}$
    \item
    $\frac{30}{45}$ 
    \item
    $\frac{9}{2}$
\end{enumerate}

\end{document}

config.cfg

\Preamble{html,mathml}

\Configure{@HEAD}{
    \HCode{
        <link rel="stylesheet"
              href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,600;0,700;1,300;1,600&display=swap">
    }
}

\begin{document}

\Css{
    body {
        font-family: 'Poppins', sans-serif;
    }
}

\EndPreamble

我使用以下命令编译该文档

htlatex mwe.tex "config,mathjax,charset=utf-8" " -cmozhtf -utf8";

请注意,如果我使用默认字体,这不是问题。有没有办法修复此错误并保留 Poppins 字体?

答案1

我无法评论 Safari 的问题,因为我无法使用任何 Apple 设备。这可能是 Safari 中的错误、TeX4ht 生成的错误 CSS 或 MathJax 问题。

我可以说的是,生成的 HTML 文件存在一个小问题,这是由于您multicols在 中使用了 环境造成的enumitem。它似乎阻止了插入enumitem环境的结束标记。可以使用以下版本的 修复此问题enumitem.4ht

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% enumitem.4ht                       2022-04-29-17:02 %
% Copyright (C) 2009-2009       Eitan M. Gurari         %
% Copyright 2009-2022 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\AddToHook{env/enumerate/end}{\ifx\enit@after\@empty\else%
  \let\enit:after\enit@after
  \let\enit@after\@empty
  \let\enumerate:executed\@empty
  \append:def\end:DL{\enit:after}
\fi}

\Hinput{enumitem}
\endinput

after仅在环境关闭后才执行代码enumitem。它应该导致标签正确关闭。

似乎第一列中第一个元素之前也存在虚假空格。可以使用 CSS 修复此问题:

\Preamble{html,mathml}

\Configure{@HEAD}{
    \HCode{
        <link rel="stylesheet"
              href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,600;0,700;1,300;1,600&display=swap">
    }
}

\begin{document}

\Css{
    body {
        font-family: 'Poppins', sans-serif;
    }
    .columns-4 :first-child{margin-top:0;}
}

\EndPreamble

经过这些更改,您会在不同的浏览器中获得截然不同的结果:

火狐浏览器:

在此处输入图片描述

除了垂直条之外,其他都很好。

铬:

在此处输入图片描述

相当混乱。它似乎错误地拆分了列。

Qute浏览器:

在此处输入图片描述

与 Chromium 类似,但至少它不会在中间破坏数字。

如果有人可以建议可以在所有浏览器中正常运行的 CSS,我会很乐意更新 TeX4ht 源。

相关内容