Sur un diaporama Beamer, j'aimerais mettre certaines notes de bas de page (très courtes) sur deux colonnes, mais sans que cela ne s'applique à toutes mes notes de bas de page.

J'ai trouvé le code suivant sur internet permettant de redéfinir la commande \footnote afin de mettre toutes les notes de bas de page sur deux colonnes :

%multi-colums footnote
\makeatletter
\renewcommand{\@makefntext}[1]%
{\parindent 0em\everypar={\hangafter 1\hangindent  0em}\raggedright
    \noindent\@makefnmark\hskip 1em\ignorespaces#1}
%%%%%%%%%%%%%%%%%%%%
\renewcommand<>\beamer@framefootnotetext[1]{%
    \global\setbox\beamer@footins\vbox{%
        \hsize0.5\framewidth%NEW
        \textwidth\hsize
        \columnwidth\hsize
        \unvbox\beamer@footins
        \reset@font\footnotesize
        \@parboxrestore
        \protected@edef\@currentlabel
        {\csname p@footnote\endcsname\@thefnmark}%
        \color@begingroup
        \uncover#2{\@makefntext{%
                \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}}%
        \color@endgroup}}
\def\beamer@autobreakframebox{%
    \global\setbox\beamer@splitbox=\box\voidb@x%
    \ifbeamer@autobreak%
    % Ok, frame was overful -> split it!
    \setbox\@tempboxa=\vsplit\beamer@framebox to\beamer@autobreakfactor\textheight%
    \global\setbox\beamer@splitbox=\box\beamer@framebox%
    \@tempdima=\ht\beamer@splitbox%
    \ifdim\@tempdima<\beamer@autobreaklastheight%
    \global\beamer@autobreaklastheight=\@tempdima\relax%
    \else%
    \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\unvbox\beamer@splitbox}%
    \global\setbox\beamer@splitbox=\box\voidb@x%
    \fi%
    \setbox\beamer@framebox=\vbox to\textheight{\unvbox\@tempboxa%
        \vskip\beamer@framebottomskipautobreak%
        \ifvoid\beamer@splitbox%
        \ifvoid\beamer@footins%
        \else%
        \begingroup
        \usebeamercolor*[fg]{footnote}%
        \footnoterule %
        \setlength{\multicolsep}{0pt}%NEW
        \begin{multicols}{2}%NEW
            \unvbox \beamer@footins%
        \end{multicols}%NEW
        \global\setbox\beamer@footins=\box\voidb@x%
        \endgroup  
        \fi%
        \fi%
        \beamer@exitcode%
    }%
    \else%
    \setbox\beamer@framebox=\vbox to\textheight{\unvbox\beamer@framebox%
        \vskip\beamer@framebottomskip%
        \ifvoid\beamer@footins%
        \else%
        \begingroup
        \usebeamercolor*[fg]{footnote}%
        \footnoterule %
        \setlength{\multicolsep}{0pt}%NEW
        \begin{multicols}{2}%NEW
            \unvbox \beamer@footins %
        \end{multicols}%NEW
        \global\setbox\beamer@footins=\box\voidb@x%
        \endgroup 
        \fi%
        \beamer@exitcode}%
    \global\setbox\beamer@footins=\box\voidb@x%
    \fi%
}
\makeatother
\setbeamertemplate{navigation symbols}{}
%end multi-columns footnote

J'ai aussi demandé à ce que les notes de bas de page soient référencées par des lettres (plutôt que par des numéros) :

\renewcommand{\thefootnote}{\alph{footnote}}

Problème : désormais, toutes mes notes de bas de page sont désormais écrites sur deux colonnes...

Ci-joint un ECM (dans la première diapo, j'obtiens l'effet voulu, mais pas dans la seconde...) :

\documentclass[french]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{multicol}
\usepackage{mathtools, stmaryrd, amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
\usetheme{Warsaw}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{block}[numbered]
\usepackage{lipsum}
\usepackage[french]{babel}

%multi-colums footnote
\makeatletter
\renewcommand{\@makefntext}[1]%
{\parindent 0em\everypar={\hangafter 1\hangindent  0em}\raggedright
    \noindent\@makefnmark\hskip 1em\ignorespaces#1}
%%%%%%%%%%%%%%%%%%%%
\renewcommand<>\beamer@framefootnotetext[1]{%
    \global\setbox\beamer@footins\vbox{%
        \hsize0.5\framewidth%NEW
        \textwidth\hsize
        \columnwidth\hsize
        \unvbox\beamer@footins
        \reset@font\footnotesize
        \@parboxrestore
        \protected@edef\@currentlabel
        {\csname p@footnote\endcsname\@thefnmark}%
        \color@begingroup
        \uncover#2{\@makefntext{%
                \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}}%
        \color@endgroup}}
\def\beamer@autobreakframebox{%
    \global\setbox\beamer@splitbox=\box\voidb@x%
    \ifbeamer@autobreak%
    % Ok, frame was overful -> split it!
    \setbox\@tempboxa=\vsplit\beamer@framebox to\beamer@autobreakfactor\textheight%
    \global\setbox\beamer@splitbox=\box\beamer@framebox%
    \@tempdima=\ht\beamer@splitbox%
    \ifdim\@tempdima<\beamer@autobreaklastheight%
    \global\beamer@autobreaklastheight=\@tempdima\relax%
    \else%
    \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\unvbox\beamer@splitbox}%
    \global\setbox\beamer@splitbox=\box\voidb@x%
    \fi%
    \setbox\beamer@framebox=\vbox to\textheight{\unvbox\@tempboxa%
        \vskip\beamer@framebottomskipautobreak%
        \ifvoid\beamer@splitbox%
        \ifvoid\beamer@footins%
        \else%
        \begingroup
        \usebeamercolor*[fg]{footnote}%
        \footnoterule %
        \setlength{\multicolsep}{0pt}%NEW
        \begin{multicols}{2}%NEW
            \unvbox \beamer@footins%
        \end{multicols}%NEW
        \global\setbox\beamer@footins=\box\voidb@x%
        \endgroup  
        \fi%
        \fi%
        \beamer@exitcode%
    }%
    \else%
    \setbox\beamer@framebox=\vbox to\textheight{\unvbox\beamer@framebox%
        \vskip\beamer@framebottomskip%
        \ifvoid\beamer@footins%
        \else%
        \begingroup
        \usebeamercolor*[fg]{footnote}%
        \footnoterule %
        \setlength{\multicolsep}{0pt}%NEW
        \begin{multicols}{2}%NEW
            \unvbox \beamer@footins %
        \end{multicols}%NEW
        \global\setbox\beamer@footins=\box\voidb@x%
        \endgroup 
        \fi%
        \beamer@exitcode}%
    \global\setbox\beamer@footins=\box\voidb@x%
    \fi%
}
\makeatother
\setbeamertemplate{navigation symbols}{}
%end multi-columns footnote

\renewcommand{\thefootnote}{\alph{footnote}}

\begin{document}
    \author{Auteur}
    \title{Titre}
    \institute{}
    \date{}

\begin{frame}
    \frametitle{Propriétés}
    \begin{block}{}
    \begin{enumerate}
        \item T auto-adjoint \footnote[frame]{$T^* = T$}<+-> $\implies \sigma(T) \subset \mathbb{R}$ ;
        \item T positif \footnote[frame]{$T^* = T$ et $\langle Tx, x \rangle \geqslant 0, \forall \, x \in H$}<+-> $\iff \sigma(T) \subset \mathbb{R}_+$ ;
        \item T unitaire \footnote[frame]{$T^*T=TT^* = Id$}<+-> $\implies \sigma(T) \subset \mathbb{T}$ ;
        \item T normal \footnote[frame]{$T^*T=TT^*$}<+-> $\implies \lVert T \rVert = r(T)$ ;
        \item $\lVert T \rVert^2 = \lVert T^* T \rVert = r(T^* T)$.
    \end{enumerate}
\end{block}
\end{frame}

\begin{frame}
    \lipsum[1]\footnote{\lipsum[2]}
\end{frame}
\end{document}

Posée 10 Fév '23, 13:39

endomorphisme's gravatar image

endomorphisme
30110
Taux d'acceptation : 0%

Modifiée 14 Fév '23, 16:39

denis's gravatar image

denis ♦♦
7.0k1510

Bienvenue sur TeXnique.fr !

(14 Fév '23, 16:38) denis ♦♦ denis's gravatar image

Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(14 Fév '23, 16:38) denis ♦♦ denis's gravatar image

Attention ! Les contre-obliques (\) saisies telles quelles dans les contributions ne sont visibles que si elles sont insérées en tant que ⟨code⟩. Pour insérer du ⟨code⟩, notamment des commandes LaTeX, cf. la FAQ Comment mettre en forme ma contribution ?. Merci de corriger votre contribution si cela n'a pas déjà été fait.

(14 Fév '23, 16:39) denis ♦♦ denis's gravatar image

On peut s'en sortir en définissant un environnement de « frame » spécial (dbframe ci-dessous) qui intègre le code permettant que les notes soient sur deux colonnes :

\documentclass[french]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{multicol}
\usepackage{mathtools, stmaryrd}
\usepackage{amssymb}
\usetheme{Warsaw}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{block}[numbered]
\usepackage{lipsum}
\usepackage{babel}

%multi-colums footnote
\makeatletter
\NewDocumentCommand{\fndb}{}{%
  \renewcommand{\@makefntext}[1]%
  {\parindent 0em\everypar={\hangafter 1\hangindent  0em}\raggedright
    \noindent\@makefnmark\hskip 1em\ignorespaces##1}
  %%%%%%%%%%%%%%%%%%%%
  \renewcommand<>\beamer@framefootnotetext[1]{%
    \global\setbox\beamer@footins\vbox{%
      \hsize0.5\framewidth%NEW
      \textwidth\hsize
      \columnwidth\hsize
      \unvbox\beamer@footins
      \reset@font\footnotesize
      \@parboxrestore
      \protected@edef\@currentlabel
      {\csname p@footnote\endcsname\@thefnmark}%
      \color@begingroup
      \uncover##2{\@makefntext{%
          \rule\z@\footnotesep\ignorespaces##1\@finalstrut\strutbox}}%
      \color@endgroup}}
  \def\beamer@autobreakframebox{%
    \global\setbox\beamer@splitbox=\box\voidb@x%
    \ifbeamer@autobreak%
      % Ok, frame was overful -> split it!
      \setbox\@tempboxa=\vsplit\beamer@framebox to\beamer@autobreakfactor\textheight%
      \global\setbox\beamer@splitbox=\box\beamer@framebox%
      \@tempdima=\ht\beamer@splitbox%
      \ifdim\@tempdima<\beamer@autobreaklastheight%
        \global\beamer@autobreaklastheight=\@tempdima\relax%
      \else%
        \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\unvbox\beamer@splitbox}%
        \global\setbox\beamer@splitbox=\box\voidb@x%
      \fi%
      \setbox\beamer@framebox=\vbox to\textheight{\unvbox\@tempboxa%
        \vskip\beamer@framebottomskipautobreak%
        \ifvoid\beamer@splitbox%
          \ifvoid\beamer@footins%
          \else%
            \begingroup
            \usebeamercolor*[fg]{footnote}%
            \footnoterule %
            \setlength{\multicolsep}{0pt}%NEW
            \begin{multicols}{2}%NEW
              \unvbox \beamer@footins%
            \end{multicols}%NEW
            \global\setbox\beamer@footins=\box\voidb@x%
            \endgroup
          \fi%
        \fi%
        \beamer@exitcode%
      }%
    \else%
      \setbox\beamer@framebox=\vbox to\textheight{\unvbox\beamer@framebox%
        \vskip\beamer@framebottomskip%
        \ifvoid\beamer@footins%
        \else%
          \begingroup
          \usebeamercolor*[fg]{footnote}%
          \footnoterule %
          \setlength{\multicolsep}{0pt}%NEW
          \begin{multicols}{2}%NEW
            \unvbox \beamer@footins %
          \end{multicols}%NEW
          \global\setbox\beamer@footins=\box\voidb@x%
          \endgroup
        \fi%
        \beamer@exitcode}%
      \global\setbox\beamer@footins=\box\voidb@x%
    \fi%
  }
}
\makeatother

\newenvironment<>{dbframe}[1][]{%
 \fndb
 \begin{frame}#2[environment=dbframe,#1]%
 }{%
 \end{frame}%
}

\setbeamertemplate{navigation symbols}{}
%end multi-columns footnote

\renewcommand{\thefootnote}{\alph{footnote}}

\begin{document}
    \author{Auteur}
    \title{Titre}
    \institute{}
    \date{}

\begin{dbframe}
    \frametitle{Propriétés}
    \begin{block}{}
    \begin{enumerate}
        \item T auto-adjoint \footnote[frame]{$T^* = T$}<+-> $\implies \sigma(T) \subset \mathbb{R}$ ;
        \item T positif \footnote[frame]{$T^* = T$ et $\langle Tx, x \rangle \geqslant 0, \forall \, x \in H$}<+-> $\iff \sigma(T) \subset \mathbb{R}_+$ ;
        \item T unitaire \footnote[frame]{$T^*T=TT^* = Id$}<+-> $\implies \sigma(T) \subset \mathbb{T}$ ;
        \item T normal \footnote[frame]{$T^*T=TT^*$}<+-> $\implies \lVert T \rVert = r(T)$ ;
        \item $\lVert T \rVert^2 = \lVert T^* T \rVert = r(T^* T)$.
    \end{enumerate}
\end{block}
\end{dbframe}

\begin{frame}
    Bla bla\footnote{\lipsum[2]}
\end{frame}
\end{document}
Lien permanent

Publiée 14 Fév '23, 16:37

denis's gravatar image

denis ♦♦
7.0k1510
Taux d'acceptation : 52%

@denis : dbframe ? Tiens. Ça me rappelle une question.

(14 Fév '23, 19:22) Pathe ♦♦ Pathe's gravatar image

Hum... « db » comme « double ».

(14 Fév '23, 21:14) denis ♦♦ denis's gravatar image

On pourrait le faire manuellement :

\documentclass[french]{beamer}
%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
%\usepackage{multicol}
\usepackage{mathtools, stmaryrd, amsmath}
%\usepackage{amssymb}
%\usepackage{xcolor}
\usetheme{Warsaw}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{block}[numbered]
\usepackage{lipsum}
\usepackage[french]{babel}

\setbeamertemplate{navigation symbols}{}
%end multi-columns footnote

\begin{document}
    \author{Auteur}
    \title{Titre}
    \institute{}
    \date{}

{
\renewcommand{\thefootnote}{\alph{footnote}}
\begin{frame}
    \frametitle{Propriétés}
    \begin{block}{}
    \begin{enumerate}
        \item T auto-adjoint \footnote<+->[frame]{$T^* = T$\hfill\visible<2->{\parbox{.45\textwidth}{b. $T^* = T$ et $\langle Tx, x \rangle \geqslant 0, \forall \, x \in H$}}} $\implies \sigma(T) \subset \mathbb{R}$ ;
        \item T positif \footnotemark[2]\refstepcounter{footnote}$\iff \sigma(T) \subset \mathbb{R}_+$ ;
        \item T unitaire \footnote<3->[frame]{$T^*T=TT^* = Id$\hfill\visible<4->{\parbox{.45\textwidth}{d. $T^*T=TT^*$}}} $\implies \sigma(T) \subset \mathbb{T}$ ;
        \item T normal \footnotemark[4]\refstepcounter{footnote} $\implies \lVert T \rVert = r(T)$ ;
        \item $\lVert T \rVert^2 = \lVert T^* T \rVert = r(T^* T)$.
    \end{enumerate}
\end{block}
\end{frame}
}

\begin{frame}
    \lipsum[1]\footnote{\lipsum[2]}
\end{frame}
\end{document}
Lien permanent

Publiée 10 Fév '23, 15:03

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 10 Fév '23, 15:04

Ne pourrait-on pas plutôt avoir une bascule qui nous fasse obtenir localement la disposition des notes de bas de page en deux colonnes ?

(10 Fév '23, 15:39) endomorphisme endomorphisme's gravatar image

@endomorphisme Pas facile ...

(10 Fév '23, 17:29) samcarter samcarter's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.