Stengt. Dette spørsmålet er utenfor emnet . Det aksepteres for øyeblikket ikke svar.

Kommentarer

  • Jeg vil begynne med å lese API-dokumentasjonen som finnes her freedesktop.org/software/ fontconfig / fontconfig-devel
  • @PaulH. Jeg leste abstrakt denne dokumentasjonen tidligere. Egentlig forklarer dette dokumentet mer om funksjonene og datatypene osv., Men ikke hvordan hver modul fungerer eller noen ideer relatert til det 🙁
  • OK. Men hvis du vil forstå kildekoden, vil dokumentasjonen være nyttig siden datatypene og funksjonene brukes i kildekoden. Hva er målet ditt? Er det å vite hvordan du bruker kommandoene du nevnte, eller å forstå hva som skjer " under hetten "?
  • @PaulH. Hovedmålet mitt er begge du nevnte, men det første målet er hva som faktisk skjer?

Svar

TL; DR: Forståelse av fontconfig krever forståelse av hvorfor den ble opprettet og hvilke problemer den prøver å løse. Det krever mye forståelse av Xorg.

Fontkonfigurasjon på UNIX-maskiner gikk gjennom forskjellige faser og fontconfig er ganske enkelt en av mulighetene du kan bruke til bruk skrifttyper gjennom Xorg. Å lese kilden til fontconfig uten god forståelse av kilden til Xorg er sannsynligvis veldig vanskelig. Men jeg tror at en forståelse av begrepene bak utviklingen av skrifter kan vise seg å være et anstendig utgangspunkt.

Ansvarsfraskrivelse: Jeg arbeider mye med skrifter på Linux, men jeg trengte aldri å endre Xorg-koden til skrifttyper.

Arch Linux-wiki har også mye info om dette

Litt historie

Originale UNIX-skrifter var ganske enkelt bitmap-skrifter. I dag finnes disse i /usr/share/fonts/misc, PCF (bærbart kompilert format) brukes til stort sett alle i dag. Det er et binært format. Det har vært andre formater for binære skrifter, men jeg må innrømme at jeg aldri trengte å bruke noe annet format enn PCF for binære skrifter. Ved hjelp av xfontsel kan du konfigurere en Xorg-streng for å definere punkter, avstand, pikselstørrelse, terminalvekt (fet, skrå), koding, blant annet for fonten.

Bitmap-skriftene har forskjellige filer for forskjellige piksler på skrift. Bitmap-skriftene introduserer allerede begrepet fontfamilie.

Postscript (og til en viss grad TeX) opprettet Type 1-skrifter som er vektorbaserte skrifter. Disse er i /usr/share/fonts/Type1. Vektorfonter er konfigurert med flere konfigurasjonsverdier, f.eks. antialias, embolden, dpi eller størrelse (ikke nødvendigvis poengbasert denne gangen).

Vectorbaserte skrifttyper skaleres og krever ikke flere filer.

Xorg brukte både bitmap- og Type1-skrifttyper . Og det skapte XFT (vel X FreeType er et grensesnitt til FreeType som er et GPL / BSD-bibliotek som etterligner og utvider Type1). XFT tillater ikke bare bruk av Type1 og FreeType-skrifttyper, men også andre formater: OTF av Adobe og Microsoft, TTF av Apple. Videre tillater XFT at skalering av de gamle bitmap-skriftene ser ut som Type1-skrifter.

Flere andre attributter, som hinting eller hintstyle , ble lagt til for å definere attributter av disse skriftene.

Alt som finnes i undermapper til /usr/share/fonts. Og XFT-parametere kan konfigureres i Xresources.

FontConfig

Og fontconfig må takle alle avvikene ovenfor . Med andre ord er fontconfig et forsøk på å konfigurere alle fonttypene ovenfor på en måte som kan utnytte attributtene som de forskjellige skriftene har med en felles syntaks.

Bitmap-fontene har sine problemer:

  • flere forskjellige filer for en enkelt font
  • begrenset størrelser med poeng og pikselstørrelser.

Men det gjør også de vektorbaserte skriftene:

  • skalering tar tid, spesielt hvis flere parametere brukes
  • ikke alle fontattributter påvirker forskjellige fonttyper på samme måte

Og begge har problemet at det er mange skriftformater, og at en bruker kan ønske å installere egne skrifter i hjemmet sitt. Fontconfig prøver å løse disse problemene.

fc-query forteller deg hva fontconfig forstår om fontfilen. Spesielt hvilke attributter filen er for (for eksempel for bitmap-skrifttyper) og hvilke attributter som kan brukes (for vektorfonter).

fc-list er en måte å fortelle deg hvilke skrifttyper som finnes i katalogene fontconfig ser på, og derfor kan brukes av applikasjoner. Til slutt fc-cache utfører en indeksering av disse skriftene for å finne dem lettere og for å skalere dem (blant annet) for applikasjonsbruk.

Fontocnfig delte bibliotek på den andre hånd er den mest interessante delen. Den bruker konfigurasjonsfilene (/etc/fonts, ~/.config/fontconfig) og fontbufferen for å gi forberedte skrifter direkte til applikasjoner som er koblet mot den. Siden de fleste applikasjoner brukte XFT (og derfor FreeType) og FreeType-biblioteket bruker samtaler fra fontconfig-biblioteket, blir bruken av disse skriftene allestedsnærværende.

Men merk at du kan kompilere et program som vil be Xorg om en bitmappeskrift i gammel stil (f.eks. -*-terminus-medium-r-normal-*-*-200-*-*-c-*-*-u), og samtalen går ikke gjennom fontconfig delt lib.

Kommentarer

  • Takk for svaret ditt. Jeg forstår hva du prøver å si. Egentlig definerte du Fc-spørring og fc-liste, men jeg vil vite ting som når et eller annet leketøyprogram prøver å bruke FC og dets funksjoner, hvor sendes forespørselen først? jeg mener hva er utgangspunktet? Jeg prøvde å legge til et utsagn som printf (" testing ") i hovedfunksjonen for fc-spørring og enn jeg skrev kommandoen fc-spørring fra terminal, men jeg kunne ikke se det. jeg kompilerte det igjen med make-kommandoen skjønt
  • @AmmarUlHassan – Heh, printf("something") vil aldri bruke fontconfig-bibliotek ' årsaken til det som har med fonten å gjøre er terminalemulatoren. For å bruke fontconfig trenger du et program koblet til X11, og det må tegne skriftene på skjermen av seg selv. Men hvis du kan ' t få en printf i hoved () for å vise på terminalen som sannsynligvis er et PATH-problem, ' fordi du absolutt allerede har installert fontconfig.
  • ok. Men hva om jeg vil ha et lite skript i fontconfig som faktisk kan kalle en funksjon av et annet Delt bibliotek på systemet mitt. Ideelt scenario er at jeg vil legge til en overskriftsfil av den liben i fontconfig (noen filer jeg ikke vet hvilken 1) og enn jeg vil kompilere fontconfig på nytt og kjøre den filen slik at den kaller funksjonen til det biblioteket.
  • @AmmarUlHassan – At ' er for mange ting. Fontconfig er ikke et skriptmiljø, det gjør ganske enkelt det det er ment å gjøre: gi forhåndspakkede / hurtigbufrede skrifter som Xorg kan vises når ti oppdaterer skjermen. Hvis du trenger applikasjoner for å bruke det delte biblioteket til fontconfig du kompilerte, må du konfigurere ldconfig for å bruke det delte biblioteket i stedet for biblioteket som libfreetype2 ringer for øyeblikket. Jeg har inntrykk av at du ' prøver å bite på for mye ting på en gang.
  • ha ha ja kan være … Så konklusjonen er at før du graver dypt må jeg forstå historien? Xft? og enn FC-funksjoner og datatyper?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *