After a deeper look into this, with the immense help of
@samcarter_is_at_topanswers.xyz, multiple solutions are in fact available.
But first of all, in a presentation, note that it is better to avoid footnotes as much as possible ! A quotation from the beamer
manual (section 12.12):
First a word of warning: Using footnotes is usually not a good idea. They
disrupt the flow of reading.
So first and foremost, if you absolutely want footnote citations, I recommend to reduce the information as much as possible retaining only :
- the author's name
- the title
- the year
- period
This can be obtained with the style=authoryear
option of biblatex
. Additional information will only take space in the frame
s and nobody is likely to read (or remember) them anyway.
Now that this is set, two solutions arise for your base problem in all cases, the key action is to provide the frame
option to \footnote
basically.
- Solution n°1 consists in redefining a
\cite
command from scratch including a \footnote[frame]
- Solution n°2 consists in patching
biblatex
when it calls footnote
- Solution n°3 consists in patching
beamer
\footnotes
to always use the frame
option
% arara: pdflatex
% arara: bibtex
% arara: bibtex
% arara: pdflatex
\documentclass{beamer}
\usepackage{graphicx}
\usepackage[style=authortitle,backend=bibtex]{biblatex}
\bibliography{bibliography}
% Solution n°1
\newcommand{\customcite}[1]{\leavevmode\unskip\footnote[frame]{\citeauthor{#1}, \citetitle{#1}, \citeyear{#1}.}}
% Other solutions
% From https://tex.stackexchange.com/a/215608/141947
% To add the year to the authortitle style
\usepackage{xpatch}
\xapptobibmacro{cite}{\setunit{\nametitledelim}\printfield{year}}{}{}
% Solution n°2
% If you want to provide only cite-related macros with frame option (may break elsewhere)
\makeatletter
\renewrobustcmd{\blx@mkbibfootnote}[2]{%
\iftoggle{blx@footnote}
{\blx@warning{Nested notes}%
\addspace\mkbibparens{#2}}
{\unspace
\ifnum\blx@notetype=\tw@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}
{\footnote[#1,frame]{\protecting{\blxmkbibnote{foot}{#2}}}}}}
\makeatother
% Solution n°3
% If you want to provide all your footnotes with "frame" option by default
% \makeatletter
% \renewcommand<>{\footnote}[1][frame]{%
% \let\beamer@footnotetext=\@footnotetext%
% \let\beamer@mpfn=\@mpfn%
% \let\beamer@thempfn=\thempfn%
% \let\beamer@kvorig=\KV@errx%
% \let\beamer@xkvorig=\XKV@err
% \def\beamer@footarg{}%
% \def\KV@errx##1{\edef\beamer@footarg{\@tempa}}%
% \def\XKV@err##1{\edef\beamer@footarg{\XKV@tkey}}%
% \setkeys{beamerfootnote}{#1}%
% \let\KV@errx=\beamer@kvorig%
% \let\XKV@errx=\beamer@xkvorig
% \ifx\beamer@footarg\@empty%
% \def\beamer@next{\stepcounter\beamer@mpfn
% \protected@xdef\@thefnmark{\beamer@thempfn}%
% \@footnotemark\beamer@footnotetext#2}%
% \else%
% \def\beamer@next{%
% \begingroup
% \csname c@\beamer@mpfn\endcsname\beamer@footarg\relax
% \unrestored@protected@xdef\@thefnmark{\beamer@thempfn}%
% \endgroup
% \@footnotemark\beamer@footnotetext#2}%
% \fi%
% \beamer@next}
% \makeatother
\begin{document}
\begin{frame}\frametitle{Title}
A complete sentence on top of the frame.
\begin{columns}
\begin{column}{0.47\textwidth}
\begin{itemize}
\item text1 \autocite{ref_a}
\item text2 \autocite{ref_b}
\item text3 \autocite{ref_c}
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\rule{\textwidth}{0.75\textwidth}
\end{column}
\end{columns}
\end{frame}
\begin{frame}\frametitle{Title}
A complete sentence on top of the frame.
\begin{columns}
\begin{column}{0.47\textwidth}
\begin{itemize}
\item text1 \customcite{ref_a}
\item text2 \customcite{ref_b}
\item text3 \customcite{ref_c}
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\rule{\textwidth}{0.75\textwidth}
\end{column}
\end{columns}
\end{frame}
\end{document}
In all cases, the output is the same

\footnote
's[frame]
option with\autocite
– BambOo May 18 '20 at 15:06