Je travaille sur un document aux dimensions établies par l'extension geometry, de Hideo Umeki.

J'y utilise un pied de page personnalisé par l'extension fancyhdr de Piet van Oostrum.

Dans ce long document est cité in extenso un bref texte. Pour mettre en valeur celui-ci j'ai modifié, grâce à la merveilleuse commande \newgeometry, l'empagement d'une seule page. Je n'ai influé que sur le paramètre hdivide pour réduire la largeur du texte.

Malheureusement, le numéro de cette page ne reste pas en place, alors que je l'aurais souhaité ; au contraire, il tend à se rapprocher du bord de la page, pour une raison qui m'échappe totalement.

Malgré diverses tentatives, je ne réussis pas à contrôler sa position. Comment faire pour qu'il soit à la même place que sur les autres pages du document ?

Voici un ECM :

Ouvrir dans l'éditeur
\documentclass[12pt, twoside, twocolumn, a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[light, largesmallcaps, oldstyle]{kpfonts}
\begingroup
\fontfamily{OrnementsADF}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont
\xdef\foo{\the\fontdimen6\font}\xdef\bar{\the\dimexpr1em\relax}% Astuce trouvée grâce à texnique.fr !
\endgroup
\normalfont
\xdef\Foo{\the\fontdimen6\font}\xdef\Bar{\the\dimexpr1em\relax}%
\usepackage{microtype}
\usepackage{adforn}
\usepackage[twoside
            ,a4paper
        ,includeheadfoot
            ,layoutsize={190mm,220mm}
            ,layoutoffset={10mm,10mm}
        ,hdivide={15mm,15cm, }
        ,vdivide={18mm,19cm, }
        ,footskip={1cm}
            ,marginparwidth=\foo
            ,marginparsep=0.2\dimexpr\bar\relax
            ,bindingoffset=1cm
            ,nohead
            ,includeall
%           ,showframe
            ,showcrop
            ]{geometry}
\usepackage{fancyhdr}
\fancyhf{}  
\fancyfoot[LE,RO]
{\thepage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\usepackage{lastpage}
\usepackage{lipsum}
\usepackage[french]{babel}
\begin{document}
\lipsum[1-3]
\newgeometry{twoside
        ,onecolumn
            ,a4paper
        ,includeheadfoot
            ,layoutsize={190mm,220mm}
            ,layoutoffset={10mm,10mm}
        ,hdivide={,100mm, 40mm}
        ,vdivide={18mm,19cm, }
        ,footskip={1cm}
            ,marginparwidth=\foo
            ,marginparsep=0.2\dimexpr\bar\relax
            ,bindingoffset=1cm
            ,nohead
            ,includeall
%           ,showframe
            ,showcrop}
\lipsum[4]
\restoregeometry
\lipsum[5-7]
\end{document}

Posée 17 Avr '16, 22:32

Pathe's gravatar image

Pathe ♦♦
7.5k29197245
Taux d'acceptation : 55%

Modifiée 17 Avr '16, 22:34

la solution est d'ajouter \fancyhfoffset[lh]{0pt} après la commande \newgeometry{...} ce qui remis les calcules pour fancyhdr

(17 Avr '16, 23:13) touhami touhami's gravatar image

Modifier les marges pour un « bref » texte n'est pas la solution et elle est dangereuse, vous l'avez constaté.

Il est (de loin) préférable de modifier les ressorts \leftskip et \rightskip ou bien d'opter pour une boite verticale ou une minipage centrée, voire un tableau avec le spécificateur p (ce qui est une boite verticale en fait), mais ne modifiez par les marges pour si peu.

Au fait, comment fait-on pour se désinscrire et supprimer son compte de ce site ? J'ai cherché, mais je n'ai rien trouvé...

(18 Avr '16, 01:19) unbonpetit ♦♦ unbonpetit's gravatar image

@Pathe À mon avis il faut mettre à jour la question, ici il me semble qu'il s'agit de définir un nouvel environnement quote.

(18 Avr '16, 22:19) touhami touhami's gravatar image

Comme je l'ai dit, je propose tout simplement de modifier \leftskip et \rightskip, même si vous semblez résolu à modifier la géométrie et subir les conséquences de cette manœuvre risquée.

Ouvrir dans l'éditeur
\documentclass[12pt, twoside, twocolumn, a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[light, largesmallcaps, oldstyle]{kpfonts}
\begingroup
\fontfamily{OrnementsADF}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont
\xdef\foo{\the\fontdimen6\font}\xdef\bar{\the\dimexpr1em\relax}% Astuce trouvée grâce à texnique.fr !
\endgroup
\usepackage{microtype}
\usepackage{adforn}
\usepackage[twoside
            ,a4paper
        ,includeheadfoot
            ,layoutsize={190mm,220mm}
            ,layoutoffset={10mm,10mm}
        ,hdivide={15mm,15cm, }
        ,vdivide={18mm,19cm, }
        ,footskip={1cm}
            ,marginparwidth=\bar
            ,marginparsep=0.2\dimexpr\bar\relax
            ,bindingoffset=1cm
            ,nohead
            ,includeall
%           ,showframe
            ,showcrop
            ]{geometry}
\usepackage{fancyhdr}
\fancyhf{}  
\fancyfoot[LE,RO]
{\thepage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\usepackage{lastpage}
\usepackage{lipsum}
\usepackage[french]{babel}
\begin{document}
\lipsum[1-3]
\newpage
\begingroup
    \onecolumn
    \leftskip=0.25\linewidth
    \rightskip=\leftskip
    \lipsum[4]
    \newpage
\endgroup
\twocolumn
\lipsum[5-7]
\end{document}
Lien permanent

Publiée 18 Avr '16, 11:55

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

Modifiée 18 Avr '16, 18:30

Ce n'est pas de l'entêtement : je n'avais pas vu votre commentaire à la question, voilà tout.

Oui, la modification de l'empagement est risquée, je l'ai constaté à mes dépens ! Votre solution fonctionne bien. Je manque de méthode : il va falloir que je comprenne les commandes \begingroup et \endgroup.

Quant à votre désinscription : elle me désolerait.

Et ce n'est pas de la mauvaise volonté mais, la question n'ayant pas encore pas été posée, je n'ai pas la réponse. J'ai transmis @denis.

(18 Avr '16, 14:22) Pathe ♦♦ Pathe's gravatar image

\begingroup et \endgroup rendent locales les modifications des paramètres comme \leftskip et \rightskip : ces deux paramètres retrouvent leurs valeurs d'origine après le \endgroup.

Essayez de supprimer \begingroup et \endgroup et voyez l'effet que cela a sur le reste du texte.

(18 Avr '16, 18:32) unbonpetit ♦♦ unbonpetit's gravatar image

Les \newpage sont inutiles ici.

(18 Avr '16, 22:12) touhami touhami's gravatar image

Avec l'extension fancyhdr, la largeur de la zone (entête ou bas) de page est égale à \headwidth qui est par défaut égale à \textwidth.

L'extension définit une commande pour permettre à l'utilisateur de personnaliser la largeur d'entête (ou bas) de page et sa position \fancyhfoffset[position]{dim}, où « position » peut être LO,LE, RO,RE, l, r, f, h et « dim » est une longueur (1cm, 0mm...).

\fancyfootoffset[position]{dim} ou \fancyheadoffset[position]{dim} sont donc analogues.

La solution est d'utiliser \edef\mtmarg{\the\oddsidemargin} avant \newgeometry{...} pour sauvegarder la valeur de marge puis \fancyhfoffset{\dimexpr\oddsidemargin-\mtmarg\relax} après la commande \newgeometry{...}... sans oublier \fancyhfoffset{0pt} après la commande \restoregeometry.

Ouvrir dans l'éditeur
\documentclass[12pt, twoside, twocolumn, a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[light, largesmallcaps, oldstyle]{kpfonts}
\begingroup
\fontfamily{OrnementsADF}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont
\xdef\foo{\the\fontdimen6\font}\xdef\bar{\the\dimexpr1em\relax}% Astuce trouvée grâce à texnique.fr !
\endgroup
\normalfont
\xdef\Foo{\the\fontdimen6\font}\xdef\Bar{\the\dimexpr1em\relax}%
\usepackage{microtype}
\usepackage{adforn}
\usepackage[twoside
            ,a4paper
        ,includeheadfoot
            ,layoutsize={190mm,220mm}
            ,layoutoffset={10mm,10mm}
        ,hdivide={15mm,15cm, }
        ,vdivide={18mm,19cm, }
        ,footskip={1cm}
            ,marginparwidth=\foo
            ,marginparsep=0.2\dimexpr\bar\relax
            ,bindingoffset=1cm
            ,nohead
            ,includeall
%           ,showframe
            ,showcrop
            ]{geometry}
\usepackage{fancyhdr}
\fancyhf{}  
\fancyfoot[LE,RO]
{\thepage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\usepackage{lastpage}
\usepackage{lipsum}
\usepackage[french]{babel}
\begin{document}
\lipsum[1-7]
\edef\mtmarg{\the\oddsidemargin}
\newgeometry{twoside
        ,onecolumn
            ,a4paper
        ,includeheadfoot
            ,layoutsize={190mm,220mm}
            ,layoutoffset={10mm,10mm}
        ,hdivide={,100mm, 40mm}
        ,vdivide={18mm,19cm, }
        ,footskip={1cm}
            ,marginparwidth=\foo
            ,marginparsep=0.2\dimexpr\bar\relax
            ,bindingoffset=1cm
            ,nohead
            ,includeall
%           ,showframe
            ,showcrop}
            \fancyhfoffset{\dimexpr\oddsidemargin-\mtmarg\relax}%
\lipsum[8]
\restoregeometry
\fancyhfoffset{0pt}%
\lipsum[9-11]
\end{document}
Lien permanent

Publiée 17 Avr '16, 23:32

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 18 Avr '16, 09:42

Pathe's gravatar image

Pathe ♦♦
7.5k29197245

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.