以下示例在使用 进行编译时崩溃,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 声明的十六进制形式。
结果如下: