Espace vertical

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.
Valvino
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 921
Inscription : mercredi 21 mars 2007, 10:59

Espace vertical

Message par Valvino »

Bonjour,

Je souhaite obtenir un espace vertical d'une longueur d'un saut de ligne usuel via \vspace{\baselineskip} mais le problème c'est que si j'en place deux à la suite ca me fait deux sauts de ligne. Or je définis des environnements qui commencent et finissent par \vspace{\baselineskip}, parfois il y en a deux à la suite et ca me fait un saut trop important.

Y a-t-il une commande qui permet de sauter une hauteur vertical fixée en tenant compte des autres espaces verticaux adjacents?

Merci d'avance!

D.GH
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 398
Inscription : lundi 02 juillet 2007, 16:15

Re: Espace vertical

Message par D.GH »

Valvino a écrit :Bonjour,

Je souhaite obtenir un espace vertical d'une longueur d'un saut de ligne usuel via \vspace{\baselineskip} mais le problème c'est que si j'en place deux à la suite ca me fait deux sauts de ligne. Or je définis des environnements qui commencent et finissent par \vspace{\baselineskip}, parfois il y en a deux à la suite et ca me fait un saut trop important.

Y a-t-il une commande qui permet de sauter une hauteur vertical fixée en tenant compte des autres espaces verticaux adjacents?
Merci d'avance!
Bonsoir,

soit

Code : Tout sélectionner

\newlength{\Malongueur}
\setlength{\Malongueur}{2\baselineskip}
\vspace*{\the\Malongueur}
soit

Code : Tout sélectionner

....................  \\[2\baselineskip]
...............................
D.GH

Valvino
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 921
Inscription : mercredi 21 mars 2007, 10:59

Re: Espace vertical

Message par Valvino »

Salut,

Je viens de tester tes solutions, mais ce n'est pas du tout ce que je veux. Je vais essayer d'être plus clair via un ECM.

J'ai défini deux nouveaux environnements qui sont "prop" et "demo" (je ne veux pas utiliser les trucs déjà fait pour diverses raisons...).

Code : Tout sélectionner

\documentclass{article}

\usepackage[frenchb]{babel} 
\usepackage[latin1]{inputenc} 

\newenvironment{prop}{ \vspace{\baselineskip} \noindent \textbf{Proposition} \\ }{ \vspace{\baselineskip} }
\newenvironment{demo}{ \vspace{\baselineskip} \noindent \emph{Démonstration} \\ }{ \vspace{\baselineskip} }

\begin{document}

\noindent

Je fais un essai.

\begin{prop}
blabla
\end{prop}

Jusqu'ici tout va bien il y a un saut de ligne. Mais

\begin{prop}
blabla
\end{prop}

\begin{demo}
Là il y en a deux fois trop!
\end{demo}

C'est un problème...

\end{document}
En fait le vspace de "prop" et celui de "demo" s'additionne si j'utilise les deux à la suite, alors que je voudrais que LaTeX ne prenne en compte que l'un des deux.

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

Re: Espace vertical

Message par pg »

Utilises-donc un package fait pour les théorèmes qui gère automatiquement de genre de problèmes, comme amsthm :

Code : Tout sélectionner

\documentclass{article}

\usepackage[frenchb]{babel}
\usepackage[latin1]{inputenc}

\newenvironment{prop}{ \vspace{\baselineskip} \noindent \textbf{Proposition} \\ }{ \vspace{\baselineskip} }
\newenvironment{demo}{ \vspace{\baselineskip} \noindent \emph{Démonstration} \\ }{ \vspace{\baselineskip} }

\usepackage{amsthm}

\newtheoremstyle{plain}{\baselineskip}{\baselineskip}%
  {}%         Body font
  {}%         Indent amount (empty = no indent, \parindent = para indent)
  {\bfseries}% Thm head font   
  {}%        Punctuation after thm head
  {\newline}%     Space after thm head (\newline = linebreak)
  {\thmname{#1}\thmnumber{~#2}\thmnote{ #3}}%         Thm head spec

\theoremstyle{plain}
\newtheorem*{proposition}{Proposition}

\newtheoremstyle{remark}{\baselineskip}{\baselineskip}%
  {}%         Body font
  {}%         Indent amount (empty = no indent, \parindent = para indent)
  {\itshape}% Thm head font   
  {}%        Punctuation after thm head
  {\newline}%     Space after thm head (\newline = linebreak)
  {\thmname{#1}\thmnumber{~#2}\thmnote{ #3}}%         Thm head spec

\theoremstyle{remark}
\newtheorem*{demonstration}{Démonstration}

\begin{document}

\noindent

Je fais un essai.

\begin{prop}
blabla
\end{prop}

Jusqu'ici tout va bien il y a un saut de ligne. Mais

\begin{prop}
blabla
\end{prop}

\begin{demo}
Là il y en a deux fois trop!
\end{demo}

C'est un problème...

---------------------

Je fais un essai.

\begin{proposition}
blabla
\end{proposition}

Jusqu'ici tout va bien il y a un saut de ligne. Mais

\begin{proposition}
blabla
\end{proposition}

\begin{demonstration}
Là il y en a deux fois trop!
\end{demonstration}

\end{document}

D.GH
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 398
Inscription : lundi 02 juillet 2007, 16:15

Re: Espace vertical

Message par D.GH »

Bonsoir,

Pour le retour à ligne dans un environnement théorème, en plus de ce qui a été proposé par pg , voir ici viewtopic.php?p=54996#p54996

D.GH

Valvino
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 921
Inscription : mercredi 21 mars 2007, 10:59

Re: Espace vertical

Message par Valvino »

Mais c'est justement parce que je veux éviter d'utiliser les packages déjà fait pour faire des théorèmes que je fais mes propres environnements!

Merci de vos conseils mais ca ne répond pas à ma question :wink:

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

Re: Espace vertical

Message par pg »

Valvino a écrit :Mais c'est justement parce que je veux éviter d'utiliser les packages déjà fait pour faire des théorèmes que je fais mes propres environnements!
L'intérêt d'utiliser des packages déjà fait est justement de pouvoir bénéficier simplement de fonctionnalités éventuellement compliquées à gérer.

Je ne sais pas pour quelle raison tu ne veux pas de package tout fait, mais il doit être possible de regarder comment amsthm fait pour gérer les espacements et adapter le code (je n'ai pas regardé, donc je ne peux pas te dire si c'est simple ou pas).

D.GH
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 398
Inscription : lundi 02 juillet 2007, 16:15

Re: Espace vertical

Message par D.GH »

Valvino a écrit :Mais c'est justement parce que je veux éviter d'utiliser les packages déjà fait pour faire des théorèmes que je fais mes propres environnements!

Merci de vos conseils mais ca ne répond pas à ma question :wink:
Bonsoir,

Est-ce que l'ECM suivant répond à ce que vous souhaitiez ?

Code : Tout sélectionner

% http://www.cnam.fr/depts/maths/Membres/ghorbanzadeh/

\documentclass{article}
\usepackage[frenchb]{babel}
\usepackage[latin1]{inputenc}

\def\EspaceV{\vspace*{\the\baselineskip}}
\newenvironment{prop}{%
\begin{minipage}{\linewidth}\EspaceV\noindent\textbf{Proposition} \newline}{
\EspaceV
\end{minipage}}

\newenvironment{demo}{%
\begin{minipage}{\linewidth}\EspaceV \noindent\emph{D\'emonstration}\newline}{
\EspaceV
\end{minipage}}

\begin{document}

\noindent

Je fais un essai.

\begin{prop}
blabla
\end{prop}

Jusqu'ici tout va bien il y a un saut de ligne. Mais

\begin{prop}
blabla
\end{prop}

\noindent  Bonjour bonjour Bonjour bonjourBonjour bonjourBonjour bonjour \\

\begin{demo}
Là il y en a deux fois trop!
\end{demo}

C'est un problème...

\end{document}
D.GH

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

Re: Espace vertical

Message par pg »

pg a écrit :
Valvino a écrit :Mais c'est justement parce que je veux éviter d'utiliser les packages déjà fait pour faire des théorèmes que je fais mes propres environnements!
L'intérêt d'utiliser des packages déjà fait est justement de pouvoir bénéficier simplement de fonctionnalités éventuellement compliquées à gérer.

Je ne sais pas pour quelle raison tu ne veux pas de package tout fait, mais il doit être possible de regarder comment amsthm fait pour gérer les espacements et adapter le code (je n'ai pas regardé, donc je ne peux pas te dire si c'est simple ou pas).
En fait, non c'est pas compliqué. Il suffit de remplacer vspace par addvspace et tu obtiendra ce que tu veux :

Code : Tout sélectionner

\documentclass{article}

\usepackage[frenchb]{babel}
\usepackage[latin1]{inputenc}

\newenvironment{prop}{ \addvspace{\baselineskip} \noindent \textbf{Proposition} \\ }{\par\addvspace{\baselineskip}}
\newenvironment{demo}{ \addvspace{\baselineskip} \noindent \emph{Démonstration} \\ }{\par\addvspace{\baselineskip}}

\begin{document}

\noindent

Je fais un essai.

\begin{prop}
blabla
\end{prop}

Jusqu'ici tout va bien il y a un saut de ligne. Mais

\begin{prop}
blabla
\end{prop}

\begin{demo}
Là c'est aussi parfait
\end{demo}

Il n'y a pas de problème


\end{document}

Valvino
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 921
Inscription : mercredi 21 mars 2007, 10:59

Re: Espace vertical

Message par Valvino »

Nickel :D :D :D

Juste une question, à quoi sert le \par?

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

Re: Espace vertical

Message par pg »

À terminer le paragraphe en cours pour mettre l'espace après ce paragraphe.

Sinon, tu n'as pas répondu : pourquoi tu ne veux pas utiliser des packages tout fait pour tes théorèmes ? Ça te simplifierai probablement la vie.