引用子标题框会导致 htlatex 中出现错误

引用子标题框会导致 htlatex 中出现错误

以下是 MWE:

    \documentclass[12pt]{article}

    \usepackage[compatibility=false]{caption}
    \usepackage{subcaption}

    \begin{document}

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc aliquam,
    ex et sollicitudin aliquet, magna elit mattis nunc, sed blandit sapien
    mi vel risus. Sed sed efficitur nibh. Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.

    \begin{figure}%
    \subcaptionbox{\label{foo}(a)}{}
    \subcaptionbox{(b)}{}
    \caption{(a) Lorem ipsum dolor sit amet, consectetur adipiscing elit;
    (b) nunc aliquam, ex et sollicitudin aliquet, magna elit mattis nunc.}
    \end{figure}

    Morbi pretium (fig.~\ref{foo})%
    , turpis sit amet tristique luctus,
    sapien ipsum feugiat diam, et volutpat erat sapien ac massa. Aliquam
    erat volutpat.

    \end{document}

用 可以正确编译pdflatex(显然需要两遍),htlatex如果我删除也可以\ref。使用 可以\ref顺利htlatex通过第一遍 LaTeX 编译,然后在第二遍我得到以下结果:

    ! Missing \endcsname inserted.
    <to be read again> 
                       \protect 
    l.20 Morbi pretium (fig.~\ref{foo}
                                      )%
    ? 

    Package caption Warning: \label without proper reference on input line 14.
    See the caption package documentation for explanation.

    LaTeX Warning: Reference `foo' on page 4 undefined on input line 20.

    ! Extra \endcsname.
    \:::HRefTag ...sname cw:)Q\aXrefFile #1\endcsname 
                                                      \relax \:warning {\string ...
    l.20 Morbi pretium (fig.~\ref{foo}
                                      )%
    ?

我猜问题与 的 catcode 有关:?或者可能无关,但无论如何,我不知道该怎么办。

顺便说一句,我最初尝试使用subfigure,但我发现\caption子图内的命令不会导致 HTML 输出中出现不同类的跨度,因此无法将 CSS 应用于子标题。

相关内容