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' 

我什至进入了图中的属性编辑器,并手动更改了字体。不管我做什么,字体都是一样的,丑陋的等宽字体(见下图)。这张图片是用图的菜单栏中的另存为...命令保存的,但是egprint -dpng 'fonttest.png'也不起作用。

我已经fc-list在我的终端和listfontsMatlab 命令提示符下仔细检查了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 返回的,所以我假设这也是一种字体问题。

4

2 回答 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

于 2013-05-27T15:00:02.230 回答
1

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

于 2013-04-29T16:25:37.207 回答