Печать Umlauts в Matlab

Я пытаюсь создать pdf файл из фигуры Matlab, используя цвета cmyk, но столкнувшись с проблемой с умлаутами, а также с некоторыми другими специальными символами. Есть ли другой способ справиться с этим, чем латекс? Следующий пример демонстрирует проблему.

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-версия обрабатывает umlauts, но не en-dash, а CMYK пропускает их все.

PDF создается в Matlab, используя Ghostscript, но я не нашел, как настроить кодировку символов для GS.

Я использую Windows и Matlab R2014.

9
21 авг. '14 в 10:08
источник поделиться
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 в вашем системном пути. У вас уже есть ps2pdf на вашем компьютере, если у вас установлен MiKTeX, но вам, возможно, потребуется обновить системный путь. В основном 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.

1
07 мая '15 в 19:18
источник

Посмотрите другие вопросы по меткам или Задайте вопрос