Ne pas afficher le contenu de \chapter

Bonjour,

J’ai un petit problème de présentation que je n’arrive pas à régler (je
ne trouve pas de piste… à ma portée !).

Sur l’image jointe (petit travail sur les Essais de Montaigne),
j’aimerai que le titre du chapitre (le “Livre III” du bas) n’apparaisse
pas mais soit pris en compte quand même (pour la toc, le header… ce
qui est le cas actuellement). Je ne souhaite faire ça que parce que,
dans ce document, le titre du chapitre et \thechapter sont rendus
identiques (“Livre III” ici).

Je joins un ECM. J’utilise la class memoir avec \chapterstyle{ell}.

Sinon, je profite de l’occasion : je me suis fait une présentation
bidouille-perso du titre de la section. Ça marche comme je veux
(présentation et header) mais si quelqu’un trouve que j’aurai pu faire
“plus LaTex” je suis preneur.

Merci et bien cordialement,

Gérard

Le 11 août 2022 à 09:11, Gerard_F xyz@xyz.tld a écrit :

Bonjour,

Bonjour,

J’ai un petit problème de présentation que je n’arrive pas à régler (je ne trouve pas de piste… à ma portée !).

Sur l’image jointe (petit travail sur les Essais de Montaigne), j’aimerai que le titre du chapitre (le “Livre III” du bas) n’apparaisse pas mais soit pris en compte quand même (pour la toc, le header… ce qui est le cas actuellement).

Je connais mal la classe memoir, mais…

Je ne souhaite faire ça que parce que, dans ce document, le titre du chapitre et \thechapter sont rendus identiques (“Livre III” ici).

Ça ne me semble pas une bonne idée : \thechapter (et en général \themachin), c’est ce qui est utilisé par le mécanisme \label \ref pour faire référence au chapitre.
On fait \chapter{Tête à Toto}\label{toto}

Et plus loin : Comme on l’a vu au chapitre \ref{toto}

Donc \thechapter doit contenir uniquement le numéro du chapitre sans mise en forme.

Avec votre choix vous feriez : Comme on l’a vu au \ref{toto}… Mais vous auriez au mot « livre » une majuscule inappropriée.

Ceci dit pour répondre strictement à votre question, il y a dans les classes une ou plusieurs commandes qui servent à formater les titres de chapitres. Dans la classe book ça s’appelle @makechapterhead et dans la classe memoir aussi, justement.

Bref vous cherchez où réside le fichier memoir.cls (la classe memoir), ça se trouve en tapant dans un terminal

% kpsewhich memoir.cls

Moi j’obtiens

mbova@macbook-pro-de-michel ~ % kpsewhich memoir.cls
/usr/local/texlive/2022/texmf-dist/tex/latex/memoir/memoir.cls

Et ça ne devrait pas être très différent chez vous…

Bref vous faites une copie privée de memoir.cls vous l’ouvrez, vous cherchez et vous trouvez

\def@makechapterhead#1{%
\chapterheadstart%
{%
\parskip \z@
\parindent \z@ \memRTLraggedright \normalfont
\ifm@m@And
\printchaptername \chapternamenum \printchapternum
\afterchapternum %
\else
\printchapternonum
\fi
\interlinepenalty@M
\printchaptertitle{#1} %
\afterchaptertitle %
}}

Donc dans votre préambule, vous écrivez

\makeatletter %pour autoriser @ dans les commandes au niveau d’un fichier courant
\def@makechapterhead#1{%
\chapterheadstart%
{%
\parskip \z@
\parindent \z@ \memRTLraggedright \normalfont
\ifm@m@And
\printchaptername \chapternamenum \printchapternum
\afterchapternum %
\else
\printchapternonum
\fi
\interlinepenalty@M
% \printchaptertitle{#1} %
\afterchaptertitle %
}}
\makeatother %% les bêtises s’arrêtent là.

Où vous avez juste commenté la ligne qui gêne

% \printchaptertitle{#1} %

(toujours tenter d’en faire le moins possible, si ça ne marche pas y aller progressivement, mais là ça semble marcher.

Je joins un ECM.

C’est ce qu’il faut faire.

J’utilise la class memoir avec \chapterstyle{ell}.

Sinon, je profite de l’occasion : je me suis fait une présentation bidouille-perso du titre de la section. Ça marche comme je veux (présentation et header) mais si quelqu’un trouve que j’aurai pu faire “plus LaTex” je suis preneur.

Faudrait un cahier des charges plus précis ! Personnellement je trouve que les classes ne font jamais ce que je veux et je fabrique à chaque fois ma propre classe en y faisant un \LoadClass{book} et en patchant ensuite. Du coup je n’ai besoin que de bien connaître ce qui y a dans la classe book et de savoir où je veux aller.
Par exemple la dernière classe que j’ai faite (c’est récent) commence comme ça

%%% This is the dino-saisie documentclass
%%% Released by Michel Bovani
%%% Copyright Michel Bovani
%%% Please don’t distribute or modify this file unless
%%% you rename it and remove all reference to me in the source text
%%%
\def\fileversion{1.0}%
\def\filedate{2022/08/09}%
\NeedsTeXFormat{LaTeX2e}%
\ProvidesClass{dino-saisie}%
[\filedate\space\fileversion\space dino-saisie document class. Michel %
Bovani]% %
\DeclareOption{draft}{\PassOptionsToClass{draft}{book}}
\ProcessOptions
\LoadClass[a4paper,oneside,french,11pt]{book}
[…]


Michel Bovani
xyz@xyz.tld
https://paroles.mathriochka.net

Le 11/08/2022 à 09:11, Gerard_F a écrit :

Bonjour,

J’ai un petit problème de présentation que je n’arrive pas à régler (je
ne trouve pas de piste… à ma portée !).

Sur l’image jointe (petit travail sur les Essais de Montaigne),
j’aimerai que le titre du chapitre (le “Livre III” du bas) n’apparaisse
pas mais soit pris en compte quand même (pour la toc, le header… ce
qui est le cas actuellement). Je ne souhaite faire ça que parce que,
dans ce document, le titre du chapitre et \thechapter sont rendus
identiques (“Livre III” ici).

Je joins un ECM. J’utilise la class memoir avec \chapterstyle{ell}.

Sinon, je profite de l’occasion : je me suis fait une présentation
bidouille-perso du titre de la section. Ça marche comme je veux
(présentation et header) mais si quelqu’un trouve que j’aurai pu faire
“plus LaTex” je suis preneur.

Merci et bien cordialement,

Gérard

Bonjour

Il est possible que vous trouviez votre bonheur avec les packages
titlesec et titletoc.

Cordialement

François

Merci Michel pour cette réponse, très complète et quelque peu …
effrayante ! pour moi :joy:

Je vais quand même regarder cela d’un peu plus près ! Il y a quelque
temps que je tourne autour de “makeatletter” sans trop bien comprendre
le concept (pas trop fouillé non plus !)

Ceci dit, c’est un document perso, je n’ai pas d’obligation, mais le
problème avec LaTeX c’est que je sais que c’est possible !

Le 11/08/2022 à 10:09, Michel Bovani a écrit :

Faudrait un cahier des charges plus précis

Je n’ai pas prévu d’utiliser les label, ref, etc. Je ne fais que TOC et
INDEX. Mon souhait c’est d’obtenir un bon header (cf image jointe), avec
le titre du chapitre (Montaigne) à gauche, le Livre à droite. Du coup je
trouve ma première page “disgracieuse” avec cette répétition de “Livre…”

(ps : le renommage de \thechapter vient d’internet bien sûr…
tex.stackexchange.com sûrement…)

Gérard

(re ps : en tout cas merci pour tous vos échanges variés sur la liste,
lus, médités, archivés (les ECM joints) avec soin…)

Le 13/08/2022 à 11:30, Pétiard François a écrit :

Il est possible que vous trouviez votre bonheur avec les packages
titlesec et titletoc.

Merci François pour cette suggestion. J’ai commencé à regarder (et à
tester). J’approfondirais si besoin pour un prochain document.

Encore que, ayant vu les échanges “typographie” de la liste, cette
remarque (page 20 de la doc titlesec) me refroidit : “Une fois que vous
avez lu la documentation, il devrait être clair qu’il ne s’agit pas d’un
package pour les utilisateurs occasionnels [..] Il s’agit d’un outil
pour le typographe sérieux…” (trad avec l’aide de Google)

Cordialement

Gérard

Le 11 août 2022 à 13:39, Gerard_F xyz@xyz.tld a écrit :

Merci Michel pour cette réponse, très complète et quelque peu … effrayante ! pour moi :joy:

Je vais quand même regarder cela d’un peu plus près ! Il y a quelque temps que je tourne autour de “makeatletter” sans trop bien comprendre le concept (pas trop fouillé non plus !)

En pratique il suffit de savoir que pour utiliser une commande dont le nom contient des @ il faut mettre le passage considéré entre les balises \makeatletter \makeatother

Cette manip n’est plus nécéssaire à l’intérieur d’un fichier de classe (extension .cls) ou un package (extension.sty) ou dans les fichiers qui servent à définir le format latex.

Ça permet aux auteurs de package de faire les malins en mettant des trucs qui font peur dans leurs fichiers. La commande n’a pas à être documentée et les utilisateurs l’utilisent à leurs risques et périls.

Quant à l’explication détaillée, il faut comprendre que pour TeX, chaque caractère appartient à une catégorie et une seule définie par un code numérique (de 0 à 15), le \catcode (que l’on peut changer, en général à ses risques et périls).

\catcode 0 c’est le caractère d’échappement, normalement le \ il sert à commencer un nom de commande et si l’on veut obtenir un vrai backslash il faut saisir un truc comme \textbackslash ou \backslash.

\catcode 1 début de groupe, normalement {, ({ pour obtenir une accolade ouvrante) ;

\catcode 2 fin de groupe, normalement }, (} pour obtenir une accolade ouvrante) ;

En supposant que vous permutiez les deux \catcode il faudrait ensuite écrire des choses comme \chapter}Livre 1{, ça serait bien pour tromper l’ennemi.

Bon le $ le % ont aussi un \catcode qui en fait des choses à part je vous laisse deviner les quelles

Les 52 lettres de A à Z et de a à z ont un \catcode égal à 11 (au départ, mais on évite de changer ça, sauf si on veut faire le malin)

Les autres caractères comme justement @ ont un \catcode égal à 12 (sauf si un rôle spécial leur est dévolu, comme dans le cas de $, {, } et leurs copains).

Or, un nom de commande ne peut contenir que des caractères de \catcode égal à 11, donc a priori des lettres. Sauf si on met le \catcode des autres à 11

Donc voilà \makeatletter autorise @ dans un nom de commande en mettant son \catcode à 11 et \makeatother remet prudemment ce \catcode à 12.

On n’a pas besoin de savoir tout ça pour utiliser \latex, c’est ça qui est bien. Et on peut se dire aussi que la zénitude s’obtient est écrivant \let\def\relax.

Ceci dit, c’est un document perso, je n’ai pas d’obligation, mais le problème avec LaTeX c’est que je sais que c’est possible !

Le 11/08/2022 à 10:09, Michel Bovani a écrit :

Faudrait un cahier des charges plus précis

Je n’ai pas prévu d’utiliser les label, ref, etc. Je ne fais que TOC et INDEX. Mon souhait c’est d’obtenir un bon header (cf image jointe), avec le titre du chapitre (Montaigne) à gauche, le Livre à droite.

Vous voulez dire que vous utilisez Montaigne comme titre de chapitre et qu’ensuite les chapitres s’écrivent Livre 1, Livre 2, etc. Et que donc la commande \chapter correspond à plusieurs niveaux de structuration hiérarchique ?

C’est diabolique, ça ! (Le malin, toujours lui !)


Michel Bovani
xyz@xyz.tld
https://paroles.mathriochka.net

Vous voulez dire que vous utilisez Montaigne comme titre de chapitre et qu’ensuite les chapitres s’écrivent Livre 1, Livre 2, etc. Et que donc la commande \chapter correspond à plusieurs niveaux de structuration hiérarchique ?

C’est diabolique, ça ! (Le malin, toujours lui !)

Ah non mais ça y est : j’ai réouvert les essais et j’ai compris !

Des fois je suis lent…


Michel Bovani
xyz@xyz.tld
https://paroles.mathriochka.net