Qual é a diferença entre target = “font” e target = “pattern” no fontconfig?

5

Estou tentando entender por que alguns dos testes no meu fonts.conf funcionam com <match target="pattern"> (o padrão), outros com <match target="font"> , e não de outra forma. Por exemplo:

<match>
    <test name="family"><string>monospace</string></test>        
    <edit name="family"><string>Cousine</string></edit>
</match>

<match>
    <test name="family"><string>Cousine</string></test>
    <test name="pixelsize" compare="more"><double>17.5</double></test>
    <edit name="family" binding="strong"><string>Liberation Mono</string></edit>
</match>

<match target="font">
    <test name="family"><string>Overpass</string></test>        
    <edit name="hintstyle"><const>hintslight</const></edit>
</match>

Por que isso? Eu li a documentação e só diz If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. eu não entendo o texto, alguém pode explicar a diferença?

    
por Fenikso 27.06.2016 / 10:40

1 resposta

4

De:

link

  

Os aplicativos geralmente funcionam assim:

     
  1. Converter a solicitação de fonte do usuário em um padrão fontconfig;
  2.   
  3. Aplique a configuração do fontconfig usando target="pattern";
  4.   
  5. Obtenha uma lista classificada de fontes correspondentes a esse padrão no fontconfig. A lista é retornada como um conjunto de padrões fontconfig em si;
  6.   
  7. Escolha a fonte a ser usada (normalmente, a primeira com o caractere solicitado);
  8.   
  9. Aplique a configuração do fontconfig no padrão da fonte usando target="font".
  10.   

Então, o que isso significa é que, por exemplo, se você deseja desativar o antialiasing no Bitstream Vera Sans para tamanhos inferiores a 7.5, você deve fazer isso usando target="font". Se você fizer isso com target="pattern", ele desativará aa para todas as fontes se a solicitação for Bitstream Vera Sans, independentemente de você ter ou não a fonte instalada.

     

Se você quiser escrever regras de fallback de tal forma que o DejaVu Sans seja substituído pelo Bitstream Vera Sans, isso é feito com target="pattern", porque você deseja modificar o pedido.

E também de:

link

  

Use o alvo de fonte para todas as alterações em como uma fonte específica é renderizada e o alvo de padrão para mudanças em como uma fonte é selecionada dentre as disponíveis.

    
por BubuXP 24.09.2016 / 20:47

Tags