Après avoir lu la doc de fancyhdr et tous les posts qui s'approchent
de près ou de loin à la question je n'arrive toujours pas à résoudre
mon problème.
Je dois rassembler les parties d'un mémoire que je dois rendre pour la
rentrée, et j'ai décidé que chacune de ces parties correspondrait à
l'entrée \part.
J'utilise la classe article, à chaque \part correspond trois ou quatre
\section et à chaque section trois ou quatre \subsection.
J'aimerais qu'en entête apparaisse à gauche \part et à droite
\section. Ou sinon que \part apparaisse sur les pages impaires et que
\section sur les pages paires.
Apparemment, fancyhdr ne reconnaît pas les commandes qui portent sur
\part, j'ai essayé d'appliquer les recommandations proposées sur ce
newsgroup, mais sans succès, car je n'ai pas su les adapter à mon cas
(elles portaient sur \part et \chapter).
Merci par avance
Je ne connais pas la réponse à ton problème :( mais je sais qu'en-
dessous de \part, c'est \chapter et non \section. Pour ton mémoire, tu
devrais donc rassembler tes bouts en faisant de chacun un chapitre et
non une partie.
C'est pas obligatoire, mais si tu sautes de \part à \section, ça
risque va être moche dans la table des matières.
désolé de ne pouvoir t'aider plus
Laurent
> J'utilise la classe article, à chaque \part correspond trois ou quatre
> \section et à chaque section trois ou quatre \subsection.
(...)
> Apparemment, fancyhdr ne reconnaît pas les commandes qui portent sur
> \part, j'ai essayé d'appliquer les recommandations proposées sur ce
> newsgroup, mais sans succès, car je n'ai pas su les adapter à mon cas
> (elles portaient sur \part et \chapter).
Si je ne m'abuse, il n'y a pas de part (ni de chapter d'ailleurs) dans un
article. Pas étonnant que rien ne se passe... Essaye avec un report ou un
book !
JF
>> J'utilise la classe article, à chaque \part correspond trois ou quatre
>> \section et à chaque section trois ou quatre \subsection.
>
> Je ne connais pas la réponse à ton problème :( mais je sais qu'en-
> dessous de \part, c'est \chapter et non \section.
Non, dans la classe article il y a \part et ensuite \section.
--
Ulrike Fischer
Ce n'est pas un probleme de fancyhdr mais de la classe:
Il n'y a pas de \partmark dans article.cls (et report.cls et
book.cls).
Tu devrais ou redefinir \part, ou utiliser une autre classe (comme
memoir ou scrbook), ou insere la mark manuellement.
Recherche sur google.groups le mot "partmark"
--
Ulrike Fischer
Jean-François Moyen a écrit :
> Si je ne m'abuse, il n'y a pas de part (ni de chapter d'ailleurs) dans
> un article. Pas étonnant que rien ne se passe... Essaye avec un report
> ou un book !
Un petit test
\documentclass{article}
\begin{document}
\tableofcontents
\part{Partie une}
\section{Section une}
\section{Section deux}
\part{Partie deux}
\end{document}
--Jyb
moky a écrit :
>> J'utilise la classe article, ą chaque \part correspond trois ou quatre
>> \section et ą chaque section trois ou quatre \subsection.
>
> Je ne connais pas la réponse ą ton problčme :( mais je sais qu'en-
> dessous de \part, c'est \chapter et non \section.
Non pas dans la classe article.
--Jyb
Je ne pense pas que fancyhdr soit le fautif. Par défaut dans la
classe article, il y "\markboth{}{}" dans la définition du titre des
parties, autrement dit, il n'y aura pas de marques de texte renvoyées
avec la commande \part. J'ai fait le test en modifiant le style de page
headings, sans fancyhdr.
\documentclass{article}
\usepackage{lipsum}
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
{\parindent \z@ \raggedright
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >\m@ne
\Large\bfseries \partname\nobreakspace\thepart
\par\nobreak
\fi
\huge \bfseries #2%
\markboth{#2}{}\par}%
\nobreak
\vskip 3ex
\@afterheading}
\def\ps@headings{%
\let\@oddfoot\@empty
\def\@oddhead{\leftmark\hfil{\slshape\rightmark}}%
\let\@mkboth\markboth
\def\sectionmark##1{%
\markright {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\thesection\quad
\fi
##1}}}}
\makeatother
\pagestyle{headings}
\begin{document}
\part{Partie une}
\section{Section une}
\lipsum
\section{Section deux}
\lipsum
\part{Partie deux}
\section{Section trois modulo deux}
\lipsum
\end{document}
Dans la définition de \@part, il y a le "#2" ajouté dans "\markboth",
et j'ai ajouté un "\leftmark" dans "oddhead" de "\ps@headings". Ce n'est
certainement le meilleur code qui soit, mais ça prouve juste que c'est
possible. Par contre ça ne fonctionne pas avec fancyhdr, "\leftmark"
reste toujours vide ! Ce que je ne comprends pas.
--Jyb
Merci beaucoup, je n'y comprends pas grand chose, mais votre code
marche très bien : j'ai le nom de la partie à gauche et le nom de la
section à droite.
Malheureusement, quelques problèmes subsistent :
- les en têtes de la table des matières et de la bibliographie
apparaissent en double, à gauche et à droite en capitales.
- Alors que les numéros des sections apparaissent dans les entêtes,
les numéros des parties (qui dans la table des matières apparaissent
en chiffres romains) n'apparaissent pas dans les entêtes.
- Surtout, (toujours dans les entêtes) les parties sont en minuscules
alors que les sections sont en capitales. Serait il possible de tout
avoir en minuscule? Ou sinon de tout avoir en majuscules, mais dans ce
cas, il faudrait qu'il y ai les parties sur la page de gauche et les
sections sur la page de droite à cause de manque de place sur une
seule page. Je ne sais pas si cette seconde alternative est possible
étant donné que la classe article ne reconnaît que les pages impaires.
Beaucoup d'intervenant m'ont reproché d'utiliser \part sans \chatper,
mais premièrement \chapter n'existe pas dans la classe article,
contrairement à \part et deuxièmement, mes parties sont des parties et
non pas des chapitres, de même pour mes sous parties, elles ne sont
pas des chapitres.
Merci encore
> Malheureusement, quelques problèmes subsistent :
La plupart de ces problemes disparait si tu utilise une classe plus
moderne comme memoir ou scrartcl.
--
Ulrike Fischer
J'ai remplacer article par memoir, et j'ai les mêmes problèmes sauf
qu'en plus, au lieu de s'appeler 1, 2, n, mes sections s'appellent
0.1, 0.2, et 0.n et mes sous sections n'ont plus de numéros.
>> La plupart de ces problemes disparait si tu utilise une classe plus
>> moderne comme memoir ou scrartcl.
> J'ai remplacer article par memoir, et j'ai les mêmes problèmes sauf
> qu'en plus, au lieu de s'appeler 1, 2, n, mes sections s'appellent
> 0.1, 0.2, et 0.n et mes sous sections n'ont plus de numéros.
memoir est une classe qui peut se comporter comme book (avec
\chapter etc) ou comme article. Lis la documentation si tu veux
l'utiliser.
scrartcl est plus comparable a article. Mais aussi ici tu devrai
lire la documentation.
--
Ulrike Fischer
Ahum. Documentation de memoir -> option article. C'est-à-dire :
\documentclass[article]{memoir}
memoir est vraiment une classe super puissante. Raison de plus pour
lire calmement sa documentation. En plus, cela pourra même donner des
idées de présentation auxquelles on n'aurait pas pensé.
Jean-Côme Charpentier
--
La plus grosse difficulté ne me semble pas technique... il faut juste
que je fasse maigrir mon petit cochon préféré...
-+- Fancois in fr.comp.text.tex -+-
Oui, mais même en mettant comme option article, j'ai 0.n pour les
sections, parce que l'option article de memoir reconnaît la commande
\chapter.
Je crois que je vais essayer d'utiliser memoir et de déclarer mes
parties avec \chapter. Imaginons qu'une de mes parties s'appelle "Je
suis en train de lire la doc de memoir". lorsque je fais \chapter{Je
suis en train de lire la doc de memoir}, apparaît en entête CHAPITRE
1. JE SUIS EN TRAIN DE LIRE LA DOC DE MEMOIR. est il possible d'avoir
PARTIE 1 au lieu de CHAPITRE 1, ou même rien du tout. Et est-il
possible d'avoir I à la place de 1? I'm R-ingTFM, et j'ai pas fini,
alors pardon, si les réponses y figurent déjà.
Autre question, fancyhdr s'accommode t il bien de memoir, parce que
j'aimerais que mes entêtes soient en minuscule
La classe mémoire utilise \chapter ça ne fait donc plus la même
chose, quant à scrartcl, il existe un \partmark. Ça peut être très utile
(voir la doc car je ne connais pas).
Pour modifier la mise en forme du code (mauvais ?) que j'ai fourni,
il faut jouer avec la ligne "\markboth{#2}{}\par}%" et la ligne
"\def\@oddhead{\leftmark\hfil{\slshape\rightmark}}%". Par exemple, pour
tout avoir en majuscule avec le numéro de partie
"\markboth{\MakeUppercase{\thepart\quad #2}}{}\par}%" (supprimer tous
les \MakeUppercase pour n'avoir que des minuscules). Pour jouer avec les
fontes, il y a \beseries, \itshape, \scshape, à l'instar de ce qui est
fait avec \slshape pour \rightmark (ne pas oublier les accolades).
Encore une fois, le code n'est pas idéal il faut parfois agir
localement (cas des entêtes doubles). Peut être que scrartcl.cls fait
tout ça très bien.
\markright{à droite}
\tableofcontents
\markboth{à gauche}{}
pour avoir "à droite____________à gauche" comme entête. Pour la toc
placer le \contentsname, ou \bibname pour la bibliographie, dans
\markright ou dans \markboth, au choix.
--Jyb
Merci infiniment pour le code et vos explications.
Malheureusement, je ne suis pas du tout expérimenté, et n'arrive pas à
appliquer vos précieux conseils comme il le faudrai.
1. Lorsque je reprends votre modèle (lipsum) et que j'applique les
modifications que vous me proposez les chiffres romains apparaissent,
mais sur mon mémoire, ils n'apparaissent pas.
2. J'ai réussi à enlever la deuxième occurence de "bibliographie",
mais pas celle de "table des matières" :
pour la bibliographie j'ai fait :
\addcontentsline{toc}{section}{Bibliographie} %Permet de faire
apparaître la bibliographie dans la table des matières.
\markboth{Bibliographie}{}
\printbibliography
pour la table des matière, j'ai juste :
\setcounter{tocdepth}{2}
\tableofcontents
dans ce cas là, je ne sais pas comment utiliser \markboth
3. Je me rends compte que même en mettant les entêtes des parties et
des sections en minuscules, je n'ai pas assez de place sur une seule
page
... Je crains qu'il me soit impossible de mettre les entêtes des
partie sur la page de gauche (impaire) et les entêtes des sections sur
la page de droite (impaire), parce que la classe article ne reconnaît
pas l'option twoside. Mais si j'utilise la classe book ou report ou
memoir , soit mes sections deviennent 0.n, soit, mes parties
s'intitulent chapitres...
Je n'ai même pas essayé de voir si je pouvais résoudre le problème
avec koma parce que celui-ci modifie trop radicalement la présentation
(mise en page, polices, etc.) de mon mémoire.
Auriez vous des pistes pour résoudre ce dilemme?
Oops, je viens de m'apercevoir que la classe article acceptait
l'option twoside. En fait je pensais que ce n'était pas le cas parce
que j'avais lu quelque part que la classe article ne faisait pas la
différence entre les pages paires et les impaires. À votre avis, est-
il possible d'avoir comme entêtes seulement les parties sur les pages
impaires et seulement les sections sur les pages paires? Si oui,
comment faut-il s'y prendre?