>>>>> pstils  
>>>>>     on Tue, 12 Mar 2024 17:50:46 +0100 writes:

> HI Iñaki,

> That's interesting.

> I may be wrong but I think it's the Symbol font that's got the
> substitution bug, not Helvetica.

> ❯ fc-match "Symbol"
> StandardSymbolsPS.t1: "Standard Symbols PS" "Regular"

> Is what I get, but then in the Evince properties it's telling me that
> it's substituting Symbol with "Noto Sans Regular", despite the Standard
> Symbols PS font being installed.


> When I make a ~/.font.config file (I didn't have one already) with the
> contents:

> <?xml version="1.0"?>
> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
> <fontconfig>

>   <match target="pattern">
>     <test name="family" qual="any" >
>       <string>Symbol</string>
>     </test>
>     <edit name="family" mode="assign" binding="same">
>       <string>OpenSymbol</string>
>     </edit>
>   </match>

> </fontconfig>

> (OpenSymbol is in libreoffice-opensymbol-fonts)

Indeed --- thank you, Peter !!

Once I found out to use
  ~/.fonts.conf   instead of
  ~/.font.config

indeed this instructs evince and okular to  "replace"
Symbol by OpenSymbol   and everything works fine.

Searching a bit, notably starting to read
    https://www.linux.org/docs/man5/fonts-conf.html

lead me to look into   /etc/fonts/fonts.conf
and that indeed contains a few such substitutions, e.g.,

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
<match target="pattern">
        <test qual="any" name="family">
                <string>sans serif</string>
        </test>
        <edit name="family" mode="assign" binding="same">
                <string>sans-serif</string>
        </edit>
</match>


... so I guess a more global "fix" / workaround for a few years would be to
add the above   s/Symbol/OpenSymbol/  replacement also to the
fedora  fontconfig package
(I see I am using  2.14.2-2.fc38 currently).

Thank you for your help!
Martin



 


> Then evince shows me the symbols. (Whether they're the correct ones or
> not, I don't know! They look right to me, but I'm a biologist, so...).


> And now:

> ❯ fc-match "Symbol"
> opens___.ttf: "OpenSymbol" "Regular"


> So, I think that's another option for you, Martin. But I think
> embedding might still be the better choice, anyway.

> I now don't think the bug is with Evince. I suspect something'stelling
> Evince (and Okular) to use the wrong font, but you can force a more
> appropriate substitution.


> Do you think it could be this?:

> https://bugzilla.redhat.com/show_bug.cgi?id=2088665


> Thanks,
> Peter





> On Mon, 2024-03-11 at 18:59 +0100, 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 severalviewers 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 theirthing 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
> > > >  >> 
> > > >

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

Reply via email to