summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/IEEEtran
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-08-27 22:01:39 +0000
committerKarl Berry <karl@freefriends.org>2015-08-27 22:01:39 +0000
commit7eb5047990feee3545abafcc60bae22fad6f1927 (patch)
treeef619a5e28e7215a5ab465a7647fa301245e2097 /Master/texmf-dist/tex/latex/IEEEtran
parented0cc62be17e1bf2b0a072cf59cc8d49e9c02e4a (diff)
IEEEtran (27aug15)
git-svn-id: svn://tug.org/texlive/trunk@38220 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/IEEEtran')
-rw-r--r--Master/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls515
-rw-r--r--Master/texmf-dist/tex/latex/IEEEtran/IEEEtrantools.sty73
2 files changed, 355 insertions, 233 deletions
diff --git a/Master/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls b/Master/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls
index 67958d9b331..8d2b1c6478f 100644
--- a/Master/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls
+++ b/Master/texmf-dist/tex/latex/IEEEtran/IEEEtran.cls
@@ -1,5 +1,5 @@
%%
-%% IEEEtran.cls 2014/09/17 version V1.8a
+%% IEEEtran.cls 2015/08/26 version V1.8b
%%
%% This is the IEEEtran LaTeX class for authors of the Institute of
%% Electrical and Electronics Engineers (IEEE) Transactions journals and
@@ -7,7 +7,7 @@
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
-%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
+%% http://www.ctan.org/pkg/ieeetran
%% and
%% http://www.ieee.org/
%%
@@ -25,9 +25,9 @@
%% Jon Dixon, Peter N"uchter,
%% Juergen von Hagen
%% and
-%% Copyright (c) 2001-2014 by Michael Shell
+%% Copyright (c) 2001-2015 by Michael Shell
%%
-%% Current maintainer (V1.3 to V1.8a): Michael Shell
+%% Current maintainer (V1.3 to V1.8b): Michael Shell
%% See:
%% http://www.michaelshell.org/
%% for current contact information.
@@ -42,7 +42,7 @@
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE!
%% User assumes all risk.
-%% In no event shall IEEE or any contributor to this code be liable for
+%% In no event shall the IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
@@ -152,8 +152,9 @@
% column mode is usually used only with draft papers.
% The default is twocolumn.
%
-% compsoc, transmag
-% Use the format of the IEEE Computer Society or IEEE Transactions on Magnetics
+% comsoc, compsoc, transmag
+% Use the format of the IEEE Communications Society, IEEE Computer Society
+% or IEEE Transactions on Magnetics, respectively.
%
% romanappendices
% Use the "Appendix I" convention when numbering appendices. IEEEtran.cls
@@ -202,7 +203,7 @@
-\ProvidesClass{IEEEtran}[2014/09/17 V1.8a by Michael Shell]
+\ProvidesClass{IEEEtran}[2015/08/26 V1.8b by Michael Shell]
\typeout{-- See the "IEEEtran_HOWTO" manual for usage information.}
\typeout{-- http://www.michaelshell.org/tex/ieeetran/}
\NeedsTeXFormat{LaTeX2e}
@@ -250,6 +251,7 @@
\newif\ifCLASSOPTIONcaptionsoff \CLASSOPTIONcaptionsofffalse
+\newif\ifCLASSOPTIONcomsoc \CLASSOPTIONcomsocfalse
\newif\ifCLASSOPTIONcompsoc \CLASSOPTIONcompsocfalse
\newif\ifCLASSOPTIONtransmag \CLASSOPTIONtransmagfalse
@@ -359,9 +361,11 @@
\DeclareOption{captionsoff}{\CLASSOPTIONcaptionsofftrue}
-\DeclareOption{compsoc}{\CLASSOPTIONcompsoctrue\CLASSOPTIONtransmagfalse}
+\DeclareOption{comsoc}{\CLASSOPTIONcomsoctrue\CLASSOPTIONcompsocfalse\CLASSOPTIONtransmagfalse}
-\DeclareOption{transmag}{\CLASSOPTIONtransmagtrue\CLASSOPTIONcompsocfalse}
+\DeclareOption{compsoc}{\CLASSOPTIONcomsocfalse\CLASSOPTIONcompsoctrue\CLASSOPTIONtransmagfalse}
+
+\DeclareOption{transmag}{\CLASSOPTIONtransmagtrue\CLASSOPTIONcomsocfalse\CLASSOPTIONcompsocfalse}
\DeclareOption{romanappendices}{\CLASSOPTIONromanappendicestrue}
@@ -374,7 +378,23 @@
%% -- Command Argument Scanning Support Functions --
-%
+
+% Sets the category codes for punctuation to their normal values.
+% For local use with argument scanning.
+\def\IEEEnormalcatcodespunct{\catcode`\!=12 \catcode`\,=12 \catcode`\:=12
+\catcode`\;=12 \catcode`\`=12 \catcode`\'=12 \catcode`\"=12 \catcode`\.=12
+\catcode`\/=12 \catcode`\?=12 \catcode`\*=12 \catcode`\+=12 \catcode`\-=12
+\catcode`\<=12 \catcode`\>=12 \catcode`\(=12 \catcode`\)=12 \catcode`\[=12
+\catcode`\]=12 \catcode`\==12 \catcode`\|=12}
+% Sets the category codes for numbers to their normal values.
+% For local use with argument scanning.
+\def\IEEEnormalcatcodesnum{\catcode`\0=12 \catcode`\1=12 \catcode`\2=12
+\catcode`\3=12 \catcode`\4=12 \catcode`\5=12 \catcode`\6=12 \catcode`\7=12
+\catcode`\8=12 \catcode`\9=12}
+% combined action of \IEEEnormalcatcodespunct and \IEEEnormalcatcodesnum
+\def\IEEEnormalcatcodes{\IEEEnormalcatcodespunct\IEEEnormalcatcodesnum}
+
+
% usage: \@IEEEextracttoken*{}
% \@IEEEextracttoken fully expands its argument (which it then stores in
% \@IEEEextracttokenarg) via \edef and then the meaning of the first
@@ -442,23 +462,54 @@
\long\def\@IEEEcompsocnotconfonly#1{\relax\ifCLASSOPTIONcompsoc\ifCLASSOPTIONconference\else\relax#1\relax\fi\fi\relax}
-% IEEE uses Times Roman font, so we'll default to Times.
+% comsoc verify that newtxmath, mtpro2, mt11p or mathtime has been loaded
+\def\@IEEEcomsocverifymathfont{\typeout{-- Verifying Times compatible math font.}\relax
+ \@ifpackageloaded{newtxmath}{\typeout{-- newtxmath loaded, OK.}}{\@@IEEEcomsocverifymathfont}}
+\def\@@IEEEcomsocverifymathfont{\@ifpackageloaded{mtpro2}{\typeout{-- mtpro2 loaded, OK.}}{\@@@IEEEcomsocverifymathfont}}
+\def\@@@IEEEcomsocverifymathfont{\@ifpackageloaded{mt11p}{\typeout{-- mt11p2 loaded, OK.}}{\@@@@IEEEcomsocverifymathfont}}
+\def\@@@@IEEEcomsocverifymathfont{\@ifpackageloaded{mathtime}{\typeout{-- mathtime loaded, OK.}}{\@IEEEcomsocenforcemathfont}}
+
+% comsoc, if a Times math font was not loaded by user, enforce it
+\def\@IEEEcomsocenforcemathfont{\typeout{** Times compatible math font not found, forcing.}\relax
+\IfFileExists{newtxmath.sty}{\typeout{-- Found newtxmath, loading.}\RequirePackage{newtxmath}}{\@@IEEEcomsocenforcemathfont}}
+\def\@@IEEEcomsocenforcemathfont{\IfFileExists{mtpro2.sty}{\typeout{-- Found mtpro2, loading.}\RequirePackage{mtpro2}}{\@@@IEEEcomsocenforcemathfont}}
+\def\@@@IEEEcomsocenforcemathfont{\IfFileExists{mt11p.sty}{\typeout{-- Found mt11p, loading.}\RequirePackage{mt11p}}{\@@@@IEEEcomsocenforcemathfont}}
+\def\@@@@IEEEcomsocenforcemathfont{\IfFileExists{mathtime.sty}{\typeout{-- Found mathtime, loading.}\RequirePackage{mathtime}}{\@@@@@IEEEcomsocenforcemathfont}}
+% if no acceptable Times math font package found, error with newtxmath requirement
+\def\@@@@@IEEEcomsocenforcemathfont{\typeout{** No Times compatible math font package found. newtxmath is required.}\RequirePackage{newtxmath}}
+
+
+\ifCLASSOPTIONcomsoc
+ % ensure that if newtxmath is used, the cmintegrals option is also invoked
+ \PassOptionsToPackage{cmintegrals}{newtxmath}
+ % comsoc requires a Times like math font
+ % ensure this requirement is satisfied at document start
+ \AtBeginDocument{\@IEEEcomsocverifymathfont}
+\fi
+
+
+
+% The IEEE uses Times Roman font, so we'll default to Times.
% These three commands make up the entire times.sty package.
\renewcommand{\sfdefault}{phv}
\renewcommand{\rmdefault}{ptm}
\renewcommand{\ttdefault}{pcr}
-\@IEEEcompsoconly{\typeout{-- Using IEEE Computer Society mode.}}
-
% V1.7 compsoc nonconference papers, use Palatino/Palladio as the main text font,
% not Times Roman.
\@IEEEcompsocnotconfonly{\renewcommand{\rmdefault}{ppl}}
-% enable Times/Palatino main text font
+% enable the selected main text font
\normalfont\selectfont
+\ifCLASSOPTIONcomsoc
+ \typeout{-- Using IEEE Communications Society mode.}
+\fi
+\ifCLASSOPTIONcompsoc
+ \typeout{-- Using IEEE Computer Society mode.}
+\fi
% V1.7 conference notice message hook
@@ -941,16 +992,16 @@
%
% 2.5pt plus 1.49998pt minus 0.59998pt
%
-% However, IEEE allows for a more generous range which reduces the need
-% for hyphenation, especially for two column text. Furthermore, IEEE
+% However, the IEEE allows for a more generous range which reduces the need
+% for hyphenation, especially for two column text. Furthermore, the IEEE
% tends to use a little bit more nominal space between the words.
-% IEEE's interword spacing percentages appear to be:
+% The IEEE's interword spacing percentages appear to be:
% 35% nominal
% 23% minimum
% 50% maximum
% (They may even be using a tad more for the largest fonts such as 24pt.)
%
-% for bold text, IEEE increases the spacing a little more:
+% for bold text, the IEEE increases the spacing a little more:
% 37.5% nominal
% 23% minimum
% 55% maximum
@@ -1008,7 +1059,7 @@
% revise the interword spacing for each font shape
% \slshape is not often used for IEEE work and is not altered here. The \scshape caps are
-% already a tad too large in the free LaTeX fonts (as compared to what IEEE uses) so we
+% already a tad too large in the free LaTeX fonts (as compared to what the IEEE uses) so we
% won't alter these either.
\def\@IEEEsetfontdimens{{%
\normalfont
@@ -1621,7 +1672,7 @@
% If we didn't adjust the interword spacing, 2200 might be better.
% The TeX default is 1000
\hbadness=1350
-% IEEE does not use extra spacing after punctuation
+% The IEEE does not use extra spacing after punctuation
\frenchspacing
% V1.7 increase this a tad to discourage equation breaks
@@ -1867,20 +1918,20 @@
\topsep 0.5\baselineskip
% Controls the additional spacing around lists preceded
-% or followed by blank lines. IEEE does not increase
+% or followed by blank lines. the IEEE does not increase
% spacing before or after paragraphs so it is set to zero.
% \z@ is the same as zero, but faster.
\partopsep \z@
% Controls the spacing between paragraphs in lists.
-% IEEE does not increase spacing before or after paragraphs
+% The IEEE does not increase spacing before or after paragraphs
% so this is also zero.
% With IEEEtran.cls, global changes to
% this value DO affect lists (but not IED lists).
\parsep \z@
% Controls the extra spacing between list items.
-% IEEE does not put extra spacing between items.
+% The IEEE does not put extra spacing between items.
% With IEEEtran.cls, global changes to this value DO affect
% lists (but not IED lists).
\itemsep \z@
@@ -1888,7 +1939,7 @@
% \itemindent is the amount to indent the FIRST line of a list
% item. It is auto set to zero within the \list environment. To alter
% it, you have to do so when you call the \list.
-% However, IEEE uses this for the theorem environment
+% However, the IEEE uses this for the theorem environment
% There is an alternative value for this near \leftmargini below
\itemindent -1em
@@ -1918,7 +1969,7 @@
% However, the new V1.3 IED list environments override all the
% @list stuff (\@listX is called within \list for the
% appropriate level just before the user's list_decl is called).
-% \topsep is now 2pt as IEEE puts a little extra space around
+% \topsep is now 2pt as the IEEE puts a little extra space around
% lists - used by those non-IED macros that depend on \list.
% Note that \parsep and \itemsep are not redefined as in
% the sizexx.clo \@listX (which article.cls uses) so global changes
@@ -1938,16 +1989,16 @@
\advance\labelwidth-\labelsep \topsep 2pt}
-% IEEE uses 5) not 5.
+% The IEEE uses 5) not 5.
\def\labelenumi{\theenumi)} \def\theenumi{\arabic{enumi}}
-% IEEE uses a) not (a)
+% The IEEE uses a) not (a)
\def\labelenumii{\theenumii)} \def\theenumii{\alph{enumii}}
-% IEEE uses iii) not iii.
+% The IEEE uses iii) not iii.
\def\labelenumiii{\theenumiii)} \def\theenumiii{\roman{enumiii}}
-% IEEE uses A) not A.
+% The IEEE uses A) not A.
\def\labelenumiv{\theenumiv)} \def\theenumiv{\Alph{enumiv}}
% exactly the same as in article.cls
@@ -1968,7 +2019,7 @@
% ***************************
%
%
-% IEEE seems to use at least two different values by
+% The IEEE seems to use at least two different values by
% which ITEMIZED list labels are indented to the right
% For The Journal of Lightwave Technology (JLT) and The Journal
% on Selected Areas in Communications (JSAC), they tend to use
@@ -2014,7 +2065,7 @@
% alter the effective \IEEElabelindent for deeper
% levels
% There may not be such a thing as correct "standard IEEE"
-% values. What IEEE actually does may depend on the specific
+% values. What the IEEE actually does may depend on the specific
% circumstances.
% The first list level almost always has full indention.
% The second levels I've seen have only 75% of the normal indentation
@@ -2043,13 +2094,13 @@
% This controls the default spacing between the end of the IED
% list labels and the list text, when math symbols are used for
-% the labels (nomenclature lists). IEEE usually increases the
+% the labels (nomenclature lists). The IEEE usually increases the
% spacing in these cases
\newdimen\IEEEiedmathlabelsep
\IEEEiedmathlabelsep 1.2em
% This controls the extra vertical separation put above and
-% below each IED list. IEEE usually puts a little extra spacing
+% below each IED list. the IEEE usually puts a little extra spacing
% around each list. However, this spacing is barely noticeable.
% compsoc uses a larger value here, but we'll set that later
% in the class so that this code block area can be extracted
@@ -2119,7 +2170,7 @@
% label justifications. Use these commands within
% the IED environment option or in the \IEEEiedlistdecl
% Note that changing the normal list justifications
-% is nonstandard and IEEE may not like it if you do so!
+% is nonstandard and the IEEE may not like it if you do so!
% I include these commands as they may be helpful to
% those who are using these enhanced list controls for
% other non-IEEE related LaTeX work.
@@ -2422,7 +2473,7 @@
% LaTeX considers the space for characters to be 0.7\baselineskip
% above the baseline and 0.3\baselineskip below it, we need to
% use 0.7\baselineskip as a \footnotesep to maintain equal spacing
-% between all the lines of the footnotes. IEEE often uses a tad
+% between all the lines of the footnotes. The IEEE often uses a tad
% more, so use 0.8\baselineskip. This slightly larger value also helps
% the text to clear the footnote marks. Note that \thanks in IEEEtran
% uses its own value of \footnotesep which is set in \maketitle.
@@ -2434,7 +2485,7 @@
\fboxsep = 3pt
\fboxrule = .4pt
% V1.6 use 1em, then use LaTeX2e's \@makefnmark
-% Note that IEEE normally *left* aligns the footnote marks, so we don't need
+% Note that the IEEE normally *left* aligns the footnote marks, so we don't need
% box resizing tricks here.
\long\def\@makefntext#1{\parindent 1em\indent\hbox{\@makefnmark}#1}% V1.6 use 1em
% V1.7 compsoc does not use superscipts for footnote marks
@@ -2443,10 +2494,10 @@
\long\def\@makefntext#1{\parindent 1em\indent\hbox{\@IEEEcompsocmakefnmark}#1}
\fi
-% IEEE does not use footnote rules
+% The IEEE does not use footnote rules
\def\footnoterule{}
-% V1.7 for compsoc, IEEE uses a footnote rule only for \thanks. We devise a "one-shot"
+% V1.7 for compsoc, the IEEE uses a footnote rule only for \thanks. We devise a "one-shot"
% system to implement this.
\newif\if@IEEEenableoneshotfootnoterule
\@IEEEenableoneshotfootnoterulefalse
@@ -2502,7 +2553,7 @@
\def\thesection{\Roman{section}} % I
% V1.7, \mbox prevents breaks around -
\def\thesubsection{\mbox{\thesection-\Alph{subsection}}} % I-A
-% V1.7 use I-A1 format used by IEEE rather than I-A.1
+% V1.7 use I-A1 format used by the IEEE rather than I-A.1
\def\thesubsubsection{\thesubsection\arabic{subsubsection}} % I-A1
\def\theparagraph{\thesubsubsection\alph{paragraph}} % I-A1a
\fi
@@ -2782,7 +2833,7 @@
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename\nobreakspace\thetable}
-% V1.6 IEEE uses 8pt text for tables
+% V1.6 The IEEE uses 8pt text for tables
% within tables alter LaTeX2e's \@floatboxreset to use \footnotesize
\def\table{\def\@floatboxreset{\reset@font\footnotesize\@setminipage}\@float{table}}
\def\endtable{\end@float}
@@ -3578,7 +3629,11 @@ Using a default centering column instead}%
% The star form defaults to not putting equation numbers at the end of each row.
% usage: \IEEEeqnarray[decl]{cols}
\def\@IEEEeqnarray{\relax\@ifnextchar[{\@@IEEEeqnarray}{\@@IEEEeqnarray[\relax]}}
-\def\@@IEEEeqnarray[#1]#2{%
+% We have to be careful here to normalize catcodes just before acquiring the
+% cols as that specification may contain punctuation which could be subject
+% to document catcode changes.
+\def\@@IEEEeqnarray[#1]{\begingroup\IEEEnormalcatcodes\@@@IEEEeqnarray[#1]}
+\def\@@@IEEEeqnarray[#1]#2{\endgroup
% default to showing the equation number or not based on whether or not
% the star form was involked
\if@IEEEeqnumpersist\global\@eqnswtrue
@@ -3790,11 +3845,14 @@ $$\@ignoretrue}
\@IEEEeqnarrayboxHBOXSWfalse
\def\@IEEEeqnarraybox{\relax\@ifnextchar[{\@@IEEEeqnarraybox}{\@@IEEEeqnarraybox[\relax]}}
-\def\@@IEEEeqnarraybox[#1]{\relax\@ifnextchar[{\@@@IEEEeqnarraybox[#1]}{\@@@IEEEeqnarraybox[#1][b]}}
+% We have to be careful here to normalize catcodes just before acquiring the
+% cols as that specification may contain punctuation which could be subject
+% to document catcode changes.
+\def\@@IEEEeqnarraybox[#1]{\relax\begingroup\IEEEnormalcatcodes\@ifnextchar[{\@@@IEEEeqnarraybox[#1]}{\@@@IEEEeqnarraybox[#1][b]}}
\def\@@@IEEEeqnarraybox[#1][#2]{\relax\@ifnextchar[{\@@@@IEEEeqnarraybox[#1][#2]}{\@@@@IEEEeqnarraybox[#1][#2][\relax]}}
% #1 = decl; #2 = t,b,c; #3 = width, #4 = col specs
-\def\@@@@IEEEeqnarraybox[#1][#2][#3]#4{\@IEEEeqnarrayISinnerfalse % not yet within the lines of the halign
+\def\@@@@IEEEeqnarraybox[#1][#2][#3]#4{\endgroup\@IEEEeqnarrayISinnerfalse % not yet within the lines of the halign
\@IEEEeqnarraymasterstrutsave% save current master strut values
\@IEEEeqnarraystrutsize{0pt}{0pt}[\relax]% turn off struts by default
\@IEEEeqnarrayusemasterstruttrue% use master strut till user asks otherwise
@@ -4168,143 +4226,139 @@ between column types.}%
-% set up the running headings, this complex because of all the different
-% modes IEEEtran supports
-\if@twoside
- \ifCLASSOPTIONtechnote
- \def\ps@headings{%
- \def\@oddhead{\hbox{}\scriptsize\leftmark \hfil \thepage}
- \def\@evenhead{\scriptsize\thepage \hfil \leftmark\hbox{}}
- \ifCLASSOPTIONdraftcls
- \ifCLASSOPTIONdraftclsnofoot
- \def\@oddfoot{}\def\@evenfoot{}%
- \else
- \def\@oddfoot{\scriptsize\@date\hfil DRAFT}
- \def\@evenfoot{\scriptsize DRAFT\hfil\@date}
- \fi
- \else
- \def\@oddfoot{}\def\@evenfoot{}
- \fi}
- \else % not a technote
- \def\ps@headings{%
- \ifCLASSOPTIONconference
- \def\@oddhead{}
- \def\@evenhead{}
- \else
- \def\@oddhead{\hbox{}\scriptsize\rightmark \hfil \thepage}
- \def\@evenhead{\scriptsize\thepage \hfil \leftmark\hbox{}}
- \fi
- \ifCLASSOPTIONdraftcls
- \def\@oddhead{\hbox{}\scriptsize\rightmark \hfil \thepage}
- \def\@evenhead{\scriptsize\thepage \hfil \leftmark\hbox{}}
- \ifCLASSOPTIONdraftclsnofoot
- \def\@oddfoot{}\def\@evenfoot{}%
- \else
- \def\@oddfoot{\scriptsize\@date\hfil DRAFT}
- \def\@evenfoot{\scriptsize DRAFT\hfil\@date}
- \fi
- \else
- \def\@oddfoot{}\def\@evenfoot{}%
- \fi}
- \fi
-\else % single side
-\def\ps@headings{%
- \ifCLASSOPTIONconference
- \def\@oddhead{}
- \def\@evenhead{}
- \else
- \def\@oddhead{\hbox{}\scriptsize\leftmark \hfil \thepage}
- \def\@evenhead{}
- \fi
- \ifCLASSOPTIONdraftcls
- \def\@oddhead{\hbox{}\scriptsize\leftmark \hfil \thepage}
- \def\@evenhead{}
- \ifCLASSOPTIONdraftclsnofoot
- \def\@oddfoot{}
- \else
- \def\@oddfoot{\scriptsize \@date \hfil DRAFT}
- \fi
- \else
- \def\@oddfoot{}
- \fi
- \def\@evenfoot{}}
+
+% set up the running headers and footers
+%
+% header and footer font and size specifications
+\def\@IEEEheaderstyle{\normalfont\scriptsize}
+\def\@IEEEfooterstyle{\normalfont\scriptsize}
+%
+% compsoc uses sans-serif headers and footers
+\ifCLASSOPTIONcompsoc
+ \def\@IEEEheaderstyle{\normalfont\sffamily\scriptsize}
+ \def\@IEEEfooterstyle{\normalfont\sffamily\scriptsize}
\fi
-% title page style
-\def\ps@IEEEtitlepagestyle{\def\@oddfoot{}\def\@evenfoot{}%
-\ifCLASSOPTIONconference
- \def\@oddhead{}%
- \def\@evenhead{}%
-\else
- \def\@oddhead{\hbox{}\scriptsize\leftmark \hfil \thepage}%
- \def\@evenhead{\scriptsize\thepage \hfil \leftmark\hbox{}}%
+% standard page style, ps@headings
+\def\ps@headings{% default to standard twoside headers, no footers
+% will change later if the mode requires otherwise
+\def\@oddhead{\hbox{}\@IEEEheaderstyle\rightmark\hfil\thepage}\relax
+\def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax
+\let\@oddfoot\@empty
+\let\@evenfoot\@empty
+\ifCLASSOPTIONtechnote
+ % technote twoside
+ \def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax
+ \def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax
\fi
\ifCLASSOPTIONdraftcls
- \def\@oddhead{\hbox{}\scriptsize\leftmark \hfil \thepage}%
- \def\@evenhead{\scriptsize\thepage \hfil \leftmark\hbox{}}%
- \ifCLASSOPTIONdraftclsnofoot\else
- \def\@oddfoot{\scriptsize \@date\hfil DRAFT}%
- \def\@evenfoot{\scriptsize DRAFT\hfil \@date}%
- \fi
-\else
- % all non-draft mode footers
- \if@IEEEusingpubid
- % for title pages that are using a pubid
- % do not repeat pubid if using peer review option
- \ifCLASSOPTIONpeerreview
- \else
- \ifCLASSOPTIONcompsoc
- \def\@oddfoot{\hss\normalfont\scriptsize\raisebox{0ex}[0ex][0ex]{\@IEEEpubid}\hss}%
- \def\@evenfoot{\hss\normalfont\scriptsize\raisebox{0ex}[0ex][0ex]{\@IEEEpubid}\hss}%
- \else
- \footskip 0pt%
- \def\@oddfoot{\hss\normalfont\footnotesize\raisebox{1.5ex}[1.5ex]{\@IEEEpubid}\hss}%
- \def\@evenfoot{\hss\normalfont\footnotesize\raisebox{1.5ex}[1.5ex]{\@IEEEpubid}\hss}%
- \fi
- \fi
- \fi
+ % draft footers
+ \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax
+ \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax
+\fi
+% oneside
+\if@twoside\else
+ % standard one side headers
+ \def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax
+ \let\@evenhead\@empty
+ \ifCLASSOPTIONdraftcls
+ % oneside draft footers
+ \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax
+ \let\@evenfoot\@empty
+ \fi
+\fi
+% turn off headers for conferences
+\ifCLASSOPTIONconference
+ \let\@oddhead\@empty
+ \let\@evenhead\@empty
+\fi
+% turn off footers for draftclsnofoot
+\ifCLASSOPTIONdraftclsnofoot
+ \let\@oddfoot\@empty
+ \let\@evenfoot\@empty
\fi}
-% peer review cover page style
-\def\ps@IEEEpeerreviewcoverpagestyle{%
-\def\@oddhead{}\def\@evenhead{}%
-\def\@oddfoot{}\def\@evenfoot{}%
+% title page style, ps@IEEEtitlepagestyle
+\def\ps@IEEEtitlepagestyle{% default title page headers, no footers
+\def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax
+\def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax
+\let\@oddfoot\@empty
+\let\@evenfoot\@empty
+% will change later if the mode requires otherwise
\ifCLASSOPTIONdraftcls
- \ifCLASSOPTIONdraftclsnofoot\else
- \def\@oddfoot{\scriptsize \@date\hfil DRAFT}%
- \def\@evenfoot{\scriptsize DRAFT\hfil \@date}%
- \fi
+ % draft footers
+ \ifCLASSOPTIONdraftclsnofoot\else
+ % but only if not draftclsnofoot
+ \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax
+ \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax
+ \fi
\else
- % non-draft mode footers
- \if@IEEEusingpubid
+ % all nondraft mode footers
+ \if@IEEEusingpubid
+ % for title pages that are using a pubid
+ % do not repeat pubid on the title page if using a peer review cover page
+ \ifCLASSOPTIONpeerreview\else
+ % for noncompsoc papers, the pubid uses footnotesize and
+ % is at the same vertical position as where the last baseline would normally be
+ \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
\ifCLASSOPTIONcompsoc
- \def\@oddfoot{\hss\normalfont\scriptsize\raisebox{0ex}[0ex][0ex]{\@IEEEpubid}\hss}%
- \def\@evenfoot{\hss\normalfont\scriptsize\raisebox{0ex}[0ex][0ex]{\@IEEEpubid}\hss}%
- \else
- \footskip 0pt%
- \def\@oddfoot{\hss\normalfont\footnotesize\raisebox{1.5ex}[1.5ex]{\@IEEEpubid}\hss}%
- \def\@evenfoot{\hss\normalfont\footnotesize\raisebox{1.5ex}[1.5ex]{\@IEEEpubid}\hss}%
+ % for compsoc papers, the pubid is at the same vertical position as the normal footer
+ \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
\fi
- \fi
+ \fi
+ \fi
+\fi
+% turn off headers for conferences
+\ifCLASSOPTIONconference
+ \let\@oddhead\@empty
+ \let\@evenhead\@empty
\fi}
-% start with empty headings
-\def\rightmark{}\def\leftmark{}
+% peer review cover page style, ps@IEEEpeerreviewcoverpagestyle
+\def\ps@IEEEpeerreviewcoverpagestyle{% default peer review cover no headers, no footers
+\let\@oddhead\@empty
+\let\@evenhead\@empty
+\let\@oddfoot\@empty
+\let\@evenfoot\@empty
+% will change later if the mode requires otherwise
+\ifCLASSOPTIONdraftcls
+ % draft footers
+ \ifCLASSOPTIONdraftclsnofoot\else
+ % but only if not draftclsnofoot
+ \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax
+ \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax
+ \fi
+\else
+ % all nondraft mode footers
+ \if@IEEEusingpubid
+ % for peer review cover pages that are using a pubid
+ % for noncompsoc papers, the pubid uses footnotesize and
+ % is at the same vertical position as where the last baseline would normally be
+ \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \ifCLASSOPTIONcompsoc
+ % for compsoc papers, the pubid is at the same vertical position as the normal footer
+ \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax
+ \fi
+ \fi
+\fi}
-%% Defines the command for putting the header. \footernote{TEXT} is the same
-%% as \markboth{TEXT}{TEXT}.
+
+%% Defines the command for putting the header.
%% Note that all the text is forced into uppercase, if you have some text
%% that needs to be in lower case, for instance et. al., then either manually
%% set \leftmark and \rightmark or use \MakeLowercase{et. al.} within the
%% arguments to \markboth.
%% V1.7b add \protect to work with Babel
-\def\markboth#1#2{\def\leftmark{\@IEEEcompsoconly{\sffamily}\MakeUppercase{\protect#1}}%
-\def\rightmark{\@IEEEcompsoconly{\sffamily}\MakeUppercase{\protect#2}}}
-\def\footernote#1{\markboth{#1}{#1}}
+\def\markboth#1#2{\def\leftmark{\MakeUppercase{\protect#1}}%
+\def\rightmark{\MakeUppercase{\protect#2}}}
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
@@ -4354,6 +4408,26 @@ between column types.}%
% V1.6 class files should always provide these
\def\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
+% V1.8b article.cls is now providing these too
+% we do not use \@mkboth, nor alter the page style
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \twocolumn[\section*{\indexname}]%
+ \parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \columnseprule \z@
+ \columnsep 35\p@
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\newcommand\@idxitem{\par\hangindent 40\p@}
+\newcommand\subitem{\@idxitem \hspace*{20\p@}}
+\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+
% Provide support for the control entries of IEEEtran.bst V1.00 and later.
@@ -4368,6 +4442,18 @@ between column types.}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
+% \IEEEnoauxwrite{} allows for citations that do not add to or affect
+% the order of the existing citation list. Can be useful for \cite
+% within \thanks{}.
+\DeclareRobustCommand{\IEEEnoauxwrite}[1]{\relax
+\if@filesw
+\@fileswfalse
+#1\relax\relax\relax\relax\relax
+\@fileswtrue
+\else
+#1\relax\relax\relax\relax\relax
+\fi}
+
% V1.6 provide a way for a user to execute a command just before
% a given reference number - used to insert a \newpage to balance
% the columns on the last page
@@ -4419,9 +4505,9 @@ between column types.}%
% \sloppy\clubpenalty4000\widowpenalty4000%
% by adding the \interlinepenalty here, we make it more
% difficult, but not impossible, for LaTeX to break within a reference.
-% IEEE almost never breaks a reference (but they do it more often with
+% The IEEE almost never breaks a reference (but they do it more often with
% technotes). You may get an underfull vbox warning around the bibliography,
-% but the final result will be much more like what IEEE will publish.
+% but the final result will be much more like what the IEEE will publish.
% MDS 11/2000
\ifCLASSOPTIONtechnote\sloppy\clubpenalty4000\widowpenalty4000\interlinepenalty100%
\else\sloppy\clubpenalty4000\widowpenalty4000\interlinepenalty500\fi%
@@ -4476,7 +4562,7 @@ between column types.}%
% spacing between name and affiliation blocks (confmode)
% This can be negative.
-% IEEE doesn't want any added spacing here, but I will leave these
+% The IEEE doesn't want any added spacing here, but I will leave these
% controls in place in case they ever change their mind.
% Personally, I like 0.75ex.
%\def\@IEEEauthorblockNtopspace{0.75ex}
@@ -4658,8 +4744,10 @@ between column types.}%
\def\@IEEEcleardoublepage#1{\clearpage\if@twoside\ifodd\c@page\else
\hbox{}\thispagestyle{#1}\newpage\if@twocolumn\hbox{}\thispagestyle{#1}\newpage\fi\fi\fi}
-
-
+% V1.8b hooks to allow adjustment of space above title
+\def\IEEEtitletopspace{0.5\baselineskip}
+% an added extra amount to allow for adjustment/offset
+\def\IEEEtitletopspaceextra{0pt}
% user command to invoke the title page
\def\maketitle{\par%
@@ -4712,7 +4800,7 @@ between column types.}%
% THIS IS A CONTROLLED SPACING COMMAND! Do not allow blank lines or unintentional
% spaces to enter the definition - use % at the end of each line
\def\@maketitle{\newpage
-\bgroup\par\addvspace{0.5\baselineskip}\centering%
+\bgroup\par\vskip\IEEEtitletopspace\vskip\IEEEtitletopspaceextra\centering%
\ifCLASSOPTIONtechnote% technotes, V1.8a abstract and index terms are not treated differently for compsoc technotes
{\bfseries\large\@IEEEcompsoconly{\Large\sffamily}\@title\par}\vskip 1.3em{\lineskip .5em\@IEEEcompsoconly{\large\sffamily}\@author
\@IEEEspecialpapernotice\par}\relax
@@ -5190,7 +5278,7 @@ between column types.}%
\else
\bgroup\par\addvspace{0.5\baselineskip}\centering\vspace{-1.78ex}\@IEEEabskeysecsize\textbf{\abstractname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize
\fi\@IEEEgobbleleadPARNLSP}
-% V1.6 IEEE wants only 1 pica from end of abstract to introduction heading when in
+% V1.6 The IEEE wants only 1 pica from end of abstract to introduction heading when in
% conference mode (the heading already has this much above it)
\def\endabstract{\relax\ifCLASSOPTIONconference\vspace{0ex}\else\vspace{1.34ex}\fi\par\if@twocolumn\else\endquotation\fi
\normalfont\normalsize}
@@ -5329,7 +5417,7 @@ between column types.}%
\begingroup #6{\relax% or low level heading
\noindent % subsections are NOT indented
% print top level headings. \@svsec is label, #8 is heading title
- % IEEE does not block indent the section title text, it flows like normal
+ % The IEEE does not block indent the section title text, it flows like normal
{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\@@par}}%
\endgroup
\addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\relax\else
@@ -5350,7 +5438,7 @@ between column types.}%
\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
%\begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup
- % IEEE does not block indent the section title text, it flows like normal
+ % The IEEE does not block indent the section title text, it flows like normal
\begingroup \noindent #4{\relax{\hskip #1}{\interlinepenalty \@M #5\@@par}}\endgroup
% svsechd swallows the trailing space, protect it with \mbox{}
\else \def\@svsechd{#4{\hskip #1\relax #5\@IEEEsectpunct\mbox{}}}\fi
@@ -5371,11 +5459,11 @@ between column types.}%
% You've got to have \normalfont\normalsize in the font specs below to prevent
% trouble when you do something like:
% \section{Note}{\ttfamily TT-TEXT} is known to ...
-% IEEE sometimes REALLY stretches the area before a section
+% The IEEE sometimes REALLY stretches the area before a section
% heading by up to about 0.5in. However, it may not be a good
% idea to let LaTeX have quite this much rubber.
\ifCLASSOPTIONconference%
-% IEEE wants section heading spacing to decrease for conference mode
+% The IEEE wants section heading spacing to decrease for conference mode
\def\section{\@startsection{section}{1}{\z@}{1.5ex plus 1.5ex minus 0.5ex}%
{0.7ex plus 1ex minus 0ex}{\normalfont\normalsize\centering\scshape}}%
\def\subsection{\@startsection{subsection}{2}{\z@}{1.5ex plus 1.5ex minus 0.5ex}%
@@ -5482,7 +5570,7 @@ between column types.}%
\def\@opargbegintheorem#1#2#3{\@IEEEtmpitemindent\itemindent\relax
\topsep 0.2\@IEEEnormalsizeunitybaselineskip plus 0.26\@IEEEnormalsizeunitybaselineskip minus 0.05\@IEEEnormalsizeunitybaselineskip
\rmfamily\trivlist\hangindent\parindent%
-% V1.6 IEEE is back to using () around theorem names which are also in italics
+% V1.6 The IEEE is back to using () around theorem names which are also in italics
% Thanks to Christian Peel for reporting this.
\item[]\textit{\bfseries\noindent #1\ #2\ (#3).} \itemindent\@IEEEtmpitemindent\relax}
% V1.7 remove bogus \unskip that caused equations in theorems to collide with
@@ -5497,7 +5585,7 @@ between column types.}%
\def\@begintheorem#1#2{\@IEEEtmpitemindent\itemindent\relax\topsep 0pt\rmfamily\trivlist%
\item[]\textit{\indent #1\ #2:} \itemindent\@IEEEtmpitemindent\relax}
\def\@opargbegintheorem#1#2#3{\@IEEEtmpitemindent\itemindent\relax\topsep 0pt\rmfamily \trivlist%
-% V1.6 IEEE is back to using () around theorem names which are also in italics
+% V1.6 The IEEE is back to using () around theorem names which are also in italics
% Thanks to Christian Peel for reporting this.
\item[]\textit{\indent #1\ #2\ (#3):} \itemindent\@IEEEtmpitemindent\relax}
% V1.7 remove bogus \unskip that caused equations in theorems to collide with
@@ -5541,7 +5629,7 @@ between column types.}%
%% SET UP THE DEFAULT PAGESTYLE
-\ps@headings
+\pagestyle{headings}
\pagenumbering{arabic}
% normally the page counter starts at 1
@@ -5696,6 +5784,14 @@ between column types.}%
+% V1.7 compoc uses nonbold drop cap and small caps word style
+\ifCLASSOPTIONcompsoc
+ \def\IEEEPARstartFONTSTYLE{\mdseries}
+ \def\IEEEPARstartWORDFONTSTYLE{\scshape}
+ \def\IEEEPARstartWORDCAPSTYLE{\relax}
+\fi
+%
+%
% \IEEEPARstart
% Definition for the big two line drop cap letter at the beginning of the
% first paragraph of journal papers. The first argument is the first letter
@@ -5717,47 +5813,45 @@ between column types.}%
%
% the number of lines that are indented to clear it
% may need to increase if using decenders
-\def\@IEEEPARstartDROPLINES{2}
+\providecommand{\IEEEPARstartDROPLINES}{2}
% minimum number of lines left on a page to allow a \@IEEEPARstart
% Does not take into consideration rubber shrink, so it tends to
% be overly cautious
-\def\@IEEEPARstartMINPAGELINES{2}
+\providecommand{\IEEEPARstartMINPAGELINES}{2}
% V1.7 the height of the drop cap is adjusted to match the height of this text
% in the current font (when \IEEEPARstart is called).
-\def\@IEEEPARstartHEIGHTTEXT{T}
+\providecommand{\IEEEPARstartHEIGHTTEXT}{T}
% the depth the letter is lowered below the baseline
% the height (and size) of the letter is determined by the sum
-% of this value and the height of the \@IEEEPARstartHEIGHTTEXT in the current
+% of this value and the height of the \IEEEPARstartHEIGHTTEXT in the current
% font. It is a good idea to set this value in terms of the baselineskip
% so that it can respond to changes therein.
-\def\@IEEEPARstartDROPDEPTH{1.1\baselineskip}
+\providecommand{\IEEEPARstartDROPDEPTH}{1.1\baselineskip}
% V1.7 the font the drop cap will be rendered in,
% can take zero or one argument.
-\def\@IEEEPARstartFONTSTYLE{\bfseries}
+\providecommand{\IEEEPARstartFONTSTYLE}{\bfseries}
% V1.7 any additional, non-font related commands needed to modify
% the drop cap letter, can take zero or one argument.
-\def\@IEEEPARstartCAPSTYLE{\MakeUppercase}
+\providecommand{\IEEEPARstartCAPSTYLE}{\MakeUppercase}
% V1.7 the font that will be used to render the rest of the word,
% can take zero or one argument.
-\def\@IEEEPARstartWORDFONTSTYLE{\relax}
+\providecommand{\IEEEPARstartWORDFONTSTYLE}{\relax}
% V1.7 any additional, non-font related commands needed to modify
% the rest of the word, can take zero or one argument.
-\def\@IEEEPARstartWORDCAPSTYLE{\MakeUppercase}
+\providecommand{\IEEEPARstartWORDCAPSTYLE}{\MakeUppercase}
% This is the horizontal separation distance from the drop letter to the main text.
% Lengths that depend on the font (e.g., ex, em, etc.) will be referenced
% to the font that is active when \IEEEPARstart is called.
-\def\@IEEEPARstartSEP{0.15em}
+\providecommand{\IEEEPARstartSEP}{0.15em}
% V1.7 horizontal offset applied to the left of the drop cap.
-\def\@IEEEPARstartHOFFSET{0em}
+\providecommand{\IEEEPARstartHOFFSET}{0em}
% V1.7 Italic correction command applied at the end of the drop cap.
-\def\@IEEEPARstartITLCORRECT{\/}
+\providecommand{\IEEEPARstartITLCORRECT}{\/}
-% V1.7 compoc uses nonbold drop cap and small caps word style
-\ifCLASSOPTIONcompsoc
-\def\@IEEEPARstartFONTSTYLE{\mdseries}
-\def\@IEEEPARstartWORDFONTSTYLE{\scshape}
-\def\@IEEEPARstartWORDCAPSTYLE{\relax}
-\fi
+% width of the letter output, set globally. Can be used in \IEEEPARstartSEP
+% or \IEEEPARstartHOFFSET, but not the height lengths.
+\newdimen\IEEEPARstartletwidth
+\IEEEPARstartletwidth 0pt\relax
% definition of \IEEEPARstart
% THIS IS A CONTROLLED SPACING AREA, DO NOT ALLOW SPACES WITHIN THESE LINES
@@ -5769,19 +5863,19 @@ between column types.}%
\def\IEEEPARstart#1#2{\par{%
% if this page does not have enough space, break it and lets start
% on a new one
-\@IEEEtranneedspace{\@IEEEPARstartMINPAGELINES\baselineskip}{\relax}%
-% V1.7 move this up here in case user uses \textbf for \@IEEEPARstartFONTSTYLE
+\@IEEEtranneedspace{\IEEEPARstartMINPAGELINES\baselineskip}{\relax}%
+% V1.7 move this up here in case user uses \textbf for \IEEEPARstartFONTSTYLE
% which uses command \leavevmode which causes an unwanted \indent to be issued
\noindent
% calculate the desired height of the big letter
-% it extends from the top of \@IEEEPARstartHEIGHTTEXT in the current font
-% down to \@IEEEPARstartDROPDEPTH below the current baseline
-\settoheight{\@IEEEtrantmpdimenA}{\@IEEEPARstartHEIGHTTEXT}%
-\addtolength{\@IEEEtrantmpdimenA}{\@IEEEPARstartDROPDEPTH}%
+% it extends from the top of \IEEEPARstartHEIGHTTEXT in the current font
+% down to \IEEEPARstartDROPDEPTH below the current baseline
+\settoheight{\@IEEEtrantmpdimenA}{\IEEEPARstartHEIGHTTEXT}%
+\addtolength{\@IEEEtrantmpdimenA}{\IEEEPARstartDROPDEPTH}%
% extract the name of the current font in bold
% and place it in \@IEEEPARstartFONTNAME
\def\@IEEEPARstartGETFIRSTWORD##1 ##2\relax{##1}%
-{\@IEEEPARstartFONTSTYLE{\selectfont\edef\@IEEEPARstartFONTNAMESPACE{\fontname\font\space}%
+{\IEEEPARstartFONTSTYLE{\selectfont\edef\@IEEEPARstartFONTNAMESPACE{\fontname\font\space}%
\xdef\@IEEEPARstartFONTNAME{\expandafter\@IEEEPARstartGETFIRSTWORD\@IEEEPARstartFONTNAMESPACE\relax}}}%
% define a font based on this name with a point size equal to the desired
% height of the drop letter
@@ -5789,7 +5883,7 @@ between column types.}%
% save this value as a counter (integer) value (sp points)
\@IEEEtrantmpcountA=\@IEEEtrantmpdimenA%
% now get the height of the actual letter produced by this font size
-\settoheight{\@IEEEtrantmpdimenB}{\@IEEEPARstartsubfont\@IEEEPARstartCAPSTYLE{#1}}%
+\settoheight{\@IEEEtrantmpdimenB}{\@IEEEPARstartsubfont\IEEEPARstartCAPSTYLE{#1}}%
% If something bogus happens like the first argument is empty or the
% current font is strange, do not allow a zero height.
\ifdim\@IEEEtrantmpdimenB=0pt\relax%
@@ -5822,12 +5916,13 @@ between column types.}%
% We need to carry this out of the local calculation area to set the
% hanging indent
\settowidth{\global\@IEEEtrantmpdimenA}{\@IEEEPARstartfont
-\@IEEEPARstartCAPSTYLE{#1\@IEEEPARstartITLCORRECT}}}%
+\IEEEPARstartCAPSTYLE{#1\IEEEPARstartITLCORRECT}}}%
% end of the isolated calculation environment
+\global\IEEEPARstartletwidth\@IEEEtrantmpdimenA\relax%
% add in the extra clearance we want
-\advance\@IEEEtrantmpdimenA by \@IEEEPARstartSEP\relax%
+\advance\@IEEEtrantmpdimenA by \IEEEPARstartSEP\relax%
% add in the optional offset
-\advance\@IEEEtrantmpdimenA by \@IEEEPARstartHOFFSET\relax%
+\advance\@IEEEtrantmpdimenA by \IEEEPARstartHOFFSET\relax%
% V1.7 don't allow negative offsets to produce negative hanging indents
\@IEEEtrantmpdimenB\@IEEEtrantmpdimenA
\ifnum\@IEEEtrantmpdimenB < 0 \@IEEEtrantmpdimenB 0pt\fi
@@ -5836,14 +5931,12 @@ between column types.}%
% Now, we make the letter and issue the hanging indent command
% The letter is placed in a box of zero width and height so that other
% text won't be displaced by it.
-\hangindent\@IEEEtrantmpdimenB\hangafter=-\@IEEEPARstartDROPLINES%
+\hangindent\@IEEEtrantmpdimenB\hangafter=-\IEEEPARstartDROPLINES%
\makebox[0pt][l]{\hspace{-\@IEEEtrantmpdimenA}%
-\raisebox{-\@IEEEPARstartDROPDEPTH}[0pt][0pt]{\hspace{\@IEEEPARstartHOFFSET}%
-\@IEEEPARstartfont\@IEEEPARstartCAPSTYLE{#1\@IEEEPARstartITLCORRECT}%
-\hspace{\@IEEEPARstartSEP}}}%
-{\@IEEEPARstartWORDFONTSTYLE{\@IEEEPARstartWORDCAPSTYLE{\selectfont#2}}}}
-
-
+\raisebox{-\IEEEPARstartDROPDEPTH}[0pt][0pt]{\hspace{\IEEEPARstartHOFFSET}%
+\@IEEEPARstartfont\IEEEPARstartCAPSTYLE{#1\IEEEPARstartITLCORRECT}%
+\hspace{\IEEEPARstartSEP}}}%
+{\IEEEPARstartWORDFONTSTYLE{\IEEEPARstartWORDCAPSTYLE{\selectfont#2}}}}
@@ -6029,7 +6122,7 @@ between column types.}%
%
% the amount the main text is pulled up to make room for the
% publisher's ID footer
-% IEEE uses about 1.3\baselineskip for journals,
+% The IEEE uses about 1.3\baselineskip for journals,
% dynamic title spacing will clean up the fraction
\def\@IEEEpubidpullup{1.3\baselineskip}
\ifCLASSOPTIONtechnote
@@ -6038,7 +6131,7 @@ between column types.}%
% in first column) and we should maintain an integer number of lines in the
% second column
% There are some examples (such as older issues of "Transactions on
-% Information Theory") in which IEEE really pulls the text off the ID for
+% Information Theory") in which the IEEE really pulls the text off the ID for
% technotes - about 0.55in (or 4\baselineskip). We'll use 2\baselineskip
% and call it even.
\def\@IEEEpubidpullup{2\baselineskip}
diff --git a/Master/texmf-dist/tex/latex/IEEEtran/IEEEtrantools.sty b/Master/texmf-dist/tex/latex/IEEEtran/IEEEtrantools.sty
index 278fb05fe66..e4a808cc5c4 100644
--- a/Master/texmf-dist/tex/latex/IEEEtran/IEEEtrantools.sty
+++ b/Master/texmf-dist/tex/latex/IEEEtran/IEEEtrantools.sty
@@ -1,25 +1,25 @@
%%
-%% IEEEtrantools.sty 2014/09/17 version V1.4
+%% IEEEtrantools.sty 2015/08/26 version V1.5
%%
%%
%% This package provides several popular and unique commands from the
-%% IEEEtran.cls class (version 1.8a) file.
+%% IEEEtran.cls class (version 1.8b) file.
%%
%% The provided commands include \IEEEPARstart, \IEEEitemize, \IEEEenumerate,
%% \IEEEdescription as well as the \IEEEeqnarray, \IEEEeqnarraybox family
%% of commands including support commands such as \IEEEstrut, the IEEEproof
%% environment and its support commands and the \IEEEauthorrefmark command.
%% Also provides the \bstctlcite command for the control entry types of
-%% IEEEtran.bst V1.00 and later.
+%% IEEEtran.bst V1.00 and later, as well as \IEEEnoauxwrite.
%%
%% IEEEtrantools.sty should not be used with IEEEtran.cls.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
-%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
+%% http://www.ctan.org/pkg/ieeetran
%%
%%
-%% Copyright (c) 2002-2014 by Michael Shell
+%% Copyright (c) 2002-2015 by Michael Shell
%% See: http://www.michaelshell.org/
%% for current contact information.
%%
@@ -29,7 +29,7 @@
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE!
%% User assumes all risk.
-%% In no event shall IEEE or any contributor to this code be liable for
+%% In no event shall the IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
@@ -64,7 +64,7 @@
%%**********************************************************************
-\ProvidesPackage{IEEEtrantools}[2014/09/17 V1.4 by Michael Shell]
+\ProvidesPackage{IEEEtrantools}[2015/08/26 V1.5 by Michael Shell]
\typeout{-- See the "IEEEtrantools_doc.txt" manual for usage information.}
\typeout{-- http://www.michaelshell.org/tex/ieeetran/tools/}
\NeedsTeXFormat{LaTeX2e}
@@ -119,7 +119,22 @@
%% -- Command Argument Scanning Support Functions --
-%
+
+% Sets the category codes for punctuation to their normal values.
+% For local use with argument scanning.
+\def\IEEEnormalcatcodespunct{\catcode`\!=12 \catcode`\,=12 \catcode`\:=12
+\catcode`\;=12 \catcode`\`=12 \catcode`\'=12 \catcode`\"=12 \catcode`\.=12
+\catcode`\/=12 \catcode`\?=12 \catcode`\*=12 \catcode`\+=12 \catcode`\-=12
+\catcode`\<=12 \catcode`\>=12 \catcode`\(=12 \catcode`\)=12 \catcode`\[=12
+\catcode`\]=12 \catcode`\==12 \catcode`\|=12}
+% Sets the category codes for numbers to their normal values.
+% For local use with argument scanning.
+\def\IEEEnormalcatcodesnum{\catcode`\0=12 \catcode`\1=12 \catcode`\2=12
+\catcode`\3=12 \catcode`\4=12 \catcode`\5=12 \catcode`\6=12 \catcode`\7=12
+\catcode`\8=12 \catcode`\9=12}
+% combined action of \IEEEnormalcatcodespunct and \IEEEnormalcatcodesnum
+\def\IEEEnormalcatcodes{\IEEEnormalcatcodespunct\IEEEnormalcatcodesnum}
+
% usage: \@IEEEstripouterbraces*{}
% \@IEEEstripouterbraces fully expands its argument (which it then stores
@@ -901,7 +916,7 @@
% ***************************
%
%
-% IEEE seems to use at least two different values by
+% The IEEE seems to use at least two different values by
% which ITEMIZED list labels are indented to the right
% For The Journal of Lightwave Technology (JLT) and The Journal
% on Selected Areas in Communications (JSAC), they tend to use
@@ -947,7 +962,7 @@
% alter the effective \IEEElabelindent for deeper
% levels
% There may not be such a thing as correct "standard IEEE"
-% values. What IEEE actually does may depend on the specific
+% values. What the IEEE actually does may depend on the specific
% circumstances.
% The first list level almost always has full indention.
% The second levels I've seen have only 75% of the normal indentation
@@ -973,13 +988,13 @@
% This controls the default spacing between the end of the IED
% list labels and the list text, when math symbols are used for
-% the labels (nomenclature lists). IEEE usually increases the
+% the labels (nomenclature lists). The IEEE usually increases the
% spacing in these cases
\newdimen\IEEEiedmathlabelsep
\IEEEiedmathlabelsep 1.2em
% This controls the extra vertical separation put above and
-% below each IED list. IEEE usually puts a little extra spacing
+% below each IED list. The IEEE usually puts a little extra spacing
% around each list. However, this spacing is barely noticeable.
\newskip\IEEEiedtopsep
\IEEEiedtopsep 2pt plus 1pt minus 1pt
@@ -1047,7 +1062,7 @@
% label justifications. Use these commands within
% the IED environment option or in the \IEEEiedlistdecl
% Note that changing the normal list justifications
-% is nonstandard and IEEE may not like it if you do so!
+% is nonstandard and the IEEE may not like it if you do so!
% I include these commands as they may be helpful to
% those who are using these enhanced list controls for
% other non-IEEE related LaTeX work.
@@ -1309,9 +1324,9 @@
% e.g., "1a" (used only by IEEEtran's IEEEeqnarray)
\def\theIEEEsubequation{\theequation\alph{IEEEsubequation}}
% just like LaTeX2e's \@eqnnum
-\def\theequationdis{{\normalfont \normalcolor (\theequation)}}% (1)
+\def\theequationdis{(\theequation)}% (1)
% IEEEsubequation used only by IEEEtran's IEEEeqnarray
-\def\theIEEEsubequationdis{{\normalfont \normalcolor (\theIEEEsubequation)}}% (1a)
+\def\theIEEEsubequationdis{(\theIEEEsubequation)}% (1a)
@@ -1933,7 +1948,11 @@ Using a default centering column instead}%
% The star form defaults to not putting equation numbers at the end of each row.
% usage: \IEEEeqnarray[decl]{cols}
\def\@IEEEeqnarray{\relax\@ifnextchar[{\@@IEEEeqnarray}{\@@IEEEeqnarray[\relax]}}
-\def\@@IEEEeqnarray[#1]#2{%
+% We have to be careful here to normalize catcodes just before acquiring the
+% cols as that specification may contain punctuation which could be subject
+% to document catcode changes.
+\def\@@IEEEeqnarray[#1]{\begingroup\IEEEnormalcatcodes\@@@IEEEeqnarray[#1]}
+\def\@@@IEEEeqnarray[#1]#2{\endgroup
% default to showing the equation number or not based on whether or not
% the star form was involked
\if@IEEEeqnumpersist\global\@eqnswtrue
@@ -2145,11 +2164,14 @@ $$\@ignoretrue}
\@IEEEeqnarrayboxHBOXSWfalse
\def\@IEEEeqnarraybox{\relax\@ifnextchar[{\@@IEEEeqnarraybox}{\@@IEEEeqnarraybox[\relax]}}
-\def\@@IEEEeqnarraybox[#1]{\relax\@ifnextchar[{\@@@IEEEeqnarraybox[#1]}{\@@@IEEEeqnarraybox[#1][b]}}
+% We have to be careful here to normalize catcodes just before acquiring the
+% cols as that specification may contain punctuation which could be subject
+% to document catcode changes.
+\def\@@IEEEeqnarraybox[#1]{\relax\begingroup\IEEEnormalcatcodes\@ifnextchar[{\@@@IEEEeqnarraybox[#1]}{\@@@IEEEeqnarraybox[#1][b]}}
\def\@@@IEEEeqnarraybox[#1][#2]{\relax\@ifnextchar[{\@@@@IEEEeqnarraybox[#1][#2]}{\@@@@IEEEeqnarraybox[#1][#2][\relax]}}
% #1 = decl; #2 = t,b,c; #3 = width, #4 = col specs
-\def\@@@@IEEEeqnarraybox[#1][#2][#3]#4{\@IEEEeqnarrayISinnerfalse % not yet within the lines of the halign
+\def\@@@@IEEEeqnarraybox[#1][#2][#3]#4{\endgroup\@IEEEeqnarrayISinnerfalse % not yet within the lines of the halign
\@IEEEeqnarraymasterstrutsave% save current master strut values
\@IEEEeqnarraystrutsize{0pt}{0pt}[\relax]% turn off struts by default
\@IEEEeqnarrayusemasterstruttrue% use master strut till user asks otherwise
@@ -2539,9 +2561,6 @@ between column types.}%
%
% We generalize things via control macros - playing with these is fun too.
%
-% For IEEEtrantools, we do not use a "@" in the names as these are user
-% alterable controls.
-%
% V1.7 added more control macros to make it easy for IEEEtrantools.sty users
% to change the font style.
%
@@ -2741,7 +2760,17 @@ between column types.}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
-
+% \IEEEnoauxwrite{} allows for citations that do not add to or affect
+% the order of the existing citation list. Can be useful for \cite
+% within \thanks{}.
+\DeclareRobustCommand{\IEEEnoauxwrite}[1]{\relax
+\if@filesw
+\@fileswfalse
+#1\relax\relax\relax\relax\relax
+\@fileswtrue
+\else
+#1\relax\relax\relax\relax\relax
+\fi}
% need a backslash character for typeout output
{\catcode`\|=0 \catcode`\\=12