tex4ht 在定义 \rm 命令时因 scrartcl 类而失败。\popthree 的参数有一个额外的

tex4ht 在定义 \rm 命令时因 scrartcl 类而失败。\popthree 的参数有一个额外的

此 MWE 使用 lualatex 和 pdflatex 编译成功,但使用 tex4ht 编译失败。为什么?而且这种情况仅在使用和时发生scrartcl,而不会发生article

\documentclass[11pt]{scrartcl}%{article}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}

\begin{document}
test
\end{document}

现在

 make4ht -ulm draft foo.tex
 ....
(/usr/local/texlive/2018/texmf-dist/tex/generic/tex4ht/html5.4ht))
(/usr/local/texlive/2018/texmf-dist/tex/generic/tex4ht/scrartcl.4ht
! Argument of \popthree has an extra }.
<inserted text>
\par
l.33 \:temp{rm}
?

我也试过

 \documentclass[11pt,enabledeprecatedfontcommands]{scrartcl}

但是 make4ht 仍然出现同样的错误。

除了使用 之外,还有其他解决方法吗article?我需要用于\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}其他事情。

使用 TL 2018

答案1

尝试以下版本的scrartcl.4ht文件:

% scrartcl.4ht (2015-02-07-15:56), generated from tex4ht-4ht.tex
% Copyright 1999-2009 Eitan M. Gurari
% Copyright 2009-2015 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.
\immediate\write-1{version 2015-02-07-15:56}


\def\:temp#1#2#3{\DeclareOldFontCommand{#1}{\normalfont#2}{#3}}
\:temp{\rm}{\rmfamily}{\mathrm}
\:temp{\sf}{\sffamily}{\mathsf}
\:temp{\tt}{\ttfamily}{\mathtt}
\:temp{\bf}{\bfseries}{\mathbf}
\:temp{\it}{\itshape}{\mathit}

\input article.4ht
\Def:Section\minisec{}{#1}
\let\:minisec=\minisec
\def\minisec#1{\:minisec{#1}\@afterheading}
\pend:defI\@makefntext{\IgnorePar}

\Hinput{scrartcl}
\endinput

此版本仅定义旧字体命令并包含article.4ht文件,它们再次被修补。看来修补这些命令article.4ht是不必要的,删除它应该是安全的。我需要进一步调查,但它看起来像一个非常古老的黑客。

相关内容