Hvis du kun leser tekst på engelsk, og er fornøyd med vanlige libre fonter som er oppført på neste side, trenger du kanskje aldri å bekymre deg for detaljer om hvordan Fontconfig virker. Men det er mange ting som kan endres hvis de ikke passer dine behov, hvorfor de kanskje ikke alltid fungerer, og for å identifisere nettbasert informasjon som ikke lenger er hensiktsmessig.
Men før du bruker lang tid på å prøve ut forskjellige innstillinger vær oppmerksom på at moderne applikasjoner og skrivebordsmiljøer kan ignorere innstillinger for fontconfig - se Elementer som kan overstyre Fontconfig.
Selv om denne siden er lang, skraper den knapt overflaten, og det du vil kunne finne mange alternative synspunkter på nettet (men husk at noen ting har endret seg gjennom årene, for eksempel autohinteren er ikke lenger standard). Målet her er å gi deg nok informasjon for å forstå endringene du gjør, hvorfor de kanskje ikke alltid fungerer, og for å identifisere online informasjon som ikke lenger er hensiktsmessig.
Dessverre er noe av terminologien tvetydig (f.eks. 'font face' kan betyr et navn kjent for Fontconfig, eller det vanlige, kondenserte, etc variasjoner av en font) og 'stil' kan brukes til skille 'vanlig' fra 'kursiv', eller ved å beskrive noen klasser av Serif fonter.
Følgende lenker er for å hjelpe navigering på denne siden.
Xft fontprotokollen gir kantutjevnet skriftgjengivelse gjennom
freetype, og fonter styres fra
klientsiden ved bruk av Fontconfig
(utenom rxvt-unicode-9.31 som kan bruke fonter
oppført i ~/.Xresources
, og AbiWord-3.0.5 som bruker kun den angitte
fonten). Standard søkesti er /usr/share/fonts
og ~/.local/share/fonts
, selv om for øyeblikket den
gamle og utdaterte plasseringen ~/.fonts
virker fortsatt. Fontconfig søker mapper i stien sin rekursivt
og opprettholder en hurtigbuffer med fontkarakteristikkene i hver
mappe. Hvis hurtiglageret ser ut til å være utdatert, ignoreres
den, og informasjon hentes fra selve fonten (det kan ta noen få
sekunder hvis du har mange fonter installert).
Hvis du har installert Xorg i et
hvilket som helst prefiks annet enn /usr
, ingen X
fonter ble installert i et sted kjent for Fontconfig. Symbolkoblinger var opprettet fra
OTF
og TTF
X font
mapper til /usr/share/fonts/X11-{OTF,TTF}
i Xorg Fonter.
Dette tillater Fontconfig å bruke
OpenType og TrueType fonter levert av X, selv om mange vil foretrekke å bruke mer
moderne fonter.
Fontconfig bruker navn for å definere fonter. Applikasjoner bruker vanligvis generiske skriftnavn som "Monospace", "Sans" og "Serif". Fontconfig løser disse navnene til en font som har alle tegn som dekker ortografien til språket som er angitt av lokalinnstillingene.
Følgende kommandoer kan være nyttige når du arbeider med Fontconfig, spesielt hvis du er interessert i å overstyre hvilken font som skal bli brukt.
fc-list | less : viser en liste over alle tilgjengelige fonter (/sti/til/filnavn: Fontnavn:stil). Hvis du installerte en font og den ikke vises, kan ikke mappen den finnes i leses av brukeren din.
fc-match 'Font Name' : forteller deg hvilken font som brukes hvis den navngitte fonten er forespurt. Vanligvis vil du bruke dette til å se hva som skjer hvis en font du ikke har installert blir forespurt, men du kan også bruke den hvis systemet gir deg en annen font enn hva du forventet (kanskje fordi Fontconfig tror ikke at fonten støtter språket ditt).
fc-match TYPE
: viser
hvilken font vil bli brukt på gjeldende språk for TYPE
(Monospace, Sans, Serif
(første stor bokstav er
valgfritt)). Hvis den skriften ikke kartlegger et
kodepunkt, Fontconfig kan ta en
glyph fra hvilken som helst tilgjengelig skrift, selv om den ikke
er av den angitte typen. Enhver annen verdi for TYPE
vil antas å være Sans.
fc-match 'Serif :lang=ja:weight=bold' vil fortelle deg hvilken font og vekt som skal velges for japansk tekst i fet skrift. Det betyr ikke at den rapporterte fonten nødvendigvis vil kunne vises Japanske ideogrammer, så en reserve kan brukes, eller noen glyfer kan være savnet. For språkkoder, bruk ISO-639-verdier som 'fr', 'ja', 'zh-cn'. Merk at en ukjent verdi som bare 'zh' ikke vil returnere noen samsvar. For å illustrere tilbakefallet, på et system hvor både Noto Sans Mono og DejaVu Sans Mono er installert, fc-match 'monospace :lang=en viser Noto Sans Mono vil bli brukt, men hvis lang er endret til 'ar' (arabisk) DejaVu Sans vil bli brukt.
Hvis du vil finne ut om en skriftfil har hinting (mange eldre
skrifter har ikke, fordi det var patentert) bruk fc-query /sti/til/fontfil
| grep
'fonthashint:': som vil rapportere 'True(s)' eller
'False(s)'. Noen nyere fonter med både TTF og OTF versjoner vil ha
hinting i TTF filene.
Hvis du ønsker å vite hvilken font vil brukes til en tekststreng
(dvs. en eller flere glyfer, innledet av et mellomrom), lim inn
følgende kommando og erstatt xyz
av
teksten du vil sjekke:
FC_DEBUG=4 pango-view --font=monospace -t xyz | grep family : dette krever Pango-1.54.0 og ImageMagick-7.1.1-36 - det vil display vise teksten i et lite vindu, og etter å ha lukket det den siste linjen av utdata vil vise hvilken font som ble valgt. Dette er spesielt nyttig for CJK språk, og du kan også gi et språk, f.eks. PANGO_LANGUAGE=en;ja (engelsk, anta deretter japansk) eller bare zh-cn (eller andre varianter som zh-sg eller zh-tw).
Hovedfilene er i /etc/fonts/conf.d/
,
som var ment å være en mappe fylt med symbolkoblinger til noen av
filene i /usr/share/fontconfig/conf.avail/
. Men mange
mennesker, og noen pakker, lager filene direkte. Hvert filnavn må
være i form av to sifre, en bindestrek, somename.conf og de leses
inn i rekkefølge.
Etter konvensjon er tallene tildelt som følger:
00-09 ekstra fontmapper
10-19 systemgjengivelsesstandarder (som kantutjevnelse)
20-29 alternativer for fontgjengivelse
30-39 familiesubstitusjon
40-49 kartlegg familie til generisk type
50-59 last inn alternative konfigurasjonsfiler
60-69 generiske aliaser, kartlegg generisk til familie
70-79 justere hvilke skrifter som er tilgjengelige
80-89 samsvar med målskanning (endre skannede mønstre)
90-99 fontsyntese
Du kan også ha en personlig fonts.conf
i $XDG_CONFIG_HOME (which is
~/.config/fontconfig/
).
Hvis den forespurte fonten er installert, og forutsatt at den
inneholder kodepunkter nødvendig for gjeldende språk (i kilden,
se .orth-filene i fc-lang/
mappen),
vil den bli brukt.
Derimot, hvis dokumentet eller siden ba om en font som ikke er
installert (eller noen ganger ikke inneholder alle de nødvendige
kodepunktene) følgende regler kommer inn: Først, 30-metric-aliases.conf
brukes til å kartlegge
aliaser for noen fonter med samme beregninger (samme størrelse
osv.). Merk at det finnes både svake og sterke aliaser slik at
aliaser for en form som f.eks Helvetica eller Times New Roman kan
tilfredsstilles av den andre stilen, dvs. alt som er et alias for
Arial eller Times i disse eksemplene. noen eksempler på latinske
skrifter med samme beregninger finner du i 'Erstatninger' PDFer på
typosetting.co.uk.
Etter det vil en ukjent font bli søkt etter i 45-latin.conf
: 'Latin' dekker kyrillisk og gresk,
og kartlegger nå også system-ui fonter som brukes for
brukergrensesnittmeldinger i andre alfabeter. Hvis fonten er funnet
vil det bli kartlagt som serif, sans-serif, monospace, fantasy,
kursiv, eller system-ui. Ellers vil 49-sansserif.conf anta at det
er Sans.
Deretter 60-latin.conf
gir ordnede
lister over reservene - Noto
fonts vil bli brukt hvis du installerte dem. Kyrillisk og gresk
ser ut til å bli behandlet på samme måte. Alle disse filene
foretrekker kommersielle fonter hvis de er til stede, selv om
moderne libre fonter er ofte minst like. Til slutt, hvis et
kodepunkt fortsatt ikke er funnet, kan det tas fra hvilken som
helst tilgjengelig systemfont. Følgende detaljer nevner kun fritt
tilgjengelige fonter.
Standard persiske fonter behandles i 65-fonts-persian.conf
. Det ser ut som om alle de
oppførte fonter er kommersielle. Bruke skrifter som støtter persisk
(som har sin egen variant av det arabiske alfabetet, og dets egne
skriftstiler) er utenfor ferdighetene til BLFS redaktørene.
Alle gjenværende skript for hvilke Fontconfig har preferanser (CJK-skript,
Indiske skript) er behandlet i 65-nonlatin.conf
. Disse er igjen nominelt
gruppert som Serif, Sans-Serif, Monospace. Av gratis fonter,
WenQuanYi Zen Hei (Pan-CJK Sans) kommer først for både Serif og for
Sans. Derfor, hvis du installerer dette som en reserve, men ønsker
å bruke forskjellige fonter for japansk eller koreansk du må sette
opp en preferanse. På samme måte er den gamle fireflysung
Serif-fonten også oppført for Sans.
Etter Pan-CJK og kinesiske fonter kommer flere japanske fonter og deretter flere koreanske fonter (begge delt riktig mellom Sans og Serif). Til slutt kommer de forskjellige Lohit Indic-familiene (én fontfil per skript), merket som både Sans og Serif.
Monospace fontene som er oppført i 65-nonlatin.conf
inkludere ikke WenQuanYi Zen Hei
selv om det vil være tilgjengelig som en fallback hvis installert.
Flere japanske gotiske fonter er oppført, fulgt av AR PL KaitiM GB
(en zh-sc 'Brush'-font), AR PL Serif-fonter for zh-sc (SungtiL) og
zh-tw (Mingti2L), noen koreanske Sans-fonter og de forskjellige
Lohit Indic-familier.
For UI fonter er forskjellige Noto Sans UI fonter de eneste oppførte gratis skriftene.
De forskjellige Noto CJK fontene er ikke blant de oppførte fonter, muligens foretrakk RedHat utviklerne andre fonter. Disse kommer nå i mange varianter, og de fleste brukere som bruker disse vil ikke installere andre CJK fonter.
Før Fontconfig-2.14 var den første foretrukne latinske fontfamilien Bitstream Vera. I praksis ble det lite brukt fordi det dekket så lite. Etter at DejaVu var den neste foretrukne familien, så folk ble anbefalt å installer det. Det har nå endret seg, Bitstream Vera er erstattet av relevante Noto fonter (Serif, Sans, Sans Mono), så disse vil bli foretrukket hvis de er installert, etterfulgt av DejaVu.
For serif kunne Times New Roman ha blitt alias fra Liberation Serif eller Tinos og Times fra TeX Gyre Termes, så selv om de navngitte fontene ikke er gratis, de metriske kompatible skriftene kan brukes. Ignorerer andre ikke-frie skrifter, den resterende rekkefølgen for serif er: Times New Roman, Luxi Serif, Nimbus Roman No9 L, og Times. I praksis betyr det disse skriftene på slutten av listen vil neppe bli brukt med mindre en nettside ber om dem.
For sans-serif er den gjenværende rekkefølgen alt som er tilordnet Arial, Luxi Sans, Nimbus Sans L, og alt som er kartlagt til Helvetica.
De resterende alternativene for monospace er Inconsolata, alt kartlagt til Courier New, Luxi Mono, Nimbus Mono og alt som er kartlagt til Courier.
For 'fantasy' er det ingen gratis fonter, så Fontconfig vil falle tilbake til sans-serif.
For 'kursiv' er den eneste gratis fonten TeX Gyre Chorus som et alias for ITC Zapf kanselli, ellers vil Fontconfig igjen falle tilbake til sans-serif.
System-ui kategorien er uvanlig. Det er for grensesnittmeldinger, så noen skript trenger spesialversjoner for å passe inn i den tilgjengelige plassen. For latin, Gresk og kyrillisk en vanlig sans-font burde passe uten problemer. Derimot, den første foretrukne fonten er Cantarell, etterfulgt av Noto Sans UI. Cantarell startet som en latinsk sans-serif font, som har blitt forgrenet i Gnome under samme navn, men de gir bare kilden. Noto Sans UI fontene er for andre språk.
Siden Fontconfig-2.12.5, er det også generisk familietilpasning for noen emoji og matematiske fonter, se {45,60}-generic.conf.
I de sjeldne tilfellene hvor en font ikke inneholder alle forventede kodepunkter, se 'Prøv den første:' på I stared into the fontconfig for de lange detaljene.
Det er mulig å endre hvordan, eller om, fonter antydes. Følgende
eksempelfil inneholder standardinnstillingene, men med kommentarer.
Innstillingene er mye ned til brukerens preferanser og til valget
av fonttyper, så en endring som forbedrer noen sider kan forverre
andre. Den foretrukket plassering for denne filen er: ~/.config/fontconfig/fonts.conf
For å prøve ut forskjellige innstillinger, må du kanskje avslutte Xorg og deretter kjøre startx en gang til slik at alle applikasjoner bruker de nye innstillingene. Flere ting kan overstyre fontconfig innstillingene, se Elementer som kan overstyre Fontconfig nedenfor for mer detaljer. For å utforske mulighetene, lag en fil for brukeren din:
mkdir -pv ~/.config/fontconfig &&
cat > ~/.config/fontconfig/fonts.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font" >
<!-- autohint was the old automatic hinter when hinting was patent
protected, so turn it off to ensure any hinting information in the font
itself is used, this is the default -->
<edit mode="assign" name="autohint"> <bool>false</bool></edit>
<!-- hinting is enabled by default -->
<edit mode="assign" name="hinting"> <bool>true</bool></edit>
<!-- for the lcdfilter see https://www.spasche.net/files/lcdfiltering/ -->
<edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>
<!-- options for hintstyle:
hintfull: is supposed to give a crisp font that aligns well to the
character-cell grid but at the cost of its proper shape. However, anything
using Pango >= 1.44 will not support full hinting, Pango now uses harfbuzz
for hinting. Apps which use Skia (e.g. Chromium, Firefox) should not be
affected by this.
hintmedium: is reported to be broken.
hintslight is the default: - supposed to be more fuzzy but retains shape.
hintnone: seems to turn hinting off.
The variations are marginal and results vary with different fonts -->
<edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>
<!-- antialiasing is on by default and really helps for faint characters
and also for 'xft:' fonts used in rxvt-unicode -->
<edit mode="assign" name="antialias"> <bool>true</bool></edit>
<!-- subpixels are usually rgb, see
http://www.lagom.nl/lcd-test/subpixel.php -->
<edit mode="assign" name="rgba"> <const>rgb</const></edit>
<!-- thanks to the Arch wiki for the lcd and subpixel links -->
</match>
</fontconfig>
EOF
Du må nå redigere filen i ditt foretrukne redigeringsprogram. Mange av de ulike innstillinger gir svært subtile forskjeller og resultatene kan variere for noen av skriftene du bruker.
Hint, hvis aktivert, gjøres i FreeType. Siden FreeType-2.7 er standard TrueType tolk v40. Den originale v35 hint kan aktiveres av en miljøvariabel, men er egentlig bare passende for originale Microsoft TTF fonter (Arial, osv.). V38 hinter (Infinality) er ikke bygget som standard og alle alternativene for å stille den er fjernet. For fullstendige detaljer se subpixel-hinting (Spoiler: det er INGEN sub-piksel hint, koden ignorerer ganske enkelt alle horisontale hint instruksjoner).
Xorg antar at skjermer har 96 punkter per tomme (DPI). De fleste LCD skjermer er nær dette, men noen mennesker oppdager fargekanter hvis skjermen deres avviker fra den størrelsen. Se calc-dpi.
Hvis du har en High DPI skjerm (ofte beskrevet som '4K' eller større), vil du sannsynligvis bruke større skriftstørrelser og dra nytte av å deaktivere hinting.
For flere eksempler se blfs støttetråden som startet på 2016-09/00128, spesielt 2016-09/00137, og originaloppretteren sin foretrukne løsning på 2016-09/00147. Det er andre eksempler i Fontconfig i Arch wiki og Fontconfig i Gentoo wiki.
I tidligere versjoner av BLFS var de stygge gamle Xorg bitmap
fontene installert. Nå er det mange som ikke trenger å installere
noen av dem. Men hvis du av en eller annen grunn har installert en
eller flere punktgrafikkfonter, kan du hindre dem i å bli brukt av
Fontconfig ved å opprette følgende
fil som root
bruker :
cat > /etc/fonts/conf.d/70-no-bitmaps.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Reject bitmap fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
EOF
I 90-synthetic.conf
det finnes
eksempler på å aktivere syntetisk skråstilt og dristig til en font.
Den syntetiske oppmuntrende kan brukes på en synlig svak skrift,
men resultatene er ikke alltid like forventet: Med bare embolden,
Epiphany viste mørkere skrifter
mens Firefox gjorde ikke - så selv
om Cairo brukes nå av firefox kommentaren om innstilling av vekt er
ennå gyldig. Men setter begge deler, Epiphany vil vise fet skrift tekst som
standard, men den vil vise tung tekst hvis markup for fet brukes. I
begge tilfeller heller ikke libreOffice eller falkon viste tykkere tekst.
Normalt er systemfonter og brukerfonter installert i mapper under
stedene spesifisert i Xft Font Protokoll og det er ingen åpenbar
grunn til å plassere dem andre steder. Imidlertid en full BLFS
installasjon av texlive-20240312 putter mange fonter
i /opt/texlive/2024/texmf-dist/fonts/
i opentype/
og truetype/
undermapper. Selv om å trekke inn alle
disse filene kan virke nyttige (det lar deg bruke dem i ikke
TeX programmer), det er flere
problemer med en slik tilnærming:
Det er hundrevis av filer, noe som gjør det vanskelig å velge fonter.
Noen av filene gjør rare ting, for eksempel å vise semaforflagg i stedet for ASCII bokstaver, eller kartlegge kyrilliske kodepunkter til tegnformer passende for gammelkirkeslavisk i stedet for det forventede nåværende form: greit hvis det er det du trenger, men smertefullt for normalt bruk.
Flere fonter har flere størrelser og ugjennomtrengelige korte navn, som begge gjør det enda vanskeligere å velge riktig font.
Når en font legges til CTAN, er den ledsaget av TeX pakker for å bruke de i gamle motorene (xelatex trenger normalt ikke dette), og da er versjonen ofte frosset mens fonten vedlikeholdes separat. Noen av disse fontene som f.eks Dejavu fonts er sannsynligvis allerede installert på BLFS systemet i en nyere versjon, og hvis du har flere versjoner av en font er det uklart hvilken som skal brukes av Fontconfig.
Noen ganger er det imidlertid nyttig å se på disse skriftene i
ikke-TeX applikasjoner, om bare for å se om du ønsker å installere
en nåværende versjon. Hvis du har installert alle texlive, følgende eksempel vil lage en av
Arkandis Open Type fontene tilgjengelig for andre applikasjoner, og
alle tre av ParaType TrueType fonter. Juster eller gjenta linjene
etter ønske, for enten å lage alle opentype/
eller truetype
fonter tilgjengelig, eller for å velge
forskjellige fontmapper. Som root
bruker:
cat > /etc/fonts/conf.d/09-texlive.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/opt/texlive/2024/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
<dir>/opt/texlive/2024/texmf-dist/fonts/truetype/paratype</dir>
</fontconfig>
EOF
Hvis du gjør dette, husk å endre alle forekomster av året i den filen når du oppgraderer texlive til en senere utgivelse.
Med unntak av nettsider som bruker WOFF fonter og enten deler dem eller lenker til google for å laste dem ned, har nettsider tradisjonelt foreslått en liste over foretrukne fontfamilienavn hvis de brydde seg (f.eks. Times New Roman, Serif). Det er mange grunner til at folk ønsker å ha sider som spesifiserer en foretrukket font, bruker en annen font, eller foretrekker spesifikke fonter i Monospace eller Sans eller Serif. Som du forventer, det er en rekke forskjellige måter å oppnå dette på.
Fontconfig installerer
brukerdokumentasjon som inkluderer et eksempel
'Brukerkonfigurasjonsfil' som bl.a foretrekker WenQuanYi ZenHei (en Sans font) hvis en
Serif font er forespurt for
kinesisk (denne delen kan være anakronistisk med mindre du har
ikke-gratis kinesiske fonter, fordi i 65-nonlatin.conf
denne fonten er allerede blant
foretrukne fonter når Serif er spesifisert for kinesisk) og
foretrekke moderne VL Gothic
font hvis en Sans font er spesifisert på en Japansk side (ellers
ville et par andre fonter være foretrukket hvis de er installert).
Hvis du har installert gjeldende versjon, er brukerdokumentasjonen
tilgjengelig i HTML, PDF og tekst versjoner på /usr/share/doc/fontconfig-2.15.0/
: endre
versjonen hvis du installerte en annen versjon.
For eksempel, hvis du av en eller annen grunn ønsket å bruke Nimbus Roman No9 L font uansett hvor det refereres til Times New Roman (de er metrisk lik, og foretrukket for Times Roman, men Serif-fonten fra Liberation fonts vil bli foretrukket for Times New Roman font hvis installert), som en individuell bruker kan du installere fonten og deretter lage følgende fil:
mkdir -pv ~/.config/fontconfig/conf.d &&
cat > ~/.config/fontconfig/conf.d/35-prefer-nimbus-for-timesnew.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- prefer Nimbus Roman No9 L for Times New Roman as well as for Times,
without this Tinos and Liberation Serif take precedence for Times New Roman
before Fontconfig falls back to whatever matches Times -->
<alias binding="same">
<family>Times New Roman</family>
<accept>
<family>Nimbus Roman No9 L</family>
</accept>
</alias>
</fontconfig>
EOF
Dette er noe du vanligvis ville gjort i en individuell
brukerinnstilling, men filen i dette tilfellet har fått prefikset
'35-' slik at den kan om ønskelig brukes over hele systemet i
/etc/fonts/conf.d/
.
Følgende eksempel på en lokal konfigurasjon (dvs. en som gjelder for alle brukere av maskinen) gjør flere ting. Det er spesielt passende der det ikke er angitt noe språk, eller for lesing av CJK tekst i et ikke-CJK lokalitet, og hvor de japanske formene for kodepunktene deles med kinesere foretrekkes. Spesielt alternativ tilnærminger ville være å spesifisere en kinesisk font foran en japansk font, noe som betyr at bare Kana symboler vil bli brukt fra den japanske fonten, eller for å ikke spesifisere DejaVu slik at den første fonten i hvert sett av preferanser foretrekkes for tekst som bruker latinske alfabeter.
Hvis en Serif font er spesifisert, foretrekker den Dejavu fonts. Hvis Han kodepunkter blir
funnet, eller det japanske språket er spesifisert,
Mincho-fonten fra IPAex
fonts vil bli brukt. Hvis Hangul kodepunkter er funnet
eller det koreanske språket er spesifisert, UnBatang (se
Korean fonts) vil bli brukt:
Endre den linjen Hvis du installerte en annen koreansk serif
font. Etter det, WenQuanYi ZenHei (Sans, men en
standard for Serif og monospace) brukes. En tidligere versjon
av denne siden nevnt bruker UMing som er en tradisjonell
kinesisk font som sendes med en gammel conf-fil som
foretrekker den for zh-tw og zh-hk språk koder (og for
sans-serif og monospace). Men uten conf-filen, Fontconfig vil bare behandle det som
passende for zh-hk. Conf-filen må redigeres til gjeldende
stil og vil da bli det prepended, så å spesifisere UMing
hører ikke hjemme i denne local.conf
filen.
For Sans Serif preferanser begynner igjen med Dejavu fonts, deretter VL Gothic for japansk før man faller tilbake til WenQuanYi Zen Hei som er Sans og dekker både kinesisk og koreansk Hangul.
Monospace fontene tvinges til de foretrukne Sans skriftene. Hvis teksten er på kinesisk eller koreansk da vil WenQuanYi ZenHei bli brukt.
I en ikke-CJK lokale er resultatet at passende fonter vil bli brukt
for alle varianter av kinesisk, japansk og Hangul-koreansk (men
japanske varianter av tegnene som deles med kinesiske Han, vil bli
brukt). Alle andre språk bør allerede fungere hvis en font er til
stede. Som root
bruker:
cat > /etc/fonts/local.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>IPAexMincho</family>
<!-- WenQuanYi is preferred as Serif in 65-nonlatin.conf,
override that so a real Korean font can be used for Serif -->
<family>UnBatang</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>VL Gothic</family>
<!-- This assumes WenQuanYi is good enough for Korean Sans -->
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>VL Gothic</family>
<!-- This assumes WenQuanYi is good enough for Korean Monospace -->
</prefer>
</alias>
</fontconfig>
EOF
Noen skrifter, spesielt kinesiske skrifter, leveres med conf filer
som kan være installert i /etc/fonts/conf.d
. Men hvis du gjør det og
deretter bruker en terminal til å kjøre en hvilken som helst
kommando som bruker Fontconfig du
kan se feilmeldinger som f.eks som :
Fontconfig warning:
"/etc/fonts/conf.d/69-odofonts.conf", line 14: Having multiple
<family> in <alias> isn't supported and may not work as
expected
.
I praksis fungerer ikke disse gamle reglene. For ikke-CJK brukere, Fontconfig vil vanligvis gjøre en god jobb uten disse reglene. Deres opprinnelse går tilbake til når CJK brukere trengte håndlagde punktgrafikk for å være lesbare i små størrelser, og de så stygge ut ved siden av kantutjevnede latinske glyfer - de foretrakk å bruke samme CJK skrift for de latinske tegnene. Det er en bivirkning ved å gjøre dette : fonten (Serif) brukes ofte også for Sans, og i en slik situasjon den (engelsk) teksten i Gtk menyene vil bruke denne fonten - sammenlignet med systemfonter, i tillegg til at den er serif både svak og ganske liten. Det kan gjøre det ubehagelig å lese.
Likevel kan disse gamle conf filene fikses hvis du ønsker å bruke
dem. Følgende eksempel er den første delen av 64-arphic-uming.conf
fra UMing - det er
mange flere lignende elementer som også må endres :
<match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-cn</string> <string>zh-sg</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match>
Prosessen for å rette opp dette er grei, men kjedelig - for alle
elementer som produserer en feilmelding ved å bruke
redigeringsprogrammet (som root
bruker) rediger den installerte filen for å gjenta hele blokken så
mange ganger som det er flere variabler, reduser deretter hvert
eksempel til å ha bare ett av dem. Du kan ønske å jobbe med en feil
om gangen, lagre filen etter hver rettelse, og fra en eget terminal
kjør en kommando som f.eks fc-list
2>&1 | less for å se at reparasjonen
fungerte. For blokken ovenfor, den reparerte versjonen vil være :
<match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-cn</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-sg</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match>
Da denne siden og neste side først ble opprettet, kom latinske fonter med maksimalt to vekter - enten vanlig eller bok (bok typisk har en større X-høyde for å gjøre det lettere å lese i store tekstblokker), og fet - og kanskje en kursiv (eller skråstilt) stil. Noen få fonter hadde også Kondenserte overflater (for å passe inn mer tekst i en linje og brukes vanligvis bare når spesifisert). Uten CSS-markering (Cascading Style Sheets) brukte teksten Vanlig eller bokvekt unntatt når <b> ... </b> markering var brukes til fet tekst. Kursive stiler vil bli påberopt av <i> ... </i> markup, sammen med fet markup for fet kursiv.
Noen overflater inneholder nå opptil 9 vekter, muligens også med
variabel skrift (for å spare plass ved å inkludere alle
alternativene i én fil og ev tillater mellomvekter). For de fleste
skrivebordsbrukere som ikke trenger dette bredt utvalg av vekter
for å lage innhold, er det enklere å bare installere en eller to
vekter. Hvis et overflate har individuell vekt pluss en variabel
skrift, den variable fonten er vanligvis på toppnivået i den
medfølgende mappen, med individuelle vekter i en static/
undermappe. Bortsett fra når du først
vurderer en skrift, gir det ingen mening å installer både statisk
og variabel, og heller ikke alle mulige vekter.
Vektene er merket fra 100 (tynn) til 900 (svart eller tung) i CSS terminologi, hvor 400 er normal og 700 fet. Hele settet med vekter er beskrevet på Tabell over CSS fontvekter.
Hvis du har installert en font med en rekke vekter, kan du kopiere font-weights.html til din lokale maskin. Som sendt vil den bruke din standard Serif font forutsatt du har en. Rediger den for å peke på en spesifikk installert font ved å bruke navnet kjent for Fontconfig (også i *EDITME FONTNAME* tekstelementer) og åpne den fra skrivebordsnettleseren. Du kan også bruke den til å se på en skrift med bare to installerte vekter, f.eks. for testing for å se om du foretrekker andre vekter.
Til tross for detaljene i den Mozilla lenken, ser det ut til at hvis bare normal og fete vekter er installert, SemiBold (600) vises med fet skrift.
Det ser ut til å være et lite rom for å endre hvilke vekter som brukes til normal og fet hvis bare to vekter er installert. Firefox, og sannsynligvis andre nettlesere, vil se etter den neste vekten tyngre enn normalt. Hvis det er mindre enn fet (Medium, kanskje SemiFet - usikker) det vil bli brukt til normal og deretter neste høyere vekt, hvis noen vil være brukes for fet skrift, slik at du kan gjøre skriftene litt mørkere. Omvendt, hvis bare en vekt mindre enn normalt er installert, for eksempel Light, det vil bli brukt for både normale og fete vekter (søket oppover skjer først).
Hvis du fjerner noen vekter av en systemfont, må du kanskje kjøre
fc-cache som
root
bruker og logg deretter helt
ut for å tømme hurtiglagre knyttet til brukeren din.
Flere skrivebordsmiljøer, samt noen programmer, vil bruke Fontconfig for å finne fonter, men kan overstyre visse ting.
GNOME: Innstillingene i org.gnome.desktop.interface kan bli oppdatert med dconf-editor. Du kan stille inn fontene til din preferanse og ønsket punktstørrelse. For å bruke skriftene valgt av Fontconfig spesifisere f.eks. 'Sans 12', Serif 11', 'Mono 10' etter ønske. Se også gjennom antialiasing, hinting og rgba innstillinger. Alternativt, gnome-tweaks-46.1 kan også oppdatere fontinnstillingene i et GUI skjema.
LXQt: Endre fontinnstillinger etter behov for å samsvare Fontconfig i lxqt-config-appearance.
KDE Plasma: Innstillingene kan justeres i System Settings under Appearance -> Fonts eller i Edit -> Preferences av den enkelte applikasjonen.
Xfce desktop: Innstillingene kan justeres i Settings -> Appearance -> Fonts. Spesifiser dine foretrukne fonter, f.eks. 'Sans Regular' (for å bruke normal overflate og vekt i stedet for fet og/eller kursiv) og juster punktstørrelsen i alternativet. Se gjennom alternativene for gjengivelse og DPI.
Firefox: Denne nettleseren lar deg spesifisere dens standard fonter. For 128esr-serien, bruk "Hamburger"-menyen for å gå til Innstillinger, Generelt og under Fonts -> Advanced velg Sans Serif, Serif eller Monospace etter behov hvis du ønsker å bruke skriftene som samsvarer med Fontconfig. Still inn punktstørrelsene som ønsket. I senere versjoner er innstillingene på Preferences -> Fonts.
Libreoffice: Tester med engelsk tekst med en gammel japansk font (HanaMinA) som støtter flere europeiske språk men hadde bare én vekt og ingen kursiv eller skråstilte viste at selv om Libreoffice bruker Fontconfig for å finne fonten laget den sin egen fet eller skråstilt tekst. Det er ikke klart om det vil gjøre det samme hvor en font faktisk har fet vekt eller en kursiv stil. Det viser også dokumentasjon at Libreoffice har sine egne erstatningsregler for når et kodepunkt ikke finnes i den valgte fonten, men er uklart om disse reglene gjelder på Linux som bruker Fontconfig.
Pango: som nevnt i eksempelet
~/.config/fontconfig
ovenfor, alt som
bruker Pango-1.44 (fra 2019) eller senere bruker nå Harfbuzz for hint, FreeType, og hintfull
er ikke støttet.
Thunderbird: Skriftinnstillingene kan endres ved å gå til "Rediger -> Innstillinger" og deretter rulle ned til "Fonts & Colors".
Blogginnleggene av Eevee er spesielt nyttige hvis Fontconfig ikke tror den valgte fonten støtter språket ditt, og for å foretrekke noen ikke-MS japanske fonter når en stygg MS-font allerede er installert.
Dokumentasjonen til FreeType v40 tolken på freetype docs forklarer hvordan gjeldende hinter fungerer, og hvorfor den forrige (langsomme) Infinality tolk ble byttet ut.
Et gammelt svar på
askubuntu gir noen detaljer om beregning av en skjerms punkter
per tomme, men i hovedsak måler du bare bredden og høyden på det
synlige panelet, konverterer til tommer hvis du bruker metriske
mål, og del på antall piksler. Da kan du sende -dpi
når du starter Xorg ved å bruke din egen verdi.
90
Kanskje mer enn du noen gang ønsket å vite er på Mozilla CSS docs.
Hvis du bruker hinting og har en TTF (ikke OTF) font som mangler hint men tillater deg å forgrene den, kan du kanskje bruke hint ved å bruke ttfautohint som er basert på den gamle autohinteren. Fra og med versjon 1.8.4 klarer den ikke å bygge uten Qt5.
Arch har mye informasjon i sin wiki på font_configuration.
Gentoo har noe informasjon i sin wiki på Fontconfig selv om mange av detaljene (hva du skal aktivere, og Infinality) er spesifikke for Gentoo.