在Matlab中更改图形字体无效

时间:2013-04-25 15:35:02

标签: matlab ubuntu fonts matlab-figure

我在标签和图例中渲染希腊字符时遇到问题,所以我想也许切换字体会有所帮助。因此,我发现了一个更大的问题--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' 

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

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

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

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

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

enter image description here

pq f 这里应该是希腊字母pi,theta和phi (它们是用 \pi 等指定的,但我猜字体没有这些字符。第三个图的y标签中的奇怪东西是瑞典语 - 它不应该是编码问题,因为文件保存为UTF-8,这也是 slCharacterEncoding 返回,所以我认为这也是一个字体问题。

2 个答案:

答案 0 :(得分:5)

安装xfonts-75dpi和xfonts-100dpi为我做了默认设置。

sudo apt-get install xfonts-75dpi xfonts-100dpi

然后注销并重新登录。

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

机器设置:使用Matlab R2012b的Ubuntu 12.04 x64

答案 1 :(得分:1)

尝试使用'Interpreter'选项,'LaTex'(默认为'Interpreter','Tex')。这可能会让你找到一个不那么错误的字体渲染器。