微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止MATLAB打印假空间和使用错误的字体?

Matlab 2015a在长string中插入μ之前的空格,但不是短string(xlabel)。 在某些情况下,可以通过使用UTF-8字母来解决,但在其他情况下会失败(请参阅^ 2)

文本的字体应该是Helvetica但看起来不一样。 虽然get Fontname返回Helvetica 。

这是MATLAB中的一个错误,已经有报道。 我不想等到MATHWORKS修复这个bug。

我怎样才能解决这个错误我自己? 我试图将渲染器更改为opengl ,但这会混淆所有字体。

在Win7中,一些字体不能像Win2K / XP那样工作

安装字体并使Windows知道

是否可以确定DrawThemeText使用的字体/大小/颜色?

什么符号和标志代表Windows命令行中的graphics?

Windows(IE和Firefox)上的像素化​​字体(font-face)

plot([2014 2015 2016],[0 1 0]) xlabel('MATLAB (mu)') ylabel('Space-bugs (mum^2) (µm²) (µm^2)') title('Number of wrong spaces in MATLAB') textTT = text(2015-1,1/2,'ugliest plot bugs ever','FontSize',20,'FontName','Helvetica'); text(2015,1/3,get(textTT,'Fontname')) % says Helvetica,but lies. print -depsc2 -r864 -painters '/tmp/test.eps' print -dpdf -r864 -painters '/tmp/test.pdf'

在Linux 64位上的Matlab 2015a中呈现的代码

在Matlab中呈现的相同代码Windows 64位Luis Mendo:

编辑1:错误仍然存​​在于2015b和2016a。 该错误显示在Linux版本中,但不在Windows版本中。

编辑2:一些build议使用内部乳胶翻译。 我认为这是无法解决的,因为如果所有的字体被现代的倾斜(或倾斜的)计算机所取代,那么代码就很难被阅读。 应该有一个字体的情节和单位,标题标签必须直立书面。

编辑3:错误仍然存​​在于2017b。

Graphviz找不到任何字体

Chrome文本非常糟糕

如何在Delphi中使用Windows认字体

IntelliJ的对话框中没有select字体的字体

锯齿的谷歌字体和粗体的外国人在Windows中

我在Linux机器上使用R2015b,但打印时出现相同的问题。

图中显示的所有字符串在传递给渲染器之前都会传递给解释器。 解释器有'tex' (default) , 'latex'和'none'三种模式。

更改字体

TeX / LaTeX解释器不会检查你的操作系统字体,而是把它自己的一套字体显示在这里

Windows: C:Program FilesMATLAB<version>sysfontsttfcm

Linux: <MATLAB root><version>sysfontsttfcm

对我来说,我有BaKoMa字体集合的第一部分(根据我的自述)。 以下字体aviable(对我):

============================ Basic text fonts ========================== cmr 5 6 7 8 9 10 12 17 cmbx 5 6 7 8 9 10 12 cmti 7 8 9 10 12 cmsl 8 9 10 12 cmcsc 8* 9* 10 cmtex 8 9 10 cmb 10 cmbxsl 10 cmbxti 10

其中cm = computer modern (从我可以告诉)。

所以,即使你告诉matlab在Helvetica中绘制它,matlab将它传递给TeX,TeX也不知道Helvetica是什么,只是使用它的认字体。 有人可以考虑添加helvetica手册,但我没有进一步探讨。

处理(烦人的)空间

删除ylabel中的空格,您可以传递一个乳胶字符串。 对于这个改变

ylabel('Space-bugs (mum^2) (µm²) (µm^2)')

ylabel('Space-bugs ($mu m^2$) ($mu m^2$) ($mu m^2$)','interpreter','latex');

但是,这将使用cmr (计算机现代正规)字体而不是Helvetica,但删除空间错误

为了避免在图中混合使用字体,可以将所有文本字段的解释器更改为latex 。 除非你的操作系统上使用了computer modern字体,否则你可以简单地在matlab中设置适当的字体类型。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐