This is the default behaviour for figure*
in a two-column document. You're going to have to avoid this.
Anywhere before making a call to \maketitle
, add the following (replacing example-image
with your image, including the \includegraphics
parameters):
\makeatletter
\let\@oldmaketitle\@maketitle% Store \@maketitle
\renewcommand{\@maketitle}{\@oldmaketitle% Update \@maketitle to insert...
\includegraphics[width=\linewidth,height=4\baselineskip]
{example-image}\bigskip}% ... an image
\makeatother
The above inserts an image as part of \@maketitle
(at the end), which is set in \twocolumn
mode as part of the title. Using the documentclass sigchi.cls
, it displays the following output:
Note that because no information was provided about the context and the question lacked a minimal working example, this answer (and the others posted so far) assume use of a standard class such as article
. If you are using a non-standard class (e.g. a KOMA class or Memoir or Beamer or ...), then you should obviously use the facilities provided by your class.
Caveat emptor!
Rather than reinventing the wheel, I would use this nice one somebody provided earlier, called titling
.
Not only does this make it easy to customise the standard title elements. It also provides hooks which may be used to add additional elements, if desired. Moreover, it prevents \maketitle
from throwing away the information about the title, so this may be used later e.g. in headers. If required, you can also use \maketitle
, titlepage
and titlingpage
multiple times with the same or different information.
Fortunately, you probably do not need all of this. But it is nevertheless quite convenient.
Note two things.
The code is long because I have demonstrated how to redefine every element of the title and how to use every available hook. It is extremely unlikely you want to do this, so your code will no doubt be much simpler!
Obviously I would not recommend this way of typesetting the title on aesthetic grounds - it is quite hideous. This is because I wanted to demonstrate a range of different options and, therefore, threw consistency and simplicity out of the window.
Here's a rather elaborate customisation of the title
\pretitle{% add some rules
\begin{center}
\Huge\bfseries
}%, make the fonts bigger, make the title (only) bold
\posttitle{%
\end{center}%
\noindent\vrule height 2.5pt width \textwidth
\vskip .75em plus .25em minus .25em% increase the vertical spacing a bit, make this particular glue stretchier
}
author(s)
\preauthor{%
\begin{center}
\Large \lineskip 0.75em%
\vrule height 0.4pt width .25\textwidth\par
\begin{tabular}[t]{@{}l@{}}%
}
\postauthor{%
\end{tabular}
\vskip -.5em
\par
\vrule height 0.4pt width .25\textwidth\par
\end{center}%
}
and date
\predate{%
\begin{center}
\Large
}
\postdate{%
\end{center}%
}
And here are the hooks for additional elements: before the title
\renewcommand\maketitlehooka{%
\noindent\vrule height 2.5pt width \textwidth
}
between title and author
\renewcommand\maketitlehookb{%
\begin{flushleft}
\itshape
Translated from the original German by
\end{flushleft}%
}
between author and date
\renewcommand\maketitlehookc{%
\begin{flushleft}
\itshape
based on the edition published by Immanuel Kant
\end{flushleft}%
}
and after the date
\renewcommand\maketitlehookd{%
\begin{center}%
\itshape --- Here ends the title ---
\end{center}%
}
And we can use \thetitle
, \theauthor
etc. to reuse the information from \title{}
and \author{}
in our headers using fancyhdr
.
\fancyhf[ch]{\itshape\thetitle{}}
\fancyhf[rh]{\itshape trans.\ by \theauthor}
Complete code:
\documentclass{article}
\usepackage{titling}% the wheel somebody else kindly made for us earlier
\usepackage{fancyhdr}
\pretitle{% add some rules
\begin{center}
\Huge\bfseries
}%, make the fonts bigger, make the title (only) bold
\posttitle{%
\end{center}%
\noindent\vrule height 2.5pt width \textwidth
\vskip .75em plus .25em minus .25em% increase the vertical spacing a bit, make this particular glue stretchier
}
\preauthor{%
\begin{center}
\Large \lineskip 0.75em%
\vrule height 0.4pt width .25\textwidth\par
\begin{tabular}[t]{@{}l@{}}%
}
\postauthor{%
\end{tabular}
\vskip -.5em
\par
\vrule height 0.4pt width .25\textwidth\par
\end{center}%
}
\predate{%
\begin{center}
\Large
}
\postdate{%
\end{center}%
}
\renewcommand\maketitlehooka{%
\noindent\vrule height 2.5pt width \textwidth
}
\renewcommand\maketitlehookb{%
\begin{flushleft}
\itshape
Translated from the original German by
\end{flushleft}%
}
\renewcommand\maketitlehookc{%
\begin{flushleft}
\itshape
based on the edition published by Immanuel Kant
\end{flushleft}%
}
\renewcommand\maketitlehookd{%
\begin{center}%
\itshape --- Here ends the title ---
\end{center}%
}
% unlike the default command, the redefined \maketitle makes it possible to reuse the title information in the headers
\pagestyle{fancy}
\fancyhf{}
\fancyhf[lh]{\itshape Immanuel Kant}
\fancyhf[ch]{\itshape\thetitle{}}
\fancyhf[rh]{\itshape trans.\ by \theauthor}
\fancyhf[cf]{--- \thepage ---}
\usepackage{kantlipsum}% only for the example
\begin{document}
\author{H. Hong}
\title{Critique of Pure Reason}
\date{c\,1780}
\maketitle
\kant[1-10]
\end{document}
Best Answer
There are really two questions here: how to define the interface and how to implement it. I'll only tackle the former, because the implementation would require several hours' work.
First you have to decide whether using non standard commands, say
\Title
and\Author
instead of\title
and\author
. There are many classes around and different realizations. For instance, the standard classes (article
,report
andbook
) allow for only one\author
command, others want that different authors go in distinct\author
commands (amsart
does this).I'll assume you go with
\title
and multiple\author
commands for maximum flexibility. The best approach is, in my opinion, using a key-value syntax.A document always has a title, and sometimes a short title for the header or a subtitle. I would do it like
rather than providing a bunch of commands such as
\subtitle
and\shorttitle
: in this way all the data are in one place. Similarly for author information:Note that I used several keys that can be used or not by your class. For instance,
key=writer
could make it possible to share affiliation information between two or more authors. The more detailed and classified is the information, the easier will be to implement a set of commands that process it.Talking of user interface, something like
\AtBeginDocument{\maketitleandabstract}
is surely not something document authors should be supposed to type. This will be done by the class; the classical approach with\maketitle
can be used too.I'm also keen towards placing this information after
\begin{document}
. If you do it in this way, you can free yourself from the burden of adding the\maketitle
command: just define aarticledata
environment, whose end automatically issues\maketitle
. SoWith a simple switch you can warn that commands such as
\author
,\title
,\abstract
and so on must go in thearticledata
environment (or issue an error message). It will be also easy to provide a package with acompatibility
option that redefines the commands and the environment so that the document becomes compatible witharticle
.