Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 3

08 Jan '24, 17:59

dflipo's gravatar image

dflipo
2813

Question intéressante… que je découvre avec beaucoup de retard car je ne suis pas un lecteur assidu de TeXnique :-( Il est assez facile de paramétrer `tocbasic` pour obtenir dans la table des matières des entrées de la forme : `Partie I. mon titre` On peut utiliser pour cela les options de `\DeclareTOCStyleEntry`, notamment `entrynumberformat=\mycommand`, voici un exemple : \documentclass[french,chapterprefix=false,openany]{scrbook} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{babel} %%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareTOCStyleEntry[entrynumberformat=\myPart, %breakafternumber=true, numwidth=.25\linewidth]% {tocline}{part} \setcounter{tocdepth}{4} \newcommand*{\myPart}[1]{Partie #1} %%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \part{Ceci est ma partie 1} \chapter{Ceci est mon premier chapitre} \chapter{Ceci est mon deuxième chapitre} \part{Ceci est ma partie 2} \chapter{Ceci est mon quatrième chapitre} \chapter{Ceci est mon cinquième chapitre} \chapter{Ceci est mon sixième chapitre} \part{Ceci est ma partie 3} \chapter{Ceci est mon septième chapitre} \chapter{Ceci est mon huitième chapitre} \tableofcontents \end{document} Ceci ne répond pas à la question mais ce premier pas indique que le paramètre passé à la commande `\myPart` est le numéro de partie en capitales romaines suivi d'un point (I. II. III. IV. etc.) mais en fait c'est beaucoup plus touffu que ça… Il y a plein de commandes parasites (qui n'affichent rien). Il est finalement plus simple d'utiliser l'option `entryformat` qui opère sur la totalité du deuxième argument de `\addtocontentsline` (voir le fichier `.toc`), par exemple comme ceci : %%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareTOCStyleEntry[entryformat=\FrenchPartNum, %breakafternumber=true, ]% {tocline}{part} \setcounter{tocdepth}{4} \newcommand*{\OrdinalI}{Première partie} \newcommand*{\OrdinalII}{Deuxième partie} \newcommand*{\OrdinalIII}{Troisième partie} \newcommand*{\OrdinalIV}{Quatrième partie} \newcommand*{\FrenchPartNum}[1]{% \begingroup \def\numberline ##1{% \makebox[.25\linewidth][l]{% \expandafter\csname Ordinal##1\endcsname}}% \usefontofkomafont{partentry}#1 \usefontofkomafont{partentry}#1% \endgroup } %%%%%%%%%%%%%%%%%%%%%%%%%%% Résultat affiché : ![alt text][2] On peut décommenter l'option `breakafternumber=true,` pour ajouter passage à la ligne suivante après `... partie` (utile éventuellement en cas de titre long). On pourrait faire une boucle pour définir plus de commandes `\OrdinalV`, `\OrdinalVI`, etc. [2]: https://texnique.fr/osqa/upfiles/koma-toc2.png
cliquez ici pour masquer/afficher la révision 2
simplification du code

08 Jan '24, 17:56

dflipo's gravatar image

dflipo
2813

Question intéressante… que je découvre avec beaucoup de retard car je ne suis pas un lecteur assidu de TeXnique :-( Il est assez facile de paramétrer `tocbasic` pour obtenir dans la table des matières des entrées de la forme : `Partie I. mon titre` On peut utiliser pour cela les options de `\DeclareTOCStyleEntry`, notamment `entrynumberformat=\mycommand`, voici un exemple : \documentclass[french,chapterprefix=false,openany]{scrbook} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{babel} %%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareTOCStyleEntry[entrynumberformat=\myPart, %breakafternumber=true, numwidth=.25\linewidth]% {tocline}{part} \setcounter{tocdepth}{4} \newcommand*{\myPart}[1]{Partie #1} %%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \part{Ceci est ma partie 1} \chapter{Ceci est mon premier chapitre} \chapter{Ceci est mon deuxième chapitre} \part{Ceci est ma partie 2} \chapter{Ceci est mon quatrième chapitre} \chapter{Ceci est mon cinquième chapitre} \chapter{Ceci est mon sixième chapitre} \part{Ceci est ma partie 3} \chapter{Ceci est mon septième chapitre} \chapter{Ceci est mon huitième chapitre} \tableofcontents \end{document} Ceci ne répond pas à la question mais ce premier pas indique que le paramètre passé à la commande `\myPart` est le numéro de partie en capitales romaines suivi d'un point (I. II. III. IV. etc.) mais en fait c'est beaucoup plus touffu que ça… Il y a plein de commandes parasites (qui n'affichent rien). Il est finalement plus simple d'utiliser l'option `entryformat` qui ne s'affichent pas. Les curieux pourront aller voir opère sur la totalité du deuxième argument de `\addtocontentsline` (voir le résultat de la commande `\ShowCommand{\tmp}` dans le code ci-dessous (à insérer à la place du précédent entre les deux lignes de '%"). Ce code, nettement moins simple malheureusement, répond cette fois mieux à la question posée. fichier `.toc`), par exemple comme ceci : %%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareTOCStyleEntry[entrynumberformat=\FrenchPartNum, \DeclareTOCStyleEntry[entryformat=\FrenchPartNum, %breakafternumber=true, numwidth=.25\linewidth]% ]% {tocline}{part} \setcounter{tocdepth}{4} \newcommand*{\OrdinalI}{Première partie\hfil} partie} \newcommand*{\OrdinalII}{Deuxième partie\hfil} partie} \newcommand*{\OrdinalIII}{Troisième partie\hfil} partie} \newcommand*{\OrdinalIV}{Quatrième partie\hfil} \makeatletter \def\GetRomanNumber\begingroup#1\endgroup#2{#2} \DeclareRobustCommand*{\FrenchPartNum}[1]{% partie} \newcommand*{\FrenchPartNum}[1]{% \begingroup \def\numberline@prefix{}% \def\numberline@postfix{}% \def\numberline@numberformat##1{##1}% \edef\tmp{#1}% %\ShowCommand{\tmp}% \edef\RoNum{\expandafter\GetRomanNumber\tmp}% %\ShowCommand{\RoNum}% \def\numberline ##1{% \makebox[.25\linewidth][l]{% \expandafter\csname Ordinal\RoNum\endcsname Ordinal##1\endcsname}}% \usefontofkomafont{partentry}#1 \endgroup } \makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%% Résultat affiché : ![alt text][2] On peut décommenter l'option `breakafternumber=true,` pour ajouter passage à la ligne suivante après `... partie` (utile éventuellement en cas de titre long). On pourrait faire une boucle pour définir plus de commandes `\OrdinalV`, `\OrdinalVI`, etc. [2]: https://texnique.fr/osqa/upfiles/koma-toc2.png
cliquez ici pour masquer/afficher la révision 1

06 Jan '24, 19:48

dflipo's gravatar image

dflipo
2813

C'est votre première visite ici ? Consultez la FAQ !

×