IndexMatic peut-il explorer vos notes de fin tout comme vos notes de bas de page ?

Les « notes de fin » s'inscrivent dans un bloc dédié à la fin du document (ou de l'article source). Jusqu'à plus ample informé, IndexMatic ne prend pas en charge ce composant apparu sous l'ère Creative Cloud. En théorie, le bloc final de l'illustration ci-dessus (page 124) restera sous nos radars.

Donc, si vous optez pour l'option contextuelle « Notes bas de p. : Tout » et envoyez une requête du genre /route|mer|marin|trésor|coffre/,

Tentative d'indexer toutes les notes d'un document en plus du texte courant…

le script remplira bien sa mission dans la portée du texte courant et des notes de bas de page, mais rien n'émergera de la page 124, comme on le constate ci-après :

La page 124 (bloc de fin) reste muette !


Cependant — appelons cela un bug ou un heureux accident ! — il existe une porte dérobée au-delà de toute espérance. Supposons que vous commandiez à IndexMatic d'ignorer les blocs ancrés en cochant la modeste petite case que voici :

Forcez IndexMatic à ignorer les blocs ancrés, et reconstruisez votre index…

Ce faisant, vous relancez la requête d'indexation dans les mêmes conditions que précédemment. Il s'ensuit un petit miracle : voilà que de concert avec les notes de bas de page (page 123), les notes de fin (page 124) surgissent dans l'index.

Apparition magique des notes de fin !

Comme vous êtes curieux, vous allez me demander par quelle effarante coïncidence l'abolition des blocs ancrés a pu réveiller des notes de fin qui n'ont de toute évidence aucun rapport avec le Schmilblick. La vérité se cache dans l'intimité d'une ligne de code dont la seule fonction, à l'origine, était d'optimiser le travail d'IndexMatic. Jugez plutôt :

(a) Quand le script est autorisé à ignorer les objets ancrés, il explore les pages via la commande page.textFrames.everyItem(), laquelle offre un sérieux gain d'efficacité en réduisant certains tests critiques. En gros, il devient superflu de vérifier que les objets visités possèdent la qualité de bloc-textes (instances de TextFrame). Par chance, les blocs où résident les notes de fin se comportent essentiellement comme des blocs-textes traditionnels et sont même répertoriés parmi les TextFrames d'une page. Du coup, IndexMatic traverse et inspecte ces corps étrangers comme s'ils étaient des citoyens ordinaires :-)

(b) Par contre, quand le script est sommé de prendre en compte les objets ancrés, il se replie sur une stratégie plus coûteuse, basée sur l'ensemble disparate des allPageItems. Dans ce contexte, il est impératif d'exclure tout composant n'arborant pas l'étendard explicite d'un TextFrame. Le test de validité s'écrit (myObj instanceof TextFrame) et, comme vous l'avez compris, il échoue pour les blocs de fin (EndnoteTextFrames). Tant et si bien que les notes en question demeurent invisibles à IndexMatic :-(

Ce déverrouillage miraculeux n'en reste pas moins un pis-aller. Il ne rend nullement officiel le support des notes de fin, car il se trouve évidemment des situations dans lesquelles la structure du document pourrait ne pas supporter un tel artifice. À commencer par les zones d'indexation comportant des blocs ancrés !