-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error case, missing digits #163
Comments
here are additional examples : |
(Managing editor of that overlay journal here, and the one responsible for the style file 👋 ) Note that copying them from a PDF viewer works fine -- how do you extract these numbers? |
It seems you're using Xpdf's |
Aha! It seems that the |
@kermitt2 Any news on this? Is there anything I can help? This is a big issue for us, so I would love to see this resolved. |
@clason If poppler implements a fork of xpdf3, might be tough to just integrate into it or to give users the ability to plug it in. Are you familiar with C++ programming? I wonder whether xpdf 4.05 could provide a solution, instead PS: I'm trying to slowly helping to maintain this package, however the time is limited and I'm not a c++ developer, so any help would be mostly appreciated ;-) |
Hard to tell; I just looked at the CLI tools, not the underlying library. (And I tested with xpdf 4.05, that makes no difference.) I'm not a C++ programmer myself. Maybe it would be possible to allow people to provide a manually converted |
(If that sweetens the deal: poppler is actually hosted as a public repository so is easier to work with and doesn't need to be vendored.) |
Hello ! These digit characters correspond to font glyphs that are not mapped correctly to unicode. So what needs to be done is to examine the PDF, identify the font used for these digit characters and look at the problematic unicode mapping for these "digit" values (it might be problematic or missing ToUnicode CMap for this font). We could look why those values were correctly mapped in Xpdf version 3 and not any more in version 4.0 (there are extra mapping and heuristics for this in xpdf). Moving back to a non-maintained 10 years old version of Xpdf is not a solution ;) @clason This will be certainly fixed in pdfalto at some point, but I am wondering if the font used for these digits in your latex package is something particular and could be replace by a more standard font ? |
I don't think this is a regression but part of the better support that the poppler fork has received. And for the record: the suggestion was never to revert to Xpdf 3. (I will take your word for it that Xpdf 4 is much better maintained and respondent to issues. Personally, I'm a bit concerned about the commercial entity behind Xpdf and its motivation for open source development -- it would probably also affect the possibility of backporting patches from poppler. But it's your project, and I certainly understand the effort argument.)
This is a standard font (linux libertine), and changing it is unfortunately not an option for us (as it's part of the visual identity and chosen deliberately for typographic reasons). Switching now wouldn't help with the already published articles, too. Again, the issue is the use of oldstyle figures, not the font itself. I am more than willing to help dig into the font mappings, but given that poppler extracts them correctly and Xpdf doesn't indicates that this is something the latter should backport from the former. I am not sufficiently familiar with either project (or C++ in general) to do that, though -- someone else would have to take care of that part. The CharCodeToUnicode.cc has diverged quite a bit... |
A solution is explained here: https://forum.xpdfreader.com/viewtopic.php?p=46796#p46796 |
Thanks to the comment I posted last week, I think I might have found a solution which does not require any modification in pdfalto, @clason could you please check the Grobid branch https://github.com/kermitt2/grobid/tree/update-pdfalto-recognition ? |
How would I do that? Do you have a running instance somewhere? (Otherwise it'd just be simpler for you to download the file in the top comment and check if extraction works.) |
Ah, I found the pre-built binary. Yes, that seems to extract the numbers correctly from the linked file (where (Curiously, |
@clason The fix was made into Grobid, by adding the missing mapping to a non-standard adobe font name. You can test it here: https://huggingface.co/spaces/lfoppiano/grobid-dev In these PDF there are also ff ligatures that were not mapped correctly and tt (but I did not find the correct font mapping). |
That doesn't do anything for me? (Weird that calling the bundled |
I don't understand. You might need to select TEI -> Process Fulltext Document and upload the PDF file: See the reference markers are now visible (e.g.
Bundled pdfalto in grobid? If you use the branch I gave you, it will pick up the updated configuration file. If you now update the master branch of pdfalto and rebuild it, it should also work. Make sure it included the commit 8f38bb1 |
Thank you. I don't know the Grobid stack; I'm just working with pdf->text extraction (which failed previously). This seems to work, as in the references appear in the exported TEI. There's still some errors, though; it seems for example that the
Yes, there's pre-built |
This seems only to apply to older PDFs from arXiv such as the one in the first comments; current (late 2022+) PDFs seem to work fine. |
Yes, there seems to be some issues with certain characters. I need to investigate a bit more. Thanks for checking that. |
Seems only to be (Ligatures are annoying but don't break the number format, so less problematic.) |
Yes, but not everywhere. The DOI, for example is correct. After inspecting further, it seems that 8 is mapped to a different font name Most of them should be fixed but since the amount of non-standard fonts is not so predictable there might be a few other missing characters somewhere. |
@flydutch could you please remind what hack was done with poppler to solve most of these issues? |
Yes, because that's a different font. It's only oldstyle figures in Linux Libertine (pre-2022).
Yeah, sorry about that. (There's also math mode ( The good news is that "modern" PDFs seem to work fine, so this only affects a finite set. |
I cannot find which font name is. @clason If you could provide me the pair unicode -> font name, I'm happy to add them in the mapping right away. I see there are a lot of formula's characters that might also not be mapped (e.g. the coursive l in formulas). For example I had to map:
|
Does this help? (The font name for math should be |
I did cover some cases, probably I miss the || || parallel but I cannot find the name that should be used. I created a branch called |
The |
Ah, the 8 was fixed since this afternoon ^_^
I was trying to improve the formulas, which are now covered in most part, but some small characters are missing, still. As soon as I develop a method to recognise and systematize this problems we should be able to scale it and speed it up. |
Oooh, |
(I am by no means a PDF expert) I have seen that in poppler there is a |
At the current stage, after adding sufficient mappings, the output from pdfalto looks better than what can be obtained by poppler. However I'm not sure they won't break other documents. |
The ALTO file resulting from the attached PDF does not include digits !
Normal xpdf library is working fine.
1909.13722.pdf
The text was updated successfully, but these errors were encountered: