Espacement vertical de l'environnement center

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

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.
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

[Résolu] Espacement vertical de l'environnement center

Message par GRSG »

Bonjour,

Je souhaitais savoir s'il existe des commandes qui permettent de modifier l'espacement vertical avant le \begin{center} et après le \end{center}.

Merci pour vos réponses.

Gabriel
Dernière modification par GRSG le samedi 04 février 2012, 14:54, modifié 1 fois.
rebouxo
Modérateur général
Modérateur général
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: Espacement vertical de l'environnement center

Message par rebouxo »

Je ne sais pas répondre à la question, mais on peut remplacer

Code : Tout sélectionner

\begin{center}
blalbla
\end{center}
par

Code : Tout sélectionner

{
\centering
blabla
}
Qui rajoute moins d'espace que l'environnement center.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: Espacement vertical de l'environnement center

Message par pg »

On peut reprendre la définition de \center et \endcenter de latex.ltx et remplacer la \trivlist par une \list avec les bons paramètres :

Code : Tout sélectionner

\documentclass{article}

\usepackage{lipsum}% pour du texte bidon

\makeatletter
\def\center{\list{\let\@itemlabel\@empty\def\makelabel####1{####1}}%
                 {\labelwidth=0cm\leftmargin=0cm\itemindent=0pt
                  \topsep=1cm}%                                           <--- valeur à changer
            \centering\item\relax}
\def\endcenter{\endlist}
\makeatother

\begin{document}

\lipsum[1]
\begin{center}
\lipsum[2]
\end{center}
\lipsum[3]

\end{document}
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: Espacement vertical de l'environnement center

Message par GRSG »

Bonjour,

Donc si je comprends bien, la longueur topsep agit en amont de \begin{center} et en aval de \end{center}.

Par contre, j'ai remarqué que l'espacement vertical de l'environnement {center} <<d'origine>> ne se cumule pas avec l'espace vertical des autres environnements (ce qui est pour moi un bon point de cet environnement).

Dans le code ci-dessous, les espacements ce cumulent. Est-il possible d'adapter le <<topsep>> de façon que l'espacement vertical soit indépendant de ce qui suit (ou de ce qui précède).

Code : Tout sélectionner

\documentclass{article}

\makeatletter
\def\center{\list{\let\@itemlabel\@empty\def\makelabel####1{####1}}%
                 {\labelwidth=0cm\leftmargin=0cm\itemindent=0pt
                  \topsep=0.25ex
            \centering\item\relax}
\def\endcenter{\endlist}
\makeatother


\begin{document}

Bonjour,
    
\begin{center}
Je fais une phrase assez longue pour voir si décalage il y a avec un environnement enumerate (sans enumerate)
\end{center}

pour voir pour voir pour voir

\begin{center}
Je fais une phrase assez longue pour voir si décalage il y a avec un environnement enumerate  (avec enumerate)
\end{center}

\begin{enumerate}

\item 
pour voir pour voir pour voir 
\item  
 
\end{enumerate}

\end{document}
Merci

Gabriel
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: Espacement vertical de l'environnement center

Message par pg »

Il ne se cumule pas ici non plus. Mais {enumerate} commence par un espace égal à \topsep qui est supérieur à 0.25ex donc l'espace entre les deux est égal à max(\topsep,0.25ex) = \topsep. C'est parfaitement normal.
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: Espacement vertical de l'environnement center

Message par GRSG »

Après quelques essais, effectivement, à partir d'un topsep=1.75ex, il n'y a plus d'ajout.

Est-il possible de modifier le topsep de l'environnement enumerate?

Encore merci.

Gabriel
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: Espacement vertical de l'environnement center

Message par pg »

Le package enumitem permet ça :

Code : Tout sélectionner

\documentclass{article}

\usepackage{enumitem}

\setenumerate{topsep=0cm}

\makeatletter
\def\center{\list{\let\@itemlabel\@empty\def\makelabel####1{####1}}%
                 {\labelwidth=0cm\leftmargin=0cm\itemindent=0pt
                  \topsep=0cm}
            \centering\item\relax}
\def\endcenter{\endtrivlist}
\makeatother

\begin{document}

Bonjour,
   
\begin{center}
Je fais une phrase assez longue pour voir si décalage il y a avec un environnement enumerate (sans enumerate)
\end{center}

pour voir pour voir pour voir

\begin{center}
Je fais une phrase assez longue pour voir si décalage il y a avec un environnement enumerate  (avec enumerate)
\end{center}

\begin{enumerate}

\item
pour voir pour voir pour voir
\item 

\end{enumerate}

\end{document}