使用 arrayrulecolor 并使用 make4ht 进行编译时出现问题

使用 arrayrulecolor 并使用 make4ht 进行编译时出现问题

以下示例在使用 进行编译时崩溃,make4ht该问题依赖于 的使用\arrayrulecolor

\documentclass{article}
\usepackage{booktabs,colortbl}
\begin{document}
\begin{table}
\caption{Example.}
\label{tbl01}
\begin{tabular}{lll}
\toprule 
A & B & C \\
\arrayrulecolor[gray]{.7}
\midrule
D & E & F \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

编译的时候遇到如下错误:

[ERROR]   htlatex: Compilation errors in the htlatex run
[ERROR]   htlatex: Filename Line    Message
[ERROR]   htlatex: ?    11   Misplaced \noalign.
[ERROR]   htlatex: ?    12   Missing } inserted.
[ERROR]   htlatex: ?    12   Missing \endgroup inserted.

在日志文件中我们有:

! Misplaced \noalign.
\n:midrule: ->\o:noalign:
                          {\ifnum 0=`}\fi \let \cur:rule \a:midrule \gobble:...
l.11 \midrule

是否可以修复或避免此错误,仍然使用\arrayrulecolor来更改表格中规则的颜色?

答案1

我认为您可能使用的是旧版本的 TeX4ht,我没有收到任何编译错误。我也没有收到彩色规则,但这很容易修复。TeX4ht 保存了当前规则颜色,但 Booktabs 的旧配置没有使用此信息。我刚刚更新了 TeX4ht 源以使用它,因此如果您更新 TeX 发行版,它很快就会开箱即用。

您可以使用这个配置文件来正确使用它:

\Preamble{xhtml}


\makeatletter
\catcode`\:=11
\def\hline:color{000}
\Configure{toprule}
   {\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth
%
    \Css{tr\#TBL-\TableNo-\ifnum \HRow=0
          1- {border-top:\expandafter\x:Em \the\@thisrulewidth em
 solid \#\hline:color;}
     \else
          \HRow- {border-bottom:\expandafter\x:Em \the\@thisrulewidth em
 solid \#\hline:color;}
     \fi
   }}
\Configure{bottomrule}
   {\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth
%
    \Css{tr\#TBL-\TableNo-\HRow-
            {border-bottom:\expandafter\x:Em \the\@thisrulewidth em
 solid  \#\hline:color}}}
\Configure{midrule}
   {\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth
%
    \Css{tr\#TBL-\TableNo-\HRow-
            {border-bottom:\expandafter\x:Em \the\@thisrulewidth em
 solid \#\hline:color}}}
\Configure{cmidrule}
   {\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth
%
    \Css{td\#TBL-\TableNo-\HRow-\HCol{border-bottom:\expandafter\x:Em \the\@thisrulewidth em
 solid \#\hline:color}}%
    \HCode{<span class="cmidrule"><!-- enable post-processing of cmidrule--></span>}}

\catcode`\:=12
\makeatother
\begin{document}
\EndPreamble

此配置声明插入 Booktabs 规则的 CSS 代码。规则颜色保存在 中\hline:color。它采用适合 CSS 声明的十六进制形式。

结果如下:

在此处输入图片描述

相关内容