[Tex/LaTex] Adding conference header to ieeetran[conference]

ieeetrantitles

I'm just gonna add a header to my ieeetran document based on Ruben's solution.

But no header is added after compilation.

Here is the MWE:

%% bare_conf.tex
%% V1.4b
%% 2015/08/26
\documentclass[conference]{IEEEtran}

\makeatletter

%%%%%%%%%%%for copyright notice
\def\ps@IEEEtitlepagestyle{%
    \def\@oddfoot{\mycopyrightnotice}%
    \def\@evenfoot{}%
}
\def\mycopyrightnotice{%
    {\footnotesize  978-1-4799-6773-5/14/\$31.00 \textcopyright2017 Crown\hfill}
    \gdef\mycopyrightnotice{}
}
%%%%%%%%%%%

\makeatletter
\newcommand{\algrule}[1][.2pt]{\par\vskip.5\baselineskip\hrule height #1\par\vskip.5\baselineskip}
\makeatother

\makeatletter
\newcommand*\titleheader[1]{\gdef\@titleheader{#1}}
\AtBeginDocument{%
    \let\st@red@title\@title
    \def\@title{%
        \bgroup\normalfont\large\centering\@titleheader\par\egroup
        \vskip1.5em\st@red@title}
}
\makeatother

\begin{document}

\title{X}
\titleheader{2017 IEEE 999999th International Something Conference}
\author{\IEEEauthorblockN{{X}
\IEEEauthorblockA{H}\\
J\\
I\\
Email: a@b.c}
}

\maketitle

\begin{abstract}

\end{abstract}

\IEEEpeerreviewmaketitle

\end{document}

Best Answer

The usual definition of \title is to define \@title, so even if there is the \AtBeginDocument{...} hook with the Ruben's nice idea, it will fail, if \title is used after \begin{document}, since \title overrules \@title again.

Solution: Use \title and \titleheader before \begin{document}.

%% bare_conf.tex
%% V1.4b
%% 2015/08/26
\documentclass[conference]{IEEEtran}

\makeatletter

%%%%%%%%%%%for copyright notice
\def\ps@IEEEtitlepagestyle{%
    \def\@oddfoot{\mycopyrightnotice}%
    \def\@evenfoot{}%
}
\def\mycopyrightnotice{%
    {\footnotesize  978-1-4799-6773-5/14/\$31.00 \textcopyright2017 Crown\hfill}
    \gdef\mycopyrightnotice{}
}
%%%%%%%%%%%

\makeatletter
\newcommand{\algrule}[1][.2pt]{\par\vskip.5\baselineskip\hrule height #1\par\vskip.5\baselineskip}
\makeatother

\makeatletter
\newcommand*\titleheader[1]{\gdef\@titleheader{#1}}
\AtBeginDocument{%
  \let\st@red@title\@title%
  \def\@title{%
    \bgroup\normalfont\large\centering\@titleheader\par\egroup
    \vskip1.5em\st@red@title}
}
\makeatother

\title{X}

\titleheader{2017 IEEE 999999th International Something Conference}

\begin{document}


%\makeatletter
%\meaning\@title
%\makeatother

\author{\IEEEauthorblockN{{X}
\IEEEauthorblockA{H}\\
J\\
I\\
Email: a@b.c}}


\maketitle

\begin{abstract}

\end{abstract}

\IEEEpeerreviewmaketitle

\end{document}