Я нахожусь на Arch Linux, Deepin Desktop. Я использую Noto Serif в качестве стандартного шрифта, но мне не нравятся его арабские символы. Поэтому моя цель - использовать другой шрифт только для арабских символов.
Вот что я попробовал. Я создал новый файл конфигурации /etc/fonts/conf.d/
со следующим содержанием:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="lang" compare="contains">
<string>ar</string>
</test>
<test qual="any" name="family">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Naskh Arabic</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains">
<string>ar</string>
</test>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Naskh Arabic</string>
</edit>
</match>
</fontconfig>
Я тогда побежал fc-cache -r
. Но это не сработало, тот же шрифт все еще используется и выполняет fc-match
возврат так NotoSerif-Regular.ttf: "Noto Serif" "Regular"
же, как и раньше.
linux
fonts
fontconfig
deepin
Омар Эмара
источник
источник
LC_CTYPE
категория локали)?99-bangla.conf
в~/.config/fontconfig/conf.d
каталоге. Похоже, я получаю значение по умолчанию при запускеLANG=bn fc-match
. Но Google Chrome по-прежнему выбирает другой шрифтОтветы:
Многие шрифты Noto сообщают системе, что они поддерживают арабский алфавит, что они и делают - частично. Одним из этих шрифтов является шрифт урду , и по какой-либо причине он имеет приоритет над другими шрифтами, которые поддерживают арабский скрипт.
Вы можете предпочесть определенный шрифт над другими следующим образом:
Чем выше позиция шрифта, тем предпочтительнее он. В этом случае мы предпочитаем
Noto Naskh Arabic
другие арабские шрифты.Конечно, вы можете сделать это с любым языком или шрифтом по вашему выбору.
По какой-то причине у меня работал только файл конфигурации пользователя, расположенный в
~/.config/fontconfig/fonts.conf
. Обратите внимание, что$XDG_CONFIG_HOME
переменная окружения должна быть установлена в вашем.config
каталоге в вашем домашнем каталоге, поэтому$HOME/.config
.Затем вам нужно перестроить конфигурацию, чтобы она вступила в силу, используя
fc-cache
. Только новые запущенные приложения будут отображаться с новой конфигурацией. Перезапустите X-сервер или рабочий стол, чтобы изменения вступили в силу в глобальном масштабе.Изменить: Если вы сопоставляете с
ar
языковым стандартом, который просто не будет работать на всех веб-сайтах, потому что некоторые веб-сайты используютen
языковой стандарт при отображении арабских символов UTF-8.Если вы зайдете
/etc/fonts/conf.d
и прочитаете,README
а затем прочитаете любой файл конфигурации, начиная с[30-40]
того, что вы знаете, что это правильный ответ.Если, скажем, веб-сайт запрашивает шрифт с засечками; fontconfig просматривает этот список, во-первых
Noto Serif
, когда он находит арабский символ, он прибегает ко второму шрифту в спискеNoto Naskh Arabic
- и обнаруживает, что шрифт поддерживает арабский скрипт, поэтому он используется.источник
<string>Noto Naskh Arabic</string>
в~/.config/fontconfig/conf.d/99-deepin.conf
файл делает свою работу.