Octave 字体配置错误

Octave Fontconfig error

我使用给定的说明通过 Homebrew 安装了 Octave here

当我尝试生成绘图时,我收到以下消息:

Fontconfig error: Cannot load default config file
warning: could not match any font: *-normal-normal-10
warning: called from
    axes at line 66 column 10
    gca at line 58 column 9
    newplot at line 148 column 8
    surf at line 70 column 9
    sombrero at line 65 column 5

然后我收到一长串以下消息:

warning: ft_render: unable to load appropriate font
warning: could not match any font: *-normal-normal-10

通常情节会出现一次,但如果我再次调用它,Octave 会退出并显示以下消息。

panic: Segmentation fault: 11 -- stopping myself...
attempting to save variables to 'octave-workspace'...
warning: unable to open 'octave-workspace' for writing...
warning: called from
    __gnuplot_drawnow__>gnuplot_trim_term at line 368 column 10
    __gnuplot_drawnow__>gnuplot_set_term at line 119 column 20
    __gnuplot_drawnow__ at line 84 column 16
Segmentation fault: 11

在讨论类似错误时,我经常看到对 /etc/fonts/fonts.conf 的引用。我的 /etc 目录不包含字体子目录。这可能是问题的根源,但我不知道如何解决。当我 运行、brew install fontconfig 时,我得到 Warning: fontconfig-2.11.1_1 already installed。当我 运行 sudo find / -name fonts.conf 时,我得到 /opt/X11/lib/X11/fontconfig/fonts.conf.

brew doctor 产生以下警告,这些警告可能是相关的,但我不知道如何修复(除了卸载 Anaconda 之外):

Warning: Anaconda is known to frequently break Homebrew builds, including Vim 
and MacVim, due to bundling many duplicates of system and Homebrew-available
tools.

If you encounter a build failure please temporarily remove Anaconda
from your $PATH and attempt the build again prior to reporting the
failure to us. Thanks!

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
    /Users/greg/anaconda/bin/curl-config
    /Users/greg/anaconda/bin/freetype-config
    /Users/greg/anaconda/bin/libdynd-config
    /Users/greg/anaconda/bin/libpng-config
    /Users/greg/anaconda/bin/libpng16-config
    /Users/greg/anaconda/bin/python-config
    /Users/greg/anaconda/bin/python2-config
    /Users/greg/anaconda/bin/python2.7-config
    /Users/greg/anaconda/bin/xml2-config
    /Users/greg/anaconda/bin/xslt-config

我是 运行ning OS X 10.11.3 (El Capitan)。

实际上,这不是 Octave 的问题,而是其复杂的设置和其他实用程序(尤其是 fontconfig)的错误配置。

为了正常工作,您需要手动设置 fontconfig 的路径,这样它就不会在不适当的目录中查找字体(/etc/fonts 适用于 Linux 安装,但 OS X XQuartz 去不同的地方)。

您应该 运行 命令 export FONTCONFIG_PATH=/opt/X11/lib/X11/fontconfig 以正确的方式设置 fontconfig。您也可以将行 export FONTCONFIG_PATH=/opt/X11/lib/X11/fontconfig 添加到 ~/.bash_profile 并重新启动您的终端,因此您不再需要 运行 此命令。

尝试

brew uninstall fontconfig

brew install fontconfig --universal

如果你没有或者不想使用xquartz,你可以使用qt

brew uninstall gnuplot

brew install gnuplot --with-qt