понедельник, 24 октября 2016 г.

Будущее LibreOffice. Работа с отсутствующими шрифтами

В блоге команды дизайна опубликована интересная заметка о проблемах, которые возникают у пользователей, если у них есть документ, который содержит отсутствующие у них на компьютере шрифты. Документ выглядит не так, как его видел автор. Разработчики предлагают новый взгляд на решение такой проблемы. Ниже мой вольный перевод:

Работа с отстутствующими шрифтами

Когда документы отправляются с одного компьютера на другой или открываются на одном компьютере в другой операционной системе, эти документы могут выглядеть по разному, если не все шрифты, используемые в документе, доступны на другом компьютере или в иной операционной системе. По этой причине так популярен экспорт документов в PDF-файлы, так как это делает документ одинаково выглядящим в любых ситуациях, он будет напечатан без какой-либо оглядки на шрифты. Это предложение (команды дизайна) пытается предоставить пользователям удобный способ для борьбы с ситуацией, когда отсутствуют нужные шрифты.

Отобразить уведомление

Первый шаг к решению этой проблемы – уведомить пользователей об отсутствии нужных шрифтов при открытии документа, который содержит недостающие шрифты, которые были заменены LibreOffice. Это может быть достигнуто при существующей реализации информационной панели LibreOffice, которая также используется для уведомления пользователя о том, что они открывают документ только для чтения. Для того чтобы ограничить появление этой панели только случаями, когда это действительно необходимо, информационная панель не будет отображаться в случаях, когда отсутствующие шрифты замещаются метрически совместимыми шрифтами из поставки LibreOffice.

Пользователь будет иметь возможность отклонить уведомление или нажать на кнопку «View font list» (Просмотреть список шрифтов), которая открывает диалоговое окно свойств документа (или, в качестве альтернативы, некий новый диалог). В диалоге будет перечислены все шрифты, используемые в документе (как используемые в стилях, так и применённые при прямом (ручном) форматировании), а также указать, какие из них отсутствуют, и шрифты, которыми таковые были замещены.

Установка и замена шрифтов

Список шрифтов, используемых в документе, можно считать общей информацией о документе, и поэтому он идеально подходит для свойств документа в диалоговом окне (Файл > Свойства...). Диалог имеет вкладку Шрифт, на который есть только возможность встраивать шрифты в документ, так что она может быть заполнена путем перечисления шрифтов и их заменителей. Мы сделали два макета на тему того, как это может быть представлено, как показано на рисунке ниже.

На обоих макетах показаны списки шрифтов, которые содержат список всех шрифтов в документе и, для отсутствующих шрифтов, отображаются замещающие их установленные шрифты.
На левом макете, в списке шрифтов выделены курсивом шрифты, которые не установлены. Когда выделена строка, то в столбце "Substitution" (Замещающий) становится доступен выпадающий список всех установленных шрифтов, чтобы обеспечить средства для выбора другого шрифта, который будет использоваться в качестве замены. Порядок сортировки может быть настроен. Если пользователь хочет установить альтернативный шрифт, он может нажать кнопку "Install font" (Установить шрифт), который открывает диалог c доступом к сайту с расширениями, с настройкой фильтра для отображения шрифтов. Поиск в этом списке должен быть легким (на картинке приведен в пример шрифт "Comic"), а установка позволяет впоследствии выбрать этот шрифт в списке подстановки. (Не все шрифты обязательно должны быть размещены на сайте расширений, может быть достаточно прописать ссылку в нужное место).
На правом макете, список шрифтов имеет столбец "Installed" (Установленные), чтобы показать, установлен ли шрифт. При выборе строки, пользователь может нажать на кнопку "Install" (Установить), которая открывает меню элементов для установки отсутствующего шрифта или альтернативы с открытым исходным кодом. Пользователи Linux также смогут установить оригинальные или альтернативные шрифты через менеджер пакетов. Пункт меню "Install All" (Установить все) будет перебирать список шрифтов и устанавливать недостающие шрифты из их оригинальных источников. Кроме того, пользователи могут применить другой замещающий шрифт для выбранного шрифта, нажав на кнопку "Apply Substitute" (Применить замену) в выпадающем меню "Substitute", или заменить все вхождения шрифта на другой шрифт в документе, используя кнопку "Replace font” (Заменить шрифт).

За кулисами

Для того, чтобы обеспечить необходимую функциональность для установки шрифта или его альтернативы, как это было описано выше для макетов, эта функциональность должна быть прописана в конфигурационном файле. Этот файл будет на основе XML и каталога шрифтов, их открытых альтернатив и источника их загрузки в виде URL-адресов. Структура XML будет возможно выглядеть следующим образом:

<font>
<family>Times New Roman</family>
<license>Proprietary</license>
<style>serif</style>
<bundled_with>Windows;Windows 3.1</bundled_with>
<download_url>https://sourceforge.net/projects/corefonts/files/
the%20fonts/final/times32.exe/download</download_url>
<package>ttf-mscorefonts-installer</package>
<substitute>
<family>Liberation Serif</family>
<metrical_compatible>Y</metrical_compatible>
<download_url>http://downloadarchive.documentfoundation.org/
libreoffice/old/fonts/liberation_serif.zip</download_url>
<package>fonts-liberation</debian_package>
</substitute>
</font>

Индикация замещения

В настоящее время есть только визуальная индикация того, что шрифт замещён другим шрифтом: имя шрифта в соответствующем поле в панели инструментов отображается курсивом. Существует еще один визуальный индикатор в виде дополнительного текста, содержащегося в подсказке, но его легко игнорировать, потому что подсказка появляется только на секунду перед щелчком по имени шрифта в поле.

Для того, чтобы лучше указать на факт замещения шрифта, мы должны сделать больше для изменения отображаемого текста, например изменить его цвет на красный (TDF #96872), а также указать шрифт, который используется для замещения, как в названии шрифта, так и в подсказке (TDF # 61134).

Подобно названию шрифта на панели инструментов, вкладка Шрифт, находящаяся в диалоге Символ, также нуждается в улучшении. Надписям "This font style will be simulated or the closest matching style will be used" и "This font has not been installed. The closest available font will be used", которые находятся под выпадающими списками с названиями семейств шрифтов, нужна более четкая индикация, чем просто быть в простом стиле, когда она говорит: "The same font will be used on both your printer and your screen". Должен быть изменен либо стиль текста (курсив, жирный или красный), либо должен показываться значок предупреждения в начале текста.
Вывод

Стилизирование текста с использованием различных шрифтов, благодаря доступности Интернета, распространено повсеместно, поэтому мы хотим облегчить работу с ним для пользователей, чтобы они видели документы, которые они открывают, в том же виде, в котором их создал автор.

3 комментария:

  1. Кстати не всегда "метрически совместимые" шрифты подходят. Заголовок слайдов с Liberation Serif вместо таймса съехал немножко помню, поэтому я бы во всех случаях предупреждал

    ОтветитьУдалить
    Ответы
    1. Ну, можешь написать им там в комментариях. И кстати они предлагают как вариант просто скачать и поставить необходимые шрифты. Могли бы в преамбуле написать, что сейчас есть возможность встаривать шрифты в документ сразу

      Удалить
    2. Необходим баланс между неинформативным и слишком интрузивным интерфейсом. Первый подгодит опытным пользователям, которые любую информацию, которая для них "и так очевидна", считают вторжением, а второй - для совсем неопытных, которые любое своё незнание склонны приписывать ошибкам программы.
      Метрически совместимые шрифты специально разработаны для решения проблем "съезжания" и визуального несоответствия текста. Поэтому предложение не выдавать предупреждение для таких шрифтов - вполне логичное (что не отменяет того, что они должны отображаться курсивом/красным/с указанием подставляемого шрифта в панели инструментов). Что касается съехавшего заголовка, это - баг (неполная совместимость шрифта), возможно, связанная с худшей совместимостью национальных символов. Её надо исправлять (сообщать разработчикам шрифта), а не "обходить" с помощью таких оповещений.

      Удалить