Sostituzione font con ~ / .fonts.conf


18

Sto provando a usare ~ / .fonts.conf per sostituire Helvetica con Droid Sans, ecco il contenuto del file:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign"><string>Droid Sans</string></edit>
  </match>
</fontconfig>

ma non importa cosa, nulla sembra accadere. Ho provato a eseguire fc-cache, ho fatto il check-in /etc/fonts/conf.de ho scoperto 50-user.confche sembra chiamare esplicitamente configurazioni specifiche dell'utente.

Che cosa mi manca?

Grazie

EDIT: dopo un'indagine ho scoperto che altre regole /etc/fonts/conf.dsovrascrivevano la configurazione dell'utente, quindi il collegamento user.confad 00-user.confaiutato. Tuttavia è solo un parziale successo, poiché posso specificare quali caratteri devono essere sostituiti, ma il sostituto della mia scelta viene ignorato: in altre parole, posso rendere Helveticainvalido e il sistema torna al carattere successivo (cioè nel browser, esso accetta il carattere successivo specificato nel foglio di stile, se non è presente visualizza sans-serif standard).


Sono venuto qui perché stavo per realizzare qualcosa di simile. Spero che qualcuno abbia una risposta ...
Ludwig Weinzierl

sto ancora cercando una risposta.
Capi Etheriel,

Risposte:


16

Penso che l'attributo di associazione mancasse nella tua configurazione. (vedi anche fonts-conf ). A seconda dell'altra configurazione, un vincolo di "stesso" o "forte" potrebbe probabilmente funzionare, mentre "debole" potrebbe non darti quello che vuoi.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign" binding="same"><string>Droid Sans</string></edit>
  </match>
</fontconfig>

1
Ha funzionato per me. Sembra che l'aggiunta bindingdell'attributo abbia fatto la differenza. Sto usando fontconfig-2.8.0.
MaoPU,

Questo ha funzionato per me
miloshadzic l'

3

Penserei che il meccanismo alias funzionerebbe per questo:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>Helvetica</family>
    <prefer>Droid Sans</prefer>
  </alias>
</fontconfig>

1
<alias> non è solo per la sostituzione di caratteri non installati?
MaoPU,

@MaoPU: ho pensato la stessa cosa, ma dopo aver letto la documentazione, mi ha portato a credere che quel comportamento fosse configurato. <accept>ha la precedenza quando il carattere non è installato, <prefer>ha la precedenza indipendentemente dal fatto che il carattere sia installato.
JM Becker

/ \ No, in realtà no, a meno che il .conffile contenente questa regola non venga letto per primo.
Marc.2377 il

Hmm - detto questo , funziona se binding="strong"usato insieme <alias>all'elemento!
Marc.2377 il

0

"Fc-list" mostra effettivamente "Helvetica"? Cosa dice fc-match? Sulla mia scatola (F-12) ottengo:

 >fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"

Forse devi aggiungere anche il carattere con alias alla tua sostituzione.


0

Mi sono imbattuto in un problema simile quando provavo ad alias Helvetica come famiglia sans-serif. Per chiunque abbia lo stesso problema, guarda la configurazione del sistema in /etc/fonts/conf.d/cui conterrà i collegamenti ai file /etc/fonts/conf.avail. Ho dovuto rimuovere molti di questi alias per ottenere un comportamento deterministico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.