引子

在lilypond中,对于中文的支持好像并不是很好。我不太清楚他们选择字体的逻辑,文档全英文实在是太折磨我了。

我在命令行下运行:

lilypond -l debug 123.ly

运行之后,会有详细的运行日志。我仔细看了一下关于字体的部分。中文字体它会自动帮我选择一个叫作手札体的字体,当我手动移除这个字体之后,它又会选择另一个叫作翩翩字的字体。我在另一台mac上也尝试了一下,自动选择的是一个日文字体,后缀是w4的。

所以据我猜测,这个中文字体的选择是随机的。

接下来在vscode下,利用插件来运行lilypond。结果还是差不多,但是字体的选择上居然还会有所不同,真的是让我非常费解……而且生成出来的pdf在vscode自带的pdf浏览器上,无法显示出中文。这就很神奇,就是中文显示不出来,其他的都有,而且中文那一块还可以点击。在finder中打开pdf源文件的时候,中文又会显露出来。

不过都是小问题,只要中文可以生成出来就行。

lyluatex

使用lyluatex可以在LaTeX中调用lilypond,但是我在使用的时候,上文中同样的代码就会报错:

\begin{lilypond}
    a_"中文"
\end{lilypond}

报错信息显示的是找不到???????????W4 这个字体,我估计就是之前单独调用时的日文字体。我想不明白为啥,按理来说找不到字体应该也会找个备用的,但是直接会报错,根本不能编译成功。

我头都想烂了,最后还是在lyluatex的文档中看到的解决办法。

截屏2023-05-12 10.23.41.png

文档里面大致提到, 可以把当前LaTeX的字体传递进去。

于是我在一开始引入宏包的时候,加入了这个可选参数。

\usepackage[pass-fonts=true]{lyluatex}

果然可以可以编译成功。唯一的问题就是,字体好像有点难看。

我猜测使用的是sansfont 字体族,设定的是思源黑体。但是放在谱例里面不是很和谐,或许本身谱例里面不适合放中文。

最后

想了想,最好还是不启用这个选项,还是最好不要打中文,打打和弦级数得了。字体问题真的是令人头疼。

最后修改:2023 年 05 月 12 日
如果觉得我的文章对你有用,请随意赞赏