[Résolu][Writer] Index lexicaux multiples

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

[Résolu][Writer] Index lexicaux multiples

Message par Hubert Lambert »

Bonjour,

Si Writer permet de créer plusieurs index personnalisés par document, il n'autorise en revanche qu'un seul et unique index lexical (le problème fait l'objet d'une déjà ancienne demande d'amélioration).
Il n'est pas rare pourtant que plusieurs index lexicaux soient souhaitables, le cas typique étant un index des noms de personnes et un index des noms de lieux.
Il existe plusieurs contournements possibles : voir ici (cf. "problèmes connus"), ici ou encore ici, mais qui tous présentent des inconvénients.
Ayant eu à répondre à une demande similaire pour une connaissance, je vous propose une autre option, qui tente de coller au plus près du fonctionnement naturel de Writer.

Préalable
Le fichier zip ci-joint doit être décompressé dans le répertoire /Scripts/python du profil utilisateur (sous Windows par exemple : C:\Users\<nom utilisateur>\AppData\Roaming\Open(ou)LibreOffice\4\user\Scripts\python).

Fonctionnement
En deux mots, la macro convertit un index personnel en index lexical personnel.
Pour créer plusieurs index lexicaux, il suffira donc de :
- définir un index personnel pour chaque thème ;
- insérer les entrées d'index de manière classique ;
- placer le curseur au point d'insertion souhaité et exécuter la macro.

Exécution de la macro
La macro est accessible via le menu Outils -> Macros -> Exécuter la macro -> Mes macros -> multi_lex_index -> insertindex. Un petit menu s'affiche permettant de choisir l'index à insérer :
multi_lex_index.png
Si l'index existe, il sera possible de le mettre à jour ou de le supprimer. La macro peut évidemment être affectée à un élément de menu ou à un raccourci clavier...
Les index sont créés avec, par défaut, le nom de l'index comme titre et les styles d'index prédéfinis. Si le titre est modifié par l'utilisateur, le changement sera préservé lors d'une mise à jour.

J'ai fait quelques tests sur des documents de maximum 200 pages. J'ignore ce que peut être la vitesse d'exécution sur des documents nettement plus gros.
Et, bien sûr, merci de tester sur une copie de votre précieux document :wink: .

Pour ceux qui voudraient tester sans installer les fichiers, je joins un document qui les embarquent.
Cordialement.
 Ajout : 16.7.2018
La prise en compte des clés a limité la liberté de modifier directement le style de l'index. Je propose donc une nouvelle version qui permet de choisir un style personnel pour chaque niveau. 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Hubert Lambert le 30 déc. 2019 20:12, modifié 4 fois.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
LibreOfficiant
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 03 janv. 2017 13:54

Re: [Writer] Index lexicaux mutiples

Message par LibreOfficiant »

Bonjour,

Compliments pour cet article :D, comme pour cette macro !
Chapeau bas :bravo:
libO 5.4 64bit, (PortableApps: libO 6.0, aOO 4.1, OOo 3.2 32bit) sur Win7/Win10 x64 | aOO 4.1.x et libO 5.4.x sur Mint 18 Sarah et OSX 10.9 Mavericks x64
Boîte à Outils Python: Geany, PyCharm et bien sûr APSO, MRI..
https://wiki.documentfoundation.org/Mac ... n_Guide/fr
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Writer] Index lexicaux mutiples

Message par Hubert Lambert »

Un grand merci :D .
Je profite des tes encouragements pour signaler la mise à jour de la macro avec les améliorations suivantes :
- prise en compte d'une éventuelle personnalisation dans la numérotation des pages;
- possibilité d'utiliser des clés en écrivant l'entrée d'index sous la forme "Clé 1|Entrée" (le nombre de clés peut être supérieur, il suffit d'utiliser de la même manière le séparateur "|");
- possibilité d'insérer les séparateurs alphabétiques.
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 6069
Inscription : 02 janv. 2009 23:56

Re: [Writer] Index lexicaux mutiples

Message par Jean-Louis Cadeillan »

Bonsoir,
Désolé, je ne suis pas parvenu à faire fonctionner la macro depuis ton document multi index.odt, que ce soit sous Libo :
HubertLambert_20180708_MessageLibO.jpg
ou sous OOo :
HubertLambert_20180708_MessageOOo.jpg
J'ai essayé de la lancer par le bouton, ou en lancement direct, en créant ou non d'autres entrées (j'ai vu que les deux index lexicaux étaient disponibles), en recréant ou non les index du même nom... toujours le même message. Peut-être est-ce ma configuration Python qui ne convient pas...
Bien cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 24.2.7.2 (x64 et Java 1.8.0_461) et AOO 4.1.15 (et Java x32 1.8.0_431), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Writer] Index lexicaux mutiples

Message par Hubert Lambert »

Bonjour Jean-Louis,

Grand merci pour ton message.
C'est le coup classique : j'ai oublié de changé l'adresse du dialogue après avoir incorporé le tout dans le document. Et je ne m'en rends pas compte puisque j'ai toujours aussi le dialogue à l'autre adresse... :roll: .
C'est corrigé.
Bien cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 6069
Inscription : 02 janv. 2009 23:56

Re: [Writer] Index lexicaux mutiples

Message par Jean-Louis Cadeillan »

Bonjour et merci pour la réactivité !
Ça marche impeccable :super:
Je remarque que les entrées hiérarchisées ne sont pas surlignées en gris dans le texte, ce qui est normal car le mot "Italie|Florence" n'existe pas par lui-même dans le texte... mais si tu vois une solution pour mettre en évidence dans le texte les entrées hiérarchisées, je suis preneur.
Bien cordialement,
Jean-Louis
LibO 24.2.7.2 (x64 et Java 1.8.0_461) et AOO 4.1.15 (et Java x32 1.8.0_431), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Writer] Index lexicaux mutiples

Message par Hubert Lambert »

Jean-Louis a écrit :Je remarque que les entrées hiérarchisées ne sont pas surlignées en gris dans le texte, ce qui est normal car le mot "Italie|Florence" n'existe pas par lui-même dans le texte... mais si tu vois une solution pour mettre en évidence dans le texte les entrées hiérarchisées, je suis preneur.
Je ne pense pas que cela soit possible, car le programme fonctionne de cette manière par défaut : si l'entrée correspond exactement au texte, tout le mot est surligné, mais si elle diffère quelque peu, alors seul le début du texte est surligné en gris (par exemple si le texte mentionne un "Monsieur Dupont" et que tu veux le référer comme "Dupont, Marcel").
Cette façon de gérer les clés n'est pas optimale, notamment à cause des risques d'erreurs de saisie. Donc je suis aussi preneur pour une meilleure solution ;-) .
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
FrViPofm
Fraîchement OOthentifié
Messages : 1
Inscription : 19 sept. 2020 07:28

Re: [Résolu][Writer] Index lexicaux multiples

Message par FrViPofm »

Bonjour et merci pour ce script qui répond à de nombreux besoins.

Malheureusement, je ne parviens pas à le faire fonctionner.
Après téléchargement et dézippage du script (version 16/7/2018) dans ~/.config/libreoffice/4/user/Scripts/python j'ai aussi téléchargé le fichier d'exemple. La macro apparaît bien dans Outil > Macro > Exécuter la macro > Mes macros > multi_lex_index mais rien ne se produit : pas de dialogue...

J'ai inséré dans le fichier d'exemple un index personnalisé "personnes" pour essayer une mise à jour... Rien...
Mais via Alternative Script Organizer for Python je parviens à insérer un index lexical dans l'index personnalisé existant.

Si l'auteur de ce script avait la bonté de voir à une mise à jour de son œuvre...

Merci d'avance
--
Version: 7.3.0.3 / LibreOffice Community
Build ID: 30(Build:3)
CPU threads: 4; OS: Linux 5.13; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Ubuntu package version: 1:7.3.0~rc3-0ubuntu0.20.04.1~lo1
Calc: threaded
OpenOffice 2.3 sous Ubuntu Gutsy
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9878
Inscription : 28 août 2010 08:45

Re: [Résolu][Writer] Index lexicaux multiples

Message par micmac »

Bonjour,

Nous nous devons de verrouiller ce fil de discussion. Nous vous rappelons les règles de ce forum et notamment la règle n° 7
Un sujet = le problème d'une seule personne

Comme vous avez pu le lire, ce sujet est désormais résolu. Si vous avez également ce problème, c'est que ce dernier est différent. Votre configuration n'est peut être pas la même que celle de l'auteur de ce fil.

Dans ce cas et pour des raisons de lisibilité sur ce forum, nous vous demandons de créer une nouvelle question en rappelant que vous avez le même problème que dans ce fil (avec un lien vers vers celui-ci).
FrViPofm a écrit :Version: 7.3.0.3 / LibreOffice Community
Build ID: 30(Build:3)
CPU threads: 4; OS: Linux 5.13; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Ubuntu package version: 1:7.3.0~rc3-0ubuntu0.20.04.1~lo1
Calc: threaded
Dans votre signature il y a écrit :OpenOffice 2.3 sous Ubuntu Gutsy
Merci de mettre à jour votre signature.
Accès direct à votre signature pour la corriger.

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS