Problème de deux index dans avec style nexus
Bonjour à tous. En suivant les conseils de Brian du forum, j'ai essayé de résoudre certains problèmes liés aux mini tables de matières avec mes connaissances élémentaires et une lecture intensive cette semaine sur les forums dédiés à Latex. À présent, je cherche à mettre deux index dans un document basé sur nexus.sty. Pour celà, j'ai ajouté le package imakeidx et index, au préambule du fichier de nexus.sty (Fichier nexusStyle.tex dont les lignes 58 à 246 ne constituent qu'une variantes de palette des couleurs à choisir), ainsi qu'une adaptation de l'appendice à l'index par
Ceci me permettrait de le mettre dans la table de matière. Par ailleurs, dans le fichier maître docu.tex, j'ai mis les deux commandes faisant appel à makeindex comme suit
En voici un ECM de mon fichier maître docu.tex, où une partie m'a été donnée par Brian que je salue au passage.
Enfin dans le fichier nexus.sty, (ligne 519 à 545), j'ai ajouté le code suivant que j'ai pris du manuel de Vincent Lozano ``Tout ce que vous avez voulu savoir sur Latex sans jamais oser le demander`` que je suggè de lire pour les curieux et les débutants comme moi
Malheureusement lorsque je compile, j'obtiens des messages d'erreurs (j'ai attaché les fichiers log et aux dénommés respectivement par docuLOG.tex et docuAUX.tex). De plus, dans mon pdf quelque chose ne vas pas à la première page, l'indexe n'apparaît ni dans la table de matières ni dans le document et les mots indexés n'apparaissent même pas dans le texte (voir le fichier pdf). Enfin, le fichier auxilliaire one.idx est vide, tandis que celui du deuxième index il n'apparaît même pas.
Je vous remercie à l'avance pour toute aide ou commentaire.
zenon
\AtBeginEnvironment{indexes}{% \addtocontents{toc}{\protect\gdef\protect\@chapapp{\protect\indexname}}%\Indexname modifié par moi-même en substituant appendeces par indexes dans le fichier style
Ceci me permettrait de le mettre dans la table de matière. Par ailleurs, dans le fichier maître docu.tex, j'ai mis les deux commandes faisant appel à makeindex comme suit
\makeindex[name=one,title=Index des mots, intoc, options= -s docuone.ist] \makeindex[name=two,title=Index des auteurs, intoc, options= -s docutwo.ist]Où docuone.ist (Fichier attaché docuoneIst.tex) et docutwo.ist sont les fichiers styles des deux index (même syle pour les deux).
En voici un ECM de mon fichier maître docu.tex, où une partie m'a été donnée par Brian que je salue au passage.
\documentclass[11pt,french,twoside]{book} %%%%%%%%%%%%% Geometry \usepackage[a4paper,left=2.5cm,right=2.5cm, bottom=2cm,top=2cm]{geometry} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} % non nécessaire depuis environ 2 ans (par défaut) \usepackage{babel} %\usepackage{index} \usepackage{tikz} \usetikzlibrary{babel} \usepackage[tikz]{bclogo} \usepackage{etoolbox} % pour \newtoggle, \toggletrue... \usepackage{xparse} % non nécessaire à partir de LaTeX 2020-10-01 \usepackage{refcount} % pour \IfRefUndefinedBabel \usepackage[xparse]{tcolorbox} % Code suggéré par Brian et a pu résoudre la gestion de la table de matière \usepackage[user]{zref} % 'expand' est nécessaire pour utiliser \GetTitleStringDisableCommands \usepackage[expand]{gettitlestring} \usepackage[palette=e]{nexus} %%%%%%%%%%%%Gère la table de matière%%%%%%%%%%%%%%%% \titlecontents{subsection}[1.5pc]% indentation à gauche {\addvspace{5pt}}% {\contentslabel[\thecontentslabel]{2pc}\color{green}}% {}% {\normalsize\dotfill\small\thecontentspage\color{red}}% [\addvspace{3pt}] % Section style in the TOC \titlecontents{section}[0pc] {\addvspace{5pt}} { \contentslabel[\thecontentslabel]{2pc}\color{red}} {} {\normalsize\dotfill\small\thecontentspage\color{red}} [\addvspace{3pt}] %\setcounter{secnumdepth}{3} %\setcounter{tocdepth}{1} \setcounter{minitocdepth}{2} % Si décommenté, sous-sections non numérotées dans la TOC % \setcounter{secnumdepth}{1} \makeindex[name=one,title=Index des mots, intoc, options= -s docuone.ist] \makeindex[name=two,title=Index des auteurs, intoc, options= -s docutwo.ist] %\makeindex[program=makeindex,options=-s docu,intoc=true] \begin{document} \dominitoc \tableofcontents \chapter{Techniques d'intégration}\label{chap-limites-et-continuite} \minitoc \section*{Total} On a deux cas \section{Première section}\labelSectionCours{sec1} La \index[one]{structure} du \index[one]{module} est donnée par ..... \newpage \subsection{Sous section} Le \index[two]{mathématicien} \index[two]{Henri Poincaré} est connu pour.... \newpage \section{Deuxième section}\labelSectionCours{sec2} On a........... \printindex[one] \printindex[two] \end{document}
Enfin dans le fichier nexus.sty, (ligne 519 à 545), j'ai ajouté le code suivant que j'ai pris du manuel de Vincent Lozano ``Tout ce que vous avez voulu savoir sur Latex sans jamais oser le demander`` que je suggè de lire pour les curieux et les débutants comme moi
\renewcommand\indexspace{\par \vskip 20pt plus5pt minus3pt\relax} %----------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------- % % pour avoir un lien correct dans les bookmark du pdf, sur l'index % %----------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%Ajouté par moi-même tirée d'un code de Vincent Lozano%%%%%%%%%%% \renewenvironment{theindex} { \setlength{\parskip}{0pt plus 1.0pt} \if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi \columnseprule \z@ \columnsep 35\p@ \twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\indexname}{\indexname}%suppression de \MakeUppercase \thispagestyle{plain}\parindent\z@ \parskip\z@ \@plus .3\p@\relax \let\item\@idxitem} {\if@restonecol\onecolumn\else\clearpage\fi} %%%%%%%%%%%%%%%%
Malheureusement lorsque je compile, j'obtiens des messages d'erreurs (j'ai attaché les fichiers log et aux dénommés respectivement par docuLOG.tex et docuAUX.tex). De plus, dans mon pdf quelque chose ne vas pas à la première page, l'indexe n'apparaît ni dans la table de matières ni dans le document et les mots indexés n'apparaissent même pas dans le texte (voir le fichier pdf). Enfin, le fichier auxilliaire one.idx est vide, tandis que celui du deuxième index il n'apparaît même pas.
Je vous remercie à l'avance pour toute aide ou commentaire.
zenon
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1) Tu ne devrais pas modifier nexus.sty. Déjà, je ne sais pas si tu en a le droit (quelle est la licence ? Je ne la vois pas...). D'autre part, en procédant ainsi, il va devenir difficile de s'y retrouver (pour demander de l'aide ou mettre à jour nexus.sty). Tes modifs doivent être soit dans le préambule de ton document, soit dans un .sty à toi. Pour créer un .sty à toi, il n'y a presque rien à faire :
2) Ton \renewenvironment{theindex} a de fortes chances d'entrer en conflit avec imakeidx, que tu dis utiliser.
3) Justement, la première erreur de ton fichier .log : Il faut voir d'où ça vient en commençant par faire le plus simple possible. Pas de nexus.sty, pas de fichiers .ist, pas d'option -s (et pas d'espace avant le -s). Regarder les dates de dernière modification et les fichiers .ilg comme indiqué dans la section If something goes wrong du manuel d'imakeidx. Et il serait peut-être judicieux d'utiliser xindy plutôt que makeindex, car je suppose que le document préparé est en français (voir la doc. d'imakeidx, il y a des options pour ça). Mais attention, les styles pour l'un ne marchent sans doute pas pour l'autre.
4) La bonne stratégie n'est pas de grapiller des trucs à droite et à gauche pendant une semaine (j'exagère peut-être), puis compiler, trouver que ça ne marche pas et ensuite essayer de débugger. Trop difficile. Il faut toujours commencer très simple et sans aucune erreur. Dès que tu rajoutes un truc, tu testes. Tu ne passes pas à autre chose avant d'avoir corrigé les erreurs. Par exemple, je ne suis pas sûr que ton soit utile vu les possibilités d'imakeidx. Mais c'est une cause de problèmes potentiels, donc à n'ajouter qu'une fois que tu es sûr(e) d'en avoir besoin.
5) Ton nexus.sty modifié utilise minitoc... et il y a ça dans ton log : titletoc est utilisé par nexus, comme tu le sais. Il faut choisir. De plus, minitoc n'a pas de mainteneur depuis 2009 (décès de son auteur Jean-Pierre Drucbert). De toute façon, il vaut mieux régler les problèmes les uns après les autres, pas tous en même temps.
Je suggérerais donc de commencer par préparer un mini document qui sort les $n$ index sans erreur. Ensuite on rajoute nexus non modifié. Ensuite, on applique les modifications souhaitées, mais pas dans nexus.sty (voir 1) ci-dessus). Ensuite, on verra. ;-)
en substituant indexes a appendeces. J'ai pensé que ceci marcherait, mais il semblerait que le problème est beaucoup plus délicat.
Donc j'ai décidé de régler le problèmes de mes mini tables de matières avant les indexes. Or, Brian tu disais qu'il faudrait choisir entre titletoc et minitoc. Est-ce que tiltletoc permet de réaliser des minitables par chapitre comme le package minitoc?
Un grand merci pour tes réponses Brian et bonne fin de journée.
zenon
Concernant les mini tables des matières via titletoc, cela semble possible d'après sa documentation : voir § 6.3. Partial TOC's. Je n'ai jamais essayé cela, mais il n'y a pas de raison que ça ne marche pas. titletoc est un package assez utilisé et maintenu, pour autant que je sache.
Zenon
Dans le code que j'ai posté ici, l'alignement dans la table des matières était bon. Sans exemple minimal reproduisant le problème, il m'est difficile de dire pourquoi ça ne va pas dans ton PDF. Peut-être y a-t-il un espace indésirable juste avant tes titres de sections. Ou peut-être faut-il adapter le \titlecontents{section}... que fait nexus à la taille des polices, peut-être en augmentant le 2pc de \contentslabel[\thecontentslabel]{2pc} ? L'examen du fichier .toc peut éventuellement aider : c'est lui qui contient le code (autogénéré) qui produit la table des matières après la première compilation.
Bonne journée.
zenon
Note que je peux mettre des espaces comme je veux ici parce que cette définition est entre \ExplSyntaxOn et \ExplSyntaxOff. Ailleurs, les espaces ne seraient pas ignorés !
Pour ton illustration en début d'index... peut-être un truc comme ça. Ah, zut, ce n'est pas le bon doigt. :-D
zenon