Могу ли я переопределить шрифты, установленные программой ttf-mscorefonts-installer, предпочесть шрифты Liberation?

Мне пришлось apt-get установить ttf-mscorefonts-installer в Ubuntu 12.04 / 12.10. Короткая версия - мне нужно передать PDF-файлы из приложения, которому требуются эти шрифты для определенных символов.

Проблема после запуска этой команды заключается в том, что шрифты в моем веб-браузере (и некоторых приложениях Java) теперь «безобразны». Очевидно, это субъективное мнение, но я придерживаюсь его.

Я хочу вернуть старые шрифты в большинстве случаев (Liberation, DejaVu, Ubuntu, ...). Я не уверен, как лучше это описать, но вот пример:

Пример CSS в Webbrowser

font-family: Verdana,Arial,sans-serif;

Без ttf-mscorefonts-installer (Case 1) :

    $ fc-match Verdana
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match Arial
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`

С помощью ttf-mscorefonts-installer (Случай 2):

    $ fc-match Verdana
    Verdana.ttf: "Verdana" "Normal"

    $ fc-match Arial
    Arial.ttf: "Arial" "Normal"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`

Я хочу (Случай 1). Необязательно, я хочу, чтобы шрифты в (Случай 2) не выглядели «некрасиво» IE. они более зазубренные, менее плавные, чем их бесплатные альтернативы в моих веб-браузерах.

Возможно ли это?

5
задан 1 November 2012 в 20:14

1 ответ

fontconfig использует полный набор систем подстановки шрифтов. Существуют разные уровни определения шрифта: имя шрифта и семейства шрифтов. Учитывая определенный шрифт, fontconfig использует шрифт с тем же именем, если он доступен, а затем ищет семейство шрифтов с тем же именем . Если совпадения по-прежнему нет, в качестве замены используется стандартное определение семейства шрифтов, то есть Sans, Sans-Serif и Mono.

Ubuntu имеет семейство шрифтов «Verdana», определенное в «/etc/fonts/conf.d/45-latin.conf», где «Verdana» по умолчанию имеет значение «Sans-serif», что означает Sans -serif используется для 'Verdana' по умолчанию. Но вместо этого будет использоваться Verdana.ttf, если он установлен.

В вашей системе предпочтительным шрифтом в семействе Sans-Serif является «Liberation Sans», поэтому fontconfig использует «Liberation Sans» вместо «Verdana» при условии, что такого шрифта нет name, , тогда как использует 'Verdana.ttf', если он находится в пути поиска . Это объясняет, что вы опубликовали.

Таким образом, решение вашей проблемы состоит в том, что вы должны переназначить шрифт Verdana на другой шрифт, или на группу шрифтов, которая присваивает «Liberation Sans» самый высокий приоритет . (Последний случай рекомендуется)

Откройте или создайте файл ~ / .config / fontconfig / fonts.conf, добавьте следующее:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<match>
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Liberation Sans</string>
        <string>Verdana</string>
    </edit>
</match>

</fontconfig>

Обратите внимание, что ~ / .fonts.conf устарел, и если у вас уже есть пользовательский fonts.conf, удалите верхний и нижний колонтитулы и оставьте только раздел «match». И было бы слишком скучно демонстрировать тот же обходной путь на «Arial». Я уверен, что вы можете найти его самостоятельно.

0
ответ дан 1 November 2012 в 20:14

Другие вопросы по тегам:

Похожие вопросы: