IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en forme Discussion :

[geometry] Utilisation de loadgeometry au sein d'un environnement


Sujet :

Mise en forme

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut [geometry] Utilisation de loadgeometry au sein d'un environnement
    Bonjour,

    J'essaye de me perfectionner en Formule mathématique et j'essaie de faire un environnement qui change la mise en page dans laquelle il est inclus.

    Le problème que je rencontre, c'est que j'observe un comportement étrange du package geometry. Comme on peut le voir dans les fichiers joints le cas OK se déroule correctement. Dans ce dernier cas, les appels à geometry se font hors de l'environnement.

    Dans le cas où geometry est appelé au sein d'un environnement (voir ecm_ko), le changement de mise en page persiste après avoir quitter l'environnement.

    Quelqu'un connaît-il la raison de ce changement de comportement de geometry ?

    ECM_OK
    Code LaTeX : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    %%%%%%%%%%%%%%%%%% ECM_OK.TEX %%%%%%%%%%%%%%%%%%
    \documentclass{article}
     
    \usepackage{geometry}
    \usepackage{lipsum}
     
    % GEOMETRY default
    \geometry{%
    	paper=a4paper,%
    	top=3cm,
    	bottom=3cm
    }
    \savegeometry{default}
     
    % GEOMETRY title
    \geometry{%
    	a4paper,%
    	headheight=0pt,%
    	vmargin=6cm,%
    	hmargin=5cm%
    }
    \savegeometry{title}
     
    % ENVIRONMENT foo
    \newenvironment{foo}{%
    }{%
    }
     
    \begin{document}
    	\loadgeometry{title}
    	\begin{foo}
    		\lipsum[1]
    		\vfill
    		\lipsum[1]
    	\end{foo}
    	\loadgeometry{default}
     
    	Start\\
    	\lipsum
    	\section{Foo}
    	\lipsum
    \end{document}

    ECM_KO
    Code LaTeX : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    %%%%%%%%%%%%%%%%%% ECM_KO.TEX %%%%%%%%%%%%%%%%%%
    \documentclass{article}
     
    \usepackage{geometry}
    \usepackage{lipsum}
     
    % GEOMETRY default
    \geometry{%
    	paper=a4paper,%
    	top=3cm,
    	bottom=3cm
    }
    \savegeometry{default}
     
    % GEOMETRY title
    \geometry{%
    	a4paper,%
    	headheight=0pt,%
    	vmargin=6cm,%
    	hmargin=5cm%
    }
    \savegeometry{title}
     
    % ENVIRONMENT foo
    \newenvironment{foo}{%
    	\loadgeometry{title}%
    }{%
    	\loadgeometry{default}%
    }
     
    \begin{document}
    	\begin{foo}
    		\lipsum[1]
    		\vfill
    		\lipsum[1]
    	\end{foo}
     
    	Start\\
    	\lipsum
    	\section{Foo}
    	\lipsum
    \end{document}
    Images attachées Images attachées

  2. #2
    Expert confirmé

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    Il faut d'abord définir la géométrie choisie pour le document et ensuite utiliser \restoregeometry dans l'environnement foo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    %%%%%%%%%%%%%%%%%% ECM_KO.TEX %%%%%%%%%%%%%%%%%%
    \documentclass{article}
     
    \usepackage{geometry}
    \usepackage{lipsum}
     
    % GEOMETRY default
    \geometry{%
    	paper=a4paper,%
    	top=3cm,
    	bottom=3cm
    }
    \savegeometry{default}
     
    % GEOMETRY title
    \geometry{%
    	a4paper,%
    	headheight=0pt,%
    	vmargin=6cm,%
    	hmargin=5cm%
    }
    \savegeometry{title}
     
    % ENVIRONMENT foo
    \newenvironment{foo}{%
    	\loadgeometry{title}%
    }{%
    	\restoregeometry%
    }
     
    \begin{document}
    \loadgeometry{default}
    	\begin{foo}
    		\lipsum[1]
    		\vfill
    		\lipsum[1]		
    	\end{foo}
     
    	Start\\
    	\lipsum
    	\section{Foo}
    	\lipsum
    	\begin{foo}
    		\lipsum[1]
    	\end{foo}
    	\lipsum
    \end{document}
    Le problème va être les sauts de page, en effet, \loadgeometry fonctionne avec \clearpageDonc à chaque changement de géométrie il va y avoir changement de page.

    Une autre possibilité est de définir un environnement comme quote
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    \documentclass{article}
    \usepackage{lipsum}
     
    \def\bar#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
    \let\endbar=\endlist
    \begin{document}
     
    	\begin{bar}{2cm}{2cm}
    		\lipsum[1]
    	\end{bar}
    	\lipsum
    	\section{Foo}
    	\lipsum
    	\begin{bar}{2cm}{2cm}
    		\lipsum[1]
    	\end{bar}
    	\lipsum
    \end{document}

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Je pense que j'utiliserais la solution n°1 car les saut de page ne me pose pas de problème. La solution n°2 utilise une définition de macro TeX non ? En tout cas elle me paraît bien sympathique pour d'autres cas utilisations.

    Sinon, pour la solution n°1, je ne comprends pas très bien comment fonctionne \restoregeometry. En effet, en me référant à la documentation, j'avais l'impression qu'elle ne faisait "qu'annuler" le dernier appel à la commande \newgeometry. Or, comment fait-elle donc pour distinguer les différentes geometry chargée ? Elle annule juste le dernier appel à \loadgeometry ? Ou elle reprend la dernière geometry chargée hors de l'environnement courant ?

    J'espère n'être pas trop enquiquinant avec mes questions, mais je ne saisi pas vraiment comment fonctionnent intrinsèquement les fonctions du package geometry, et la raison pour laquelle le premier appel à \loadgeometry fonctionnait mais pas le second dans l'environnement foo.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Je me reprends le sujet, bien qu'il date un peu. J'ai toujours du mal à obtenir le résultat escompté.

    En reprenant la solution de Nikopol, je remarque un problème au niveau de la seconde page. Comme on le voit sur la pièce jointe, la page numéro 2 a un problème de hauteur concernant la portion de texte. Elle semble être la même que la portion de texte de la première page.

    Je ne comprends vraiment pas comment ce problème peut survenir. En effet, la hauteur de la portion d'en-tête est bien celle attendue. Quelqu'un aurait-il une idée d'où ça peut venir ?
    Images attachées Images attachées

  5. #5
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Bonsoir,

    Citation Envoyé par Vic42
    En reprenant la solution de Nikopol, je remarque un problème au niveau de la seconde page. Comme on le voit sur la pièce jointe, la page numéro 2 a un problème de hauteur concernant la portion de texte. Elle semble être la même que la portion de texte de la première page.

    Je ne comprends vraiment pas comment ce problème peut survenir. En effet, la hauteur de la portion d'en-tête est bien celle attendue. Quelqu'un aurait-il une idée d'où ça peut venir ?
    S'il n'y a pas de problème ou est le problème ?
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Eh bien si il y a un problème, mais j'ai mal du le formuler.

    Le but de l'ECM est de réaliser un fichier dont la première page, qu'on peut appeler la page de titre[1], ait une mise en page différente de celle des page suivantes. Pour l'expérience, les marges horizontales et verticales de la page de garde ont été volontairement exagérées.

    La solution de Nikopol se comporte pour chacune des pages de la manière résumée par le tableau ci-dessous. Pour les pages différentes de la page deux, il n'y a effectivement pas de problème. Le problème apparaît à la page 2 où la zone de texte est réduite, d'une taille équivalente à celle de la page de titre. En revanche, et c'est la partie sans problème : l'en-tête est bien de la taille désiré.

    Numéro de page Hauteur de l'en-tête Hauteur de la zone de texte Comportement
    1 étroite étroite attendu
    2 étroite normale inattendu
    3+ normale normale attendu


    [1] Plus tard cette page sera amenée à être une page de titre, dans un document plus global.

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/05/2015, 11h25
  2. Réponses: 2
    Dernier message: 17/01/2013, 17h02
  3. Utiliser deux SGBD au sein d'une même application
    Par franck2SK dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 10/11/2012, 21h24
  4. utiliser une webcam au sein de mon application
    Par crjo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/01/2007, 18h42
  5. Utilisation de librairies .net c++ au sein de python
    Par petitmatin dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 15/02/2006, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo