在Matlab中更改数字字体没有效果

9

我在标签和图例中渲染希腊字符时遇到了问题,因此我认为更换字体可能会有所帮助。但是,我发现了一个更大的问题 - 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。
如何设置我的图形中的字体?

更新:
如评论所建议,我尝试查看这是否可能是Ubuntu上Java的问题。果然,从OpenJDK切换到Oracle Java有所帮助,但不够好-我可以使用Helvetica和其他几种字体,但无法自由选择我安装的字体。例如,Ubuntu字体不起作用(但在Matlab的主GUI中它确实能够工作 - 我在菜单等中将字体更改为Ubuntu,并在编辑器和命令窗口中使用Consolas,它会正常渲染)。

每当我选择一个不起作用的图形字体时,Matlab都会使用下面截图中显示的内容作为回退。

enter image description here

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


另外,尝试使用 uisetfont() 而不是 listfonts - Oleg
@OlegKomarov:感谢提供链接和提示,但安装软件包并没有帮助。在uisetfont()弹出的对话框中列出了Ubuntu,但选择它并没有改变任何东西。我正在运行Ubuntu 12.04。 - Tomas Aschan
@TomasLycken:只是为了明确,您是在查看所示的图形还是保存/导出的图像时遇到了这个问题? - Amro
@Amro:我两种方法都试过了——一种是从图形窗口中使用“文件->另存为…”导出,另一种是使用print -dpng 'test.png'export_fig - Tomas Aschan
@TomasLycken:好的。最后一个想法,也许这是Java的问题:http://askubuntu.com/questions/116782/why-do-fonts-look-horrible-in-any-java-application 。还值得看一下feature DefaultCharacterSetfeature locale返回了什么。 - Amro
显示剩余7条评论
2个回答

5
安装xfonts-75dpi和xfonts-100dpi对我来说解决了默认设置的问题。
sudo apt-get install xfonts-75dpi xfonts-100dpi

然后注销并重新登录。

这似乎允许使用符号(例如\pi)和字体大小(例如set(h,'FontSize',14))更改(使用默认的Matlab字体)。

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


1
尝试使用选项“Interpreter”、“LaTex”(默认为“Interpreter”、“Tex”)。这可能会使字体渲染器更少出现错误。

不幸的是,这并没有改变任何事情。 - Tomas Aschan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接