Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 3
mineure

26 Mar '23, 17:31

denis's gravatar image

denis
7.4k2510

Il suffit d'ajouter `\leavevmode\vspace{-\baselineskip}` juste après `\begin{exo}` lorsque celui-ci est immédiatement suivi d'une liste (ici `enumerate`). Pour éviter d'avoir à le faire manuellement et systématiquement, on peut procéder comme suit (le code ci-dessous tient compte des améliorations apportées suite aux divers commentaires, notamment de l'astuce de @touhami) : \documentclass[french]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage{amsmath} \usepackage{enumitem} \usepackage{amssymb} \usepackage{amsthm} \usepackage{babel} \newtheoremstyle{break} % ⟨name⟩ {} % ⟨Space above⟩ {0.5cm} % ⟨Space below⟩ {\normalfont} % ⟨Body font⟩ {} % ⟨Indent amount⟩ {\bfseries} % ⟨Theorem head font⟩ {} % ⟨Punctuation after theorem head⟩ {\newline} % ⟨Space after theorem head⟩ {} % ⟨Theorem head spec (can be left empty, meaning ‘normal’ )⟩ \theoremstyle{break} \newtheorem{exo}{Exercice} \ExplSyntaxOn \bool_new:N \g_inside_exo_bool \AddToHook{env/exo/begin}{ \bool_gset_true:N \g_inside_exo_bool \AddToHookNext{para/begin}{\bool_gset_false:N \g_inside_exo_bool} } \AddToHook{env/enumerate/begin}{ \bool_if:NT \g_inside_exo_bool { \leavevmode\vspace{-\baselineskip} } } \ExplSyntaxOff \begin{document} \begin{exo} bla \end{exo} \begin{exo} \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} blabla \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} \begin{enumerate} \item a \item z \end{enumerate} Puis : \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} \begin{enumerate} \item a \item b \end{enumerate} puis \begin{enumerate}[resume] \item c \item d \end{enumerate} \end{exo} \end{document}\end{document}
cliquez ici pour masquer/afficher la révision 2
Réponse améliorée

26 Mar '23, 17:29

denis's gravatar image

denis
7.4k2510

Il suffit d'ajouter `\leavevmode\vspace{-\baselineskip}` juste après `\begin{exo}` lorsque celui-ci est immédiatement suivi d'une liste (ici `enumerate`). Pour éviter d'avoir à le faire manuellement et systématiquement, on peut procéder comme suit (le code ci-dessous tient compte des améliorations apportées suite aux divers commentaires, notamment de l'astuce de @touhami) : \documentclass[french]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage{amsmath} \usepackage{enumitem} \usepackage{amssymb} \usepackage{amsthm} \usepackage{babel} \newtheoremstyle{break} % ⟨name⟩ {} % ⟨Space above⟩ {0.5cm} % ⟨Space below⟩ {\normalfont} % ⟨Body font⟩ {} % ⟨Indent amount⟩ {\bfseries} % ⟨Theorem head font⟩ {} % ⟨Punctuation after theorem head⟩ {\newline} % ⟨Space after theorem head⟩ {} % ⟨Theorem head spec (can be left empty, meaning ‘normal’ )⟩ \theoremstyle{break} \newtheorem{exo}{Exercice} \ExplSyntaxOn \bool_new:N \l_inside_exo_bool \g_inside_exo_bool \AddToHook{env/exo/begin}{ \bool_set_true:N \l_inside_exo_bool \bool_gset_true:N \g_inside_exo_bool \AddToHookNext{para/begin}{\bool_gset_false:N \g_inside_exo_bool} } \AddToHook{env/enumerate/begin}{ \bool_if:NT \l_inside_exo_bool \g_inside_exo_bool { \leavevmode\vspace{-\baselineskip} } } \ExplSyntaxOff \begin{document} \begin{exo} bla \end{exo} \begin{exo} \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} bla blabla \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} \begin{enumerate} \item a \item z \end{enumerate} Puis : \begin{enumerate} \item a \item z \end{enumerate} \end{exo} \begin{exo} \begin{enumerate} \item a \item b \end{enumerate} puis \begin{enumerate}[resume] \item c \item d \end{enumerate} \end{exo} \end{document}
cliquez ici pour masquer/afficher la révision 1

23 Mar '23, 15:33

denis's gravatar image

denis
7.4k2510

C'est votre première visite ici ? Consultez la FAQ !

×