Thanks for noting this Mani
Keeping your jokes apart, the story does not end there!!!
You have to also add
\def\@citex[#1]#2{%
\let\@citea\@empty
\@cite{\@for\@citeb:=#2\do
{\@citea\def\@citea{], [}%
\edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
\if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
\@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
\G@refundefinedtrue
\@latex@warning
{Citation `\@citeb' on page \thepage \space undefined}}%
{\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
along with the statements you mentioned for proper definition of @citex and warning messages I guess. I have little knowledge of Tex programming but this is what I understood from IEEtran.cls file. Proper understanding of cite.sty and IEEEtran.cls will give the answer for why the above lines may be required.
Actually I added all those lines and put them in nk-iitm-thesis.cls file
along with other minor changes as follows
1) Our great iitmdiss.cls uses natbib package as default, this has to be disabled or its options have to be changed.
2) Default declarations of iitm.bst file and use of caption with hang option (why the hell this option is used?) to be disabled.
3) Default loading of article and report class files which will never give you IEEE standard (not Power Quality standard in your words :) ), hence I killed those problems there itself by using my own minor revision of article and report files.
Personally I don't like problems to come up in class files and solving it with preamble statements
For example
\newcommand\figurename{Figure}
in article class
with
\renewcommand\figurename{Fig.}
in your tex file.
Instead, kill it in the source itself with
\newcommand\figurename{Fig.}
MAKE TEX PROGRAMMING AS SIMPLE AS POSSIBLE FOR USERS
(For that, tailor all your requirements in class and style files and not with pages of preamble statements)
Happy Texing
karthick
--
Share what you know and crave what you want to know