Мне пришлось 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. они более зазубренные, менее плавные, чем их бесплатные альтернативы в моих веб-браузерах.
Возможно ли это?
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». Я уверен, что вы можете найти его самостоятельно.