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

  1. #1
    Membre à l'essai
    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
    Points : 17
    Points
    17
    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 éminent sénior

    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 : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    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 à l'essai
    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
    Points : 17
    Points
    17
    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 à l'essai
    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
    Points : 17
    Points
    17
    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 : 56
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    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 à l'essai
    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
    Points : 17
    Points
    17
    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.

  7. #7
    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 : 56
    Localisation : France

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

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

    Je n'en suis pas spécialement surpris. L'extension geometry n'est, à priori, pas conçue pour être utilisée dans des environnements.

    Je ne vois d'ailleurs pas la raison nécessitant l'utilisation de cette extension dans un environnement pour faire une page de titre (si tel est bien l'intention).
    D'ailleurs qu'appelez vous
    Citation Envoyé par Vic42
    page de titre, dans un document plus global
    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.

  8. #8
    Expert éminent sénior

    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 : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    J'avoue ne plus rien comprendre à la demande. Je viens de vérifier le pdf fourni : La taille des marges hautes est exactement la même sur la page 3 et la page 2.
    Si c'est pour faire une page de titre, il y a l'environnement titlepage qui est fait pour.
    Le mieux serait d'expliquer exactement ce que tu veux faire et fournir un ECM (avec la mise en page de la page de titre par exemple).

  9. #9
    Membre à l'essai
    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
    Points : 17
    Points
    17
    Par défaut
    Bon, ma tentative de gagner en clarté par des explications succinctes n'a vraiment pas porté ses fruit. Après avoir expliquer plus en profondeur le contexte, je vais essayer de répondre en détails à chacune de vos question, mais si quelque chose n'est pas bien formulé, n'hésitez pas à insister.

    Mon but est de gagner du temps (, c'est mal barré pour l'instant) et de la clarté ( !) dans mon code en séparant la mise en forme du fond de différents rapports. Aussi, je souhaite décrire la mise en forme souhaité en créant des commandes et des environnements d'une part, puis appeler ces derniers en fournissant les éléments correspondants aux données par la suite.

    En commençant sur ma lancé, j'ai donc commencé par la première page, la page de titre. Celle-ci doit avoir des marges différentes du reste du document.

    Citation Envoyé par Winnt
    Je n'en suis pas spécialement surpris. L'extension geometry n'est, à priori, pas conçue pour être utilisée dans des environnements.
    J'avoue avoir parcouru la documentation de geometry de façon rapide, mais je n'ai rien vu concernant la spécificité des environnements. Est-ce que vous parlez par expérience ou bien une règle général de LaTeX est la raison du problème ?

    Citation Envoyé par Winnt
    Je ne vois d'ailleurs pas la raison nécessitant l'utilisation de cette extension dans un environnement pour faire une page de titre (si tel est bien l'intention).
    D'ailleurs qu'appelez vous
    Citation Envoyé par Vic42
    page de titre, dans un document plus global
    Comme expliqué plus haut, j'essaye de faire un document dont la page de garde ait une mise en page différente du reste du document. J'essaie en quelque sorte de faire un environnement titlepage-bis qui sera utilisé dans des documents que je n'évoque pas ici afin de rester synthétique. J'ai préférer zoomer sur le détail du problème.

    Citation Envoyé par Nikopol
    Si c'est pour faire une page de titre, il y a l'environnement titlepage qui est fait pour.
    En effet, je pensais utiliser titlepage dans un second temps, mais comme ce n'est pas son utilisation qui pose problème, je ne l'ai pas mis dans mon ECM.

    Citation Envoyé par Nikopol
    Le mieux serait d'expliquer exactement ce que tu veux faire et fournir un ECM (avec la mise en page de la page de titre par exemple).
    Ce que je veux faire, c'est avoir un environnement qui soit appelé à l'instar de titlepage (mais en le remplaçant) afin de gérer différentes choses dont une mise en page.

    Les marges finales de la page de titre ne sont pas encore décider, mais elle seront changées par des valeurs numérique. Mis à part cela, je pense que tout est dans l'ECM fournit. Que manque-t-il selon toi ?

    Citation Envoyé par Nikopol
    Je viens de vérifier le pdf fourni : La taille des marges hautes est exactement la même sur la page 3 et la page 2.
    Je viens de vérifier de mon coté aussi, et je persiste à signaler un comportement anormal au niveau des marges. Voir l'image jointe, la zone encadrée en rouge. Voulais-tu dire que l'image était correcte sur le fichier pdf généré sur ton ordinateur ?

    Nom : answer.jpg
Affichages : 449
Taille : 266,2 Ko

  10. #10
    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 : 56
    Localisation : France

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

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

    Plutôt que de vouloir créer des environnements avec des effets de bord tels que celui-ci pourquoi ne pas créer une commande tout simplement.

    Exemple :
    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
    \documentclass[a4paper,10pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
    \usepackage[french]{babel}
    \usepackage{lipsum}
     
    \savegeometry{geometrieinitiale}
     
    \newgeometry{left=5cm,right=5cm,top=5cm,bottom=5cm}
    \savegeometry{geometrie2}
     
    \newcommand{\stylepagetitre}{\loadgeometry{geometrie2}}
    \newcommand{\stylepagenormale}{\loadgeometry{geometrieinitiale}}
     
    \begin{document}
    \stylepagetitre
    \lipsum[1-3]
    \stylepagenormale
    \lipsum[1-3]
    \end{document}
    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.

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