Subject: bug#73530: [PATCH] Add imenu index function for Djvu files in doc-view

From: "Tassilo Horn" <[email-masked]>
Date: Thu, 03 Oct 2024 14:11:32 +0200

Hi again, 

of course we should do the nameddest thing in another patch. No reason to put this one on hold.

Thanks, 
  Tassilo 

Am Do, 3. Okt 2024, um 13:10, schrieb Visuwesh:
> [வியாழன் அக்டோபர் 03, 2024] Tassilo Horn wrote:
>
>> Tassilo Horn <[email-masked]> writes:
>>
>> Hi again,
>>
>>>> The PDF generated by LaTeX can have a wildly different outline than
>>>> matched by doc-view's regexp:
>>>>
>>>>     % mutool show test.pdf outline
>>>>     |	"Text"	#nameddest=section.1
>>>>     |	"Annotations"	#nameddest=section.2
>>>>
>>>> Compare it with:
>>>>
>>>>     % mutool show atkins_physical_chemistry.pdf outline
>>>>     |	"Cover"	#page=1&view=Fit
>>>>     |	"PREFACE"	#page=7&view=Fit
>>>>     |	"USING THE BOOK"	#page=8&view=Fit
>>>
>>> Ok, I see.  All my LaTeX PDFs have #nameddest=section.x values instead
>>> of #page=X values, so that's the reason they don't work.  It would be
>>> good if we could mention that it won't work because there are no page
>>> references in the outline in the error message.
>>
>> Would you mind doing that in a new version of the patch?
>>
>> And I wonder if it mutool could spit out page references in addition to
>> the nameddest references.  Do you know if there's a technical limitation
>> or if it's just not implemented?
>
> Unfortunately, I have no idea.  I actually don't use doc-view for PDF
> files, only for docx and DjVu.
>
>> Sadly, their communication platform seems to be Discord where I didn't
>> want to register an account to ask.  They seem to use the ghostscript
>> bugzilla, so one could create a ticket there...  If nobody else here in
>> the discussion already has an account there, I wouldn't mind creating
>> ony myself and asking.
>
> If I cannot find anything in the man page, I can ask in their Discord.
> I do have an account lying around, I can at least put it to good use.
>
> Can this be done in another patch later on?  I am not sure if I will get
> the time soon to follow up on this part of the problem.  It would be
> cleaner if we open another bug report to track this too.
>
>>>>> For DjVu, my sample size is 1, and that's a presentation, so at least
>>>>> here I'm not sure if there should be an index available...
>>>>
>>>> I will send the link to the DjVu file that I wrote the feature for
>>>> off-list.  I will send a link to a PDF file too.
>>>
>>> Thanks, will try with those two files.
>>
>> I did so now and it is blazingly fast for those 80+mb PDF/DjVu files
>> even on my almost 10 years old laptop, so I'd say your simpler approach
>> is the right choice.
>>
>>>> On this note, should we use doc-view-pdfdraw-program in place of
>>>> mutool in doc-view--pdf-outline?
>>>
>>> Yes, but only if the older names pdfdraw and mudraw already had the
>>> "show <file> outline" feature.
>>
>> I revert the "but only if" part.  If mupdf is old and comes with, e.g.,
>> the pdfdraw executable, chances are almost zero that mutool is
>> installed, too.  And if it is, then we should prefer it anywhere.  So I
>> think the way to go is to (executable-find "mutool") in
>> doc-view-pdfdraw-program first so that it takes precedence and use
>> doc-view-pdfdraw-program in doc-view--pdf-outline.
>
> OK, I will post a patch if you're okay with opening another bug report
> for the nameddest PDF thingy.
>
>>>>> Well, I actually have no strong opinion here.  Technically, I like
>>>>> your approach better because of its simplicity.  I would like to test
>>>>> with some larger documents to see how long index building takes,
>>>>> though.
>>>>
>>>> I tried the function with a large PDF file:
>>>
>>> Will try with the large two you've linked later.
>>
>> As said above, it's more than fast enough, so let's take your approach.
>
> Great, thank you for taking the time to test the patch.