[Résolu] Enumerate et subsection

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Enumerate et subsection

Messagepar EricK » Vendredi 05 Mars 2010, 20:39

Si j'utilise le code suivant
Code: Tout sélectionner
\subsection{}
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}

il y a un retour à la ligne pour commencer l'énumération et j'ai donc juste le numéro de la sous-section sur la première ligne.

Comment faire pour que l'énumération commence juste après le numéro de la sous-section ?

Merci d'avance.
Dernière édition par EricK le Lundi 29 Mars 2010, 20:17, édité 1 fois.
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Enumerate et subsection

Messagepar Minibob59 » Vendredi 05 Mars 2010, 23:21

Bonjour !

En principe, les commandes \section{}, \subsection{}, ... permettent de définir un plan de document, et non une numérotation.

Si tu veux obtenir quelque chose de la forme :
    1. Premier point
    2. Deuxième point


Utilise le code suivant :
Code: Tout sélectionner
\begin{enumerate}
\item
\begin{enumerate}
\item Premier point
\item Deuxième point
\end{enumerate}
\end{enumerate}
Minibob59 !
Minibob59
Kilo-utilisateur
 
Messages: 234
Inscription: Dimanche 24 Janvier 2010, 11:14
Localisation: Palaiseau
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Enumerate et subsection

Messagepar EricK » Samedi 06 Mars 2010, 00:58

Merci pour la tentative d'aide mais ça ne répond pas à ma question.

J'ai beaucoup de sections et sous-sections (et même une tripotée de chapitres) et elles servent de plan de document mais certaines contiennent une énumération et j'aimerais que cette énumération puisse commencer sur la première ligne de la sous-section.

Je précise que j'utilise la classe amsbook (ça peut avoir son importance pour la configuration des sous-sections) et je ne veux pas en changer.
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar rebouxo » Samedi 06 Mars 2010, 10:22

A part redéfinir la commande \section, je ne vois pas.
Idée (je n'ai pas le temps de tester réellement).

Créer deux commandes section : une avec titre et une sans titre (via titlesec c'est possible...)
Puis redéfinir la commande \section via un if qui teste si il y a ou pas un argument dans la commande section (je pense que là il y a des subtilités TeXniques de développement, Christian si tu passe par là...) et qui envoie la bonne commande section.

La première partie est facile. La deuxième il faudra un TeXpert.

Olivier
J'aime bien délégué.
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6730
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar EricK » Samedi 06 Mars 2010, 10:26

rebouxo a écrit:A part redéfinir la commande \section, je ne vois pas.
Idée (je n'ai pas le temps de tester réellement).

Créer deux commandes section : une avec titre et une sans titre (via titlesec c'est possible...)
Puis redéfinir la commande \section via un if qui teste si il y a ou pas un argument dans la commande section (je pense que là il y a des subtilités TeXniques de développement, Christian si tu passe par là...) et qui envoie la bonne commande section.

La première partie est facile. La deuxième il faudra un TeXpert.

Olivier
J'aime bien délégué.


J'aime aussi :mrgreen:
Je suis bien conscient qu'il va falloir tripatouiller la commande \subsection (je ne veux pas modifier \section, je n'ai des énumérations que dans des sous-sections, jamais au niveau d'une section) ou l'environnement enumerate, ma question est comment ...

Si un grand gourou du Latex passe dans le coin et daigne se pencher sur mon petit problème, merci d'avance. :worthy: :worthy: :worthy:
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar rebouxo » Samedi 06 Mars 2010, 10:46

:lol:
Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6730
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar Altermundus » Samedi 06 Mars 2010, 12:22

rebouxo a écrit::lol:
Olivier


Cela me parait être une idée un peu farfelue. Cela devient tout sauf une sous-section.
Il faut tenir compte du sommaire et des coupures. Donc à priori pas d'apparition
dans le sommaire.

Si vraiment vous tenez à cette drôle d'idée, autant faire une macro qui fait ce que vous voulez,
en tenant compte des compteurs (il faut les mettre à jour)
et également du style car il y a un style pour les sous-sections.
Là il faut mettre le nez dans amsbook.cls car c'est une classe à part qui je crois, n'est pas
basée sur les classiques (à vérifier).

Je peux proposer simplement ceci, sans macro:

Code: Tout sélectionner
\subsection{}
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}


\refstepcounter{subsection}
\noindent{\large\textbf\thesubsection}
 \begin{minipage}[t]{6cm}
    \begin{enumerate}
     \item Mon premier item.
     \item Mon second item.
   \end{enumerate}
 \end{minipage}
 
 
\subsection{}
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate} 


J'ai mis n'importe quoi pour le style de la sous-section cela dépend de la classe et de ce que vous avez fait


Il me semble plus sage de mettre une sous-section "normale" qui renvoie à une énumération placée en dessous.
Code: Tout sélectionner
\subsection{Étude des deux catégories de vers de terre}
\begin{enumerate}
  \item Les longs,
  \item Les cours.
\end{enumerate}

J'avoue que j'aimerais voir un exemple concret de ce genre de choses avec des vrais titres.


Alain
Altermundus
Giga-utilisateur
 
Messages: 557
Inscription: Lundi 28 Mai 2007, 09:31
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar fp » Samedi 06 Mars 2010, 12:33

Une idée (mais cela se fait peut-être plus facilement avec titlesec, j'ai la flemme de chercher) :

Code: Tout sélectionner
\newcommand{\subsectionvide}{%
\@startsection{subsection}{2}{\z@}{3.25ex\@plus1ex\@minus.2ex}%
{-1.5ex\@plus-.2ex}{\normalfont\large\bfseries}{}%
\@nobreaktrue\parskip-\baselineskip}
\newcommand{\remiseazero}{\@nobreakfalse\parskip0pt plus1pt}
\makeatother

\subsectionvide
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}
\remiseazero

\subsectionvide
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}

bla

\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}
\remiseazero

\subsectionvide
\remiseazero
\begin{description}
  \item[Assez long]
  \begin{enumerate}
    \item bla bla
  \end{enumerate}
\end{description}


FP
fp
Giga-utilisateur
 
Messages: 752
Inscription: Mercredi 24 Février 2010, 08:04
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar EricK » Samedi 06 Mars 2010, 16:24

Merci je vais tester tout cela ce week-end. Je vous dirai si cela me convient.
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar pg » Jeudi 11 Mars 2010, 22:11

Il y a moyen d'automatiser cela sans changer la façon de taper le corps du document, en redirigeant \subsection sur \list lorsque son argument est vide et qu'il est suivi d'un \begin :

subsection_enumerate.png
subsection_enumerate.png (3.43 Kio) Vu 911 fois


Code: Tout sélectionner
\documentclass{amsbook}

\let\oldenumerate\enumerate
\let\endoldenumerate\endenumerate
\let\oldsubsection\subsection
\newif\ifsubsectionenumerate
\makeatletter
\def\subsection#1{%
  \def\subsectionarg{#1}
  \@ifnextchar{\begin}{\subsection@begin}{\subsection@nobegin}}
\def\subsection@begin{%
  \ifx\subsectionarg\empty
    \refstepcounter{subsection}%
    \subsectionenumeratetrue
    \renewenvironment{enumerate}
      {\ifsubsectionenumerate
       \list{}{}\item[\bfseries\thesubsection.]\fi
       \oldenumerate}
      {\endoldenumerate
       \ifsubsectionenumerate\endlist\fi}
  \else
    \subsectionenumeratefalse
    \oldsubsection{\subsectionarg}%
  \fi
}
\def\subsection@nobegin{%
  \subsectionenumeratefalse
  \oldsubsection{\subsectionarg}%
}
\makeatother

\begin{document}

\section{Essais}

Texte

\subsection{}
\begin{enumerate}
  \item Mon premier item.\thesubsection
  \item Mon second item.\thesubsection
\end{enumerate}

\subsection{} Texte
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}

\subsection{Titre} Texte
\begin{enumerate}
  \item Mon premier item.
  \item Mon second item.
\end{enumerate}

\subsection{Titre}
\begin{enumerate}
  \item Mon premier item.\thesubsection
  \item Mon second item.\thesubsection
\end{enumerate}

\subsection{Titre} Texte

\subsection{} Texte

\end{document}


Ce code est juste un proof of concept, il comporte un certain nombre de défauts qui peuvent être gênants ou pas selon les conditions d'utilisation :
  • si autre chose qu'un {enumerate} est utilisé juste après un \subsection{} (par exemple \subsection{}\begin{itemize}), les {enumerate} suivants seront changés ;
  • si le numéro de section est modifié (par exemple, au lieu de 0.1., on décide d'utiliser a.), l'alignement risque de ne pas être correct pour un \subsection{}\begin{enumerate} (d'ailleurs, si on regarde bien, le numéro d'une \subsection suivie d'un enumerate n'est pas exactement aligné avec le numéro d'une \subsection normale, mais le décalage est très léger)
  • l'argument optionnel des \subsection n'est pas pris en compte.
Tous ces défauts sont corrigeables au besoin.
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Enumerate et subsection

Messagepar EricK » Jeudi 11 Mars 2010, 22:50

Je te remercie. Je suis en train d'envisager de simplement déclarer un environnement exercice avec \newtheoremstyle (puisqu'en fait, j'ai utilisé subsection pour faire de la numérotation d'exercices sans avoir à me fatiguer ... je sais, ce n'est pas bien du tout ... d'ailleurs, si je ne l'avais pas fait, je ne serai pas en train de vous demander comment me sortir de ce bourbier ...)
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar EricK » Lundi 29 Mars 2010, 20:17

J'ai résolu mon problème en remplaçant les subsection par des environnements d'exercice créés avec un newtheoremstyle (seulement en gros 2000 modifications :mrgreen:).

Code: Tout sélectionner
\newtheoremstyle{Exo}{\topsep}{\topsep}{}{}{}{\textbf{.}}{.5em}{\thmnumber{{\bfseries #2}}}
\theoremstyle{Exo}
\newtheorem{Exo}{}[section]
\newtheorem{Sol}{}[section]
EricK
Téra-utilisateur
 
Messages: 1481
Inscription: Jeudi 02 Novembre 2006, 22:38
Statut actuel: Actif et salarié | Enseignant

Re: Enumerate et subsection

Messagepar fp » Lundi 29 Mars 2010, 20:21

EricK a écrit:J'ai résolu mon problème en remplaçant les subsection par des environnements d'exercice créés avec un newtheoremstyle (seulement en gros 2000 modifications :mrgreen:).

Code: Tout sélectionner
\newtheoremstyle{Exo}{\topsep}{\topsep}{}{}{}{\textbf{.}}{.5em}{\thmnumber{{\bfseries #2}}}
\theoremstyle{Exo}
\newtheorem{Exo}{}[section]
\newtheorem{Sol}{}[section]


Ça semble effectivement plus sage...

FP.
fp
Giga-utilisateur
 
Messages: 752
Inscription: Mercredi 24 Février 2010, 08:04
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 14 invités