[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
Mon Mar 30 23:14:33 CEST 2020


Hi

On 30/03/20 11:12 pm, Nicolas Mailhot wrote:
> Le lundi 30 mars 2020 à 15:24 +1300, Paul Murrell a écrit :
>> 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.
> 
> Thanks for looking at it!
> 
> But, really, there is no such thing as a Symbol font on Linux anymore.
> Symbol is pre-unicode thinking. Most modern general-purpose unicode
> fonts will include every codepoint Symbol ever shipped, and fontconfig
> will fallback gracefully when that’s not the case (unless your
> fontconfig integration is broken).

Yep, the "symbol" font is an (outdated) R "plotmath" concept, but one 
that would take a fair bit of surgery to remove.  R plotmath converts 
certain R expressions (in certain contexts) to code points in the Adobe 
Symbol Encoding (ASM), but for cairo-based devices, those are converted 
to UTF8 code points.

> Just use the sans-serif or monospace fontconfig defaults. You don’t
> need Symbol, or OpenSymbol, or any special font setup.

Agreed.  I got reasonable coverage from DejaVu Sans and FreeSerif. 
There are still a number of ASM code points that are not covered though, 
for example, ...

F8EB	E6	# LEFT PAREN TOP	# parenlefttp (CUS)
F8EC	E7	# LEFT PAREN EXTENDER	# parenleftex (CUS)
F8ED	E8	# LEFT PAREN BOTTOM	# parenleftbt (CUS)

Even OpenSymbol is missing a few (though perhaps not very common ones) ...

F8E5	60	# RADICAL EXTENDER	# radicalex (CUS)
F8E6	BD	# VERTICAL ARROW EXTENDER	# arrowvertex (CUS)
F8E7	BE	# HORIZONTAL ARROW EXTENDER	# arrowhorizex (CUS)
F6DA	D2	# REGISTERED SIGN SERIF	# registerserif (CUS)
F6D9	D3	# COPYRIGHT SIGN SERIF	# copyrightserif (CUS)
F6DB	D4	# TRADE MARK SIGN SERIF	# trademarkserif (CUS)
F8E8	E2	# REGISTERED SIGN SANS SERIF	# registersans (CUS)
F8E9	E3	# COPYRIGHT SIGN SANS SERIF	# copyrightsans (CUS)
F8EA	E4	# TRADE MARK SIGN SANS SERIF	# trademarksans (CUS)

> Symbol’s codepoint coverage is laughable by 2020’s UTF-8 standards.

Right, but there are still code points that are apparently not common in 
fonts with a very broad Unicode coverage.

I did find a TrueType font that I could add a Unicode cmap to that gave 
complete coverage pretty much all by itself, but it is not distributable.

> Symbol << Normal Unicode font (DejaVu*) << Special math fonts (STIX2)
> 
> I you do advanced math stuff, you may need a special math font like
> STIX, but that’s lights years more advanced than Symbol, and a general
> purpose font like DejaVu has been shipping a MATH block for several
> years now

Sure.  One way to look at the new 'symbolfamily' argument is that it 
allows us to tell R that the "symbol" font is just a normal font (for 
cairo-based graphics devices).

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/



More information about the R-devel mailing list