[Rd] Plotmath on Fedora 31 broken with with pango >= 1.44 - workarounds?
Paul Murrell
p@u| @end|ng |rom @t@t@@uck|@nd@@c@nz
Tue Mar 31 22:56:29 CEST 2020
On 1/04/20 8:24 am, Martin Maechler wrote:
>>>>>> Paul Murrell
>>>>>> on Tue, 31 Mar 2020 09:41:30 +1300 writes:
>
> > Hi
> > On 30/03/20 10:43 pm, Iñaki Ucar wrote:
> >> On Mon, 30 Mar 2020 at 04:24, Paul Murrell <paul using stat.auckland.ac.nz> wrote:
> >>>
> >>> Hi
> >>>
> >>> I have created an R branch that contains a potential fix ...
> >>>
> >>> https://svn.r-project.org/R/branches/R-symfam/
> >>>
> >>> This allows, for example, ...
> >>>
> >>> cairo_pdf(symbolfamily="OpenSymbol")
> >>>
> >>> ... to specify that the OpenSymbol family should be used as the "symbol"
> >>> font (e.g., for "plotmath") in R.
> >>
> >> Will this be a default on Linux? Or are you planning any mechanism
> >> (env variable, option...) to make it the default? Because, otherwise,
> >> as pango is updated across distributions, R graphics will be "broken"
> >> by default unless the user explicitly calls the graphics device in
> >> that way to set that option, which I would say is uncommon.
>
> > Good question. Currently, for x11() (and png() etc) the default is
> > taken from X11.options(). So it is possible to set this default for a
> > session, or even for an installation via one of the ?Startup mechanisms
> > (e.g., an R_HOME/etc/Rprofile.site file).
>
> > For svg(), cairo_pdf(), and cairo_ps(), the default is hard-coded in the
> > function arguments, but I *think* they are used less as default graphics
> > devices.
>
> > Another option would be to try to detect Fedora and set the default
> > X11.options() differently there. Two problems: I am not sure there is
> > a reliable R code chunk for detecting Fedora (sessionInfo()$running?)
> > let alone Fedora >= 30;
>
> Yes, sessionInfo()$running is sufficient for both *and*
> there's a faster way in latest R versions, as I had the same
> need and found sessionInfo() should be modularized here, and so
> we have the 'osVersion' variable since R 3.6.0
>
> ----------------------------------------
>> osVersion
> [1] "Fedora 30 (Thirty)"
>> find("osVersion")
> [1] "package:utils"
>>
> ----------------------------------------
>
> {it is put into utils at package load time}
Thanks Martin!
But I like Iñaki's suggestion (check Pango version) even more; that
looks like it will be precise (compared to deparsing 'osVersion'), plus
it will nicely transition other Linux distros when they presumably
transition to the newer Pango.
Paul
> > what to set the default to? (just has to be a
> > font with a good Unicode coverage that is pretty much guaranteed to be
> > in a default Fedora install).
>
> > Paul
>
> >> Iñaki
> >>
> >>> This is just a separate branch for now because, while I have tested it
> >>> under Unbuntu 18.04 and Fedora 31, I cannot even build R for Windows
> >>> (right now) or Mac (ever) and I do not want to drop a bomb on R-devel at
> >>> this stage of the release process for R 4.0.0.
> >>>
> >>> The attached file contains at least an outline of steps required to do a
> >>> minimal test if anyone wants to try the fix on Linux.
> >>>
> >>> cc'ing Simon and Jeroen in case they are able to help with checking that
> >>> this builds and works on Mac and/or Windows.
> >>>
> >>> NOTEs:
> >>> - 'symbolfamily' can only be specified when a graphics device is opened,
> >>> and it is then fixed for that device.
> >>> - on Windows, for cairo-based devices, the "symbol" font is still
> >>> hard-coded as "Standard Symbols L"
> >>>
> >>>
> >>> Paul
> >>>
> >>> On 30/03/20 8:15 am, Paul Murrell wrote:
> >>>> Hi
> >>>>
> >>>> Thanks for your input on this Iñaki and Nicolas.
> >>>>
> >>>> I am starting testing an R fix for this problem today.
> >>>>
> >>>> As suggested, the plan is to allow the R user to specify a font family
> >>>> other than "symbol" for plotmath output (or, more generally, in R
> >>>> parlance, for 'font=5' or 'fontface=5') on a Cairo-based graphics device.
> >>>>
> >>>> Paul
> >>>>
> >>>>
> >>>> On 27/03/20 11:30 pm, Iñaki Ucar wrote:
> >>>>> On Wed, 25 Mar 2020 at 12:25, Nicolas Mailhot
> >>>>> <nicolas.mailhot using laposte.net> wrote:
> >>>>>>
>>>>>> <snip>
> >>>>>>
>>>>>> R brought this all on itself by hardcoding a Windows-only “Symbol” font
>>>>>> family name in its default conf. Linux systems are UTF-8 by default for
>>>>>> ~20 years now, they don’t need the forcing of magic font families to
>>>>>> handle symbols not present in the 8-bit legacy Windows encodings.
> >>>>>>
>>>>>> The actual effect of this conf is not the selection of font files with
>>>>>> special and unusual symbols. It is to priorize fonts that match the
>>>>>> "Symbol" magic name. And those fonts are few and crumbling on Linux
>>>>>> systems, because no one has needed to bother with them since Linux
>>>>>> switched to UTF-8 last millenium.
> >>>>>>
>>>>>> Just stop using “Symbol” in R and things will work a lot better.
>>>>>> Alternatively, prepare to maintain the “Symbol” aliasing stack in
>>>>>> fontconfig (and fight with wine for it), because *no* *one* *else*
>>>>>> *cares* about this legacy Windows-specific stuff.
> >>>>>
> >>>>> So, in the light of Nicolas' input (thanks!), I think that font
> >>>>> selection should be fixed upstream in R. I'd be happy to put all this
> >>>>> together in R's bugzilla, but I don't have an account. Could someone
> >>>>> please invite me?
> >>>>>
> >>>>> Iñaki
> >>>>>
> >>>>> ______________________________________________
> >>>>> R-devel using r-project.org mailing list
> >>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>>>>
> >>>
> >>> --
> >>> Dr Paul Murrell
> >>> Department of Statistics
> >>> The University of Auckland
> >>> Private Bag 92019
> >>> Auckland
> >>> New Zealand
> >>> 64 9 3737599 x85392
> >>> paul using stat.auckland.ac.nz
> >>> http://www.stat.auckland.ac.nz/~paul/
> >>
> >>
> >>
>
> > --
> > Dr Paul Murrell
> > Department of Statistics
> > The University of Auckland
> > Private Bag 92019
> > Auckland
> > New Zealand
> > 64 9 3737599 x85392
> > paul using stat.auckland.ac.nz
> > http://www.stat.auckland.ac.nz/~paul/
>
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul using stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/
More information about the R-devel
mailing list