[R] Can fallback font be specified?

Jinsong Zhao jszhao at yeah.net
Sun Mar 26 16:09:50 CEST 2017

Hi there,

I have searched the google, however, I don't find anything that related 
with fallback font in R.

I also try to read the source code of R, however, I am not familiar with 
C and the algorithm about font specific in text/plot.

Thus, I try to specify different fonts for Latin and non-latin 
characters. I try to use expression():

plot(1:10, xlab = "")
mtext(expression(phantom(Hello)*\u4F60\u597D), side = 1, family = "SimSun")
mtext(expression(Hello*phantom(\u4F60\u597D), side = 1, family = "serif")

However, "Hello" in Simsun has a different strwidth with that in serif. 
Thus, there are more space between Hello and \u4F60\u597D than it should be.

The other way is to merge a Latin font, such as Times New Roman with a 
non Latin font, such as SimSun. There are several fontforge scripts for 
the purpose. However, there will cause fontforge core dump. I don't have 
chance to test it.

Will the R core team or someone response to it, if I filed a wishlist in 
R bugzilla?


On 2017/3/23 22:24, Jinsong Zhao wrote:
> Hi there,
> I am a Chinese R user. I hope to plot the following code with Chinese in
> one font family, such as SimHei, but English in another font family,
> such as Times New Roman.
> plot(1:10, type = "n", xlab = "Hello \u4F60\u597D", family = "serif")
> In my case, the system default font is "SimSun", so the above code
> fallback "\u4F60\u597D", which is not in the font Times, to SimSun.
> If I use:
> plot(1:10, type = "n", xlab = "Hello \u4F60\u597D", family = "SimHei")
> Then The "Hello" will in "SimHei" family, it's not as beautiful as Times.
> Is it possible to specify the fallback font family in R? Any hints or
> suggestions?
> Thanks in advance.
> Best,
> Jinsong
>> version
>                _
> platform       x86_64-w64-mingw32
> arch           x86_64
> os             mingw32
> system         x86_64, mingw32
> status
> major          3
> minor          3.3
> year           2017
> month          03
> day            06
> svn rev        72310
> language       R
> version.string R version 3.3.3 (2017-03-06)
> nickname       Another Canoe
>> Sys.getlocale()
> [1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese
> (Simplified)_China.936;LC_MONETARY=Chinese
> (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936

More information about the R-help mailing list