Supprimer indentation avec itemize

Bonjour toutes et tous,

voici mon code :
\documentclass[a4paper,11pt]{article}

\usepackage[french]{babel}      	% Pour tous les documents (Impatient page 35)
\usepackage[T1]{fontenc}        	% Pour tous les documents (Impatient page 35)
\usepackage[utf8]{inputenc}     	% Pour la gestion des accents
\usepackage[left=1cm, right=1cm, top=1cm, bottom=2cm]{geometry} %réglage des marges  (Impatient page 35)

\AtBeginDocument{\renewcommand{\labelitemi}{\textbullet}}	% Définition des puces par défaut comme des points

\newcounter{thm}    % Compteur pour la numérotation des théorèmes

\newenvironment{thm}{\refstepcounter{thm}%			% Environnement "théorème"
    \par\textbf{\underline{Théorème \thethm}} \\}{\par}
    


\begin{document}

\begin{thm} 
	\begin{itemize}
	\item Un nombre entier est divisible par $2$ lorsque son chiffre des unités est $0 \, ; \,  2 \, ; \, 4 \, ; \, 6 \, ; \, 8$.
	\item Un nombre entier est divisible par $5$ lorsque son chiffre des unités est $0  \, ; \, 5$.
	\end{itemize}
\end{thm}

\end{document}

Avec ce code, j'obtiens l'image 3 alors que je voudrais l'image 4.

Comment supprimer cet énorme saut de ligne entre "théorème 1" et la phrase du-dessous ?

Aussi, autre question : comment supprimer l'indentation des puces (j'ai essayé avec "\noindent \item Un nombre entier ..." mais j'ai une erreur de compilation) pour que la puce "bullet" ne soit pas alignée avec "Théorème 1" mais sur la marge de gauche.

Merci par avance pour votre aide.

michaël.100020

Réponses

  • Question 2:
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[french]{babel}
    \usepackage{enumitem}
    
    \begin{document}
    
    \newcounter{thm}
    \newenvironment{thm}{\refstepcounter{thm}%
        \par\textbf{\underline{Théorème \thethm}} \\}{\par}
    
    \begin{thm} 
    \begin{itemize}[label=\textbullet, before*={\mbox{}\vspace{-\baselineskip}}]
    \item aaa
    \item bbb
    \end{itemize}
    \end{thm}
    
    \end{document}
    
  • Salut Saturne,

    merci, une nouvelle fois, pour ton aide.

    Ce que tu me proposes me permet bien de virer le saut de ligne. En revanche, j'ai toujours l'indentation avant les puces (bullet) que je ne souhaite pas.

    J'ai essayé avec "\noindent" mais, suivant où il est placé, ça ne fait rien (avant \begin{itemize}) ou ça ne compile pas (dans l'environnement itemize).

    Bonne journée.

    michaël.100036
  • Ah ok, essaye l'option leftmargin.
  • Ça marche, merci encore.
  • Il faut quand même faire attention :
    \newenvironment{thm}{\refstepcounter{thm}%
        \par\textbf{\underline{Théorème \thethm}} \\}{\par}
    
    Je ne parle plus de \underline qui est moche, mais :

    1) Le saut de ligne dont Michaël se plaint, c'est le \\ qui le crée ! Le compenser avec un \mbox{}\vspace{-\baselineskip} derrière, c'est un peu douteux.

    2) Qu'est-ce qui va se passer si la ligne contenant \\ est la dernière qui rentre dans une page ? Ça va couper juste après le titre...

    Voici une solution qui ne présente pas ce problème (décommenter le chargement de geometry et jouer avec paperheight pour tester). Elle permet également de mettre un \label au bon endroit (argument optionnel de l'environnement).

    P.S. : je rajoute \usepackage{lmodern} même si ce n'est pas tout à fait minimal. Avec \usepackage[T1]{fontenc} qui est nécessaire pour bien écrire en français, la police par défaut est bitmap, mais ce n'est pas le cas si l'on met \usepackage{lmodern} (police vectorielle). C'est alors un peu plus agréable pour travailler et les captures d'écran sont plus jolies.
    \documentclass{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[french]{babel}
    %\usepackage[paperheight=2.1cm]{geometry} % pour vérifier les coupures de pages
    \usepackage{enumitem}
    \usepackage{etoolbox}
    
    \makeatletter
    \newcounter{thm}
    \newenvironment{thm}[1][]
      {%
        \refstepcounter{thm}%
        \par\addvspace{1.2ex}% le pourcent est inutile ici car mode vertical
        \leavevmode        % ou \noindent, etc.
        \ifstrempty{#1}{}{\label{#1}}%
        {\normalfont\normalsize\bfseries Théorème~\thethm\par\nobreak\vskip 0.1ex}%
        % Décommenter pour supprimer l'indentation du paragraphe suivant
        % \let\if@afterindent\iffalse
        \@afterheading
      }
      {\par}
    \makeatother
    
    \begin{document}
    
    J'aime bien le théorème~\ref{th-michael}.
    
    \begin{thm}
    \begin{itemize}[label=\textbullet, labelindent=0pt, leftmargin=*]
    \item aaa
    \item bbb
    \end{itemize}
    \end{thm}
    
    \begin{thm}[th-michael]
    \begin{itemize}[label=\textbullet, labelindent=0pt, leftmargin=*]
    \item ccc
    \item ddd
    \end{itemize}
    \end{thm}
    
    \end{document}
    

    Edit : il vaut mieux mettre le \par suivant \thethm à l'intérieur du groupe où il y a le changement de police, car la valeur de \baselineskip est prise en compte au moment du \par. Dans le groupe, on sait qu'elle correspond à la police définie par \normalfont\normalsize\bfseries, c'est donc déterministe. En revanche, hors du groupe, on ne sait pas (cela dépend de ce qu'il y avait avant l'environnement).

    Edit 2 : idem pour le \vskip 0.1ex (NB : pas besoin de \relax car ce qui suit est l'accolade fermante ; si l'on n'est pas sûr, mettre \vskip 0.1ex\relax).

    Edit 3 : pour les théorèmes dont le contenu commence par un paragraphe « normal » et non par un environnement de liste, si \parindent est non nul, ce paragraphe va être indenté comme dans « Théorème 3 » ci-dessous. Si l'on souhaite supprimer cette indentation de manière systématique pour obtenir la présentation de « Théorème 4 », il suffit de décommenter le \let\if@afterindent\iffalse juste avant \@afterheading (normalement, on utiliserait \@afterindentfalse pour cela, mais \usepackage[french]{babel} rend cette technique inopérante lorsque babel-french est utilisé avec l'option IndentFirst=true, ce qui est le réglage par défaut quand 'french' est la langue principale du document — au sens de babel).100052
    100070
  • Encore merci brian. Je vais tester ça également.

    J'ai bien conscience que les environnements que j'ai créés sont à revoir et que le "\\" est certainement douteux.
    Pour l'instant, j'ai retapé mon cours d'arithmétique (fait avec libreoffice) en LaTeX pour essayer de "jouer" avec plusieurs choses :
    * les titres de section/sous-section/etc. ;
    * les commandes mathématiques (un tout petit peu), notamment tout ce qui est "alignement du signe =" ;
    * les environnements ultra-basiques (juste pour avoir la même mise en forme partout et pouvoir numéroter) ;
    * les numérotations des définitions/théorèmes/etc. ;
    * les notes de bas de page (ce sera l'objet de mon prochain fil si je n'arrive pas à résoudre mon souci) ;
    * les en-têtes/pieds de page ;
    * quelques autres trucs encore que j'oublie.

    Quand je "maîtriserai" (avec beaucoup plus de guillemets) tout ça, je passerai aux étapes suivantes :
    * créer des environnements (?) pour encadrer les définitions/théorèmes/méthodes, etc. sur le même style que cet exemple que tu avais donné : théorème n°... (nom du théorème) (je n'aurai alors plus besoin de souligner ;-)))
    * choisir une police sans empâtement, un interlignage et une taille de police adaptés aux élèves dyslexiques ;
    * créer une feuille de style regroupant tout ça et notamment les "structures" pour les cours, les feuilles d'exercices, les DS, les DM, les interro, etc.

    Bref, pas mal de boulot en perspective. Mais c'est bien d'avoir toutes ces réponses, c'est vraiment motivant et rassurant à la fois.

    Bonne journée.

    michaël.
  • Pour les maths en général, je te conseille de prendre un peu de temps et de lire (ou au moins survoler pour savoir ce qu'il y a dedans) le document renvoyé par 'texdoc amsldoc'. Ce n'est pas très long et te fera gagner pas mal de temps à mon avis. Il y est notamment expliqué où placer les & dans les environnements comme align, aligned, alignat, etc. (attention : argument numérique à passer, plein de gens se trompent pour les environnements « at »). Il y a aussi des exemples de ces divers environnements dans le document renvoyé par 'texdoc short-math-guide'.

    Concernant les exemples ci-dessus, si tu utilises souvent le même type de liste avec les mêmes paramètres, il est possible de factoriser. Par exemple, au lieu de :
    \begin{itemize}[label=\textbullet, labelindent=0pt, leftmargin=*]
    \item aaa
    \item bbb
    \end{itemize}
    
    tu peux faire :
    \documentclass{article}
    \usepackage{enumitem}
    
    \newlist{maliste}{itemize}{4}
    \setlist[maliste]{label=\textbullet, labelindent=0pt, leftmargin=*}
    
    \begin{document}
    
    \begin{maliste}
    \item aaa
    \item bbb
    \end{maliste}
    
    \end{document}
    
    Le nombre 4 donne le niveau d'imbrication maximal supporté. Par exemple, comme $4\geqslant 2$, je peux faire, avec le code de mon message précédent :
    \begin{thm}
      \begin{maliste}
        \item aaa
          \begin{maliste}
            \item niveau 2, a
            \item niveau 2, b
          \end{maliste}
        \item bbb
      \end{maliste}
    \end{thm}
    
    ce qui donne la capture d'écran ci-dessous.100064
  • Merci pour ces documents, brian.
    Et aussi pour l'idée de "factoriser" comme tu dis.

    Pour l'instant, je n'utilise pas toujours la même mise en forme pour les listes (parfois je veux une indentation, parfois non). Je seul truc que j'ai mis dans le préambule, c'est
    \AtBeginDocument{\renewcommand{\labelitemi}{\textbullet}}
    
    parce que je n'aime pas les tirets par défaut de l'environnement "itemize".

    Mais quand je serai un peu plus sûr de ce que je veux vraiment, ça me sera d'une grande utilisé, c'est certain.

    Bonne journée.

    michaël.
  • J'ai fait un petit ajout (« Edit 3 ») concernant l'indentation du début du contenu théorème (deux possibilités). Bonne journée à toi aussi.
  • Ah super, la présentation du théorème 4 est bien dans ce que je souhaite pour certains théorèmes.

    Merci !
Connectez-vous ou Inscrivez-vous pour répondre.