Como usar o Fixedsys no Terminal do Gnome, ou onde quer que fontes monoespaçadas sejam necessárias

8

Acho que a fonte Fixedsys é uma das fontes monoespaçadas mais legíveis para programação. Tem zero antialiasing, com linhas verticais na maior parte 2 pixels de largura. Perto do ideal para o monitor atual, em meus olhos (literalmente). Aqui está uma amostra:

Após anos de Windows em casa (por motivos familiares) e servidores Linux no trabalho acessados pelo Cygwin no Windows (por motivos de política da empresa), com Fixedsys como shell e fonte IDE, finalmente decidi migrar para o Ubuntu em casa .

Eclipse e gedit não são problema, eles aceitam uma versão corrigida da fonte TTF Fixedsys Excelsior que você pode encontrar aqui no comentário # 16 (nome do arquivo: FSEX301-L2.ttf). Mas o terminal do Gnome só aceita fontes monoespaçadas.

Embora o Fixedsys Excelsior seja essencialmente monoespaçado, ele contém glifos maiores (principalmente para idiomas orientais) e também algumas ligaduras. Como aparentemente todos os caracteres devem ter a mesma largura para que uma fonte seja reconhecida como monoespaçada, o Fixedsys Excelsior não pode ser selecionado em todos os contextos em que as fontes monoespaçadas são necessárias, incluindo o gnome-terminal.

Então, qual é a maneira mais fácil / mais limpa de usar um clone do Fixedsys em contextos que aceitam apenas fontes monoespaçadas?

    
por Walter Tross 31.10.2012 / 23:21

2 respostas

7

Esta é a solução que encontrei. Eu testei-o completamente várias vezes, e tenho usado a fonte resultante em vários lugares há mais de 2 anos, mas esteja avisado: algumas partes do procedimento podem estar em qualquer lugar, desde o menos ideal até o errado.

Antes de perguntar "por que você não disponibiliza a fonte resultante", a resposta é: "porque não tenho certeza se posso fazer isso". O copyright da fonte é um assunto complicado.

Faça o download da fonte corrigida do Fixedsys Excelsior (arquivo FSEX301-L2.ttf , no comentário # 16)

Instale o FontForge (por exemplo, do Ubuntu Software Center)

Clique com o botão direito do mouse no arquivo FSEX301-L2.ttf e abra-o com o FontForge. Na janela Carregar fontes de bitmap exibida, clique em Não .

Clique em Arquivo e seta direita; Execute Script ... , copie e cole o seguinte na janela que aparece:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

Em seguida, selecione FF e clique em OK (vai demorar um pouco, você terá que esperar até que a janela Execute Script desapareça)

Clique em Element & amp; RightArrow; Informações da fonte ... Em PS Names , altere o Nome da fonte , Nome da família e Nome para humanos , por exemplo, adicionando Mono (espaços são permitidos apenas na segunda e terceira cadeia).

Na mesma janela Informações da fonte , selecione OS / 2 .
Na guia Misc. , altere a Família de PFM para Monospace . Na guia Métricas, defina Descenter Descentr e Deslocamento Descent Offset ambos para 0 (*) .
Na guia Panose , altere Proporção para Monoespaçado .

Na mesma janela Informações da fonte , selecione Pesquisas . Na guia GSUB e na guia GPOS , selecione cada linha e clique em Excluir .

Na mesma janela Informações da fonte , clique em OK e na janela Alterar uniqueID? exibida Alterar strong>.

Se você quiser, pode ajustar um ou mais recursos questionáveis do Fixedsys. Por exemplo, o caractere zero é deslocado um pixel para a direita. Para voltar ao centro, clique duas vezes nele e, em seguida, clique em Métricas e RightArrow; Defina LBearing ... , defina o LBearing como 10 e clique em OK . Você também pode alterar a forma dos caracteres, mas sempre mantenha os pontos de controle em múltiplos de 10 e a largura em 80.

Clique em Element & amp; RightArrow; O Bitmap Strikes Available ... , na janela que aparece, defina Pixel Sizes como 16 e clique em OK .

Clique em Arquivo e seta direita; Gere Fontes ... , escolha um diretório diferente e / ou um nome de arquivo diferente, se necessário, verifique se o formato de saída é TrueType e clique em Salvar . Na janela Não padrão em tamanho exibida Sim . Na janela Erros detectados que aparece em seguida, clique em Salvar (não se preocupe).

Saia do FontForge ( Arquivo & Seta para a direita; Sair ). Na janela Tipo de letra alterado que aparece, clique em Não guardar .

Mova o arquivo gerado para o subdiretório .fonts do seu diretório pessoal (crie-o se ele não existir).

Abra o terminal do Gnome. Clique em Editar & amp; Perfis ... Em um perfil (eu sugiro que você crie um novo) mude a fonte para Fixedsys Excelsior 3.01-L2 Mono (ou o que você chamou de versão mono do Fixedsys Excelsior), no tamanho 12 (que é o apenas o tamanho "verdadeiro" do Fixedsys). Se você quiser, também pode desativar o texto em negrito. Sugiro texto preto sobre fundo branco, mas isso é uma questão de gosto.

A variante em negrito dessa fonte é equivalente a repetir o caractere deslocado por um pixel à direita (isso é diferente de FSEX301-L2.ttf , onde aparece suavizado). Não é muito legível - mas você realmente precisa de negrito? Eu não. O problema é somente com aqueles contextos onde negrito não pode ser desabilitado (nem mesmo, por exemplo, editando realce de sintaxe), especialmente nos casos em que o espaçamento de caracteres é incrementado em um pixel também, quebrando alinhamentos (este não é o caso do gnome -terminal). Eu não encontrei uma solução para este último incômodo ainda. Sugestões são bem vindas.

(*): não é necessário desde o lançamento do FontForge de 2012-07-31 (em 14.04 LTS - Trusty Tahr)

    
por Walter Tross 31.10.2012 / 23:21
2

Grande solução de Walter Tross, mas se você não quiser fazer todo o trabalho, aqui está o link de download:

FixedsysExcelsiorIIIb-L2_Mono.ttf

    
por Rafael Borges 25.01.2016 / 16:18