Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SIunitx and iopart.cls

797 views
Skip to first unread message

Massimo Ortolano

unread,
Dec 1, 2009, 3:20:31 PM12/1/09
to
If I compile the following

\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

Joseph Wright

unread,
Dec 1, 2009, 10:01:14 PM12/1/09
to
On Dec 1, 8:20 pm, Massimo Ortolano <massimo.ortolanoNOS...@polito.it>
wrote:

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

Massimo Ortolano

unread,
Dec 2, 2009, 2:22:11 AM12/2/09
to

"Joseph Wright" <joseph...@morningstar2.co.uk> wrote in message
news:a5dedd70-4c26-477c...@m26g2000yqb.googlegroups.com...

On Dec 1, 8:20 pm, Massimo Ortolano <massimo.ortolanoNOS...@polito.it>
wrote:
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.


Joseph Wright

unread,
Dec 2, 2009, 11:54:58 AM12/2/09
to
On Dec 2, 7:22 am, "Massimo Ortolano"

<massimo.ortolanoNOS...@polito.it> wrote:
> Thank you, Joseph,
> If you want, I can send you iopart.cls and its documentation through email.

That would be handy.
--
Joseph Wright

Joseph Wright

unread,
Dec 2, 2009, 12:13:35 PM12/2/09
to
On Dec 2, 4:54 pm, Joseph Wright <joseph.wri...@morningstar2.co.uk>
wrote:

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

Massimo Ortolano

unread,
Dec 2, 2009, 12:27:52 PM12/2/09
to
Joseph Wright wrote:
> On Dec 2, 4:54 pm, Joseph Wright <joseph.wri...@morningstar2.co.uk>

>

> 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!

Dan Luecking

unread,
Dec 2, 2009, 3:29:14 PM12/2/09
to

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

Massimo Ortolano

unread,
Dec 3, 2009, 11:29:48 AM12/3/09
to
Dan Luecking wrote:
>
> 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.
>

I can try to send your comment to the maintainer of iopart.

Thank you

0 new messages