我在标签和图例中渲染希腊字符时遇到问题,所以我认为切换字体可能会有所帮助。因此,我发现了一个更大的问题——Matlab 似乎根本不尊重我的字体设置。
我试过了,当然,
set(gcf, 'FontName', 'Ubuntu')
set(gca, 'FontName', 'Ubuntu')
但也像
set(findall(gca, 'type', 'text'), 'FontName', 'Ubuntu')
和
set(0,'DefaultAxesFontName', 'Ubuntu')
我也尝试过切换渲染器,
set(0, 'DefaultFigureRenderer', 'OpenGL') % also tried 'zbuffer' and 'painters'
我什至进入了图中的属性编辑器,并手动更改了字体。不管我做什么,字体都是一样的,丑陋的等宽字体(见下图)。这张图片是用图的菜单栏中的另存为...命令保存的,但是egprint -dpng 'fonttest.png'
也不起作用。
我已经fc-list
在我的终端和listfonts
Matlab 命令提示符下仔细检查了Ubuntu
字体是否已安装并且可用。我正在运行 Matlab R2012b。
如何在我的图形中设置字体?
更新:
正如评论中所建议的,我试图看看这是否可能是Ubuntu 上的 Java 的问题。果然,从 OpenJDK 切换到 Oracle Java 有所帮助,但还不够——我可以使用 Helvetica 和其他一些字体,但我无法在已安装的字体中自由选择。例如,Ubuntu 字体不起作用。(但是,在 Matlab 的主 GUI 中确实如此——我在菜单等中将字体更改为 Ubuntu,在编辑器和命令窗口中将字体更改为 Consolas,并且呈现正常。)
每当我选择一种不起作用的图形字体时,Matlab 都会使用下面屏幕截图中显示的内容作为后备。
, p
和这里应该是希腊字母 pi、theta 和 phi(它们是用 etc 指定的q
) ,但我猜字体没有这些字符。第三个图的 y-label 中奇怪的东西是瑞典语 ö - 它应该不是编码问题,因为文件保存为 UTF-8,这也是f
\pi
slCharacterEncoding
返回的,所以我假设这也是一种字体问题。