• 软件
  • 如何修改 Ubuntu 20.04 下 RStudio 2023.03.0 Build 386 的中文字体

Ubuntu 20.04 系统,今天更新了 R 4.3.0,在 RStudio-2022.07.1-554 里作图时,RStudio 提示我当前版本的 RStudio 不支持 R 的图形引擎版本 16,于是我把 RStudio 更新到最新的 2023.03.0 Build 386,除了中文字体外,其他方面使用体验上基本没啥差异,但是无论是控制台、.R 文件,还是 R Markdown 编辑器里,中文字体全部变成无衬线字体,实在是太丑陋了,请教下各位,如何把中文字体改为思源宋体?谢谢!

6 天 后

/usr/lib/rstudio/resources/app/resources/themes/css路径下找到了 fonts.css 文件,代码如下:


/* OS-neutral styles */

pre {
   font-family: "#!font#", monospace;
}

.ace_editor, 
.ace_text-layer,
.rstudio-fixed-width-font {
   font-family: "#!font#", monospace !important;
}

/* macOS styles (fall back to Monaco/Menlo) */

.macintosh pre {
   font-family: "#!font#", "Monaco", "Menlo", monospace;
}

.macintosh .ace_editor, 
.macintosh .ace_text-layer,
.macintosh .rstudio-fixed-width-font {
   font-family: "#!font#", "Monaco", "Menlo", monospace !important;
}

/* Linux styles */

.linux pre {
   font-family: "#!font#", "Ubuntu Mono", "Droid Sans Mono", "DejaVu Sans Mono", monospace;
}

.linux .ace_editor, 
.linux .ace_text-layer,
.linux .rstudio-fixed-width-font {
   font-family: "#!font#", "Ubuntu Mono", "Droid Sans Mono", "DejaVu Sans Mono", monospace !important;
}

/* Windows styles */

.windows pre {
   font-family: "#!font#", "Consolas", "Lucida Console", monospace;
}

.windows .ace_editor, 
.windows .ace_text-layer,
.windows .rstudio-fixed-width-font {
   font-family: "#!font#", "Consolas", "Lucida Console", monospace !important;
}

不知道思源字体添加进去,请教下各位,谢谢!

  • ryo 回复了此帖
  • ryo 觉得很赞

    这是一个有些奇怪的问题,因为我记得从我使用 Linux 开始 (2011),各种编程字体的中文 fallback 默认就已经都是无衬线字体了,而且都是开箱即用。即使是自带中文的思源等宽(Source Han Mono)中文部分也是无衬线版本。

    所以可能需要看一下为什么原来的等宽字体对应的中文部分是衬线字体,比如使用 fontconfig 之类的东西指定了 fallback 的顺序。另外,RStudio Desktop 2022.12.x 正式从 Qt Webkit 切换到了 Electron,可能和这个底层变动有关。

      nan.xiao 谢谢帮忙!我看了下 Windows 下的 RStudio 2022.07.1 Build 554 的 fonts.css 文件,里面的内容和 Linux 下基于 Electron 的最新版的 RStudio 是一样的,没有改变。

        chuxinyuan 两边肯定是一致的,所以重点在于,这件事和 RStudio IDE 内部如何工作并没有太大关系,因为应用程序这一层可以控制显示什么字体,但具体如何显示(各种字符真正映射到哪个字体,如何渲染)基本是依赖系统本身提供的机制。所以这件事和你的系统配置以及具体字体的字符集支持更加相关。这也是为什么对这类需求大家会首先推荐会定制 fontconfig 的 fallback 设定,以及有人因为某些程序本身不支持 fallback 机制而去制作缝合字体的原因。

        1 个月 后

        chuxinyuan

        界面语言

        目前只看到只支援英国话和法国话,可以先着手添加咱们的中国话,方便拉低学习高端科技的门槛。

        • /usr/lib/rstudio/resources/app/www/rstudio/30E13B493D2DF93DEC8A16736E3B3F94.cache.js
        • /usr/lib/rstudio/resources/app/resources/schema/user-prefs-schema.json

        应用主题

        目前代码主题并没有中文和咱们中华习俗文化宗教语言,而应用主题设置Sky和Modern并没有任何不一样;何不学习以前谷歌输入法、WPS可以设置应用主题背景甚至框架特色。

        • /usr/lib/rstudio/resources/app/www/rstudio/30E13B493D2DF93DEC8A16736E3B3F94.cache.js
        • /usr/lib/rstudio…es/app/R/modules/SessionThemes.R