Как заменить неизвестные шрифты?

14

Предположим, у меня есть иностранный текстовый документ, который я открываю с помощью инструмента редактирования текста, который распознает шрифты (например, LibreOffice Writer). В этом документе могут использоваться некоторые шрифты, которые недоступны в моей установке Ubuntu (например, Garamond).

Вопрос в следующем: как Ubuntu решает, какой из установленных шрифтов использовать в качестве замены неизвестного шрифта? Читает ли он какие-либо характеристики шрифта и ищет похожий? Всегда ли используется шрифт замещения по умолчанию? Поиск похожих имен шрифтов?

В дополнение к этому, я хотел бы знать, могу ли я каким-либо образом изменить это поведение или установить псевдонимы ручного шрифта для автоматического использования, например, свободного шрифта EB-Garamont вместо несвободного Garamont ?

Byte Commander
источник
Этот вопрос возник, когда я ответил на вопрос здесь: superuser.com/a/945192/418736
Byte Commander

Ответы:

9

Я думаю, что это решается не Ubuntu, а программой (LibreOffice, OpenOffice и т. Д.). Я не мог видеть , что связанно с LibreOffice самого по себе , но OpenOffice имеет хорошую вику с некоторыми деталями о том , как это работает «Шрифт FALLBACK». Это может быть применимо и к LibreOffice в целом.

Я воспроизводлю некоторые разделы из вики ниже для пояснения. Трудно объяснить лучше, чем то, что есть в вики , поэтому лучше прочитать это оттуда:

Что такое шрифт Fallback в OpenOffice.org 2?

Font-Fallback включается всякий раз, когда запрашивается шрифт, который не установлен в системе. (Не установлено означает: недоступно для OOo). Затем OOo пытается использовать шрифт, отличный от того, о котором знает OOo, который соответствует запрошенному как можно ближе.

Как работает Font Fallback?

Чтобы шрифт-отступление давало удовлетворительные результаты, OOo каким-то образом должен знать о сходстве шрифтов. OOo должен знать, что он может заменить Helvetica вместо Arial , но не Comic Sans . Эта задача не так проста, как кажется, поскольку существует множество шрифтов, и OOo не может знать обо всех них.

OOo использует несколько способов найти подходящую замену:

  • Информация о псевдониме шрифта, предоставляемая системой (например, из fonts.dir файла )
  • Жестко закодированный список резервных шрифтов от VCL.xcu(попробовал первым)
  • Альтернативное написание имени шрифта
  • Атрибуты шрифта (например, имеет ли он символы CJK, является ли он символьным шрифтом) или стиль (с засечками / без засечек , пропорциональный / непропорциональный)

если все это тоже не получается:

  • использовать шрифт по умолчанию

Не имеет прямого отношения, но этот документ TLDP хорошо читается.

Рон
источник