Как установить шрифт, используемый Fontconfig для общих имен семейств шрифтов?

Я хотел бы использовать, например. «Roboto» для шрифта, используемого всякий раз, когда приложение указывает sans-serif. Я понимаю, что это решение Fontconfig использует правила в /etc/fonts и может быть установлено на основе пользователя с помощью ~/.config/fontconfig/conf.d/NN-customisations.conf (где NN есть [00-99]).

У меня есть следующее в ~/.config/fontconfig/conf.d/00-aliases.conf

<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> <alias> <family>sans-serif</family> <prefer><family>Roboto</family></prefer> </alias> <alias> <family>sans</family> <prefer><family>Roboto</family></prefer> </alias> </fontconfig>

Однако fc-match по-прежнему показывает DejaVuSans.ttf (даже после перезагрузки):

~ ☼ fc-match -s "sans-serif" DejaVuSans.ttf: "DejaVu Sans" "Book" emojione-android.ttf: "Emoji One" "Regular" DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold" DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique" DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique" Roboto-Regular.ttf: "Roboto" "Regular" Verdana.ttf: "Verdana" "Regular" Arial.ttf: "Arial" "Regular" n019003l.pfb: "Nimbus Sans L" "Regular" Loma.ttf: "Loma" "Regular" ...(many more)...

Roboto на 6-м месте!

Как мне сказать Fontconfig, чтобы использовать Roboto здесь?

1
задан 18 May 2017 в 03:26

2 ответа

Попробуйте этот файл конфигурации:

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Roboto</string> </edit> </match> </fontconfig>
3
ответ дан 18 July 2018 в 13:07

Попробуйте этот файл конфигурации:

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Roboto</string> </edit> </match> </fontconfig>
3
ответ дан 24 July 2018 в 20:06
  • 1
    Оно работает! Это первое serif должно быть sans. как работает сопоставление? Будет ли это также влиять на другие шрифты с "sans" во имя? – detly 18 May 2017 в 04:08
  • 2
    Просто протестировал его на нескольких и нет, он не сбивает другие шрифты с помощью «sans». во имя. Приложения, которые я ожидаю использовать, делают это правильно. – detly 18 May 2017 в 04:12
  • 3
    @detly: Хорошо, что это помогло. Я не тот человек, который объясняет это шаг за шагом. По умолчанию в Ubuntu установлено несколько похожих файлов. – Gunnar Hjalmarsson 18 May 2017 в 04:20
  • 4
    Вы заменяете serif шрифты Roboto, которые вам не следует думать. Roboto - шрифт без засечек, и OP хотел, чтобы он был по умолчанию для семейства sans-serif – Anwar 29 May 2017 в 20:40
  • 5
    @Anwar: Так кажется; просто удалите раздел serif. Спасибо за головы! – Gunnar Hjalmarsson 29 May 2017 в 20:53

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

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