[Beamer] Compteur de slide

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
zazou
Utilisateur confirmé
Utilisateur confirmé
Messages : 29
Inscription : mercredi 23 novembre 2022, 10:16
Statut actuel : Enseignant

[Résolu] [Beamer] Compteur de slide

Message non lu par zazou »

Bonjour,

J'utilise Beamer pour créer mes cours, et j'aime à afficher des exemples sans en donner tout de suite la réponse. J'utilise pour cela le package dashundergaps.
Pour afficher les réponses, j'utilise la commande \TeacherModeOn couplée à un \only.
quand les exemples se multiplient dans une frame, ça peut être fastidieux à écrire, et j'ai donc automatisé le tout avec une newcomand :

Code : Tout sélectionner

\newcounter{slide}[framenumber]

\newcommand{\ons}[1]{\stepcounter{slide}
\FPeval\numero{clip(theslide+1)}
\only<\numero ->{#1}}

\newcommand{\gaps}[1]{{\ons{\TeacherModeOn}\gap*[.]{#1}}}
J'en suis assez satisfait pour le moment, mais il y a un truc qui me chagrine c'est le [framenumber] qui ne semble pas fonctionner. En effet, si je ne mets pas dans chaque frame où j'utilise ma commande un \setcounter{slide}{0}, ça mouline pendant des plombes, et ça ne compile rien.
Est-ce que j'ai raté quelque chose?

Merci.
Dernière modification par zazou le mardi 21 février 2023, 10:40, modifié 1 fois.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2203
Inscription : samedi 29 décembre 2007, 00:58

Re: [Beamer] Compteur de slide

Message non lu par projetmbc »

Bonjour.

Il faudrait fournir un code compilable pour tester.
anonyme74170
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 102
Inscription : jeudi 21 avril 2016, 11:34

Re: [Beamer] Compteur de slide

Message non lu par anonyme74170 »

Bonjour @Zazou,

il est peut être utile de lire ce billet : viewtopic.php?t=17433
Cdlt
B
zazou
Utilisateur confirmé
Utilisateur confirmé
Messages : 29
Inscription : mercredi 23 novembre 2022, 10:16
Statut actuel : Enseignant

Re: [Beamer] Compteur de slide

Message non lu par zazou »

Bonjour,

La première frame compile sans problème et donne le résultat escompté, mais la deuxième tourne en rond.

Code : Tout sélectionner

\documentclass{beamer}
\usepackage{dashundergaps}
\usepackage{fp}
\newcounter{slide}[framenumber]

\newcommand{\ons}[1]{
	\stepcounter{slide}
	\FPeval\numero{clip(theslide+1)}
	\only<\numero ->{#1}
}

\newcommand{\gaps}[1]{{\ons{\TeacherModeOn}\gap*[.]{#1}}}

\begin{document}
\begin{frame}
\setcounter{slide}{0}
\gaps{test1}
\gaps{test2}
\end{frame}
\begin{frame}
\gaps{test3}
\end{frame}
\end{document}
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry

Re: [Beamer] Compteur de slide

Message non lu par un bon petit »

Je ne sais pas si j'ai tout compris. Peut-être que ce code conviendra.

Code : Tout sélectionner

\documentclass{beamer}
\usepackage{dashundergaps}
\newcounter{slide}[framenumber]
\newcommand\gaps[1]{{%
	\stepcounter{slide}%
	\expandafter\only\expandafter<\expanded{\fpeval{\theslide+1}} ->\TeacherModeOn\gap*[.]{#1}}}
\expandafter\def\expandafter\frame\expandafter{\frame\setcounter{slide}{0}}
\begin{document}
\begin{frame}
	\gaps{test1}
	\gaps{test2}
\end{frame}
\begin{frame}
	\gaps{test3}
\end{frame}
\end{document}
Programmer en TeX, TeXpérimental
zazou
Utilisateur confirmé
Utilisateur confirmé
Messages : 29
Inscription : mercredi 23 novembre 2022, 10:16
Statut actuel : Enseignant

Re: [Beamer] Compteur de slide

Message non lu par zazou »

Désolé, je n'ai pas vraiment eu l'occasion de me repencher sur la question ces derniers jours.

oui, ça fonctionne, merci beaucoup!

par contre j'aime à comprendre ce que je compile... et ces \expandafter en cascade me laissent un peu sur ma faim! que signifient-ils? Je les ai déjà croisés par ailleurs, et ils m'avaient déjà surpris!
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2203
Inscription : samedi 29 décembre 2007, 00:58

Re: [Beamer] Compteur de slide

Message non lu par projetmbc »

Pour faire simple, voire simpliste, un \expandafter sert à développer un argument avant son "utilisation". un bon petit te donnera sûrement un exemple éclairant sur ce sujet central concernant TeX et ses enfants.
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry

Re: [Beamer] Compteur de slide

Message non lu par un bon petit »

projetmbc a écrit : mercredi 18 janvier 2023, 17:19 Pour faire simple, voire simpliste, un \expandafter sert à développer un argument avant son "utilisation".
Moui. Sauf que \expandafter agit au niveau des tokens. Si l'on veut toucher plusieurs tokens, il faut utiliser \romannumeral ou la toute nouvelle primitive \expanded.

Je ne vais pas entrer ici dans de longues et pénibles explications quant à ce que fait \expandafter et encore moins comment cette primitive s'utilise.
Je me bornerai simplement à indiquer que l'épisode 9 et l'épisode 10 abordent assez largement le sujet. Je n'ai pas connaissance d'autres ressources vidéo traitant du sujet en français.

Il y a aussi de la lecture avec par exemple Apprendre à programmer en TeX, dans tout le chapitre II.4 (pages 99 à 130) et plus spécialement pages 103 à 115.
Programmer en TeX, TeXpérimental
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2203
Inscription : samedi 29 décembre 2007, 00:58

Re: [Beamer] Compteur de slide

Message non lu par projetmbc »

Bonjour.

Mon simpliste n'était pas là pour rien.

Vidéo 9 très bien faite ! Je la recommande.

La vidéo 10 est visuellement floue, mais très bien aussi.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 488
Inscription : dimanche 11 février 2007, 11:45

Re: [Beamer] Compteur de slide

Message non lu par touhami »

Bonjour.
Pour une solution simple il suffit de remplacer

Code : Tout sélectionner

\newcounter{slide}[framenumber]
par

Code : Tout sélectionner

\newcounter{slide}[page]
En fait, chaque environnement frame est composé de plusieurs slides (pages) et vous avez besoin réinitialiser le compteur
au début de chaque page.
zazou a écrit : mercredi 18 janvier 2023, 16:19 ...
par contre j'aime à comprendre ce que je compile... et ces \expandafter en cascade me laissent un peu sur ma faim! que signifient-ils? Je les ai déjà croisés par ailleurs, et ils m'avaient déjà surpris!

Code : Tout sélectionner

\expandafter\def\expandafter\frame\expandafter{\frame\setcounter{slide}{0}}
C'est une façon intelligente pour ajouter automatiquement

Code : Tout sélectionner

\setcounter{slide}{0}
au début de chaque frame. Je dit intelligente puisque la définition la commande \frame est compliquée et on ne peut pas la redéfinir par les méthode usuelles.
Une autre méthode est

Code : Tout sélectionner

\makeatletter
\g@addto@macro{\frame}{\setcounter{slide}{0}}
\makeatother
où addto signifie ajouter à.
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry

Re: [Beamer] Compteur de slide

Message non lu par un bon petit »

projetmbc a écrit : jeudi 19 janvier 2023, 08:50 La vidéo 10 est visuellement floue, mais très bien aussi.
Pff, mais alors ça, c'est le côté ultra-pénible de youtube !
Pour une raison que je n'ai jamais réussi à m'expliquer, des fois la qualité du flux vidéo est dégradée par youtube. Qu'on ne me dise pas que c'est dû à l'utilisateur et à un mauvais débit, j'ai la fibre et strictement aucun problème de débit.
Pour y remédier, il faut cliquer sur le roue dentée "paramètres" en bas à droite et choisir la meilleure résolution possible dans le menu "Qualité".
Programmer en TeX, TeXpérimental
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2203
Inscription : samedi 29 décembre 2007, 00:58

Re: [Beamer] Compteur de slide

Message non lu par projetmbc »

Merci pour l'astuce, et effectivement, c'est pénible.
zazou
Utilisateur confirmé
Utilisateur confirmé
Messages : 29
Inscription : mercredi 23 novembre 2022, 10:16
Statut actuel : Enseignant

Re: [Beamer] Compteur de slide

Message non lu par zazou »

Pour une solution simple il suffit de remplacer

Code : Tout sélectionner

\newcounter{slide}[framenumber]
par

Code : Tout sélectionner

\newcounter{slide}[page]
Merci, c'est effectivement très simple et ça fonctionne!
Je ne vais pas entrer ici dans de longues et pénibles explications quant à ce que fait \expandafter et encore moins comment cette primitive s'utilise.
Je me bornerai simplement à indiquer que l'épisode 9 et l'épisode 10 abordent assez largement le sujet. Je n'ai pas connaissance d'autres ressources vidéo traitant du sujet en français.
Merci pour le lien! Vidéos plus qu'intéressantes qui gagneraient à être connues, j'ai commencé à regarder toute la série du coup!