HarfBuzz - Есть ли способ получить максимальное количество глифов вперед/назад для определенного шрифта?

Мы работаем над программой редактирования текста, которая обрабатывает OpenType с помощью HarfBuzz. Пока пользователь печатает, мы делаем повторный анализ текста после набора, используя HarfBuzz, поэтому мы получим правильный GSUB и так далее.

Мы хотим анализировать как можно меньше текста.

Мы пытаемся найти, как получить информацию о конкретном шрифте с помощью HarfBuzz, о максимальной длине просмотра вперед или назад, которые определены в различных поисках этого шрифта в таблице OpenType.

Есть ли способ получить "lookaheadGlyphCount" и "backtrackGlyphCount" с помощью HarfBuzz.

См. документацию Microsoft для LookupType 6 и LookupType 8

ИЗМЕНИТЬ:

Дополнительные разъяснения см. в этом выпуске TypeDrawers — Здесь.


person Yeshurun Kubi    schedule 12.09.2019    source источник
comment
Я немного запутался... зачем предлагать вознаграждение за SO вместо того, чтобы просто задать свой вопрос людям, которые на самом деле поддерживают harfbuzz? SO здесь для вас, когда вы исчерпали свои варианты и разместили сообщение на github.com/harfbuzz/harfbuzz/ вопросы определенно вариант, который всегда доступен для вас.   -  person Mike 'Pomax' Kamermans    schedule 17.09.2019
comment
@Mike'Pomax'Kamermans - как новый пользователь, возможно, я открываю эту проблему не в том месте. Хотя кажется, что на GitHub это больше касается поддержки HarfBuzz или отчета об ошибках. Я подумал, что здесь, на SO, из-за TAG «HarfBuzz» — это подходящее место для вопроса «Как сделать».   -  person Yeshurun Kubi    schedule 17.09.2019
comment
Помните, что вы также сталкиваетесь с отсутствием документации: вы хотите знать, как сделать что-то довольно конкретное и техническое, но, по-видимому, в документации harfbuzz не упоминается, возможно ли это: каждый пользователь harfbuzz, вероятно, выиграет. из информации, которую вам нужно добавить в документацию, поэтому, даже если это не ошибка, вы обязательно должны задавать такие вопросы для проектов с открытым исходным кодом. Их ответ можно использовать для улучшения документации, чтобы другим не приходилось задавать тот же вопрос в будущем.   -  person Mike 'Pomax' Kamermans    schedule 17.09.2019
comment
Следуя вашему совету, мой коллега опубликовал об этом вопрос: github.com/harfbuzz/harfbuzz/issues/ 1977 г.   -  person Yeshurun Kubi    schedule 20.09.2019
comment
красивый! Это должно принести вам довольно много хороших комментариев и помощи.   -  person Mike 'Pomax' Kamermans    schedule 20.09.2019


Ответы (1)


Есть ли способ получить «lookaheadGlyphCount» и «backtrackGlyphCount» с помощью HarfBuzz.

Не использовать текущие общедоступные API HarfBuzz.

HarfBuzz анализирует таблицу и использует эту информацию, но не раскрывает ее по определенной причине. Вы можете написать свой собственный синтаксический анализатор, используя частные API-интерфейсы HarfBuzz, но я разговаривал с Бехдадом, и есть причина не раскрывать его, что, вероятно, связано с его ненадежностью или чем-то еще.

Я также должен добавить, что это очень специфическая деталь шрифта, GSUB/GPOS - не единственный способ построения шрифтов, есть шрифты без них, а шрифты AAT morx/kerx имеют другую историю, поэтому я предлагаю искать другое решение для кэширования.

Firefox, старый механизм компоновки Chrome и Minikin используют метод кэширования слов, https://github.com/linebender/skribo/issues/6 вы, возможно, также можете пойти на что-то подобное или кэшировать каждый абзац отдельно, по-видимому, как LayoutNG в Chrome.

person Ebrahim Byagowi    schedule 16.09.2019