在块内包含mdwtab
while using之后,我遇到了以下错误:siunitx
tabular
! Extra \fi.
\@maybe@unskip ...skip \m@ne \lastskip \relax \fi
l.18 1.0 &
0.0 \\ \hline
显然,这是并非第一次冲突在这些包之间。是否有任何“简单”的解决方法来解决这个问题?我必须包括mdwtab
,因此如果没有解决方法,我将需要使用除siunitx
表格中的数字对齐之外的其他方法,例如dcolumn
。
完整示例
\documentclass[12pt,letterpaper]{article}
\usepackage{siunitx}
% Compilation fails if mdwtab is included
\usepackage{mdwtab}
\begin{document}
\begin{tabular}{|S[table-format=4.1]|}
\hline
1.0 \\ \hline
2.0 \\ \hline
3.0 \\ \hline
\end{tabular}
% The problem happens in there
\begin{tabular}{|S[table-format=4.1]|c|}
\hline
1.0 & 0.0 \\ \hline
2.0 & 0.0 \\ \hline
3.0 & 0.0 \\ \hline
\end{tabular}
\end{document}
软件包版本
软件包:siunitx 2015/01/21 v2.6e 综合(SI)单位软件包
包:mdwtab 1998/04/28 1.9 带样式的表格排版
包:array 2014/10/28 v2.4c 表格扩展包(FMi)
答案1
还有另一个特殊情况的宏需要被检测siunitx
。目前修复:
\usepackage{siunitx}
\ExplSyntaxOn
\makeatletter
\AtBeginDocument
{
\@ifpackageloaded { mdwtab }
{
\cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
{
\token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
{
\token_if_eq_meaning:NNF #1 \tex_unskip:D
{
\token_if_eq_meaning:NNF #1 \tab@setcr
{
\token_if_eq_meaning:NNF #1 \@maybe@unskip
{ \__siunitx_table_collect_not_braced_aux_i:N #1 }
}
}
}
\__siunitx_table_collect_next:
}
}
{ }
}
\makeatother
\ExplSyntaxOff