Access title and author in custom class [duplicate]

Possible Duplicate:
Use the values of \title, \author and \date on a custom title page

How can I access the title and author in my custom class based on article, so that I can insert them in the footer that I automatically set up?

I tried \@title and \@author but nothing shows up.

-

marked as duplicate by Alan Munn, doncherry, percusse, Martin Schröder, Marco DanielAug 16 '12 at 14:11

Note that the base document classes define \title and \author that redefines the values of \@title and \@author, used when issuing \maketitle. Perhaps you can elaborate more on what you mean by "access the title and author". –  Werner Jun 27 '12 at 23:28
I mean I want to write in my .cls file, \fancyfoot[C]{AUTHOR—TITLE}, for example. I tried using \@title and @author there but when I run pdflatex, the footer is simply —. –  Mk12 Jun 27 '12 at 23:31
This is essentially a duplicate of Use the values of \title \author and \date in a custom title page –  Alan Munn Jun 27 '12 at 23:39
@Mk12: In order for this to not be considered a duplicate by others, you need to include your comment about modifying the footer to your liking. –  Werner Jun 27 '12 at 23:47
I said I want to insert them in the footer from a custom class in the original post, didn't I? –  Mk12 Jun 28 '12 at 2:02

\@title and \@author are technically only defined once you use \title and \author:

\def\title#1{\gdef\@title{#1}}
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
\def\author#1{\gdef\@author{#1}}
\def\@author{\@latex@warning@no@line{No \noexpand\author given}}


That is, if you reference \@title and/or \@author without calling \title and \author first, it should produce a warning. To avoid this situation, based on the fact that you're writing a special class, you could use a different approach:

\let\@title\@empty
\let\@author\@empty
\fancyfoot[C]{\ifx\@author\@empty\else\@author~--~\fi\ifx\@title\@empty\else\@title\fi}


The above sets the footer to be AUTHOR - TITLE if both are defined. It will only be TITLE if no author is defined. It can be expanded to properly work if an author is given but no title.

Here's a minimal example using lipsum and fancyhdr:

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\makeatletter
\fancyfoot{}
\fancyfoot[C]{\ifx\@author\@empty\else\@author~--~\fi\ifx\@title\@empty\else\@title\fi}
\let\@title\@empty
\let\@author\@empty
\makeatother

\title{My title}
\author{Me}
\pagestyle{fancy}%
\begin{document}
\lipsum[1-3]
\end{document}​


If you're actually using \maketitle as well, you need a little more work done. The MWE below adds \@@title and \@@author instead of \@title and \@author:

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\makeatletter
\def\title#1{\gdef\@title{#1}\gdef\@@title{#1}}
\def\author#1{\gdef\@author{#1}\gdef\@@author{#1}}
\let\@@title\@empty
\let\@@author\@empty
\fancyfoot{}
\fancyfoot[C]{\ifx\@@author\@empty\else\@@author~--~\fi\ifx\@@title\@empty\else\@@title\fi}

\title{My title}
\author{Me}
\begin{document}
\maketitle
\thispagestyle{fancy}%
\lipsum[1-3]
\end{document}

-
hmm, I tried that but they still aren't showing up… –  Mk12 Jun 28 '12 at 2:00
Oh, it's because I have \maketitle… Should I use the titling package then if I want to kept maketitle? –  Mk12 Jun 28 '12 at 2:21
@Mk12: I've updated my solution to include your \maketitle usage requirement. –  Werner Jun 28 '12 at 5:50