我在标签和图例中渲染希腊字符时遇到问题,所以我想也许切换字体会有所帮助。因此,我发现了一个更大的问题--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会使用下面屏幕截图中显示的内容作为后备。
p
,q
和 f
这里应该是希腊字母pi,theta和phi (它们是用 \pi
等指定的,但我猜字体没有这些字符。第三个图的y标签中的奇怪东西是瑞典语 - 它不应该是编码问题,因为文件保存为UTF-8,这也是 slCharacterEncoding
返回,所以我认为这也是一个字体问题。
答案 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')。这可能会让你找到一个不那么错误的字体渲染器。