gpt4 book ai didi

打印或导出时无法正确呈现 Matlab 字体

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:12 28 4
gpt4 key购买 nike

我正在尝试制作一个非常适合 LaTeX 文档的 matlab 图形。一个已知的问题是 XTickLabel 和 YTickLabels 不使用 LaTeX 解释器渲染,导致图形不好看。 (注意:我意识到那里有一些修复程序涉及用文本对象替换 tex 标签(即 format_tics ),但是这些解决方案在绘制多个图形时非常重要,并且它们自己的问题需要很多调整每个单独的图形。)

我觉得通过更改字体来解决这个问题比替换图形中的对象要优雅一些。

downloaded a .otf LaTex 字体的版本,并将其设置为在整个图中显示:

    set(0,'defaulttextinterpreter','latex')
set(0,'DefaultTextFontSize', 10)
set(0,'DefaultTextFontname', 'CMU Serif')
set(0,'DefaultAxesFontSize', 10)
set(0,'DefaultAxesFontName','CMU Serif')

matlab图形窗口中的东西看起来不错;然而,打印时,事情就分崩离析了。

如果我使用“painters”渲染器打印(使用导出 GUI 或打印命令),字体看起来很有趣并且始终不一致。一些符号将无法正确显示,并且在整个打印图中会出现不同的字体。

 print('-depsc','-painters',['InstP.eps'])        

如果我切换到 zbuffer 渲染器,字体会变得一致,但还有其他错误。质量下降,一些文本被遗漏(或被其他文本覆盖)。

 print('-depsc','-zbuffer',['InstZ.eps'])  

opengl 到处都是乱七八糟的。

有人知道为什么这些渲染器在使用这些字体时遇到问题吗?是否有任何变通方法可以让字体正确呈现?

示例代码:

    subplot(1,2,1)
imshow(IMG,'XData',XDat,'YData',YDat);
axis image;axis([0 20 -5 5]);
xlabel('$x^*$');
subplot(1,2,2)
imshow(SqImg,'XData',Xs,'YData',Xs);
xlabel('$\Phi_B$');
ylabel('$\Phi_A$');
axis square;
set(gca,'YDir','normal',...
'XAxisLocation','bottom',...
'YAxisLocation','left',...
'XTick',(0:.5:1).^Exp,'XTickLabel',0:.5:1,...
'YTick',(0:.5:1).^Exp,'YTickLabel',0:.5:1);


print('-depsc','-painters',['InstP.eps'])
print('-depsc','-zbuffer',['InstZ.eps'])

最佳答案

我使用 imwrite 命令而不是 print 命令将图形转换为图像文件,但这不适用于 EPS。

fhand = figure();
subplot(1,2,1);
...
I = getframe(fhand)
imwrite(I.cdata,'Inst.png','PNG')

关于打印或导出时无法正确呈现 Matlab 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907573/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com