在Matlab中更改图形字体无效

Tom*_*han 9 ubuntu matlab fonts matlab-figure

我在标签和图例中渲染希腊字符时遇到问题,所以我想也许切换字体会有所帮助.因此,我发现了一个更大的问题--Matlab似乎根本不尊重我的字体设置.

我当然试过了

set(gcf, 'FontName', 'Ubuntu')
set(gca, 'FontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

还有像

set(findall(gca, 'type', 'text'), 'FontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

set(0,'DefaultAxesFontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

我也试过切换渲染器

set(0, 'DefaultFigureRenderer', 'OpenGL') % also tried 'zbuffer' and 'painters' 
Run Code Online (Sandbox Code Playgroud)

我甚至进入了图中的属性编辑器,并手动更改了字体.无论我做什么,字体都会出现相同的,丑陋的等宽字体(见下图).此图片使用图中菜单栏中的另存为...命令保存,但是例如print -dpng 'fonttest.png'也不起作用.

我已经fc-list在我的终端和listfontsMatlab命令提示符下仔细检查了Ubuntu字体是否已安装且可用.我正在运行Matlab R2012b.

如何在我的数字中设置字体?

更新:
正如评论中所建议的那样,我试着看看这是否可能是Ubuntu上的Java问题.果然,从OpenJDK切换到Oracle Java有帮助,但还不够 - 我可以使用Helvetica和其他一些,但我不能在我安装的字体中自由选择.例如,Ubuntu字体不起作用.(但是,它确实在Matlab的主GUI中 - 我在菜单等中将字体更改为Ubuntu,在编辑器和命令窗口中将Consolas更改为,并且它呈现正常.)

每当我选择不起作用的数字字体时,Matlab会使用下面屏幕截图中显示的内容作为后备.

在此输入图像描述

p,q f 这里确实应该是希腊字母PI,θ和岛(他们正在与规定 \pi 等),但我猜的字体没有这些字符.第三个图的y标签中的奇怪东西是瑞典语 - 它应该不是编码的问题,因为文件保存为UTF-8,这也是 slCharacterEncoding 返回的,所以我假设它也是一种字体问题.

ben*_*enj 5

安装xfonts-75dpi和xfonts-100dpi对我来说是默认设置的诀窍.

sudo apt-get install xfonts-75dpi xfonts-100dpi
Run Code Online (Sandbox Code Playgroud)

然后注销并再次登录.

这似乎允许两个符号(例如\ pi)和字体大小(例如set(h,'FontSize',14))发生变化(使用默认的Matlab字体).

机器设置:Ubuntu 12.04 x64与Matlab R2012b


Mar*_*arc 1

尝试使用选项“Interpreter”、“LaTex”(默认为“Interpreter”、“Tex”)。这可能会让你得到一个错误较少的字体渲染器。