Avec le code :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{etoolbox}
\AfterEndEnvironment{itemize}{bleat bleat}
\begin{document}
\begin{itemize}
\item This is an item.
\end{itemize}

\csundef{@afterend@itemize@hook}

\begin{itemize}
\item This is another item.
\end{itemize}
\end{document}

pourquoi le deuxième itemize n'est pas revenu à son comportement par défaut ?

J'ajoute que makeatletter....makeatother ne règle pas le problème et que le code suivant fonctionne tout aussi mal.

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{etoolbox}

\newenvironment{Toto}{%
  }{%
  }

\AfterEndEnvironment{Toto}{J'ai oublié de dire\dots}
\begin{document}
\begin{Toto}

\end{Toto}

\makeatletter
\csundef{@afterend@Toto@hook}
\makeatother

\begin{Toto}

\end{Toto}
\end{document}

[a priori, ce serait depuis une des dernières MAJ]

EDIT : sur overleaf, ça fonctionne ( etoolbox 2020/07/15 v2.5i e-TeX tools for LaTeX (JAW)) Sur TL2020 à jour, ça ne fonctionne plus (etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW))

ça semble donc bien un problème de mise à jour...

Posée 05 Jan, 23:38

christophe-poulain's gravatar image

christophe-poulain
761118
Taux d'acceptation : 33%

Modifiée 06 Jan, 14:27

Manque-t-il point un \makeatletter … \makeatother?

(06 Jan, 00:08) Bernard Bernard's gravatar image

Non. je "modifie" la question...

(06 Jan, 06:47) christophe-poulain christophe-poulain's gravatar image

Les commandes \AtBeginEnvironment, \AfterEndEnvironment etc sont maintenant définies par LaTeX (le format) et les définitions de etoolbox ne sont pas utilisées.

Voici une solution.

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\AfterEndEnvironment{itemize}{bleat bleat}
\begin{document}
\begin{itemize}
\item This is an item.
\end{itemize}

\RemoveFromHook{env/itemize/after}

\begin{itemize}
\item This is another item.
\end{itemize}

\end{document}
Lien permanent

Publiée 06 Jan, 20:40

touhami's gravatar image

touhami
8.6k210
Taux d'acceptation : 51%

Ça fonctionne en entourant d'un \makeatletter + \makeatother.. Cela dit, faut-il vraiment recourir à l'artillerie lourde, alors qu'on peut faire cela avec la clef after de enumitem:

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{itemize}[after=bloat bloat]
\item This is an item.
\end{itemize}

\begin{itemize}
\item This is another item.
\end{itemize}

\end{document}

alt text

Lien permanent

Publiée 06 Jan, 00:22

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

non, ça ne fonctionne pas avec makeatletter...makeatother. J'avais essayé (chez moi, TL2020 à jour de samedi et sur overleaf... maintenant) et le code proposé fonctionnait très bien sans. itemize était un exemple.. Avec un autre environnement, cela ne fonctionne pas non plus.

(06 Jan, 06:45) christophe-poulain christophe-poulain's gravatar image

Bizarre· Il est vrai que je suis sous MiKTeX, mais tout de même… Et la solution avec enumitem ne fonctionne pas non plus ?

(06 Jan, 10:41) Bernard Bernard'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.

Mots-clés de la question :

×11

Question posée : 05 Jan, 23:38

Question vue : 514 fois

Dernière mise à jour : 06 Jan, 20:40