5.5. Usando fontes no XFree86

Com contribuições de Murray Stokely.

5.5.1. Fontes Type1

As fontes padrão que são distribuídas com o XFree86 estão aquém do ideal para aplicações comuns de editoração eletrônica. Fontes grandes em apresentações aparecem recortadas e com aparência nada profissional, e fontes pequenas no Netscape® são quase ininteligíveis. Entretanto, há várias fontes Type1 (PostScript®) gratuitas e de alta qualidade disponíveis, as quais podem ser usadas imediatamente com o XFree86, seja a versão 3.X ou a versão 4.X. Por exemplo, a coleção de fontes URW (x11-fonts/urwfonts) inclui versões de alta qualidade de fontes type1 padrão (Times Roman®, Helvetica®, Palatino® e outras). A coleção Freefonts (x11-fonts/freefonts) inclui muitas outras fontes, mas a maioria delas são destinadas ao uso em softwares de manipulação de gráficos como o Gimp, não sendo suficientemente completas para o uso como fontes de tela. Para completar, o XFree86 pode ser configurado para usar fontes TrueType® com um mínimo de esforço: veja a seção sobre fontes TrueType adiante.

Para instalar as coleções de fontes Type1 acima da coleção de ports, execute os comandos a seguir:

# cd /usr/ports/x11-fonts/urwfonts
# make install clean

E da mesma forma para o freefont e outras coleções. Para dizer ao servidor X que estas fontes existem, adicione a linha apropriada ao arquivo XF86Config (em /etc/ para XFree86 versão 3, ou em /etc/X11/ para a versão 4), onde se lê:

FontPath "/usr/X11R6/lib/X11/fonts/URW/"

Alternativamente, na linha de comandos da sessão X execute:

% xset fp+ /usr/X11R6/lib/X11/fonts/URW
% xset fp rehash

Isso vai funcionar mas será perdido quando a sessão do X for fechada, a menos que seja adicionada ao arquivo de inicialização (~/.xinitrc para uma sessão normal via startx, ou ~/.xsession quando o registro (login) for feito via um gerenciador de registro gráfico como o XDM). Uma terceira forma é utilizar o novo arquivo XftConfig: consulte a seção sobre anti-aliasing.

5.5.2. Fontes TrueType®

O XFree86 4.X tem suporte incorporado para a exibição produzida de fontes TrueType. Há dois módulos diferentes que podem permitir essa funcionalidade. O módulo freetype é utilizado neste exemplo por ser mais coerente com outros suportes para produção de fontes. Para habilitar o módulo freetype basta acrescentar a linha a seguir à seção ``Module'' do arquivo /etc/X11/XF86Config.

Load  "freetype"

Para o XFree86 3.3.X, um servidor de fontes TrueType separado se faz necessário. O Xfstt é de uso comum para esta finalidade. Para instalar o Xfstt, basta instalar o port x11-servers/Xfstt.

Crie uma pasta para as fontes TrueType (por exemplo, /usr/X11R6/lib/X11/fonts/TrueType) e copie todas as fontes TrueType nesta pasta. Tenha em mente que as fontes TrueType não podem ser importadas diretamente de um Macintosh®; elas precisam estar no formato UNIX®/DOS/Windows® para que possam ser usadas pelo XFree86. Uma vez que os arquivos tenham sido copiados para esta pasta, use o ttmkfdir para criar um arquivo fonts.dir, de modo que o produtor de fontes do X saiba que estes novos arquivos foram instalados. O ttmkfdir está disponível na Coleção de Ports do FreeBSD como x11-fonts/ttmkfdir.

# cd /usr/X11R6/lib/X11/fonts/TrueType
# ttmkfdir > fonts.dir

Agora adicione a pasta TrueType no caminho para as fontes (o font path). Esta é a mesma descrição utilizada anteriormente para as fontes Type1, isto é, utilize

% xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
% xset fp rehash

ou adicione uma linha FontPath ao arquivo XF86Config.

Isso é tudo. Agora o Netscape, o Gimp, o StarOffice, e todos os outros aplicativos do X devem estar reconhecendo as fontes TrueType instaladas. Fontes muito pequenas (como um texto em um vídeo de alta resolução de uma página da internet) e fontes muito grandes (dentro do StarOffice) vão ter uma aparência muito melhor agora.

5.5.3. Fontes com Anti-Alias

Atualizado para o XFree86 4.3 por Joe Marcus Clarke.

O Anti-aliasing está disponível no XFree86 desde a versão 4.0.2. Mesmo assim, configurar tais fontes era incômodo antes da introdução do XFree86 4.3.0. Da versão 4.3.0 em diante, todas as fontes em /usr/X11R6/lib/X11/fonts/ e em ~/.fonts/ são automaticamente disponibilizadas com anti-aliasing para os aplicativos prontos para o Xft. Nem todas as aplicações são preparadas para usar o Xft ainda, mas muitas já contam com o suporte Xft. Exemplos de aplicações que reconhecem o Xft incluem o Qt 2.3 e posteriores (conjunto de ferramentas feito para a área de trabalho do KDE), Gtk+ 2.0 e posteriores (conjunto de ferramentas para a área de trabalho do GNOME), e o Mozilla 1.2 e posteriores.

Para distinguir que fontes são anti-aliased, ou configurar as propriedades do anti-aliasing, crie (ou edite, se já existir) o arquivo /usr/X11R6/etc/fonts/local.conf. Vários recursos avançados do sistema de fontes Xft podem ser ajustadas através deste arquivo; esta seção descreve apenas algumas possibilidades simples. Para mais detalhes, por favor verifique em fonts-conf(5).

Este arquivo deve ser em formato XML. Preste bastante atenção à caixa dos caracteres e assegure-se de ter fechado todos os rótulos (tags). O arquivo começa com o cabeçalho usual do XML seguido de uma definição DOCTYPE, e então pelo rótulo <fontconfig>:

      <?xml version="1.0"?>
      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <fontconfig>
   

Como citado anteriormente, toda fonte em /usr/X11R6/lib/X11/fonts/ bem como em ~/.fonts/ são automaticamente disponibilizadas para aplicações prontas para o Xft. Se você deseja acrescentar outra pasta que esteja fora dessas duas hierarquias, acrescente uma linha similar a apresentada abaixo ao arquivo /usr/X11R6/etc/fonts/local.conf:

<dir>/path/to/my/fonts</dir>

Após acrescentar novas fontes, e especialmente novas pastas com fontes, você deve executar o comando a seguir para reconstruir os caches de fonte:

# fc-cache -f

O anti-aliasing torna as bordas pouco nítidas, o que proporciona a textos pequenos maior legibilidade e remove ``escadinhas'' de textos grandes, mas pode causar fadiga visual se aplicado ao texto normal. Para excluir fontes com tamanho em pontos menor 14 do anti-aliasing, inclua estas linhas:

   <match target="font">
        <test name="size" compare="less">
        <double>14</double>
        </test>
        <edit name="antialias" mode="assign">
        <bool>false</bool>
        </edit>
    </match>

O espaçamento para fontes monoespaçadas também pode ser inapropriado com o anti-aliasing. Isso parece ser uma questão presente no KDE, em particular. Uma correção possível para isso é forçar o espaçamento destas fontes para 100. Acrescente as seguintes linhas:

       <match target="pattern" name="family">
       <test qual="any" name="family">
           <string>fixed</string>
       </test>
       <edit name="family" mode="assign">
           <string>mono</string>
       </edit>
    </match>
    <match target="pattern" name="family">
        <test qual="any" name="family">
        <string>console</string>
        </test>
        <edit name="family" mode="assign">
        <string>mono</string>
        </edit>
    </match>

(isso apelidará todo nome comum para fontes fixas como "mono"), e então acrescente:

    <match target="pattern" name="family">
         <test qual="any" name="family">
         <string>mono</string>
         </test>
         <edit name="spacing" mode="assign">
         <int>100</int>
         </edit>
     </match>     

Certas fontes, como a Helvética, podem apresentar problemas quando usadas com anti-alias. Geralmente isso se apresenta como uma fonte que parece cortada ao meio verticalmente. No pior caso, isso pode causar a parada na execução de aplicativos como o Mozilla. Para evitar isso, considere acrescentar o seguinte ao arquivo local.conf:

    <match target="pattern" name="family">
         <test qual="any" name="family">
         <string>Helvetica</string>
         </test>
         <edit name="family" mode="assign">
         <string>sans-serif</string>
         </edit>
     </match>

Uma vez terminada a edição do local.conf assegure-se de colocar no final do arquivo o rótulo </fontconfig>. Não fazê-lo fará que suas modificações sejam desprezadas.

O conjunto padrão de fontes que vem com o XFree86 não é muito conveniente quando se trata de anti-alias. Um conjunto bem melhor de fontes padrão pode ser encontrado no port x11-fonts/bitstream-vera. Esse port irá instalar um arquivo /usr/X11R6/etc/fonts/local.conf se ele não existir. Se o arquivo existir, o port var criar o arquivo /usr/X11R6/etc/fonts/local.conf-vera . Faça a fusão do conteúdo deste arquivo com o /usr/X11R6/etc/fonts/local.conf, e as fontes Bitstream automaticamente substituirão as fontes Serif, Sans Serif e Monospaced padrão do XFree86.

Por fim, os usuários podem acrescentar suas próprias configurações em seus arquivos .fonts.conf pessoais. Para fazer isso, cada usuário deve apenas criar o arquivo ~/.fonts.conf. Este arquivo precisa também estar no formato XML.

Um último ponto: com telas de LCD, amostragem de subpontos pode ser desejável. Isso basicamente trata os componentes (horizontalmente separados) vermelho, verde e azul separadamente a fim de melhorar a resolução horizontal; os resultados podem ser espetaculares. Para permitir isso, acrescente a linha em algum lugar do arquivo local.conf:

   <match target="font">
        <test qual="all" name="rgba">
        <const>unknown</const>
        </test>
        <edit name="rgba" mode="assign">
        <const>rgb</const>
        </edit>
    </match>
     

Nota: Conforme o tipo de tela, o rgb pode precisar ser substituído por bgr, vrgb ou vbgr: experimente e veja qual funciona melhor.

O anti-aliasing deve estar habilitado na próxima vez que o servidor X for iniciado. Entretanto, os programas precisam saber como tirar vantagem disso. No presente, o conjunto de ferramentas Qt o faz, logo todo o ambiente do KDE pode utilizar fontes com anti-alias (consulte a Seção 5.7.3.2 sobre o KDE para detalhes). O Gtk+ e o GNOME também podem ser adaptados ao anti-alias através do capplet ``Font'' (consulte a Seção 5.7.1.3 para mais detalhes). Por padrão, o Mozilla 1.2 e posteriores vão usar o anti-alias automaticamente. Para desativar isso, reconstrua o Mozilla com o parâmetro -DWITHOUT_XFT.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.