sillsdev / ptx2pdf

XeTeX based macro package for typesetting USFM formatted (Paratext output) scripture files
23 stars 8 forks source link

Filter glossary should pull in chained glossary entries. #633

Open davidg-sil opened 2 years ago

davidg-sil commented 2 years ago

When 'filter glossary...' is selected, and there are glossary entries that refers to other entries (e.g. \k Abram\k* see \w Abraham\w*) then the glossary can become incomplete unless both words are included in the biblical text.

The code should ideally build a list of not-seen-yet \w ....\w* entries and add the new entries (or repeat the filtering process) until there are no more changes.

In case anyone else is suffering this problem, putting the \w inside a \rem seems to be a work-around at the moment (don't forget to end the \rem with a printable paragraph style!):

\rem Glossary should also include \w Abraham\w*
\p
\v 27 Now these are the generations of Terah: Terah begat \w Abram\w*, Nahor, and
Haran; and Haran begat \w Lot\w*.
viverechristus commented 9 months ago

I just ran into this problem today, checking the filtered glossary that will go with our (newly consultant-approved) Acts. We won't go to press for another month, so before I spend time finding all the chained glossary entries, can anyone tell me whether this enhancement is in the pipeline?

davidg-sil commented 9 months ago

Not so far, as far as I know, but maybe @markpenny can comment on how hard it'd be?

davidg-sil commented 2 months ago

Those who really need this working before the UI work has been done will need to get a test build and edit a line of python, in texmodel.py:

        if (self.dict["document/glossarydepth"]):
            count=self.dict["document/glossarydepth"]# How deep do we follow the chain of A includes B includes C?
        else:
            count=0 # Default is not to go deeper <<< EDIT THIS NUMBER

count=1 means if Abram and Ruth are in the text and the Abram entry says See \w Abraham\w*, and Ruth's entry mentions \w Boaz\w* and \w David\w* then the glossary will include the entries for Abram, Abraham, Boaz, David and Ruth. count=2 will also pull in entries referenced by the entries for Abraham, Boaz, and David, leading to a more complete glossary and possibly far more pages being used.