正如标题所述,当默认解释器设置为“ latex ”时,表面图中的颜色条不会出现。这发生在 MATLAB 2012b 和 2013a 以及两台不同的机器上。

准确地说,颜色条对象已创建,可以在编辑绘图时单击,可以使用交互式颜色条编辑器进行编辑,但根本不可见。
当另存为图形并重新打开、另存为 PNG、以 .eps 格式导出或另存为 .pdf 时,它不会出现。

四处搜索后,我发现了以下 2011 年关于 MATLAB 7 的帖子:
http://mathforum.org/kb/message.jspa?messageID=7518470

具体来说,解释器似乎有问题,当它设置为“ latex ”时,颜色条将不会显示。当设置为默认值时,它确实如此。

这是最小的演示示例。

set(0,'defaulttextinterpreter','none');
figure;
surf(peaks(100)); colorbar
set(0,'defaulttextinterpreter','latex');
figure
surf(peaks(100)); colorbar

除了颜色条仅在第一个图中可见之外,这两个图是相同的。

我在绘图中使用了很多特殊字符和子/上标,因此在 startup.m 中我将默认解释器设置为“ latex ”。我可以用以下方法将所有对 colorbar 的调用包围起来:
 set(0,'defaulttextinterpreter','none');
 colorbar;
 set(0,'defaulttextinterpreter','latex');

但这可能是最不优雅的解决方案。任何人都可以对这个似乎存在超过 5 年和 MATLAB 的多个版本的问题有所了解吗?

最佳答案

我可以在我的系统(R2010b,Windows Vista 32 位)上重现该问题。似乎可以通过 将图形 'Renderer' 属性从默认 'OpenGL' 更改为 'painters''zbuffer' 来解决。因此,您可以在创建图形 时更改渲染器 :

set(0, 'defaulttextinterpreter', 'latex');
figure('Renderer', 'zbuffer') %// this line changed
surf(peaks(100)); colorbar

或更改用于所有图形
默认渲染器(因此您无需在每个图形中更改它):
set(0, 'DefaultFigureRenderer', 'zbuffer'); %// this line added
set(0, 'defaulttextinterpreter', 'latex');
figure
surf(peaks(100)); colorbar

使用 'OpenGL' 以外的渲染器可能会影响透明度或绘图速度等功能。 Here 的一些关于每个渲染器的优缺点的信息。

关于matlab - 颜色条未出现在(表面)图中 - LaTeX 解释器问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28824586/

10-10 05:22