최근 리눅스에서 fontconfig
을 사용하여 serif, sans-serif 및 monospaced 글꼴의 시스템 기본 글꼴을 설정하는 방법을 알아 냈습니다.fontconfig에서 유니 코드 범위/코드 포인트 당 글꼴을 설정하는 방법은 무엇입니까?
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" binding="strong" mode="prepend_first">
<string>Gentium</string>
<string>Sun-ExtA</string>
<string>HanaMinA</string>
<string>HanaMinB</string>
</edit>
</match>
</fontconfig>
binding="strong" mode="prepend_first"
속성이 일치하는 규칙이 다른 설정보다 우선 있는지 확인하고 글꼴 이름의 순서는 폰트하지 않는 경우 보장 : 기본적으로 다음과 같은 내용으로 ~/.config/fontconfig/fonts.conf
에 XML 구성 파일을 저장 주어진 코드 포인트/문자를 포함하면 목록의 다음 글꼴이 시도됩니다 (이 목록은 위에서 아래로 적용됩니다. 실제로는 나중에 바인딩되는 더 강력한 논리 여야합니다.).
이 구성의 중요한 점은 텍스트 편집기와 터미널 에뮬레이터에서 모두 잘 작동한다는 것입니다.
그러나 여전히 nag가 있습니다. 주어진 글꼴에 주어진 글리프가 포함되어 있지만 다른 글꼴이 해당 코드 포인트에 우선 할 수있는 경우가 많습니다. 예를 들어 Sun-ExtA
은 CJK 문자의 기본 글꼴이지만 CJK가 아닌 문자가 많이 포함되어 있으며 문제가되는 글리프가 있습니다.
한다고 가정 내가 Sun-ExtA
에서 〇 U+3007 IDEOGRAPHIC NUMBER ZERO
의 모양을 좋아하지 않아 오히려 그것을위한 HanaMinA
을 사용, 어떻게 내가 fontconfig
으로 그렇게 할 수 있을까? 분명히 HanaMinA
에 대한 항목의 우선 순위를 Sun-ExtA
이상으로 지정할 수는 없습니다. 두 글꼴 모두에 포함 된 글리프의 모두에 영향을 미치므로 분명히 우선 순위를 지정할 수 없습니다.
내 직감 는 요소 <charset>
포함하는 용액합니다 ( fontconfig user documentation에 따른 "이 요소는 적어도 하나 개 유니 코드 코드 포인트 이상의 요소 보유") (및/또는 <range>
을 "이 요소가 있어야한다는 것이다 범위 표현의 두 요소를 보유하고 있습니다 "- 아마도 유니 코드 코드 포인트의 범위를 나타낼 수 있습니다. 하지만 이러한 요소를 사용하는 방법에 대한 단 하나의 예는 찾을 수 없습니다.
단일 유니 코드 코드 포인트 또는 코드 포인트 범위에 특정 글꼴을 사용하도록 fontconfig를 구성 할 수 있습니까?