Много шрифтов. Много проблем

Статус
Закрыто для дальнейших ответов.

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

x_ray
Пока, видимо, придется самому ручками править шрифты и читать спецификации...
Это один из способов, другой: покупать шрифты, тогда ваши проблемы лягут на людей из службы технической поддержке.
Вы, наверное, делаете так:...
Для вёрстки издания достаточно иметь несколько комплектов проверенных шрифтов (бывают и исключения). Поверьте нет смысла держать и половина того колличества шрифтов, которое установлено у вас в системе...

По поводу утилиты Фигурнова, настоятельно рекомендую ею не пользоваться, FontLab производит это гораздо удачнее (ИМХО)
 

x_ray

Участник
Топикстартер
Сообщения
156
Реакции
0
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
По поводу утилиты Фигурнова, настоятельно рекомендую ею не пользоваться, FontLab производит это гораздо удачнее (ИМХО)
Второй раз на этом форуме об этом читаю... А можно поподробнее? :) А то, что "FontLab - это круто" понятно, но как конкретно в нем делать то же самое, что делает УФиг, непонятно :(
 

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

x_ray
В FL4x
В режиме Codepages выставляем необходимую страницу (как правило 1252)
Меню Glyph > Glyph Names > Reencode Glyphs, из списка выбираем страницу
1251. Жмём ОК.
Меню Glyph > Glyph Names > Generate Names, из списка выбираем Adobe Glyph List.
Это основное, для чего господин VF рекомендует эту утилиту.
Всё остальное правится в FontInfo.
 

x_ray

Участник
Топикстартер
Сообщения
156
Реакции
0
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
x_ray
В FL4x
В режиме Codepages выставляем необходимую страницу (как правило 1252)
Меню Glyph > Glyph Names > Reencode Glyphs, из списка выбираем страницу
1251. Жмём ОК.
Меню Glyph > Glyph Names > Generate Names, из списка выбираем Adobe Glyph List.
Здорово! попробовал, все получилось! '))' Спасибо!
Кроме этого, поработал с ATM Manager - в понимании проблемы все сдвинулось.
Всем спасибо! Вопросов больше нет (ну, это пока)... ;)
 

VF

Участник
Сообщения
95
Реакции
2
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
В режиме Codepages выставляем необходимую страницу (как правило 1252)
Какая страница "необходима", скажем для Ленполиграфмашевских шрифтов?

Действия, подобные тем, что выполняет Type1Cyr, в FontLab выполняются так:

1. Открываем Typе 1 шрифт. Обычно при этом FontLab показывает шрифт в режиме Names Mode, кодировка Imported. Нам этот режим и нужен.

2. Команда Glyph => Glyph Names => Reencode Glyphs => WinEncoding Cyrillic = CP1251

3. В свойствах шрифта File => Font Info => Encoding and Unicode проверяем, что параметр Microsoft Character Set равен Cyrillic CP1251. Если не равен, устанавливаем этот параметр как Cyrillic CP1251.

4. При необходимости задаём другое имя шрифта (File=> Font Info => Names and Copyright)

5. Генерируем Type 1 шрифт: File => Generate Font, тип файла = Type 1 Binary (*.pfb).


P.S. Программа Type1Cyr назначает для символов имена, соответствующие номеру символа в Type 1 шрифте (а не номеру символа в какой-то "необходимой" таблице кодировки).

Это делается потому, что в большинстве старых Type 1 кириллических шрифтов позиции (номера) символов правильные, а вот имена символов не всегда правильные. Ведь в Windows 3.1, 95-98-ME имена символов могли быть любыми: шрифтовой драйвер обращался к символам Type 1 шрифта только по номерам символов в шрифте. Программа Type1Cyr исправляет имена символов, чтобы шрифты могли корректно работать в Windows NT/2000/XP/2003/Vista.
 

x_ray

Участник
Топикстартер
Сообщения
156
Реакции
0
Ответ: Много шрифтов. Много проблем

VF сказал(а):
Действия, подобные тем, что выполняет Type1Cyr, в FontLab выполняются так:.
Я, конечно, могу ошибаться, но, видимо, мы видим два пути, которые, в сущности, ведут к одному (или примерно одному) результату?
 

VF

Участник
Сообщения
95
Реакции
2
Ответ: Много шрифтов. Много проблем

Рецепт Denisbox просто неверен. Попробуйте его на любом кривом шрифте, скажем, шрифте Ленполиграфмаша, и убедитесь...

Единственный случай, когда этот рецепт работает -- это когда в шрифте все символы названы именами из неправильной (не русской, а, скажем, западноевропейской) кодовой страницы. Например, русские "А", "Б", "В", "Г" имеют имена Agrave, Aacute, Acircumflex, Atilde -- такие, как символы с теми же номерами в западноевропейской кодовой таблице (Windows ANSI = Western CP 1252). Такие шрифты существуют, но это обычно самопальные шрифты, и их не так уж много.
 

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

x_ray
Надеюсь, за это время вы успели проверить «верный» способ, если нет, давайте это сделаем вместе..
Открываем шрифт, выполняем команду Glyph => Glyph Names => Reencode Glyphs , и… не находим в списке «WinEncoding Cyrillic = CP1251» Почему? Да потому, что её там никогда и не было, точнее она там была, но в версии FontLab-а 3х, в 4х эта страница переехала в другой раздел :) Когда вышла версия 4, был очень большой шум по поводу отсутствия этой страницы в привычном месте, обычно это называли багом и предлагали скопировать и перенести эту страницу в FL4.
Тот вариант, который я вам предложил работает полностью с любым видом имени символа, самое главное, выбрать правильно кодовую страницу, ведь именно на основе её FL присваивает имена символам. Можно попробовать ради эксперимента перенести символы с одной на другую кодовую страницу: Glyph => Glyph Names => Reencode Glyphs, думаю результат вас огорчит :)

VF
Ведь в Windows 3.1, 95-98-ME имена символов могли быть любыми: шрифтовой драйвер обращался к символам Type 1 шрифта только по номерам символов в шрифте.
Именно так и работает до сих пор, что правда не гарантирует корректную работу шрифта, так как есть ёщё и конфликт между имени символа и знакоместо (в вашем случае индексом)

Про Vista, давайте не будем говорить, финал не вы не я не тестировали.

А сколько шрифтов изготовил Ленполиграфмаш?

Такие шрифты существуют, но это обычно самопальные шрифты, и их не так уж много.
Хм, пример кустарей: бывший Type Market, Tygra, Linotype…(Всё это правда относиться к ранним шрифтам) Так, что по поводу меньшинства это вы слегка загнули.
 

VF

Участник
Сообщения
95
Реакции
2
Ответ: Много шрифтов. Много проблем

не находим в списке «WinEncoding Cyrillic = CP1251» Почему? Да потому, что её там никогда и не было, точнее она там была, но в версии FontLab-а 3х, в 4х
А не надо использовать старые версии Фонтлаба. Применяйте Фонтлаб 5, там все кодовые страницы есть. А чтобы кодовая страница «WinEncoding Cyrillic = CP1251» появилась и в Фонтлабе 4, надо задействовать драйверы hands.sys и brain.sys. Поместите в подкаталог Encodings каталога Фонтлаб текстовый файл с описанием этой кодировки, и будет вам счастье. Как устроен этот файл легко понять, посмотрев описания других кодировок в этом каталоге.

эта страница переехала
Это Вы путаете.

Тот вариант, который я вам предложил работает полностью с любым видом имени символа, самое главное, выбрать правильно кодовую страницу
ROTFL Долго искать будете.

Пример. Если в шрифте символ «номер» называется numero, какую кодовую таблицу надо выбирать, чтобы это исправить?

ведь именно на основе её FL присваивает имена символам
ФонтЛаб имеет две команды для задания имён символов – по номеру и по юникоду.

Именно так и работает до сих пор
А Вы проверьте :)
 
  • Спасибо
Реакции: VVVSLAVA

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

VF
А не надо использовать старые версии Фонтлаба.
Хм, я же вроде написал, что действие относится к FL4.6
Нормальная версия это 5.0.2, а она доступна только легальным пользователям.
А чтобы кодовая страница «WinEncoding Cyrillic = CP1251»...
Маленький нюанс: зачем, если и так всё работает вышеописанным способом?
Нет не путаю, у FL4x иной ход работы нежели у 3х, кстати если интересно, то этот файлик вернулся в 5 версию по просьбе пользователей.
Пример. Если в шрифте символ «номер» называется numero, какую кодовую таблицу надо выбирать, чтобы это исправить?
Проведём маленький эксперимент: возьмём обычный Type1, поменяем ему кодовую страницу на 1252, портим имена символов (№=numero, A(кир.)=LPM1)/ Запускаем FL4.6, генерируем имена: №=uni00B9, A=Agrave. Запускаем перекодировку, как результат:№ и А, находяться на своих знакоместах и имеют корректные имена. Теперь попробуем проделать тоже самое в FLS5, у меня после Glyph => Glyph Names => Reencode Glyphs, символы улетели в конец списка, и отак и остались в серой области. Может попробуете сами, А?
ФонтЛаб имеет две команды для задания имён символов – по номеру и по юникоду.
А кириллическое и Agrave будут иметь одинаковый порядковый номер знакоместа :)
Да и проверять не нужно, АТМ идентифицирует символы шрифта Type1 по знакоместам.
 

VF

Участник
Сообщения
95
Реакции
2
Ответ: Много шрифтов. Много проблем

Маленький нюанс: зачем, если и так всё работает вышеописанным способом?
Таки не работает. Это Вы просто не проверили как надо. И даже, извините за прямоту, не поняли, что именно делаете.

Проведём маленький эксперимент: возьмём обычный Type1, поменяем ему кодовую страницу на 1252, портим имена символов (№=numero, A(кир.)=LPM1)/ Запускаем FL4.6, генерируем имена: №=uni00B9, A=Agrave. Запускаем перекодировку, как результат:№ и А, находяться на своих знакоместах и имеют корректные имена.
Это некорректный эксперимент. Возьмите настоящий кривой Type1 шрифт (c именами символов numero или LPM1 или CyrA), откройте его и попробуйте Ваш рецепт. И у Вас ничего не выйдет. Символы numero или LPM1 или CyrA вообще не попадут в какую-либо CodePage.

У меня после Glyph => Glyph Names => Reencode Glyphs, символы улетели в конец списка, и отак и остались в серой области.
Читайте документацию по Фонтлабу. Команда Glyph => Glyph Names => Reencode Glyphs выполняет разные действия в Names mode и Codepages mode.

Нужное действие – назначение имён по номерам символов в шрифте выполняется в Names Mode при кодировке Imported.
 

suntory

Administrator
15 лет на форуме
Сообщения
23 431
Реакции
12 477
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
Нормальная версия это 5.0.2, а она доступна только легальным пользователям.

Не по теме:
На Маке не только ;-)
 

x_ray

Участник
Топикстартер
Сообщения
156
Реакции
0
Ответ: Много шрифтов. Много проблем

VF, Denisbox ! Это просто невероятно! Когда я вопрошал о сути проблем, мне писали, как буратине. Как только тему можно закрывать, тут такое!!! Здорово!
Просто битва титанов!
Вы пока подождите, я должен внимательно прочитать и все обдумать, а то слов знакомых много, а что это все значит... ;)
Короче, спасибо, что умно поговорили на интересную мне тему.
ЗЫ. Как только разберусь, отвечу... Ждите! Наверное, в воскресенье.. ;)
 

VF

Участник
Сообщения
95
Реакции
2
Ответ: Много шрифтов. Много проблем

Denisbox

По поводу использования Фонтлаба -- Вы бы поправили текстик об использовании Фонтлаба для перевода шрифтов из TrueType в Type 1 на вашем сайте (http://www.vectorland.ru/ebooks.html). А то там есть неточности:

Согласно стандарту формата шрифта Type1, кегельная разбита на 1000 частей (UPM = 1000), а для шрифта формата TrueType на1000 или 2048 частей. (UPM =1000 или 2048). Ввиду неких особенностей программы FontLab, следует строго придерживаться этих правил.
Требований об UPM = 2048 или 1000 нет в стандартах формата шрифтов. Часто встречаются TT шрифты c UPM = 4096, и это не ошибка. FontLab корректно работает при значениях UPM отличных от 2048 или 1000.

Формат Type1 не может содержать более одной кодовой страницы.
В формате Type1 вообще нет такого понятия как «кодовая страница». В документе Adobe Type 1 Font Format или PostScript Language Reference глава 5, Вы не найдёте термина code page…

высота равна 1430 единицам. . . . для Type1 шрифтов, оно не допустимо.
Высота глифа в 1430 единиц для Type1 шрифтов вполне допустима. Координаты узлов Type 1 глифа должны быть в диапазоне от -2000 до 2000, см. Adobe Type 1 Font Format, пункт 3.3.

Жмём кнопку с изображением кристалла (AUTO), в поле Supported codepages, появились таблицы 1251 Cyrillic и 855 IBM Cyrillic.
Это действие не нужно. В Type 1 шрифтах каких либо сведений о Supported codepages нет. Поле Supported codepages используется только для TrueType и OpenType шрифтов.

Из списка Microsoft ® character set: выберите Bitstream font set.
Это вредный совет. Из тех программ, которые обращают внимание на параметр Microsoft character set, большинство неправильно работает при значении Bitstream font set. Здесь надо выбирать Cyrillic CP1251. Впрочем, некоторые программы лучше работают при значении Western (Latin 1) CP 1252. Это уже неоднократно обсуждалось и на prodtp и здесь.
 

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

Таки не работает.
>x ray : Здорово! попробовал, все получилось!

Это Вы просто не проверили как надо…
Я ещё раз вам напоминаю, что действие выполняется в FL 4.6, в стандартной поставке которой отсутствует данный файл, и если хотите, то проблему я решаю штатными средствами 4.6. Смысл писать про WinEncoding Cyrillic = CP1251? С тем же успехом можно написать о возможности конвертирования при помощи скрипта на питоне, там вообще понадобиться один клик в панели макро. Почему не подходит FLS5 я описал в посте №30. Последнее же ваше заявление я оставлю без комментариев.

Это некорректный эксперимент…
Почему же, потому, что вы ожидали другого результата? Ладно, давайте посмотрим на шрифты Ленполиграфмаша. Подопытным будет: CyrillicHelv Copyright (c) 1992 NPO "Polygraph Mash" Moscow. Шрифт с отсутствующим кернингом и хинтингом. Из существующих знаков, в шрифте есть цифровая часть, знаки препинания и кириллицы, латинские знаки отсутствуют полностью. Кириллическая часть находиться на знакоместах расширенной латиницы. У знаков кириллицы очень своеобразные имена: LPM1, Apple, fl, fi и имена символов расширенной латиницы.
Конвертируем тем способом который описал я, как результат, на месте кириллицы остался только 61 знак на кириллических знакоместах, остальные «слетели». Вывод: для работы данный шрифт не пригоден.
Пробуем ваш способ (в FLS 5.0.2). Результат: на кириллических знакоместах остались 85 знаков, остальные «слетели». Вывод: шрифт для работы не пригоден. Ну, и какой способ правильнее, если в любом случае это грозит правкой шрифта руками? Кроме всего прочего, шрифты Ленполиграфмаша были годны для использования в своё время, но они к сожалению устарели, ну а если немного вспомнить, что компания Паратайп унаследовала и переработала большинство ихшрифтов, адаптируя их под сегодняшний софт, то смысл возиться с этими шрифтами совсем отпадает.
 

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

[offtop]
Если честно, я давно так не смеялся…
[/offtop]

Требований об UPM = 2048 или 1000 нет в стандартах формата шрифтов.
Вы уверены? Может вы загляните в TrueType 1.0 font files, можно ещё на сайте apple почитать… Кроме всего прочего, эта информация есть в мануале по FontLab-у, подсказать где?
Вы наверно запамятовали, но мы с вами обсуждали на ProDTP проблему использования UPM не равным этим значениям, и вы со мной согласились. Всё дело в том, что в FontLab механизм автохинтинга и создания ТТ инструкций, как раз использует эти значения, и при использовании иных значений не верно создаются хинты и инструкции. Это предупреждение есть и в мануале по FLS.
Часто встречаются TT шрифты c UPM = 4096, и это не ошибка.
Желательно поподробнее: как часто встречаются? Кто производитель? Какова высота глифа «Н»?
В формате Type1 вообще нет такого понятия как «кодовая страница».
Вы действительно правы, в спецификации этого нет, но данный термин достаточно давно применяется повсеместно по отношению к Type1 шрифтам. Так, что ваше заявление не принимается…
Высота глифа в 1430 единиц для Type1 шрифтов вполне допустима. Координаты узлов Type 1 глифа должны быть в диапазоне от -2000 до 2000...
И что это доказывает, а у TrueType шрифтов координаты могут находиться в диапазоне
от -16384 до +16383, однако это не говорит о том, что при значении UPM = 1000 допустима высота глифа в 1430 едениц. Как это будет выглядеть, можно посмотреть в прикреплённом файле.
В Type 1 шрифтах каких либо сведений о Supported codepages нет.
А это действительно баг, исправлю…
Это вредный совет…
Уж не вреднее, чем ср1252 для некоторых программ. К сожалению масса программ по разному работает с Type1, по этому эта тема сродни Corel vs Illustrator. Например, будут ли работать одинаково работать шрифты в локализованных и английских версиях программ + MUI?
 

Вложения

  • bug.gif
    bug.gif
    27.5 КБ · Просм.: 1 299

suntory

Administrator
15 лет на форуме
Сообщения
23 431
Реакции
12 477
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
давайте посмотрим на шрифты Ленполиграфмаша. Подопытным будет: CyrillicHelv Copyright (c) 1992 NPO "Polygraph Mash" Moscow.

http://www.prodtp.ru/index.php?showtopic=4420&st=80
НИИ Полиграфмаш, институт в Москве <...> Ленинградский завод полиграфического машиностроения (ЛенПолиграфмаш)
VF, как я понимаю, имеет ввиду эти Type1-шрифты:
В Ленинграде <...> стали сами их переводить в ПостСкрипт (с ужасным качеством)
В нашем списке мы различем Полиграфмаш и шрифты, которые ЛенПолиграфмаш делал сам.


В режиме Codepages в ленполиграфмашевских Type1-шрифтах можно сколько угодно жать Reencode и ничего не произойдет, ни в Fontlab 4.6, ни в Fontlab Studio 5. Имена всех (!) глиф там начинаются с LPM.
 

suntory

Administrator
15 лет на форуме
Сообщения
23 431
Реакции
12 477

Denisbox

15 лет на форуме
Сообщения
402
Реакции
249
Ответ: Много шрифтов. Много проблем

suntory
Ого! У меня комплект не более чем из 15. Но не все имеют имена LPM.
Каким годом датируются?
 

suntory

Administrator
15 лет на форуме
Сообщения
23 431
Реакции
12 477
Ответ: Много шрифтов. Много проблем

Denisbox сказал(а):
Но не все имеют имена LPM.
У меня вроде все.
Denisbox сказал(а):
Каким годом датируются?
производство АО Ленполиграфмаш 1995 г.

А вот с Copyright 1991, NPO Polygraphmash я нашел только Dutch и Electron, TTF из FontMonger-а. Кодировка там замысловатая.
 
Статус
Закрыто для дальнейших ответов.