Martin, I wouldn't rule out an R issue yet. Fonts are... tricky. So I'm
cc'ing Paul Murrell here.

I tried several viewers here and I see the following: Chrome, Firefox and
Libreoffice Draw show the symbols; however, evince, okular and xournal++
agree on **not** showing the symbols. **If** there is a bug, the bug would
be in fontconfig, because these ones AFAIK properly delegate on fontconfig,
which is the system-wide component that decides what font substitution
should be made for any given font. However, I see:

$ fc-match Helvetica
NimbusSans-Regular.otf: "Nimbus Sans" "Regular"

which is the right choice. And okular confirms this by showing in a
properties dialog that it is substituting Helvetica with URW's Nimbus Sans
Regular. So why aren't the symbols displayed? My best guess is that this
has something to do with how R encodes such symbols. Paul introduced some
changes to fix similar issues for Cairo devices when Fedora dropped support
for Type 1 fonts, see [1]. Now, I'm no font expert, but it seems to me that
the pdf device may require similar fixes. (And why do xpdf or Firefox show
the glyphs... I have no idea. I guess they do their thing without asking
fontconfig).

[1]
https://blog.r-project.org/2020/04/17/changes-to-symbol-fonts-for-cairo-graphics-devices/

Peter, as an aside, note that cairo_pdf embeds the fonts by default.

Best,
Iñaki

On Mon, 11 Mar 2024 at 15:31, <pst...@gmail.com> wrote:

> Hi Martin and Tim,
>
> I also have this bug. Though I think not necessarily with all the same
> fonts as Martin.
>
> Using Martin's code:
>
> https://imgur.com/a/ILUoe3H
>
> Fedora 39, Evince 45.0
>
> It's a bug with Evince. I think. I think it's substituting in a font
> set that doesn't have all the required symbols. I think it should be
> possible to install the required fonts, but I haven't found a solution
> that way, yet.
>
> Nevertheless, the following should work, and may be a better solution
> anyway, given that embedding the fonts is probably more cross-
> platform/viewer friendly:
>
>
> You can embed the fonts if you have Ghostscript installed (I think it
> comes with Fedora already(?) if not then:
>
> sudo dnf install ghostscript
>
> )
>
>
> You can then use the embedFonts() function in R:
>
> (pdfil <- paste0("plotmath-example_R",
>                  with(R.version, paste0(major, sub("[.]", "", minor))),
> ".pdf"))
>
> pdf(pdfil)
> example(plotmath); mtext(R.version.string)
> dev.off()
>
> # Use embedFonts to embed the fonts in the PDF
> embedFonts(file = pdfil, outfile = paste0("embedded-example", pdfil),
> options = "-dPDFSETTINGS=/prepress")
>
>
> if(interactive()) {
>   system(paste("evince", paste0("embedded-example", pdfil), "&"))
> }
>
>
>
> Or you can do it in the terminal:
>
>
> gs -dNOPAUSE -dBATCH -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -
> dEmbedAllFonts=true -sOutputFile=plotmath-example-output_embedded.pdf -
> f plotmath-example_R432.pdf
>
>
> Compare:
>
>
> Embedded:
>
> ❯ pdffonts plotmath-example-output_embedded.pdf
> name                   type     encoding emb sub uni object ID
> ---------------------- -------- -------- --- --- --- ------ ---
> KHEPSB+Helvetica       Type 1C  Custom   yes yes no      10   0
> WNPVSJ+Symbol          Type 1C  Custom   yes yes no      12   0
> MQBKOK+Helvetica-Bold  Type 1C  WinAnsi  yes yes no      20   0
>
>
> Original:
>
> ❯ pdffonts plotmath-example_R432.pdf
> name                   type     encoding emb sub uni object ID
> ---------------------- -------- -------- --- --- --- ------ ---
> Helvetica              Type 1   Custom   no  no  no      16  0
> Helvetica-Bold         Type 1   Custom   no  no  no      17  0
> Symbol                 Type 1   Symbol   no  no  no      18  0
>
>
> I hope this works for you. Like I said, I *think* it's a problem with
> Evince so it's probably better to file a bug report with them, but I
> also think embedding fonts isn't such a bad idea anyway - you'll know
> the output will display as intended regardless of the viewer on the
> user's system. It does lead to a larger file-size, but I think these
> days we can live with that.
>
> Thanks,
> Peter
>
>
>
>
> On Mon, 2024-03-11 at 14:15 +0100, Martin Maechler wrote:
> > > > > > > Tim Taylor
> > > > > > >     on Mon, 11 Mar 2024 11:42:35 +0000 writes:
> >
> >     > Hi Martin
> >     > Probably not the answer you're looking for but on the latest
> > Fedora 39 (workstation edition) both locally, and on a freshly
> > installed VM (with just R-core installed), all fonts render correctly
> > for me in evince.
> >
> >     > $ evince --version
> >     > GNOME Document Viewer 45.0
> >
> >     > $ R --version
> >     > R version 4.3.3 (2024-02-29) -- "Angel Food Cake"
> >     > Copyright (C) 2024 The R Foundation for Statistical Computing
> >     > Platform: x86_64-redhat-linux-gnu (64-bit)
> >
> >     > It may be worth sharing more details about your installation
> > (e.g. Fedora version) to see if anyone has any ideas.
> >
> >     > Tim
> >
> > Thank you, Tim.
> >
> >
> > Fedora is 38 :
> >
> > $ lsb_release -a
> > LSB Version:  :core-5.0-amd64:core-5.0-noarch:cxx-5.0-amd64:cxx-
> > 5.0-noarch:desktop-5.0-amd64:desktop-5.0-noarch:languages-5.0-
> > amd64:languages-5.0-noarch:printing-5.0-amd64:printing-5.0-noarch
> > Distributor ID:       Fedora
> > Description:  Fedora release 38 (Thirty Eight)
> > Release:      38
> > Codename:     ThirtyEight
> >
> > $ evince --version
> > GNOME Document Viewer 44.3
> >
> > R version does not matter at all.
> > Same phenomenon in several versions of R I have installed
> > simultaneously (from source).
> > As I mentioned, I'm slightly misusing the list for non-R problem
> > that I encounter a lot with R  {because I like to use
> > "plotmath"}, so I apologize in advance.
> >
> > Maybe it's rather a matter of fonts installed in
> > /usr/share/fonts/ ??
> >
> > Martin
> >
> >     > On Mon, 11 Mar 2024, at 10:51 AM, Martin Maechler wrote:
> >     >> This problem has bugged me for several years now,
> >     >> and our own IT staff has tried a few things, but then never
> >     >> cared enough to persist fixing it.
> >     >>
> >     >> It *is* a bug in evince, the standard pdf viewer on Fedora and
> >     >> IIUC also quite few other Linux distributions, and
> >     >> *not* a bug in R;  hence I am asking for help/hints here.
> >     >>
> >     >> A very simple example:
> >     >>
> >     >> --------------------------------------------------------------
> > -----------------
> >     >>
> >     >> (pdfil <- paste0("plotmath-example_R",
> >     >> with(R.version, paste0(major, sub("[.]", "", minor))),
> > ".pdf"))
> >     >> ## "plomath-example_R433.pdf"
> >     >>
> >     >> pdf(pdfil)
> >     >> example(plotmath); mtext(R.version.string)
> >     >> dev.off()
> >     >>
> >     >> if(interactive())
> >     >> system(paste("evince", pdfil, "&"))
> >     >>
> >     >> --------------------------------------------------------------
> > -----------------
> >     >>
> >     >> The pdf contains 4 pages, and in all of them *some* of the
> > math
> >     >> symbols are replaced by open rectangles -- because evince does
> >     >> not find the fonts it should.
> >     >>
> >     >> E.g.
> >     >> - page 1: \pi is properly shown,  \phi not
> >     >> - page 2: all greek letters,  \theta, \xi, \eta  are *not*
> > shown
> >     >> ...
> >     >>
> >     >> Simply typing
> >     >>
> >     >> example(plotmath)
> >     >>
> >     >> in the R console will show you everything as it should be but
> > is
> >     >> not for us, using evince.
> >     >>
> >     >> However, *everything* is rendered correctly, if I use very old
> >     >> 'xpdf' {which you may have to install
> >     >>
> >     >> ## OTOH: This always work fine with the very old  'xpdf' :
> >     >> system(paste("xpdf", pdfil, "&"))
> >     >>
> >     >> So the fonts *are* somewhere on my machine, but evince does
> > not
> >     >> find them;
> >     >>
> >     >> How should our IT people fix this?
> >     >>
> >     >> IIRC they did install the Zapf Dingbats fonts -- which then
> > are
> >     >> found by xpdf but not by evince ?
> >     >>
> >     >>
> >     >> Thank you in advance,
> >     >> Martin
> >     >>
> >     >> _______________________________________________
> >     >> R-SIG-Fedora mailing list
> >     >> R-SIG-Fedora@r-project.org
> >     >> https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
> >     >>
> >
> >     > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-SIG-Fedora mailing list
> > R-SIG-Fedora@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
>
> _______________________________________________
> R-SIG-Fedora mailing list
> R-SIG-Fedora@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
>


-- 
Iñaki Úcar

        [[alternative HTML version deleted]]

_______________________________________________
R-SIG-Fedora mailing list
R-SIG-Fedora@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-fedora

Reply via email to