在Matlab中打印变音符号

时间:2014-08-21 07:08:36

标签: matlab pdf-generation ghostscript cmyk

我正在尝试使用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版本处理变音符号,但不是en-dash,CMYK会跳过它们。

PDF是使用Ghostscript在Matlab中生成的,但我还没有找到如何为GS配置字符编码。

我正在使用Windows和Matlab R2014。

1 个答案:

答案 0 :(得分:1)

我不完全确定这是您正在寻找的解决方案。 无论如何,如果您先创建eps然后将其转换为pdf,则输出文件对标题中的特殊字符没有任何问题,前提是您不要&#39 ; t 使用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构建标题字符串似乎会出现问题。