我大多数写作都使用LaTeX,并且总是使用Matlab创建的eps文件。一直没有问题,但是对于一个新的案例,我开始学习Matlab生成了一个95MB的文件(而eps2pdf无法生成该文件的pdf)。这个问题可能很难回答。似乎是Matlab的意外行为,但不幸的是我不能分享原始代码(此外,代码非常长,依赖于许多变量和函数...)。我尝试使用内置函数构建一个最小工作示例,但是当然它无法复制问题。尽管如此,我可以给出代码结构和创建的对象类型(请参见帖子末尾):曲线、表面、透明度,没有疯狂的事情。这段代码在许多不同的情况下都运行良好,并给出几MB的文件。其中一个表面中存在的点数、近似形状、曲线中的点数等等都没有改变,或者改变很小。我无法解释文件大小的差异。我希望能够解释这种行为或提供替代方案以获取此图片的eps格式。当然,两者都可以。现在我将其输出为png,但我非常想要矢量文件。有人遇到过非常大的eps问题吗?
colordef white;
figure('Color','White','Name','STUFF')
hold all
% Show a curve
lpot = plot3(//STUFF\\, '-',...
'Color', [0 0 1], 'LineWidth', 2);
% Show a curve
ph = plot3(//STUFF\\,'-',...
'Color', [1 0 0], 'LineWidth', 2);
% Show a curve
plot3(//STUFF\\, '-',...
'Color', [0 1 0], 'LineWidth', 2);
% Show a point
plot3(//STUFF\\, ...
'k', 'MarkerSize', 10, 'Marker', '^', ...
'MarkerFaceColor', [1 1 0]);
% Show a surface
surf(//STUFF\\);
colormap(jet);
shading interp;
% Show a surface in transparency
surf_1 = trisurf(//STUFF\\);
set(surf_1,'FaceColor', [1 1 1], 'EdgeAlpha', 0, 'FaceAlpha', 0.5);
% Axis adjustements
axis equal tight
xlabel('stuff');
ylabel('stuff');
zlabel('stuff');
view(2);
grid on;
h_cbar = colorbar;
ylabel(h_cbar, //STUFF\\);
legend(//STUFF\\,...
{//STUFF\\});
set(gcf,'units','normalized','outerposition',[0.10 0.10 0.80 0.80])
hold off
hgexport(gcf, ['mytoobigfigure.eps'],...
hgexport('factorystyle'), 'Format', 'eps');
这段代码在Matlab R2014b和Windows 7上运行。
谢谢大家!