Question entièrement reformulée :

  1. \usepackage[xindy,splitindex]{imakeidx} ne compile pas l'index unique, alors que, sans l'option splitindex il le fait.
  2. La même commande avec un index nommé en plus, ne compile aucun index.

La distribution TeX Live est toute neuve, sur Debian Jessie, à partir du CTAN.

La compilation est lancée avec latexmk -pdf ou latexmk -xelatex.

Le message d'erreur est le suivant dans le cas d'un index général (unique) :

Ouvrir dans l'éditeur Overleaf
=== TeX engine is 'XeTeX'
===========Latexmk: Missing input file: 'ecmindex-ecmindex.ind' from line
  'No file ecmindex-ecmindex.ind.'
Latexmk: Missing input file: 'ecmindex-ecmindex.ind' from line
  'No file ecmindex-ecmindex.ind.'
Latexmk: Log file says output to 'ecmindex.xdv'
Latexmk: applying rule 'xdvipdfmx'...
Rule 'xdvipdfmx': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'ecmindex.xdv'
------------
Run number 1 of rule 'xdvipdfmx'
------------
For rule 'xdvipdfmx', running '&do_viewfile(  )' ...
------------
Running 'xdvipdfmx -o "ecmindex.pdf"  "ecmindex.xdv"'
------------
ecmindex.xdv -> ecmindex.pdf
[1][2]
13578 bytes written
Latexmk: All targets (ecmindex.pdf ecmindex.xdv) are up-to-date

Il est peu différent en cas d'un index nommé :

Ouvrir dans l'éditeur Overleaf
=== TeX engine is 'XeTeX'
===========Latexmk: Missing input file: 'ecmindex_splitindex-vegetaux.ind' from line
  'No file ecmindex_splitindex-vegetaux.ind.'
Latexmk: Missing input file: 'ecmindex_splitindex-vegetaux.ind' from line
  'No file ecmindex_splitindex-vegetaux.ind.'
===========Latexmk: Missing input file: 'ecmindex_splitindex-animaux.ind' from line
  'No file ecmindex_splitindex-animaux.ind.'
Latexmk: Missing input file: 'ecmindex_splitindex-animaux.ind' from line
  'No file ecmindex_splitindex-animaux.ind.'
...

Latexmk: Log file says output to 'ecmindex_splitindex.xdv'
Latexmk: applying rule 'xdvipdfmx'...
Rule 'xdvipdfmx': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'ecmindex_splitindex.xdv'
   Non-existent destination files:
      'ecmindex_splitindex.pdf'
------------
Run number 1 of rule 'xdvipdfmx'
------------
For rule 'xdvipdfmx', running '&do_viewfile(  )' ...
------------
Running 'xdvipdfmx -o "ecmindex_splitindex.pdf"  "ecmindex_splitindex.xdv"'
------------
ecmindex_splitindex.xdv -> ecmindex_splitindex.pdf
[1][2]
9604 bytes written
Latexmk: All targets (ecmindex_splitindex.pdf ecmindex_splitindex.xdv) are up-to-date

Voici les 2 ECM qui posent problème.

Sans index nommé, avec l'option splitindex :

Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper,11pt]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[xindy,splitindex]{imakeidx}
\makeindex
\usepackage[french]{babel}
\begin{document}
\section{Des entrées d'index}
\begin{verse}
  quatres\index{quatre} fossoyeurs \\
  un jardin\index{jardin} \\
  plusieurs\index{plusieurs} ratons laveurs. \\
\end{verse}

 (Jacques Prévert, Paroles, 1946) 
 \section{Résultat: des index}
\printindex
\end{document}

Avec l'option splitindex et un index nommé :

Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper,11pt]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[xindy,splitindex]{imakeidx}
\makeindex
\makeindex[name=animaux]
\usepackage[french]{babel}
\begin{document}
\section{Des entrées d'index}
\begin{verse}
  quatres\index{quatre} fossoyeurs \\
  un jardin\index{jardin} \\
  plusieurs\index{plusieurs} ratons laveurs\index[animaux]{ratons laveurs}. \\
\end{verse}

 (Jacques Prévert, Paroles, 1946) 
 \section{Résultat: des index}
\printindex
\printindex[animaux]
\end{document}

Tout ceci fonctionne sur overleaf, mais pas chez moi !

Qu'y a-t-il dans overleaf qui manque à mon installation (ou le contraire)?


EXPLORATION: j'abandonne latexmk, et fait

  1. xelatex ecmindex.tex
  2. makeindex ecmindex
  3. xelatex ecmindex.tex

sans plus de succès.

Le log de makeindex, ecmindex.ilg, renvoie ceci:

This is makeindex, version 2.15 [TeX Live 2017] (kpathsea + Thai support). Scanning input file ecmindex.idx... !! Input index error (file = ecmindex.idx, line = 1): -- Unknown index keyword \indexentry[ecmindex]. !! Input index error (file = ecmindex.idx, line = 2): -- Unknown index keyword \indexentry[ecmindex]. !! Input index error (file = ecmindex.idx, line = 3): -- Unknown index keyword \indexentry[ecmindex]. done (0 entries accepted, 3 rejected). Nothing written in ecmindex.ind. Transcript written in ecmindex.ilg.

la deuxième commande xelatex se termine par le message:

(./ecmindex.aux) (/usr/local/texlive/2017/texmf-dist/tex/latex/base/ts1cmr.fd) [1] [2] No file ecmindex-ecmindex.ind.

Ouvrir dans l'éditeur Overleaf
`Package imakeidx Warning: Remember to run xelatex again after calling
(imakeidx)                `splitindex' and processing the indices.

(./ecmindex.aux) )
(see the transcript file for additional information)
Output written on ecmindex.pdf (2 pages).
Transcript written on ecmindex.log`

Les fichiers ecmindex.log avant et après makeindex sont identiques, sauf évidences: horodatage et

Ouvrir dans l'éditeur Overleaf
1309c1309
< No file ecmindex.aux.
---
> (./ecmindex.aux)

Posée 08 Nov '17, 20:11

joseph-tux's gravatar image

joseph-tux
42722450
Taux d'acceptation : 4%

Modifiée 10 Nov '17, 21:48

@joseph-tux Attention ! Les contre-obliques (\) saisies telles quelles dans les contributions ne sont visibles que si elles sont insérées en tant que ⟨code⟩. Pour insérer du ⟨code⟩, notamment des commandes LaTeX, cf. la FAQ Comment mettre en forme ma contribution ?. Merci de corriger votre contribution si cela n'a pas déjà été fait.

(08 Nov '17, 20:19) denis ♦♦ denis's gravatar image

L'ECM ne reproduit pas l'erreur. Aucun souci sur Overleaf avec l'ECM fourni par l'auteur.

(08 Nov '17, 20:25) jerome dequeker jerome%20dequeker's gravatar image

@jerome dequeker : voilà une indication précieuse, mais dont je ne sais pas encore quoi faire.

J'ai omis de dire que je compilais avec latexmk -pdf ou latexmk -xelatex.

(08 Nov '17, 22:58) joseph-tux joseph-tux's gravatar image

À la lumière de cette info, j'ai mis dans .latexmkrc :

Pour gérer les index avec xindy, en UTF8 : d'après: http://geekographie.maieul.net/170

$pdflatex = "xelatex %S";

$pdf_mode = "1";

$makeindex = "texindy -L french -I xelatex %S";`

Hélas sans résultat !

(08 Nov '17, 23:08) joseph-tux joseph-tux's gravatar image

Ne pouvant pas reproduire l'erreur, il est difficile d'aider. Cependant, dans la documentation du package imakeidx, il est recommandé de charger l'option noautomatic lorsque splitindex est utilisé.

On peut donc essayer \usepackage[xindy,splitindex,noautomatic]{imakeidx}

(13 Nov '17, 10:47) jerome dequeker jerome%20dequeker's gravatar image

@jerome dequeker merci, hélas sans effet sur le problème

L'une des difficultés est d'interpréter le message:

Latexmk: Missing input file: 'minidoclatex-vegetaux.ind' from line 'No file minidoclatex-vegetaux.ind.'

Quel est le rôle et l'origine attendue de ces fichiers manquant?

(13 Nov '17, 23:08) joseph-tux joseph-tux's gravatar image

Et avec l'option --shell-escape donnée à xelatex ?

(14 Nov '17, 17:41) jerome dequeker jerome%20dequeker's gravatar image

@jerome dequeker Merci, malheureusement ça ne résout pas la question

(14 Nov '17, 19:37) joseph-tux joseph-tux's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

La solution:

Après latexmk -pdf ecmindex.tex, il faut lancer la commande splitindex ecmindex, puis un dernier pdflatex ecmindex.tex

Lien permanent

Publiée 14 Nov '17, 20:44

joseph-tux's gravatar image

joseph-tux
42722450
Taux d'acceptation : 4%

normalement $makeindex = "splinindex %S";` dans ton latexmkrc devrait faire que latexmkr appelle automatiquement splitindex...

(16 Nov '17, 16:40) Maïeul Ma%C3%AFeul's gravatar image

@Maïeul ça ne le fait pas, avec le latexmkrc suivant:

1 @generated_exts = ( 'aux' , 'bbl' , 'idx' , 'ind' , 'lof' , 'lot' , 'out' , 2 'toc' , '$fdb_ext' , 'nav' , 'snm' , 'fls' , 'out' , 'toc' ); 3 4 #Lancer splitindex avec imakeidx 5 $makeindex = "splitindex %S";

(17 Nov '17, 14:17) joseph-tux joseph-tux's gravatar image

En attendant de trouver la solution avec les réglages de latexmk, j'ai mis ce code dans mon fichier .bash_functions

Évidemment, ça double presque la durée de compilation, à cause de l'option -g sans laquelle latexmk ne recompile pas (ne prend pas en compte la création des fichiers *.ind)

latexmkidx(){ TEX=$1 TEX=${TEX%.tex} latexmk -pdf "${TEX}.tex" splitindex "$TEX" latexmk -pdf -g "${TEX}.tex" }

(17 Nov '17, 14:53) joseph-tux joseph-tux's gravatar image
1

remarque : l'option splitindex est rarement utile, car imakeidex et son sucesseur indextools sont capables de produire automatiquement les sous index. C'est uniquement an cas de no place for new room que c'est utile.

(17 Nov '17, 14:56) Maïeul Ma%C3%AFeul's gravatar image

Sans l'option splitindex (avec ou sans noautomatic, avec ou sans xindy):

Pas de message no place for new room, pas de sous-index ou un seul (sur 3), mais l'index général.

Je vais essayer indextools

(17 Nov '17, 15:44) joseph-tux joseph-tux's gravatar image

indextools me donne rigoureusement les mêmes réponses que imakeidx avec les mêmes options.

(17 Nov '17, 19:53) joseph-tux joseph-tux's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.