解决gnu octave (ubuntu下MATLAB替代软件)输出图片无法打印Latex格式的问题

问题描述:

版本信息:
OS:ubuntu16.04
Octave Version:4.0.0

在画图标注中(如标题,x-y轴)使用Latex格式的符号时,用octave自带的plot画图显示正常,但是当用saveas或print保存图像时,发现保存的图像无法正常显示Latex格式。举例来说,如果标题里有Latex格式的内容:

title(''E_{chiral} / N'')

则plot画出的图像正常显示为” Echiral/N E c h i r a l / N ”,而saveas输出的图像显示为”E_{chiral} / N”,即无法输出Latex格式。

问题原因

经过上网查阅,发现别人也在stake overflow上提出了这个问题How to export Octave plot with latex to PDF file。 实际上这确实是个Bug,在 Tex/Latex symbols won’t show up in the generated print even if they are visible in the plot window网站上给出的解释是:

The OpenGL backend has an onscreen renderer for TeX labels, but the backend print engine gl2ps does not.

似乎说onscreen画图和print输出用的是两个不同的引擎,而后者不支持Latex格式输出。

解决方案

将GNU Octave版本从4.0升级到4.2即可。
但是!!!
安装新版本的octave颇为费劲,花了我一下午的时间折腾。Octave官网直接告诉你各个linux发行版中octave的版本会有延迟,而ubuntu16.04发行版提供的确实只有4.0版本,需要自己另外找新版本安装。我用不同版本的源代码手动编译了好几个新版本一直出错,因为4.4+等开发版本要求我另外手动安装好多依赖函数库,比如Fortran77编译器,BLAS,LAPACK,PCRE等外部包(具体安装类目请查阅官方安装指南 Octave for Debian systems)。

最后我用PPA才搞定安装。
以下代码参考How to install Octave without GUI in Ubuntu 16.04
1 . (推荐) Using Octave’s Personal Package Archive (PPA) for Ubuntu

sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave

2 . (不建议选择) Compiling the source yourself

sudo apt-get build-dep octave
wget ftp://ftp.gnu.org/gnu/octave/octave-4.2.0.tar.gz
tar xf octave-4.2.0.tar.gz
cd octave-4.2.0/
./configure
make 
sudo make install

安装完成后打开octave检查版本是否为4.2+即可,我用上述PPA安装的版本为4.2.2。

你可能感兴趣的:(数据结构与算法)