After reading section 5.4 ("Name formatting") of Designing BibTeX Styles, I tried CTLname_format_string = "{f{.}.~}{vv~}{ll}{, jj}"
and succeeded. :-)
\documentclass[12pt, oneside, ]{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{smith2009pain,
author = {John Frederik Camelot Smith and Jason Bourne},
title = {{The Pain of Having a Foolish Name}},
journal = {Journal of Modern Fiction},
year = {2009},
volume = {52},
pages = {114},
number = {1},
issn = {0010-4620},
publisher = {Grendel Publishing}
}
@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_article_number = "yes",
CTLuse_paper = "yes",
CTLuse_forced_etal = "no",
CTLmax_names_forced_etal = "10",
CTLnames_show_etal = "1",
CTLuse_alt_spacing = "yes",
CTLalt_stretch_factor = "4",
CTLdash_repeated_names = "yes",
CTLname_format_string = "{f{.}.~}{vv~}{ll}{, jj}",
CTLname_latex_cmd = "",
CTLname_url_prefix = "[Online]. Available:"
}
\end{filecontents}
% Define the IEEE citation control command (not necessary if using IEEEtran class)
\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
\@for\@citeb:=#2\do{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
\makeatother
% Begin Logical Document
\begin{document}
\bstctlcite{IEEEexample:BSTcontrol}
Here is an example citation \cite{smith2009pain}.
\bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,\jobname}{}
% End Logical Document
\end{document}
All the magic is in the definitions at the top of the file. The only unique things in my slide content itself is that: 1) I did not leave a blank line before and after \[...\]
equation construct; and 2) the \columnskip
specification mentioned below.
Here I addressed normal text, equations, centering, center environment, itemize environment. EDITED to address columns environment. I have REEDITED to introduce the macros \stretchon
and \stretchoff
to make this process selectable. Just issue one of these commands between frames to change the current mode. I have also REEDITED to provide the redefined \item
with an optional argument, as it should be.
Generally, the main thing is to redefine \par
to add a \vfill
after the \par
. However, a few additional refinements are required. The first invocation of \item
in an environment should just use the regularly defined \item
, but then redefine \item
to add a \vfill
prior to subsequent \item
s. Environments like center
and itemize
also may need to reinvoke the \vfill
ed version of \par
, either coming into the environment, leaving it, or both.
In my edit to address the columns
environment, I determined that \vfill
solutions seemed to have no effect, which must have something to do with the way the two columns are separately constructed and aligned. So my solution was to introduce a length \columnskip
, which will be the \parskip
introduced between items in the column
environment and upon exiting that environment. Thus, for any particular slide, one may have to adjust it once or twice to get a good match to the remaining \vfill
s on the page
\documentclass{beamer}
\def\itemsymbol{$\blacktriangleright$}
\let\svpar\par
\let\svitemize\itemize
\let\svenditemize\enditemize
\let\svitem\item
\let\svcenter\center
\let\svendcenter\endcenter
\let\svcolumn\column
\let\svendcolumn\endcolumn
\def\newitem{\renewcommand\item[1][\itemsymbol]{\vfill\svitem[##1]}}%
\def\newpar{\def\par{\svpar\vfill}}%
\newcommand\stretchon{%
\newpar%
\renewcommand\item[1][\itemsymbol]{\svitem[##1]\newitem}%
\renewenvironment{itemize}%
{\svitemize}{\svenditemize\newpar\par}%
\renewenvironment{center}%
{\svcenter\newpar}{\svendcenter\newpar}%
\renewenvironment{column}[2]%
{\svcolumn{##1}\setlength{\parskip}{\columnskip}##2}%
{\svendcolumn\vspace{\columnskip}}%
}
\newcommand\stretchoff{%
\let\par\svpar%
\let\item\svitem%
\let\itemize\svitemize%
\let\enditemize\svenditemize%
\let\center\svcenter%
\let\endcenter\svendcenter%
\let\column\svcolumn%
\let\endcolumn\svendcolumn%
}
\newlength\columnskip
\columnskip 0pt
\begin{document}
\stretchon
\begin{frame}{A few paragraphs (with stretching)}
As any dedicated reader can clearly see, the Ideal of practical reason is a representation of the things in themselves.
I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
The paralogisms of practical reason are what first give rise to the architectonic of practical reason.
\end{frame}
\begin{frame}{Displayed Equation (with stretching)}
As any dedicated reader can clearly see, the ideal of practical
reason is a representation of the things in themselves
I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
\[
x^2 +y^2 = z^2
\]
The paralogisms of practical reason are what first give rise to the architectonic of practical reason.
Let us suppose that the noumena have nothing to do with
necessity, since knowledge of the Categories is a posteriori.
\end{frame}
\begin{frame}{\textbackslash centering}
As any dedicated reader can clearly see, the ideal of practical
reason is a representation of the things in themselves
{\centering
BEGINNING CENTERING. I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
The paralogisms of practical reason are what first give rise to the architectonic of practical reason. ENDING CENTERING.
}
Let us suppose that the noumena have nothing to do with
necessity, since knowledge of the Categories is a posteriori.
\end{frame}
\begin{frame}{center Environment (extra space before/after env)}
As any dedicated reader can clearly see, the ideal of practical
reason is a representation of the things in themselves
\begin{center}
BEGINNING \{CENTER\}. I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
The paralogisms of practical reason are what first give rise to the architectonic of practical reason. ENDING \{CENTER\}.
\end{center}
Let us suppose that the noumena have nothing to do with
necessity, since knowledge of the Categories is a posteriori.
\end{frame}
\begin{frame}{itemize environment}
As any dedicated reader can clearly see, the Ideal of practical reason is a representation of the things in themselves.
Begin itemize now
\begin{itemize}
\item[$\bullet$] I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
\item The paralogisms of practical reason are what first give rise to the architectonic of practical reason.
\end{itemize}
Let us suppose that the noumena have nothing to do with
necessity, since knowledge of the Categories is a posteriori.
\end{frame}
\begin{frame}{columns environment}
I have shown elsewhere, the phenomena should only be used as a canon for our understanding.
\columnskip 2ex%
\begin{columns}[totalwidth=\linewidth]
\begin{column}{.5\linewidth}
xxx
yyy
zzz
\end{column}
\begin{column}{.5\linewidth}
qqq
rrr
\end{column}
\end{columns}
The paralogisms of practical reason are what first give rise to the architectonic of practical reason.
Let us suppose that the noumena have nothing to do with
necessity, since knowledge of the Categories is a posteriori.
\end{frame}
\end{document}
Best Answer
The definition of
\dotfill
isThe spacing is given by
.44em
, so you can put this in your preamble:I would, however, suggest that you create your own command called e.g.
\Dotfill
, like this, so that the spacing is modified only when you want (\dotfill
is used by LaTeX in various places):