Beamer: aggiungere il numero slide nella headline

  • Creatore
    Topic
  • #75547
    Up
    0
    Down
    ::


    Salve a tutti. Sto scrivendo una presentazione in Beamer e vorrei ridurre il contenuto attuale della headline in modo che occupi, per dire, l’80% dello spazio verticale, inserendo in alto a destra il numero della slide corrente. Qualcuno ha idea di come si possa fare un’operazione del genere?

    Al momento la presentazione è strutturata come segue:

    `\documentclass[compress]{beamer}

    \usepackage[italian]{babel}

    \usetheme{Copenhagen}
    \usecolortheme{crane}
    \useoutertheme[subsection=false]{miniframes}
    \setbeamercovered{dynamic}

    \newenvironment{secframe}[1][]%
    {\subsection{#1}\begin{frame}\frametitle{#1}}%
    {\end{frame}}

    \title[Titolo]%
    {Titolo}
    \author[Nome Cognome]{Nome Cognome}
    \institute[Istituto]%
    {\footnotesize{Istituto}}
    \date{\footnotesize{Data}}

    \begin{document}

    \begin{frame}
    \titlepage
    \end{frame}

    \section{Sezione 1}

    \begin{secframe}[Quadro 1.1]
    Quadro 1.1
    \end{secframe}

    \begin{secframe}[Quadro 1.2]
    Quadro 1.2
    \end{secframe}

    \section{Sezione 2}

    \begin{secframe}[Quadro 2.1]
    Quadro 2.1
    \end{secframe}

    \begin{secframe}[Quadro 2.2]
    Quadro 2.2
    \end{secframe}

    \section{Sezione 3}

    \begin{secframe}[Quadro 3.1]
    Quadro 3.1
    \end{secframe}

    \begin{secframe}[Quadro 3.2]
    Quadro 3.2
    \end{secframe}

    \section{Sezione 4}

    \begin{secframe}[Quadro 4.1]
    Quadro 4.1
    \end{secframe}

    \begin{secframe}[Quadro 4.2]
    Quadro 4.2
    \end{secframe}

    \end{document}`

    Ringrazio anticipatamente 🙂

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #75548
      Up
      0
      Down
      ::


      Ciao,

      prova a leggere l’Introduzione alla personalizzazione di Beamer che trovi nella sezione del sito Documentazione->Guide Tematiche e cerca i comandi \insertframenumber e \inserttotalframenumber. Dovrai inserire questi comandi nel template headline.

      Ciao
      Claudio

    • #75549
      Up
      0
      Down
      ::

      cfiandra” post=74704Ciao,

      prova a leggere l’Introduzione alla personalizzazione di Beamer che trovi nella sezione del sito Documentazione->Guide Tematiche e cerca i comandi \insertframenumber e \inserttotalframenumber. Dovrai inserire questi comandi nel template headline.

      Ciao
      Claudio

      Ok, anzitutto grazie per la risposta! La guida che mi hai indicato è stata molto utile.
      Nella pratica si suggeriva di studiare un attimo la definizione dell’outertheme nella directory in cui è installato beamer.
      Ho pasticciato un po’ con tale definizione fino ad ottenere il risultato desiderato:

      `\documentclass[compress]{beamer}

      \usepackage[italian]{babel}

      \usetheme{Copenhagen}
      \setbeamercovered{dynamic}

      %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %% Definizione dell'outertheme
      %%
      %
      % Outertheme base
      %\vskip2pt\insertnavigation{\paperwidth}\vskip2pt
      %\useoutertheme[subsection=false]{miniframes}
      % Headline
      \setbeamertemplate{headline}{\leavevmode\hbox{%
      \begin{beamercolorbox}
      [wd=.90\paperwidth,leftskip=.3cm plus1fill,center]%
      {title in head/foot}
      \vskip2pt\mbox{}\insertnavigation{.85\paperwidth}\vskip3pt
      \end{beamercolorbox}%
      \begin{beamercolorbox}%
      [wd=.10\paperwidth,ht=6.1ex,center]%
      {author in head/foot}
      \usebeamerfont{title in head/foot}
      \vskip2pt\mbox{}
      \footnotesize{\insertframenumber\,/\,\inserttotalframenumber}
      \vskip3.5pt
      \end{beamercolorbox}}%
      \vskip0pt}
      % Footline
      \setbeamertemplate{footline}{\leavevmode\hbox{%
      \begin{beamercolorbox}%
      [wd=.4\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]%
      {author in head/foot}
      \usebeamerfont{author in head/foot}\insertshortauthor
      \end{beamercolorbox}%
      \begin{beamercolorbox}%
      [wd=.6\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]%
      {title in head/foot}
      \usebeamerfont{title in head/foot}\insertshorttitle
      \end{beamercolorbox}}%
      \vskip0pt}

      %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %% Personalizzazione colori
      %%
      \usecolortheme{crane}
      \definecolor{giallotemaup}{RGB}{252, 187, 6}
      \definecolor{giallotemalow}{RGB}{253, 237, 192}
      \setbeamercolor{giallotema}{fg=black,bg=giallotemaup}
      \setbeamercolor{giallolow}{fg=black,bg=giallotemalow}
      \setbeamercolor{titlelike}{fg=black}
      \setbeamercolor{palette primary}{fg=black}
      \setbeamercolor{palette secondary}{fg=black}
      \setbeamercolor{section in toc}{fg=black}
      \setbeamercolor{item}{fg=black}
      \setbeamercolor{frametitle}{bg=giallotemalow}

      \newenvironment{secframe}[1][]%
      {\subsection{#1}\begin{frame}\frametitle{#1}}%
      {\end{frame}}

      \title[Titolo]%
      {Titolo}
      \author[Nome Cognome]{Nome Cognome}
      \institute[Istituto]%
      {\footnotesize{Istituto}}
      \date{\footnotesize{Data}}

      \begin{document}

      \begin{frame}
      \titlepage
      \end{frame}

      \section{Sezione 1}

      \begin{secframe}[Quadro 1.1]
      Quadro 1.1
      \end{secframe}

      \begin{secframe}[Quadro 1.2]
      Quadro 1.2
      \end{secframe}

      \section{Sezione 2}

      \begin{secframe}[Quadro 2.1]
      Quadro 2.1
      \end{secframe}

      \begin{secframe}[Quadro 2.2]
      Quadro 2.2
      \end{secframe}

      \section{Sezione 3}

      \begin{secframe}[Quadro 3.1]
      Quadro 3.1
      \end{secframe}

      \begin{secframe}[Quadro 3.2]
      Quadro 3.2
      \end{secframe}

      \section{Sezione 4}

      \begin{secframe}[Quadro 4.1]
      Quadro 4.1
      \end{secframe}

      \begin{secframe}[Quadro 4.2]
      Quadro 4.2
      \end{secframe}

      \end{document}`

      Sono soddisfatto del risultato, anche se ci sono una serie di warning con hyperref in compilazione.
      Chissà che LaTeX-eresie avrò inserito hehe.

      Grazie comunque, dal punto di vista visivo il problema è risolto!

    • #75550
      Up
      0
      Down
      ::


      Ho dato un’occhiata al tuo risultato. 🙂

      Quello che non mi convince è la footline (non simmetrica, ma credo sia voluta giusto?), mentre la soluzione nella headline mi piace. Per trovare proprio il pelo nell’uovo, anche qui cercherei di “centrare” nella box la numerazione (credo si possa fare facilmente inserendo un center nelle opzioni della beamercolorbox). Ottimo lavoro comunque! 🙂

      Ciao
      Claudio

    • #75551
      Up
      0
      Down
      ::

      cfiandra” post=74724Ho dato un’occhiata al tuo risultato. 🙂

      Quello che non mi convince è la footline (non simmetrica, ma credo sia voluta giusto?), mentre la soluzione nella headline mi piace. Per trovare proprio il pelo nell’uovo, anche qui cercherei di “centrare” nella box la numerazione (credo si possa fare facilmente inserendo un center nelle opzioni della beamercolorbox). Ottimo lavoro comunque! 🙂

      Ciao
      Claudio

      Grazie dei preziosi suggerimenti! Ho corretto il codice, attenuando anche il colore del titleframe..
      …e io che stavo lì ad aggiungere spazi a destra e a manca per centrare il testo… 😆

      P.S. La footline non simmetrica è perché il titolo è un po’ lungo e non volevo accorciarlo di 1 o 2 parole… è di cattivo gusto, dici?

    • #75552
      Up
      0
      Down
      ::

      marcocento” post=74725Grazie dei preziosi suggerimenti! Ho corretto il codice, attenuando anche il colore del titleframe..
      …e io che stavo lì ad aggiungere spazi a destra e a manca per centrare il testo… 😆

      P.S. La footline non simmetrica è perché il titolo è un po’ lungo e non volevo accorciarlo di 1 o 2 parole… è di cattivo gusto, dici?

      Io personalmente la preferisco simmetrica, ma è un parere personale. Quando i titoli sono troppo lunghi, puoi usarne la forma breve con:

      `
      \title[titolo-breve]{titolo-lungo}
      `
      Nel codice del template [tt]footline[/tt] troverai un [tt]\insertshorttitle[/tt] che è esattamente il comando per inserire il titolo breve se presente oppure il titolo lungo (quando non c’è un titolo breve).

      Ciao
      Claudio

    • #75553
      Up
      0
      Down
      ::


      Ciao,

      vorrei sapere se è possibile modificare il tuo codice per far si che ciascun miniframe nella headline corrisponda ad una subsection e non ad un frame.

      Questo perchè se i quadri sono tanti i miniframe diventano troppi (mi si dispogono in verticale occupando circa mezzo foglio 🙁 ).

      Ho fatto alcune prove partendo dal tuo codice e dalla documentazione di beamer ma non ci sono riuscito.

      Grazie, ciao!

    • #75554
      Up
      0
      Down
      ::

      DirkPitt” post=75059Ciao,

      vorrei sapere se è possibile modificare il tuo codice per far si che ciascun miniframe nella headline corrisponda ad una subsection e non ad un frame.

      Questo perchè se i quadri sono tanti i miniframe diventano troppi (mi si dispogono in verticale occupando circa mezzo foglio 🙁 ).

      Ho fatto alcune prove partendo dal tuo codice e dalla documentazione di beamer ma non ci sono riuscito.

      Grazie, ciao!

      Forse sono arrivato a qualcosa di utile:

      definendo due comandi \miniframeson e \miniframesoff che (come dicono i loro nomi) (dis)abilitano la creazione dei miniframe. In tal modo usando questi due comandi si può creare un miniframe per ogni subsection, alternando opportunamente on e off.

      Per fare ciò bisogna lavorare sulla macro \beamer@writeslidentry che è quella che gestisce il file .nav (non so se è la sola).

      Copio un esempio, se compilate notate che per la sezione 1 vengono prodotti solo 2 miniframe, per la sezione 2 invece viene generato un miniframe per ogni quadro

      `
      \documentclass[compress]{beamer}
      \useoutertheme[subsection=false]{miniframes}
      \makeatletter
      \let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
      \def\beamer@writeslidentry@miniframesoff{%
      \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
      {%else
      % removed \addtocontents commands
      \clearpage\beamer@notesactions%
      }
      }
      \newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
      \newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
      \makeatother

      \begin{document}
      \frame{\tableofcontents}
      \section{Section 1}
      \subsection{Subsection 1}
      \frame{\frametitle{Frame 1}}
      \miniframesoff
      \frame{\frametitle{Frame 2}}
      \frame{\frametitle{Frame 3}}
      \subsection{Subsection 2}
      \miniframeson
      \frame{\frametitle{Frame 1}}
      \miniframesoff
      \frame{\frametitle{Frame 2}}
      \frame{\frametitle{Frame 3}}
      \frame{\frametitle{Frame 4}}
      \section{Section 2}
      \miniframeson
      \subsection{Subsection 1}
      \frame{\frametitle{Frame 1}}
      \frame{\frametitle{Frame 2}}
      \frame{\frametitle{Frame 3}}
      \subsection{Subsection 2}
      \frame{\frametitle{Frame 1}}
      \frame{\frametitle{Frame 2}}
      \frame{\frametitle{Frame 3}}
      \frame{\frametitle{Frame 4}}
      \end{document}
      `

      PS VI avrei dato i link originali da cui ho preso vari pezzi del codice ma chi se li ritrova più :=)

      Ciao

Visualizzazione 6 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top