Se você ler texto somente em inglês e estiver feliz com as fontes livres comuns listadas na próxima página, possivelmente nunca precise se preocupar com os detalhes do como Fontconfig funciona. Mas, existem muitas coisas que podem ser alteradas se não atenderem às tuas necessidades.
No entanto, antes de passar muito tempo experimentando configurações diferentes, por favor, esteja ciente de que aplicativos modernos e ambientes de área de trabalho podem ignorar as configurações do fontconfig - veja-se Itens que conseguem substituir Fontconfig.
Embora esta página seja longa, ela mal arranha a superfície e você estará apto(a) a encontrar muitas visões alternativas na web (mas, por favor, lembre-se de que algumas coisas mudaram ao longo dos anos; por exemplo, o autohinter não mais é o padrão). O objetivo aqui é o de te fornecer informações suficientes para entender as mudanças que você está fazendo, por que elas nem sempre funcionam e para identificar informações on-line que não mais são apropriadas.
Infelizmente, parte da terminologia é ambígua (por exemplo, 'face da fonte' pode significar um nome conhecido pelo Fontconfig, ou as variações comuns, condensadas, etc. de uma fonte) e 'estilo' pode ser usado para diferenciar 'comum' de 'itálico' ou na descrição de algumas classes de fontes Serif.
Os links a seguir são para auxiliar a navegação nesta página.
O protocolo de fonte Xft fornece renderização de fonte suavizada
por intermédio do freetype, e as
fontes são controladas a partir do lado cliente usando o
Fontconfig (exceto para o
rxvt-unicode-9.31, que consegue usar fontes
listadas em ~/.Xresources
e o
AbiWord-3.0.5 que usa somente a fonte
especificada). O caminho de pesquisa padrão é /usr/share/fonts
e ~/.local/share/fonts
, embora, no momento, o
antigo e obsoleto local ~/.fonts
ainda funcione. O Fontconfig
pesquisa diretórios no caminho dele recursivamente e mantém um
cache das características da fonte em cada diretório. Se o cache
parecer desatualizado, ele será ignorado e as informações serão
obtidas a partir das próprias fontes (isso pode levar alguns
segundos se você tiver muitas fontes instaladas).
Se você tiver instalado o Xorg em
qualquer prefixo diferente de /usr
,
quaisquer fontes do X não foram
instaladas em um local conhecido para o Fontconfig. Links simbólicos foram criados a
partir dos diretórios de fontes OTF
e
TTF
do X para /usr/share/fonts/X11-{OTF,TTF}
em Fontes do Xorg.
Isso permite que o Fontconfig use
as fontes OpenType e TrueType fornecidas pelo X, embora muitas pessoas preferirão usar
fontes mais modernas.
O "Fontconfig" usa nomes para definir fontes. Os aplicativos geralmente usam nomes genéricos de fontes, como "Monospace", "Sans" e "Serif". O "Fontconfig" resolve esses nomes para uma fonte que tenha todos os caracteres que cubram a ortografia do idioma indicado pelas configurações de localidade.
Os comandos a seguir podem ser úteis ao se trabalhar com Fontconfig, especialmente se você estiver interessado(a) em substituir qual fonte será escolhida.
fc-list | less : mostra uma lista de todas as fontes disponíveis (/caminho/para/nome_do_arquivo: Nome da Fonte:estilo). Se você instalou uma fonte e ela não aparecer, então o diretório onde ela está contida não está legível pelo(a) teu(ua) usuário(a).
fc-match 'Nome da Fonte' : informa qual fonte será usada se a fonte nomeada for solicitada. Normalmente você usaria isso para ver o que acontece se uma fonte que não tenha instalada fosse solicitada, mas você também pode usá-lo se o sistema estiver fornecendo uma fonte diferente da que esperava (talvez porque o Fontconfig não pense que a fonte suporte o teu idioma).
fc-match TIPO
: mostra qual
fonte será usada no idioma atual para esse TIPO
(Monospace, Sans, Serif
(letra maiúscula inicial é
opcional)). Se essa fonte não mapear um ponto de
código, Fontconfig poderá obter um
glifo a partir de qualquer fonte disponível, mesmo se ela não for
do tipo especificado. Qualquer outro valor para TIPO
será presumido que seja Sans.
fc-match 'Serif :lang=ja:weight=bold' informará qual fonte e espessura serão escolhidas para o texto japonês em negrito. Isso não significa que a fonte informada será necessariamente capaz de mostrar ideogramas japoneses, de forma que uma substituta poderá ser usada ou alguns glifos possivelmente estarão ausentes. Para códigos de idioma, use valores ISO-639 como 'fr', 'ja', 'zh-cn'. Observe que um valor não reconhecido como apenas 'zh' não retornará nenhuma correspondência. Para ilustrar a substituta, em um sistema onde Noto Sans Mono e DejaVu Sans Mono estejam instaladas, fc-match 'monospace :lang=en mostrará que Noto Sans Mono será usada, mas se o idioma for mudado para 'ar' (árabe) DejaVu Sans será usada.
Se você quiser determinar se um arquivo de fonte tem dicas (muitas
fontes mais antigas não tem, porque foram patenteadas) use
fc-query /caminho/para/arquivo_fonte
| grep
'fonthashint:': que informará 'True(s)' ou
'False(s)'. Algumas fontes recentes com versões TTF e OTF terão
dicas nos arquivos TTF.
Se você deseja saber qual fonte será usada para uma sequência de
caracteres de texto (ou seja, um ou mais glifos, precedidos por um
espaço), {então} cole o seguinte comando e substitua o
"xyz
" pelo texto de teu interesse:
FC_DEBUG=4 pango-view --font=monospace -t xyz | grep family : isso exige o Pango-1.54.0 e o ImageMagick-7.1.1-36 - ele invocará display para mostrar o texto em uma pequena janela, e, depois de fechá-la, a última linha da saída gerada mostrará qual fonte foi escolhida. Isso é particularmente útil para idiomas CJK, e você também pode passar um idioma, por exemplo, PANGO_LANGUAGE=en;ja (inglês, então assuma o japonês) ou apenas zh-cn (ou outras variantes, como zh-sg ou zh-tw).
Os arquivos principais estão em "/etc/fonts/conf.d/
", que foi destinado a ser um
diretório povoado por links simbólicos para alguns dos arquivos em
"/usr/share/fontconfig/conf.avail/
".
Mas, muitas pessoas, e alguns pacotes, criam os arquivos
diretamente. Cada nome de arquivo precisa estar na forma de dois
dígitos, um travessão, "algumnome.conf" e eles são lidos em
sequência.
Por convenção, os números são atribuídos conforme segue:
00-09 diretórios extras de fontes
10-19 padrões de renderização do sistema (tais como suavização)
20-29 opções de renderização de fontes
30-39 substituição de família
40-49 mapeiam família para tipo genérico
50-59 carregar arquivos alternativos de configuração
60-69 apelidos genéricos, mapeia genérico para família
70-79 ajustar quais fontes estão disponíveis
80-89 correspondência de varredura de alvo (modificar padrões escaneados)
90-99 síntese de fontes
Você também pode ter um fonts.conf
pessoal em $XDG_CONFIG_HOME (que é ~/.config/fontconfig/
).
Se a fonte solicitada estiver instalada e desde que contenha os
pontos de código exigidos
para o idioma atual (no fonte, veja-se os arquivos ".orth" no
diretório "fc-lang/
"), [então] ela
será usada.
No entanto, se o documento ou página solicitou uma fonte que não
está instalada (ou, ocasionalmente, não contém todos os pontos de
código exigidos), as seguintes regras entram em jogo: Primeiro,
30-metric-aliases.conf
é usado para
mapear apelidos para algumas fontes com as mesmas métricas (mesmo
tamanho, etc.). Observe que existem apelidos fracos e fortes, de
modo que os apelidos para uma forma, como Helvetica ou Times New
Roman, podem ser satisfeitos pelo outro estilo, ou seja, qualquer
coisa que seja um apelido de Arial ou Times nesses exemplos. Alguns
exemplos de fontes latinas com as mesmas métricas podem ser
encontrados nos PDFs 'Substitutes' em typosetting.co.uk.
Depois disso, uma fonte desconhecida será procurada em 45-latin.conf
: 'Latin' cobre cirílico e grego, e
agora também mapeia fontes system-ui que são usadas para mensagens
da interface de usuário(a) em outros alfabetos. Se a fonte for
encontrada, ela será mapeada como serif, sans-serif, monospace,
fantasy, cursive ou system-ui. Caso contrário, 49-sansserif.conf
assumirá que é Sans.
Então 60-latin.conf
fornece listas
ordenadas de substitutas - Fontes
Noto será usada se você as instalou. O cirílico e o grego
parecem ser tratados da mesma maneira. Todos esses arquivos
preferem fontes comerciais, se estiverem presentes, embora as
fontes livres modernas sejam frequentemente pelo menos iguais.
Finalmente, se um ponto de código ainda não for encontrado, ele
poderá ser obtido a partir de qualquer fonte disponível do sistema.
Os detalhes a seguir mencionam somente fontes livremente
disponíveis.
As fontes persas padrão são tratadas em 65-fonts-persian.conf
. Parece como se todas as
fontes listadas sejam comerciais. Usar fontes que suportam persa
(que tem a própria variante dele do alfabeto árabe e os próprios
estilos dele de fonte) está fora das habilidades dos(as)
editores(as) do BLFS.
Todos os conjuntos de comandos sequenciais restantes para os quais
Fontconfig tem preferências
(scripts CJK, scripts índicos) são tratados em 65-nonlatin.conf
. Esses são novamente agrupados
nominalmente como Serif, Sans-Serif, Monospace. Das fontes livres,
WenQuanYi Zen Hei (Pan-CJK Sans) vem em primeiro lugar, tanto para
Serif quanto para Sans. Portanto, se você instalar isso como
substituta, mas quiser usar fontes diferentes para japonês ou
coreano, precisará configurar uma preferência. Da mesma forma, a
antiga fonte fireflysung Serif também está listada para Sans.
Depois das fontes Pan-CJK e chinesas, vem várias fontes japonesas e, em seguida, várias fontes coreanas (ambas divididas apropriadamente entre Sans e Serif). Finalmente vem as várias famílias Lohit Indic (um arquivo de fonte por conjunto de comandos sequenciais), rotuladas como Sans e Serif.
As fontes Monospace listadas em 65-nonlatin.conf
não incluem WenQuanYi Zen Hei,
embora elas estejam disponíveis como substitutas se instaladas.
Várias fontes góticas japonesas estão listadas, seguidas por AR PL
KaitiM GB (uma fonte zh-sc 'Brush'), fontes AR PL Serif para zh-sc
(SungtiL) e zh-tw (Mingti2L), algumas fontes coreanas Sans e as
várias Famílias Lohit Indic.
Para fontes de Interface de Usuário(a), várias fontes de Interface de Usuário(a) Noto Sans são as únicas fontes livres listadas.
As diversas fontes Noto CJK não estão entre as fontes listadas; possivelmente os(as) desenvolvedores(as) do RedHat preferiram outras fontes. Agora elas vem em muitas variações, e a maioria dos(as) usuários(as) que as usam não instalará quaisquer outras fontes CJK.
Antes do Fontconfig-2.14, a primeira família de fontes latinas preferida era a Bitstream Vera. Na prática, isso raramente era usado porque cobria pouquíssimo. Depois disso, DejaVu foi a próxima família preferida, de forma que as pessoas foram recomendadas a instalá-la. Isso agora mudou; Bitstream Vera foi substituída pelas fontes Noto relevantes (Serif, Sans, Sans Mono), portanto essas serão preferidas se tiverem sido instaladas, seguidas pela DejaVu.
Para serif, Times New Roman poderia ter sido apelidado a partir de Liberation Serif ou Tinos, e Times a partir de TeX Gyre Termes, de forma que, embora as fontes nomeadas não sejam livres, as fontes compatíveis em métricas podem ser usadas. Ignorando outras fontes não livres, a ordem restante para serif é: Times New Roman, Luxi Serif, Nimbus Roman No9 L e Times. Na prática, isso significa que é improvável que as fontes no final da lista sejam usadas, a menos que uma página da web as solicite.
Para sans-serif, a ordem restante é qualquer coisa mapeada para Arial, Luxi Sans, Nimbus Sans L e qualquer coisa mapeada para Helvetica.
As alternativas restantes para monospace são Inconsolata, qualquer coisa mapeada para Courier New, Luxi Mono, Nimbus Mono e qualquer coisa mapeada para Courier.
Para 'fantasy' não existem fontes livres, portanto Fontconfig retornará para sans-serif.
Para 'cursive', a única fonte livre é TeX Gyre Chorus como um apelido para a chancelaria ITC Zapf, caso contrário Fontconfig novamente retornará para sans-serif.
A categoria system-ui é incomum. É para mensagens de interface, portanto alguns conjuntos de comandos sequenciais precisam de versões especiais para caber no espaço disponível. Para latim, grego e cirílico, uma fonte sans comum deveria caber sem problemas. No entanto, a primeira fonte preferida é Cantarell, seguida por Noto Sans UI. Cantarell começou como uma fonte latina sans-serif, que foi bifurcada no Gnome sob o mesmo nome, mas eles(as) fornecem somente o fonte. As fontes Noto Sans UI são para outros idiomas.
Desde Fontconfig-2.12.5, também existe correspondência genérica de família para algumas fontes de emoji e matemáticas; por favor, veja-se {45,60}-generic.conf.
Nos raros casos em que uma fonte não contém todos os pontos de código esperados, veja-se "Trial the First:" em "Eu olhei fixamente para o "fontconfig"" para os detalhes longos.
É possível mudar como, ou se, as fontes são sugeridas. O arquivo de
exemplo a seguir contém as configurações padrão, mas com
comentários. As configurações dependem muito das preferências do(a)
usuário(a) e da escolha das fontes, de forma que uma mudança que
melhora algumas páginas possivelmente piore outras. O local
preferido para esse arquivo é: "~/.config/fontconfig/fonts.conf
"
Para testar configurações diferentes, você pode precisar sair do Xorg e então executar startx novamente, de forma que todos os aplicativos usem as novas configurações. Várias coisas podem substituir as configurações do fontconfig; veja-se Itens que conseguem substituir Fontconfig abaixo para mais detalhes. Para explorar as possibilidades, crie um arquivo para teu(tua) usuário(a):
mkdir -pv ~/.config/fontconfig &&
cat > ~/.config/fontconfig/fonts.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font" >
<!-- autohint era o antigo prompt automático quando as dicas eram protegidas
por patente, de forma que desligue-o para garantir que qualquer informação de
dicas na própria fonte seja usada; esse é o padrão -->
<edit mode="assign" name="autohint"> <bool>false</bool></edit>
<!-- a dica está habilitada por padrão -->
<edit mode="assign" name="hinting"> <bool>true</bool></edit>
<!-- para o "lcdfilter", veja-se https://www.spasche.net/files/lcdfiltering/ -->
<edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>
<!-- opções para estilo de dica:
hintfull: é presumido fornecer uma fonte nítida que se alinha bem à
grade de células de caracteres, mas ao custo do formato adequado
dela. No entanto, qualquer coisa que use Pango >= 1.44 não suportará
dicas completas; o Pango agora usa harfbuzz para dicas. Aplicativos que
usam Skia (por exemplo, Chromium, Firefox) não deveriam ser afetados por isso.
hintmedium: é informado que está quebrado.
hintslight é o padrão: - presumido ser mais confuso, mas mantém a forma.
hintnone: parece desligar a dica.
As variações são marginais e os resultados variam com diferentes fontes -->
<edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>
<!-- a suavização está ligada por padrão e realmente ajuda para caracteres fracos
e também para fontes "xft": fontes usadas em "rxvt-unicode" -->
<edit mode="assign" name="antialias"> <bool>true</bool></edit>
<!-- subpixels são usualmente "rgb"; veja-se
http://www.lagom.nl/lcd-test/subpixel.php -->
<edit mode="assign" name="rgba"> <const>rgb</const></edit>
<!-- agradecimentos ao "wiki" da "Arch" pelos links "lcd" e subpixel -->
</match>
</fontconfig>
EOF
Agora você precisará editar o arquivo no teu editor preferido. Muitas das diferentes configurações apresentam diferenças muito sutis e os resultados podem diferir para algumas das fontes que você usar.
A dica, se habilitada, é feita em FreeType. Desde o FreeType-2.7, o interpretador TrueType padrão é v40. O hinter v35 original poderia ser habilitado por uma variável de ambiente, mas só é realmente apropriado para fontes originais TTF da Microsoft (Arial, etc). O hinter v38 (Infinality) não é construído por padrão e todas as opções para ajustá-lo foram removidas. Para detalhes completos, veja-se subpixel-hinting (Spoiler: NÃO existem dicas de subpixel; o código simplesmente ignora todas as instruções de dicas horizontais).
O Xorg assume que as telas tem 96 pontos por polegada (DPI). A maioria das telas LCD está próxima disso, mas algumas pessoas detectam distorções de cores se a tela delas divergir desse tamanho. Veja-se calc-dpi.
Se você tiver uma tela de alto DPI (geralmente descrita como '4K' ou maior), provavelmente usará tamanhos de fonte maiores e se beneficiará ao desabilitar as dicas.
Para mais exemplos, veja-se o tópico do "blfs-support" que começou em "2016-09/00128", particularmente o "2016-09/00137", e a solução preferida do postador original em "2016-09/00147". Existem outros exemplos em ""Fontconfig" no "wiki" do "Arch"" e ""Fontconfig" no "wiki" do "Gentoo"".
Nas versões anteriores do BLFS, as feias e antigas fontes de bitmap
do Xorg foram instaladas. Agora, muitas pessoas não precisarão
instalar nenhuma delas. Mas, se por algum motivo, você tiver
instalado uma ou mais fontes de bitmap, você consegue evitar que
elas sejam usadas pelo Fontconfig
criando o seguinte arquivo como o(a) usuário(a) root
:
cat > /etc/fonts/conf.d/70-no-bitmaps.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Rejeita fontes de "bitmap" -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
EOF
Em 90-synthetic.conf
existem exemplos
de aplicação de inclinamento e negritamento sintéticos a uma fonte.
O negritamento sintético pode ser aplicado a uma fonte visivelmente
esmaecida, mas os resultados nem sempre são os esperados: apenas
com o negritado, o Epiphany
mostrou fontes mais escuras, enquanto o Firefox não - então, embora Cairo agora seja usado pelo firefox, o comentário acerca da configuração
do Peso ainda é válido. Mas configurando ambos, Epiphany mostrará texto em negrito por padrão,
mas mostrará texto pesado se a marcação para negrito for usada. Em
ambos os casos, nem o libreOffice
nem o falkon mostraram texto mais
negritado.
Normalmente, as fontes do sistema e as fontes do(a) usuário(a) são
instaladas em diretórios abaixo dos locais especificados em
"O Protocolo de Fonte Xft" e
não existe razão óbvia para colocá-las em outro lugar. No entanto,
uma instalação completa do BLFS do "texlive-20240312" coloca muitas
fontes em "/opt/texlive/2024/texmf-dist/fonts/
" nos
subdiretórios "opentype/
" e
"truetype/
". Embora extrair todos
esses arquivos possivelmente pareça útil (permite usá-los em
aplicativos que não sejam do "TeX"), existem vários problemas com essa
abordagem:
Existem centenas de arquivos, o que torna difícil selecionar fontes.
Alguns dos arquivos fazem coisas estranhas, como exibir sinalizadores de semáforo em vez de letras "ASCII" ou mapear pontos de código cirílicos para formas de caracteres apropriadas ao antigo eslavo eclesiástico em vez das formas atuais esperadas: ótimo se for isso que você precisa, mas doloroso para uso normal.
Várias fontes tem vários tamanhos e nomes curtos impenetráveis, o que torna ainda mais difícil selecionar a fonte correta.
Quando uma fonte é adicionada ao CTAN, ela é acompanhada por pacotes do TeX para usá-la nos motores antigos (xelatex normalmente não precisa disso), e então a versão frequentemente é congelada enquanto a fonte é mantida separadamente. Algumas dessas fontes, como as Fontes Dejavu, provavelmente já estão instaladas em teu sistema BLFS em uma versão mais recente, e se você tiver múltiplas versões de uma fonte, não fica claro qual delas será usada pelo Fontconfig.
No entanto, às vezes é útil olhar para essas fontes em aplicativos
não "TeX", se somente para ver se você deseja instalar uma versão
atual. Se você tiver instalado todo o "texlive", [então] o exemplo a seguir
disponibilizará uma das fontes "Arkandis Open Type" para outros
aplicativos e todas as três fontes "TrueType" "ParaType". Ajuste ou
repita as linhas conforme desejado para, ou disponibilizar todas as
fontes "opentype/
" ou "truetype
", ou para selecionar diferentes
diretórios de fontes. Como o(a) usuário(a) "root
":
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
Se você fizer isso, [então] lembre-se de mudar todas as instâncias do ano nesse arquivo ao atualizar o "texlive" para um lançamento posterior.
Com exceção de páginas da web que usam fontes WOFF e as fornecem ou vinculam ao Google para baixá-las, as páginas da web tradicionalmente sugerem uma lista de nomes de famílias de fontes preferidas, se assim o desejarem (por exemplo, Times New Roman, Serif). Existem muitos motivos pelos quais as pessoas podem desejar que páginas que especificam uma fonte preferida usem uma fonte diferente ou prefiram fontes específicas em Monospace, Sans ou Serif. Como você esperará, existem várias maneiras de conseguir isso.
O "Fontconfig" instala a
documentação de usuário(a) que inclui um exemplo de "Arquivo de
usuário(a) de configuração" que, entre outras coisas, prefere a
"WenQuanYi ZenHei" (uma fonte "Sans")
se uma fonte "Serif" for
solicitada para chinês (essa parte pode ser anacrônica, a menos que
você tenha fontes chinesas não-livres, porque em "65-nonlatin.conf
" essa fonte já está entre as
fontes preferidas quando "Serif" é especificada para chinês) e
prefere a moderna fonte "VL Gothic"
se uma fonte "Sans" for especificada em uma página em japonês (caso
contrário, algumas outras fontes seriam preferidas se tivessem sido
instaladas).
Se você tiver instalado a versão atual, a documentação de
usuário(a) estará disponível em versões HTML, PDF e texto em
/usr/share/doc/fontconfig-2.15.0/
:
mude a versão se você instalou uma diferente.
Como um exemplo, se por algum motivo você desejou usar a fonte "Nimbus Roman No9 L" sempre que a "Times New Roman" for referenciada (ela é metricamente semelhante e preferida para "Times Roman", mas a fonte "Serif" originária das "Fontes Liberation" será preferida para a fonte "Times New Roman" se instalada), como um(a) usuário(a) individual, você poderia instalar a fonte e então criar o seguinte arquivo:
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>
<!-- prefira Nimbus Roman No9 L para Times New Roman, bem como para Times;
sem isso, Tinos e Liberation Serif tem precedência para Times New Roman antes
que o Fontconfig volte para o que corresponde a Times -->
<alias binding="same">
<family>Times New Roman</family>
<accept>
<family>Nimbus Roman No9 L</family>
</accept>
</alias>
</fontconfig>
EOF
Isso é algo que você normalmente faria nas configurações de um(a)
usuário(a) individual, mas o arquivo nesse caso recebeu o prefixo
"35-", de forma que pudesse, se desejado, ser usado abrangente a
todo o sistema em "/etc/fonts/conf.d/
".
O exemplo a seguir de uma configuração local (ou seja, uma que se aplica a todos os(as) usuários(as) da máquina) faz várias coisas. Ela é particularmente apropriada onde nenhum idioma for especificado, ou para leitura de texto CJK em uma localidade não CJK, e onde as formas japonesas dos pontos de código compartilhados com o chinês são preferidas. Em particular, abordagens alternativas seriam especificar uma fonte chinesa antes da fonte japonesa, significando que somente símbolos Kana serão usados a partir da fonte japonesa, ou não especificar DejaVu, de forma que a primeira fonte em cada conjunto de preferências seja preferida para texto usando alfabetos latinos.
Se uma fonte Serif for especificada, ela prefere Fontes Dejavu. Se pontos de código Han
forem encontrados ou o idioma japonês for especificado, a
fonte Mincho oriunda de Fontes
IPAex será usada. Se pontos de código Hangul forem
encontrados ou o idioma coreano for especificado, UnBatang
(veja-se Fontes coreanas) será usado: Mude essa
linha se você instalou uma fonte serif coreana diferente.
Depois disso, WenQuanYi ZenHei (Sans, mas um padrão
para Serif e monospace) é usado. Uma versão anterior desta
página mencionou o uso de UMing, que é uma fonte do chinês
tradicional que vem com um antigo arquivo de configuração,
preferindo-a para códigos de idioma zh-tw e zh-hk (e para
sans-serif e monospace). Mas sem o arquivo de configuração,
Fontconfig somente a tratará
como adequada para zh-hk. O arquivo de configuração precisa
ser editado para o estilo atual e então será anexado;
portanto, especificar UMing não pertence a esse arquivo
local.conf
.
Para preferências de Sans Serif, comece novamente com Fontes Dejavu, depois VL Gothic para japonês antes de voltar para WenQuanYi Zen Hei, que é Sans e abrange Hangul chinês e coreano.
As fontes Monospace são forçadas para as fontes preferidas Sans. Se o texto estiver em chinês ou coreano, então a WenQuanYi ZenHei será usada.
Em uma localidade não CJK, o resultado é que fontes adequadas serão
usadas para todas as variantes de chinês, japonês e coreano Hangul
(mas variantes japonesas dos glifos compartilhados com o chinês Han
serão usadas). Todos os outros idiomas já deveriam funcionar se uma
fonte estiver presente. Como o(a) usuário(a) root
:
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 é preferida como Serif em 65-nonlatin.conf;
substitua isso, de forma que uma fonte real Coreana possa ser usada para Serif -->
<family>UnBatang</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>VL Gothic</family>
<!-- Isto assume WenQuanYi; é boa o suficiente para Sans Coreana -->
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>VL Gothic</family>
<!-- Isto assume WenQuanYi; é boa o suficiente para Monospace Coreana -->
</prefer>
</alias>
</fontconfig>
EOF
Algumas fontes, especialmente fontes chinesas, vem com arquivos de
configuração que podem ser instalados em /etc/fonts/conf.d
. No entanto, se você fizer isso
e então usar um terminal para executar qualquer comando que use o
Fontconfig, você possivelmente
veja mensagens de erro como:
Aviso do Fontconfig:
"/etc/fonts/conf.d/69-odofonts.conf", linha 14: Ter-se várias
<famílias> em <apelido> não é suportado e possivelmente
não funcione conforme o esperado
.
Na prática, essas regras antigas não funcionam. Para usuários(as) não CJK, o Fontconfig geralmente fará um bom trabalho sem essas regras. A origem delas remonta a quando os(as) usuários(as) CJK precisavam que os bitmaps feitos à mão fossem legíveis em tamanhos pequenos, e eles pareciam feios perto dos glifos latinos suavizados - eles(as) preferiam usar a mesma fonte CJK para os glifos latinos. Existe um efeito colateral em fazer isso: a fonte (Serif) frequentemente também é usada para Sans, e em tal situação o texto (em inglês) nos menus do Gtk usará essa fonte - comparadas às fontes do sistema, além de ser serifada, é fraca e bastante pequena. Isso pode tornar desconfortável ler.
No entanto, esses antigos arquivos de configuração podem ser
corrigidos se você desejar usá-los. O seguinte exemplo é a primeira
parte do 64-arphic-uming.conf
,
originário de UMing - existem muitos outros itens semelhantes
que também precisam de mudanças:
<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>
O processo para corrigir isso é simples, mas tedioso - para cada
item que produzir uma mensagem de erro, usando o teu editor (como
o(a) usuário(a) root
) edite o
arquivo instalado para repetir o bloco inteiro, tantas vezes
quantas forem as múltiplas variáveis, então reduza cada exemplo
para ter somente uma delas. Você possivelmente deseje trabalhar em
um erro de cada vez, salvar o arquivo depois de cada correção e, a
partir de um terminal separado, executar um comando como
fc-list 2>&1 |
less para ver se a correção funcionou. Para o bloco
acima, a versão corrigida será:
<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>
Quando esta página e a próxima foram criadas, as fontes latinas vinham com no máximo duas espessuras - Regular ou Livro (Livro normalmente tem uma altura X maior para facilitar a leitura em grandes blocos de texto) e Negrito - e talvez um estilo itálico (ou inclinado). Algumas fontes também tinham faces condensadas (para caber mais texto em uma linha e geralmente usadas somente quando especificado). Sem a marcação CSS (Cascading Style Sheets), o texto usava a espessura Regular ou Book, exceto quando marcação <b> ... </b> era usada para texto em negrito. Os estilos em itálico seriam invocados por marcação <i> ... </i>, juntamente com a marcação em negrito para Bold Italic.
Algumas faces agora contêm até 9 espessuras, possivelmente também
com uma fonte variável (para economizar espaço incluindo todas as
alternativas em um arquivo e possivelmente permitindo espessuras
intermediárias). Para a maioria dos(as) usuários(as) de área de
trabalho que não precisam dessa ampla gama de espessuras para criar
conteúdo, é mais simples instalar somente uma ou duas espessuras.
Se uma face tiver espessuras individuais mais uma fonte variável, a
fonte variável geralmente estará no nível superior do diretório
fornecido, com espessuras individuais em um subdiretório
static/
. Exceto na revisão inicial de
uma fonte, não faz sentido instalar estática e variável, nem todas
as espessuras possíveis.
As espessuras são rotuladas de 100 (fina) a 900 (preta ou pesada) na terminologia CSS, sendo 400 normal e 700 negrito. O conjunto completo de espessuras está descrito em Tabela de espessuras CSS de fontes.
Se você tiver instalado uma fonte com várias espessuras, você pode copiar font-weights.html para a tua máquina local. Conforme enviado, ele usará tua fonte Serif padrão, presumindo que você tenha uma. Edite-o para apontar para uma fonte específica instalada usando o nome conhecido para Fontconfig (também nos itens de texto *EDITME FONTNAME*) e abra-o a partir do teu navegador da área de trabalho. Você também pode usá-lo para visualizar uma fonte com apenas duas espessuras instaladas, por exemplo, para testar para ver se você prefere outras espessuras.
Apesar dos detalhes naquele link da Mozilla, parece que se apenas as espessuras normal e negrito forem instaladas, SemiBold (600) será mostrada usando negrito.
Parece haver pouca margem para mudar quais espessuras são usadas para normal e negrito se apenas duas espessuras tiverem sido instaladas. O Firefox, e provavelmente outros navegadores, procurarão a próxima espessura mais pesada que o normal. Se for menor que negrito (Médio, talvez SemiBold - incerto) será usada para normal e então a próxima espessura maior, se houver, será usada para negrito, permitindo que você deixe as fontes um pouco mais escuras. Por outro lado, se apenas uma espessura menor que o normal tiver sido instalada, como Light, ela será usada tanto para espessura normal quanto para negrito (a busca ascendente acontece primeiro).
Se remover algumas espessuras de uma fonte do sistema, você
possivelmente necessitará executar fc-cache como o(a) usuário(a)
root
e, em seguida, deslogar-se
completamente para limpar os caches associados ao teu(tua)
usuário(a).
Vários ambientes de área de trabalho, assim como alguns programas, usarão Fontconfig para achar fontes, mas possivelmente substituam certas coisas.
GNOME: As configurações em org.gnome.desktop.interface podem ser atualizadas com dconf-editor. Você pode configurar as fontes de acordo com tua preferência e tamanho desejado de ponto. Para usar as fontes escolhidas pelo Fontconfig especifique, por exemplo, 'Sans 12', 'Serif 11', 'Mono 10' conforme desejado. Revise também as configurações de antialiasing, dicas e rgba. Alternativamente, gnome-tweaks-46.1 também pode atualizar as configurações de fonte em um formato de GUI.
LXQt: Mude as configurações de fonte conforme necessário para corresponder ao Fontconfig em lxqt-config-appearance.
KDE Plasma: As configurações podem ser ajustadas em Configurações do Sistema sob Aparência -> Fontes ou em Editar -> Preferências do aplicativo individual.
Xfce desktop: As configurações podem ser ajustadas em Configurações -> Aparência -> Fontes. Especifique tuas fontes preferidas, por exemplo. 'Sans Regular' (para usar a face e espessura normais em vez de Negrito e (ou) Itálico) e ajuste o tamanho do ponto na opção. Revise as opções de renderização e DPI.
Firefox: Esse navegador te permite especificar as fontes padrão dele. Para a série 128esr use o menu 'Hamburger' para ir para Preferências, Geral e sob Fontes -> Avançado selecione Sans Serif, Serif ou Monospace conforme apropriado, se você desejar usar as fontes que correspondam ao Fontconfig. Configure os tamanhos dos pontos conforme desejado. Nas versões posteriores, as configurações estão em Preferências -> Fontes.
Libreoffice: Testes usando texto em inglês com uma antiga fonte japonesa (HanaMinA), que suporta vários idiomas europeus, mas tinha somente uma espessura e sem itálico ou inclinação, mostraram que, embora o Libreoffice use Fontconfig para encontrar a fonte, ele criou o próprio texto dele em negrito ou inclinado. Não está claro se fará o mesmo quando uma fonte realmente tiver espessura de negrito ou um estilo de itálico. Além disso, a documentação mostra que o Libreoffice tem as próprias regras dele de substituição para quando um ponto de código não é encontrado na fonte selecionada, mas não está claro se essas regras se aplicam no Linux usando Fontconfig.
Pango: conforme observado no
exemplo ~/.config/fontconfig
acima,
qualquer coisa que use Pango-1.44 (a partir de 2019) ou posterior
agora usa Harfbuzz para dicas, não
FreeType, e hintfull
não é suportado.
Thunderbird: As configurações de fonte podem ser mudadas indo-se para "Editar -> Configurações" e, a seguir, rolando para baixo até "Fontes & Cores".
As entradas do blog de Eevee são particularmente úteis se o Fontconfig não pensar que tua fonte escolhida suporta teu idioma e para preferir algumas fontes japonesas não MS quando uma fonte feia MS já estiver instalada.
A documentação do interpretador FreeType v40 em documentos do freetype explica como o hinter atual funciona e por que o intérprete Infinality anterior (lento) foi substituído.
Uma resposta antiga em
askubuntu fornece alguns detalhes acerca de como calcular
pontos por polegada de uma tela, mas essencialmente você apenas
mede a largura e a altura do painel visível, converte para
polegadas se usar medidas métricas e divide pelo número de pixeis.
Você pode então passar -dpi
ao iniciar o Xorg, usando
teu próprio valor.
90
Talvez mais que você gostaria de saber esteja em documentos CSS da Mozilla.
Se você estiver usando dicas e tiver uma fonte TTF (não OTF) que carece de dicas, mas te permite bifurcá-la, você poderá aplicar dicas usando ttfautohint que é baseado no antigo autohinter. A partir da versão 1.8.4, ele falha para construir sem o Qt5.
"Arch" tem muitas informações no "wiki" dela em "font_configuration".
"Gentoo" tem algumas informações no "wiki" dela em "Fontconfig", embora muitos detalhes (o que habilitar e "Infinality") sejam específicos para "Gentoo".