\documentclass{iopart}
\usepackage[noload=abbr]{siunitx}
\begin{document}
Ciao
\end{document}
I get the warning
("C:\Program Files\MiKTeX 2.7\tex\latex\tools\array.sty"
Package: array 2005/08/23 v2.4b Tabular extension package (FMi)
\col@sep=\dimen104
\extrarowheight=\dimen105
\NC@list=\toks17
\extratabsurround=\skip44
\backup@length=\skip45
LaTeX Warning: Command \@xhline has changed.
Check if current package is valid.
Is it something to worry about?
iopart.cls is the class needed to submit articles to the Institute of
Publishing.
Massimo
The warning is because siunitx uses the array package. array is pretty
common, so I'd hope that it should not break anything. Could you point
to a source for iopart: doesn't seem to be on CTAN.
--
Joseph Wright
Thank you, Joseph,
If you want, I can send you iopart.cls and its documentation through email.
My guess is that iopart code is a bit outdated and there can be conflicts
with more recent packages: for example, amsmath cannot be used with iopart,
and for multiline equations eqnarray should be used. Moreover, siunitx
should be used with noload=abbr option because \ns seems to be already
defined in iopart.
That would be handy.
--
Joseph Wright
Okay, I took a look. The warning is arising as iopart alters \@xhline,
and array checks for the definition before its own alterations.
Luckily, there is actually no problem. iopart does:
\def\@xhline{\ifx\@tempa\hline\vskip \doublerulesep\fi
\ifnum0=`{\fi}}
while array is checking before doing:
\renewcommand*\@xhline{\ifx\reserved@a\hline
\vskip\doublerulesep
\fi
\ifnum0=`{\fi}}
So the two definitions are essentially the same (using \reserved@a
seems a better idea here as the original definition does for the same
purpose).
--
Joseph Wright
>
> Okay, I took a look. The warning is arising as iopart alters \@xhline,
> and array checks for the definition before its own alterations.
> Luckily, there is actually no problem. iopart does:
>
> \def\@xhline{\ifx\@tempa\hline\vskip \doublerulesep\fi
> \ifnum0=`{\fi}}
>
> while array is checking before doing:
>
> \renewcommand*\@xhline{\ifx\reserved@a\hline
> \vskip\doublerulesep
> \fi
> \ifnum0=`{\fi}}
>
> So the two definitions are essentially the same (using \reserved@a
> seems a better idea here as the original definition does for the same
> purpose).
> --
> Joseph Wright
Many thanks for your prompt reply!
Since latex.ltx defines \hline with \reserved@a, while
iopart.cls defines \bhline using \@tempa, it turns out
that array's redefinition of \@xhline potentially breaks
\bhline. On the otherhand, iopart's definition potentially
breaks \hline.
To prevent these problems, iopart.cls ought to be corrected
to use \reserved@a instead of \@tempa in its definitions of
\bhline and \@xhline.
Dan
To reply by email, change LookInSig to luecking
I can try to send your comment to the maintainer of iopart.
Thank you