在 Matlab 中打印变音符号
Posted
技术标签:
【中文标题】在 Matlab 中打印变音符号【英文标题】:Printing Umlauts in Matlab 【发布时间】:2014-08-21 07:08:36 【问题描述】:我正在尝试使用 cmyk 颜色从 matlab 图形创建 pdf 文件,但遇到变音符号和其他一些特殊字符的问题。除了 Latex 之外,还有其他方法可以解决这个问题吗?以下示例演示了该问题。
plot(rand(199,1))
title_string = ['Some text:äö' char(228) ':2005' char(150) '2008:end text'];
title(title_string);
print(gcf,'-dpdf','cmykfile.pdf','-r600','-cmyk');
print(gcf,'-dpdf','rgbfile.pdf','-r600');
从 pdf 文件中可以看出,RGB 版本处理变音符号,但不处理破折号,并且 CMYK 会跳过它们。
在 Matlab 中使用 Ghostscript 生成 PDF,但我没有找到如何为 GS 配置字符编码。
我正在使用 Windows 和 Matlab R2014。
【问题讨论】:
这是在 MATLAB 中打印unicode
字符的更大问题的一部分。请参阅有关该主题的这些帖子:q1、a1
除了上面评论中的链接,您还可以查看项目滑铁卢:waterloo.sourceforge.net/index.html
感谢 cmets。我已经阅读了这个论坛和其他论坛上的帖子页面,但这些对我来说是新的。第一个似乎最有趣,javacomponent 已经给出了有希望的结果。
为什么要避免使用乳胶?也许这个原因更容易解决。
我无法将 Latex 中的字体更改为 Arial 字体。到目前为止,最好的解决方案是打印 RGB pdf 并使用 Acrobat Pro 将其转换为 CMYK。
【参考方案1】:
我不完全确定这是您正在寻找的解决方案。
无论如何,如果您先创建一个eps
,然后将其转换为pdf
,则输出文件对标题中的特殊字符没有任何问题,前提是您不要构建您的标题字符串使用char
。
plot(rand(199,1))
title_string = 'Some text:äöä:2005—2008æ:end text';
title(title_string);
print(gcf,'-depsc','cmykfile.eps','-r600','-cmyk');
!ps2pdf cmykfile.eps cmykfile.pdf
如果您的系统路径中有ps2pdf
实用程序,则上述代码有效。如果您安装了 MiKTeX,您的计算机上已经有 ps2pdf
,但您可能需要更新系统路径。基本上ps2pdf
应该是gs
的快捷方式,因此如果你只安装了gs
而没有安装MiKTeX,你应该能够达到相同的结果。
编辑
在我的机器(Windows 7,MATLAB R2014b)上,这段代码也运行良好,无需使用ps2pdf
:
plot(rand(199,1))
title_string = 'Some text:äöä:2005—2008æ:end text';
title(title_string);
print(gcf,'-dpdf','cmykfile.pdf','-r600','-cmyk');
当您使用char
构建标题字符串时,似乎会出现问题。
【讨论】:
以上是关于在 Matlab 中打印变音符号的主要内容,如果未能解决你的问题,请参考以下文章