在 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 中打印变音符号的主要内容,如果未能解决你的问题,请参考以下文章

删除变音符号,某些字母上的某些变音符号除外

彩色变音符号和unicode行为

在 Swift 中使用变音符号转换字符串

现代信用卡处理系统是不是允许在持卡人姓名中使用变音符号?

有没有办法在 robocopy 脚本中包含带有变音符号的文件路径?

UTF-8 解码变音符号偶尔会失败