• R语言
  • Ubuntu 下 R Markdown 生成 PDF 文档里部分中文字符的乱码问题

chuxinyuan 更改标题为「Ubuntu 下 R Markdown 生成 PDF 文档里部分中文字符的乱码问题

chuxinyuan 哪位朋友如此神通广大!连这天知地知的事儿都知道了...

这事儿我不想提,说多了都是泪。

    dapengde 哈哈,这事折腾的,真是春蚕到死丝方尽,蜡炬成灰了泪都没干。没想到出版社把好好的 PDF 又用 Word 重新敲了一遍,这一重录,录出一大批错误来。我都惊呆了,这不是要作者校对起来看瞎眼吗。

      dapengde 哈哈哈,隔着两块屏幕和其间的千山万水,都能感觉到你这心里阴影面积之大啊。

      建议写点博文吐吐槽,别憋坏了自己。上次你说被读者们骂得不想写了,这挺可惜的。我们有些同胞像河豚,轻轻一碰就鼓起来了,本能反应而已。躲开工众号,更新博客应该可以避开大部分鼓鼓的他们。

        tctcab 对,甭管原始文档格式是啥,作者给了终稿后出版社再全部重录一遍。大鹏都要吐血了。

          tctcab yihui LaTeX 出版社也不是完全不用,而是据说找个会 LaTeX 排版的太难,而且会很慢。这是人家的事,我就不越俎代庖了。

          说句公道话,这书的重录错误,已经比《学 R》少多了。当年出版社对《学 R》是用 Adobe Illustrator 重新录排的,活活排了 6 个月,反复沟通无数次,错误百出,按了葫芦起了瓢,根本看不到希望,最后完全弃用,拿半年前我做的 pdf 直接印刷去了。

          Liechi 心态不同了,岁数也大了,已经没那么多话要写在博客上。

          4 个月 后

          CyrusYip 今天发现 Ubuntu 20.04.3 LTS 即使设置 fontset = ubuntu仍然会报错,报错内容如下:

          ! Package fontspec Error: The font "AR PL KaitiM GB" cannot be found.

          后来在这里的第 9942 行代码发现了真相。代码如下:

          \setCJKmainfont { Noto~Serif~CJK~SC } [ ItalicFont = AR~PL~KaitiM~GB ]

          参考debian添加中文支持,果断通过安装字体解决问题:

          sudo apt install fonts-arphic-gkai00mp

          dapengde 关于之前我建议的把 Windows 字体复制到 Ubuntu 下或许是一个愚蠢的建议,我暂时收回这个建议。目前 Linux 系统下 fandol 字体仍然是 ctex 的默认字体,虽然官方也有意将默认字体换为思源字体,但是并不是每个 Linux 发行版都能默认载入思源字体,因此暂时也只能维持现状了。

          但是可喜的是,我发现在显式地设置 fontset = ubuntu后,ctex 就会使用 Ubuntu 系统自带的思源宋体(Noto Serif CJK SC),但同时也得把文鼎字体(AR PL KaitiM GB) 安上。

          另,要是 @yihui 能为 Ubuntu 用户开个小灶,当系统缺少文鼎字体时自动安装就更好了(要求是不是有点多了,呵呵)。

            chuxinyuan 需要用 sudo 的东西开不了小灶。TinyTeX 安装在不需要管理员权限的文件夹里,所以它可以自动安装缺失的 LaTeX 包,但它无法自动安装系统包。