Можно ли использовать кодировку для растровых шрифтов в dvips?

Можно ли использовать кодировку для растровых шрифтов в dvips?

В процессе создания .psфайла dvipsчитается ".нннpk" шрифты. Эти шрифты не могут нести информацию о кодировке (в отличие от шрифтов Type3 или Type1). Но в .mapфайлах информация о кодировкеможетбыть данным.

Можно ли использовать .mapfile для связывания .encfile с заданным шрифтом PK?

.mapфайлы допускают параметр «ReEncodeFont», что-то вроде следующего:

lhr10 "Myenc ReEncodeFont" <my.enc

Можно ли это использовать? Или может быть какой-то другой метод, например, взлом .psфайла напрямую? (конвертация шрифтов PK в Type1 или Type3 не рассматривается)

ОБНОВЛЯТЬ

Следующая цитата со стр. 12 руководства pdftex выглядит многообещающей:

Начиная с версии 1.40.19, файл кодировки может быть также указан для растровых шрифтов pk. В этом случае он назначает имена глифов из заданного вектора кодировки, который может использоваться с примитивом \pdfglyphtounicode (qv). Например: ...

Можно ли использовать подобный трюк для dvips?


Вот полный пример использования кодировки для шрифтов PK в pdftex:

Скопируйте tex256.encиз дистрибутива в текущий каталог и измените запись /idieresis % 239на /uni044F, затем обработайте следующий файл с помощью pdftex:

\pdfcompresslevel=0 \pdfobjcompresslevel=0
\pdfmapline{lhr10 <tex256.enc}
\font\tenrm=lhr10 \tenrm
^^ef
\end

После этого вы получите копируемый растровый символ.

Можно ли выполнить обратную разработку созданного PDF-файла и добавить аналогичный материал непосредственно в .psсозданный dvips?


Похоже, следующий код в PDF отвечает за связь кодировки с файлом PK:

/Type /Encoding
/Differences [239/uni044F]

Какой эквивалент этого кода в PostScript?

решение1

Вам повезло! Первоначальный автор dvips, Томаш Рокицкий, «вышел из отставки» (так сказать — я просто имею в виду, что он dvipsнекоторое время не работал), чтобы изменить это, и выступает с докладом об этом на TUG 2019.

Вы можете увидеть его препринтздесь, и репозиторий GitHub с исходным кодомздесь.

Вы можете протестировать предложенные мной изменения выходных dvipsфайлов без обновления вашего дистрибутива или сборки новой версии dvips. Скрипт Perl addencodings.plсчитывает файл PostScript, сгенерированный dvipsна стандартном вводе, и записывает файл PostScript, который был бы сгенерирован измененным dvipsна стандартном выводе. Для этого тестирования не требуются дополнительные файлы; кодировки по умолчанию для стандартных шрифтов TEX Live встроены в скрипт Perl.

Последняя версия - addencodings.plэтоздесь(постоянная ссылка на последние данные на сегодня:здесь).

Связанный контент