Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prendre en compte les \index après \printindex avec indextools #3

Closed
Namrod21 opened this issue Nov 2, 2015 · 4 comments
Closed

Comments

@Namrod21
Copy link

Namrod21 commented Nov 2, 2015

Bonjour,

Ce message fait suite à un problème que j'ai rencontré pour créer un index exposé sur texnique.fr. Mon problème était le suivant : je souhaitais créer un index dans lequel soient prises en compte des entrées indiquées après la commande \printindex, et ce en raison des normes imposées par mon université m'obligeant à placer l'index à la fin de la partie de texte alors que je souhaite y faire figurer des entrées situées dans le seconde partie d'annexes.

Voici la solution proposée par unbonpetit, qui me convient, mais qui mériterait peut-être d'être intégrée directement à l'extensionindextools :

\documentclass{article}

\usepackage{fontspec}
\usepackage[xindy]{indextools}
\makeatletter
\def\indtl@putindex#1{%
    \ifindtl@nonewpage\else
        \indtl@clearpage
    \fi
    \let\indtl@indexname\indexname % keep \indexname
    \@nameuse{indtl@set@#1}\indtl@decide
    \AtEndDocument{%
        \indtl@clearpage
        \immediate\closeout\csname #1@idxfile\endcsname
        \if@tempswa % we can call the external program
            \indtl@exec{\indtl@program\indtl@options#1.idx}%
        \else
            \indtl@finalmessage{#1}%
        \fi}%
    \ifKV@indtl@intoc
        \def\indtl@maybeaddtotoc{\@nameuse{phantomsection}%
        \addcontentsline{toc}{\indtl@toclevel}{\indtl@title}}%
    \else
        \def\indtl@maybeaddtotoc{}%
    \fi
    \ifx\indtl@title\indtl@check@indexname\else
        \def\indexname{\indtl@title}%
    \fi
    \@input@{#1.ind}
    \let\indexname\indtl@indexname % restore \indexname
}
\makeatother
\makeindex

\begin{document}

Blablabla\index{index1}

\newpage

\printindex

\newpage

Blablabla\index{index2}

\end{document}
@maieul
Copy link
Owner

maieul commented Nov 2, 2015

J'essaierai d'intégrer cela ce week-end en même tps que je réglerai d'autre tickets. Mais clairement cela sera en option, car fermer le fichier seulement à la fin du document implique de faire une seconde compilation latex avant d'avoir un fichier correct. Or le but de imakeidx, et par là indextools, et de tout produire en une seule compilation.

maieul added a commit that referenced this issue Nov 8, 2015
maieul added a commit that referenced this issue Nov 8, 2015
maieul added a commit that referenced this issue Nov 8, 2015
@maieul
Copy link
Owner

maieul commented Nov 8, 2015

hop, peux tu tester la branche issue3 ?

  • décompresser https://github.com/maieul/indextools/archive/issue3.zip
  • executer le fichier .dtx pour produire le fichier .sty
  • le poser à côté du fichier .tex
  • supprimer ta redefinition de \indtl@putindex#1
  • utiliser la nouvelle option de indextools : afterindex. \usepackage[afterindex,indextools]

@Namrod21
Copy link
Author

Namrod21 commented Nov 8, 2015

Cest fait et ça fonctionne parfaitement, merci !

maieul added a commit that referenced this issue Nov 8, 2015
@maieul
Copy link
Owner

maieul commented Nov 8, 2015

parfait, je ferme alors. Cela sortira dès que #4 sera résolu.

@maieul maieul closed this as completed Nov 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants