Paul, what I still cannot understand is why Standard Symbols PS doesn't
show all the symbols, if it is supposed to be a replacement of the legacy
Standard Symbols L, see
https://github.com/ArtifexSoftware/urw-base35-fonts/blob/3c0ba3b5687632dfc66526544a4e811fe0ec0cd9/appstream/de.urwpp.StandardSymbolsPS.metainfo.xml#L14-L30
and
https://github.com/ArtifexSoftware/urw-base35-fonts/blob/3c0ba3b5687632dfc66526544a4e811fe0ec0cd9/fontconfig/urw-fallback-specifics.conf#L28
.

Iñaki

On Wed, 13 Mar 2024 at 16:53, Iñaki Ucar <iu...@fedoraproject.org> wrote:

> I see. Peter, you are right about the font that causes the issue. Paul,
> thanks for your insights. I'll bring this to the Fedora font experts to see
> if we can arrive at a more permanent fix. I'll report back with any
> conclusion.
>
> @Martin: Meanwhile, at least you have options. One is to embed the fonts,
> either as Peter suggested or using cairo_pdf instead. Alternatively, Peter
> also has shown how to instruct fontconfig to select other fonts as
> replacements.
>
> Hope it helps,
> Iñaki
>
> On Tue, 12 Mar 2024 at 22:10, Paul Murrell <p...@stat.auckland.ac.nz>
> wrote:
>
>> Hi
>>
>> I don't think this is an R issue (it is separate from the Cairo Symbol
>> font problem).
>>
>> For PDF output, R actually relies on the Symbol font having the Adobe
>> Symbol Encoding (Appendix D of the PDF Reference
>>
>> https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.7old.pdf)
>>
>> and just outputs the font as "Symbol", which relies on it being one of
>> the Standard 14 Fonts ...
>>
>> "These fonts have built-in encodings that are unique to each
>> font."
>>
>> ... and ...
>>
>> "These fonts, or their font metrics and suitable substitution fonts,
>> must be available to the consumer application."
>>
>> In other words, R passes the buck to the viewer to either have access to
>> the Adobe Symbol font or use a substitute that has all of the necessary
>> glyphs (and in that case, presumably to also take care of satisfying the
>> Adobe Symbol Encoding).
>>
>> It is possible for the R user to specify a different font name for the
>> symbol font for PDF output, but that font has to have all of the
>> necessary glyphs and it has to follow the Adobe Symbol Encoding or all
>> bets are off.
>>
>> Paul
>>
>> On 12/03/24 06:59, Iñaki Ucar wrote:
>> > 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/
>> <
>> 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
>> > <mailto: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
>> >     <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 <mailto:
>> R-SIG-Fedora@r-project.org>
>> >      >     >> https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
>> >     <https://stat.ethz.ch/mailman/listinfo/r-sig-fedora>
>> >      >     >>
>> >      >
>> >      >     > [[alternative HTML version deleted]]
>> >      >
>> >      > _______________________________________________
>> >      > R-SIG-Fedora mailing list
>> >      > R-SIG-Fedora@r-project.org <mailto:R-SIG-Fedora@r-project.org>
>> >      > https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
>> >     <https://stat.ethz.ch/mailman/listinfo/r-sig-fedora>
>> >
>> >     _______________________________________________
>> >     R-SIG-Fedora mailing list
>> >     R-SIG-Fedora@r-project.org <mailto:R-SIG-Fedora@r-project.org>
>> >     https://stat.ethz.ch/mailman/listinfo/r-sig-fedora
>> >     <https://stat.ethz.ch/mailman/listinfo/r-sig-fedora>
>> >
>> >
>> >
>> > --
>> > Iñaki Úcar
>>
>> --
>> Dr Paul Murrell (he/him)
>> Te Kura Tatauranga | Department of Statistics
>> Waipapa Taumata Rau | The University of Auckland
>> Private Bag 92019, Auckland 1142, New Zealand
>> 64 9 3737599 x85392
>> p...@stat.auckland.ac.nz
>> www.stat.auckland.ac.nz/~paul/
>>
>>
>
> --
> Iñaki Úcar
>


-- 
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