Há uma família de fontes monoespaçadas de que gosto, chamada IBM Plex Mono. Ele vem com vários pesos de fonte além do normal e do negrito, a saber:
Thin
ExtraLight
Light
Regular
Medium
SemiBold
Bold
Agora, tenho duas estações de trabalho que uso regularmente. Um deles roda o Kubuntu 22.04, onde instalei esta família de fontes usando apt
(está nos repositórios). O outro roda o Fedora Kinoite, e eu instalei a fonte baixando os .woff2
arquivos e copiando-os para o meu ~/.local/share/fonts
diretório.
Em ambas as máquinas, configurei a fonte monoespaçada padrão (usando as configurações de Fontes nas configurações do KDE) para IBM Plex Medium, que é o peso que gosto de usar no meu terminal (Konsole). Depois de fazer isso, o Konsole utiliza o peso médio correto no terminal.
No entanto, as duas máquinas renderizam texto em negrito no terminal de maneira diferente, o que você pode testar executando echo -e "\033[1mBold\033[0m normal"
para imprimir algum texto em negrito usando códigos de escape ANSI.
- Na máquina Kubuntu, um peso de fonte mais ousado (acho que é o
Bold
peso) é usado. - Na máquina Fedora, o peso da fonte é exatamente o mesmo, como se a resolução da fonte tivesse decidido que
Medium
“já” é ousada o suficiente.
Meu problema imediato, é claro, é que eu gostaria de descobrir como fazer com que o Fedora (ou pelo menos o Konsole) use uma variante da fonte que realmente tenha maior peso, para que eu possa distinguir o texto em negrito do normal.
Mas a minha pergunta é mais ampla do que isso - dada uma pilha de .woff2
(ou .ttf
o que quer que seja) arquivos em ~/.local/share/fonts
, e que eu especifiquei um deles como minha fonte monoespaçada padrão, como o Linux decide qual variante usar quando o Konsole pede "monoespaçado padrão com peso ousado"? Existe uma maneira de eu mesmo controlar isso, por exemplo, em /etc/fonts/conf.d/
?
Esta pergunta é semelhante à minha, mas é bastante antiga e não cobre realmente as "melhores práticas" sobre como configurar esses tipos de mapeamento (por exemplo, onde devo colocar esse XML): Como faço para alias o peso em negrito de um família de fontes para o peso em negrito de outra família de fontes?
Fontconfig é a biblioteca responsável pela descoberta, correspondência e configuração de fontes em muitos sistemas Linux. Quando um aplicativo solicita uma espessura de fonte específica, fontconfig determina a melhor correspondência com base nas fontes e nos arquivos de configuração disponíveis.
Para controlar a seleção da espessura da fonte:
Certifique-se de que todas as variantes do IBM Plex Mono estejam instaladas corretamente em ~/.local/share/fonts em sua máquina. Este diretório deve conter todos os arquivos de fontes, incluindo diferentes pesos.
Em seguida, atualize o cache de fontes para garantir que o sistema reconheça as novas fontes:
Em seguida, crie um arquivo de configuração de fonte para especificar como o fontconfig deve lidar com diferentes pesos de fonte. Você pode criar um novo arquivo em ~/.config/fontconfig/conf.d/ (crie o diretório se ele não existir) ou em /etc/fonts/conf.d/ para configurações de todo o sistema. Exemplo (este é do meu Fedora Linux, é o mesmo na maioria das distros até onde eu sei), crie um arquivo chamado 10-ibm-plex-mono-bold.conf:
Em seguida, atualize o cache novamente:
Agora, você pode usar o comando fc-match para verificar se fontconfig está correspondendo corretamente aos pesos de fonte solicitados:
Exemplo de mapeamento específico
Se desejar certificar-se de que o IBM Plex Mono Medium seja mapeado para o IBM Plex Mono Bold quando o peso em negrito for solicitado, será possível usar a seguinte configuração específica:
Obrigado!