【问题标题】:Printing Umlauts in Matlab在 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 字符的更大问题的一部分。请参阅有关该主题的这些帖子:q1a1
  • 除了上面评论中的链接,您还可以查看项目滑铁卢:waterloo.sourceforge.net/index.html
  • 感谢 cmets。我已经阅读了这个论坛和其他论坛上的帖子页面,但这些对我来说是新的。第一个似乎最有趣,javacomponent 已经给出了有希望的结果。
  • 为什么要避免使用乳胶?也许这个原因更容易解决。
  • 我无法将 Latex 中的字体更改为 Arial 字体。到目前为止,最好的解决方案是打印 RGB pdf 并使用 Acrobat Pro 将其转换为 CMYK。

标签: matlab pdf-generation ghostscript 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 构建标题字符串时,似乎会出现问题。

【讨论】:

    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多