我正在尝试使用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。
答案 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
构建标题字符串似乎会出现问题。