redhat-fonts/64-redhat-mono-vf-fontconfig.conf
2024-06-04 17:19:24 +09:00

263 lines
8.9 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<!--
- This scan pattern aims to correct properties to:
- * keep consistency between RedHatMono and RedHatMono-Italic
- * provide single family name e.g. Red Hat Mono
- * provide single familylang because of the above
- * provide single style name e.g. like :family=Red Hat Mono:style=Light
- but :family=Red Hat Mono Light:style=Regular
- * provide single stylelang because of the above
- * set different family name of the variable font pattern to avoid conflict
-->
<fontconfig>
<!-- Try to workaround broken family name in RedHatMono.ttf -->
<!-- For Light -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Regular</string>
</test>
<test name="style" compare="eq">
<string>Light</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
<edit name="stylelang" mode="delete" /> <!-- Drop stylelang once -->
<edit name="stylelang" mode="append"> <!-- Add single stylelang again -->
<string>en</string>
</edit>
<edit name="style" mode="delete" /> <!-- Drop Regular -->
</match>
<!-- For Medium -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Medium</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For SemiBold -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>SemiBold</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For Bold -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Bold</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For Regular -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Regular</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For variable font -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="variable">
<bool>true</bool>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- Try to workaround broken family name in RedHatMono-Italic.ttf -->
<!-- For Light -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Regular</string>
</test>
<test name="style" compare="eq">
<string>Light Italic</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light Italic -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
<edit name="stylelang" mode="delete" /> <!-- Drop stylelang once -->
<edit name="stylelang" mode="append"> <!-- Add single stylelang again -->
<string>en</string>
</edit>
<edit name="style" mode="delete" /> <!-- Drop Regular -->
</match>
<!-- For Medium -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Medium Italic</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light Italic -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For SemiBold -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>SemiBold Italic</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light Italic -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For Bold -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Bold Italic</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light Italic -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For Regular -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="style" compare="eq">
<string>Italic</string>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono Light Italic -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- For variable font -->
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono Light Italic</string>
</test>
<test name="variable">
<bool>true</bool>
</test>
<edit name="family" mode="assign">
<!-- Rewrite family name to Red Hat Mono Italic to avoid confusion for Red Hat Mono -->
<string>Red Hat Mono Italic</string>
</edit>
</match>
<match target="scan">
<test name="family" compare="eq">
<string>Red Hat Mono</string>
</test>
<test name="family" compare="eq">
<string>Red Hat Mono Italic</string>
</test>
<test name="variable">
<bool>true</bool>
</test>
<edit name="family" mode="delete" /> <!-- Drop Red Hat Mono -->
<edit name="familylang" mode="delete" /> <!-- Drop familylang once -->
<edit name="familylang" mode="append"> <!-- Add single familylang again -->
<string>en</string>
</edit>
</match>
<!-- Generic name assignment -->
<alias>
<family>Red Hat Mono</family>
<default>
<family>monospace</family>
</default>
</alias>
<!-- Generic name aliasing -->
<alias>
<family>monospace</family>
<prefer>
<family>Red Hat Mono</family>
</prefer>
</alias>
</fontconfig>