LINUX.ORG.RU

R и русские названия при выводе в PDF


0

0

Здравствуйте! При выводе в PDF или PS туда не внедряются русские шрифты. Как-нибудь (кроме использования Hershey) можно побороть это? А то не сделаешь быстро PDF для вставки в русскоязычные статьи :(

★★★★

Ответ на: комментарий от golodranez

Думаю, не та проблема. Дело в том, что R подставляет в PDF только коды символов, в pdf() можно указать encoding, но там все равно я меня не получалось. А меня интересует именно внедрение шрифтов в PDF.

Графики для вставки в статью чтобы компилить её pdflatex.

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

Прогони в консоли ps2pdf RPlots.ps. Он либо встроит шрифты (если ghostscript знает где найти файл со шрифтом), либо растеризует их.

geekkoo
()
Ответ на: комментарий от Ay49Mihas

Посмотри на ссылку, что привел golodranetz.
>>>В PostScript шрифты тоже не включены, там слишком примитивно сделано.

Правильно. R по ряду причин не включает в свои пакеты шрифты. При записи ps/pdf файла R ставит в файл постскриптовское имя используемого шрифта и его кодировку (точнее соответствие между системной кодировкой - например koi8 - и кодировкой шрифта). И то и другое можно настроить в R. Саму же подстановку шрифтов при отображении файла должна делать система. Но в этом случае система же должна встраивать шрифты, если хочется иметь переносимый документ.

В Линуксе всем этим занимается ghostscript. ghostscript это интерпретатор языка postscript. ps2pdf - это обертка над вызовом gs с определенными параметрами. Результат обработки - это вывод на экран, принтер или другой файл. На самом деле ghostscript'у не важно куда именно, поскольку этим занимается ghostscript-овский драйвер - см. gs --help и Available devices:.

Если gs наталкивается в обрабатываемом файле на ссылку на шрифт, которого нет в файле, он пытается найти этот шрифт используя список /usr/share/ghostscript/8.15/lib/Fontmap.GS и может быть несколько других файлов (см. /usr/share/ghostscript/8.15/lib/Fontmap). Если шрифт найден, то самое простое, что ghostscript может сделать с шрифтом - это растеризовать его и подставить растеризованное изображение на место букв, и потом отправить результат по назначению (например на принтер). В случае же записи в pdf файл (gs драйвер pdfwrite) gs может или растеризовать шрифт, или вставить шрифт в pdf файл. Второе он делает практически всегда, если шрифт - type1. Если же шрифт truetype, то тут бывает по-разному. Лучше всего использовать для этой цели команду ps2pdf14 (как правило ps2pdf==ps2pdf12).

geekkoo
()
Ответ на: комментарий от golodranez

>>Не проще в jpg, а потом уж хоть в ЛАТЕХ, хоть в хтмл ?

Может и проще, но хуже. jpg,png - это растерная графика, а postscript/pdf - векторная. Разница очевидна - достаточно изменить zoom и сравнить результат.

geekkoo
()

Вспомнил свою войну с Оracle Reports

cvv ★★★★★
()
Ответ на: комментарий от geekkoo

Большое спасибо за внятное объяснение! Правда, про все, кроме настройки GhostScript я вроде как знал :)

Ay49Mihas ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.