Modification unauthorized. Use Discussion page if necessary

Discussion Page Content

Original HOWTO

  Linux Portuguese-HOWTO
  Configurações do Linux para a Língua Portuguesa
  Carlos A. M. dos Santos <casantos@cpmet.ufpel.tche.br>
  CPMet/UFPEL -- Pelotas, RS, Brasil
  v3.2, 24 May 1999

  Este documento pretende ser um guia de referência de configuração do
  Linux e seus programas, teclados e fontes de caracteres, permitindo
  sua utilização mais confortável por pessoas que falem a Língua Por­
  tuguesa.
  ______________________________________________________________________

  Table of Contents



  1. Introdução

     1.1 Finalidades deste HOWTO
     1.2 Onde encontrar a versão mais atual
     1.3 Página oficial na WWW
     1.4 Como enviar colaborações

  2. Informações gerais

     2.1 Conjuntos de caracteres
     2.2 Modo texto versus Sistema de Janelas X

  3. Configuração do console (modo texto)

     3.1 Mapas de teclado
     3.2 Mapas de tradução de tela
     3.3 Comandos do pacote KBD
     3.4 Carregamento de uma fonte de caracteres
        3.4.1 Slackware
        3.4.2 Debian
        3.4.3 Red Hat
        3.4.4 Conectiva Red Hat Linux
        3.4.5 S.u.S.E.
        3.4.6 Testando a fonte
     3.5 Carregando um mapa de teclado
        3.5.1 Slackware.
        3.5.2 Debian.
        3.5.3 Red Hat.
        3.5.4 Conectiva Red Hat Linux.
        3.5.5 S.u.S.E..
        3.5.6 Testando o teclado
     3.6 Verificando erros

  4. Biblioteca de funções libc e aplicativos GNU

     4.1 Configurando o suporte internacional
     4.2 Problemas com a libc 5

  5. Configuração do X

     5.1 Configuração do xinit
     5.2 Configuração do XDM
     5.3 Compose
     5.4 Locale
     5.5 Geração de mapas com o XKeyCaps
     5.6 Contornando os limites do X
        5.6.1 Alteração da biblioteca Xlib
        5.6.2 Alteração no kernel do Linux
        5.6.3 Comparação entre as duas soluções

  6. Configuração dos vários programas

     6.1 Aplicativos
        6.1.1 Bash (biblioteca GNU readline)
        6.1.2 Emacs
        6.1.3 flex
        6.1.4 Fortune
        6.1.5 Ispell
        6.1.6 JDK (inclui ICQJava)
        6.1.7 Joe
        6.1.8 Less
        6.1.9 ls
        6.1.10 LyX
        6.1.11 Man, groff, troff
        6.1.12 Midnight Comander (mc)
        6.1.13 Minicom
        6.1.14 Netscape Communicator
        6.1.15 nn
        6.1.16 Pine e Pico
        6.1.17 tcsh
        6.1.18 TeX e LaTeX
           6.1.18.1 O pacote Babel
           6.1.18.2 Separação silábica
           6.1.18.3 Uso de Font Encoding T1
           6.1.18.4 Edição de documentos
           6.1.18.5 Teste da configuração do LaTeX
           6.1.18.6 Problemas com alguns pacotes do teTeX
           6.1.18.7 Lista TeX-BR
           6.1.18.8 LaTeX-demo
        6.1.19 WordPerfect
        6.1.20 Xemacs (antigo lucid emacs)
     6.2 Rede local e Internet
        6.2.1 FTP (File Transfer Protocol)
        6.2.2 Correio eletrônico

  7. Ficheiros necessários

  8. Informações Adicionais

     8.1 Fontes de informação sobre Linux em Português
     8.2 Free Translation Project
     8.3 LIE-BR
     8.4 Versões de software testadas

  9. Observações finais

     9.1 Futuras adições a este documento
     9.2 Nota de Direitos de Autor
     9.3 Garantia (inexistência de) e nota de responsabilidade
     9.4 Agradecimentos

  10. Bibliografia comentada



  ______________________________________________________________________

  1.  Introdução

  À semelhança de outras línguas faladas na Europa, a Língua Portuguesa
  tem características especiais, como a utilização de caracteres
  acentuados, que tornam o seu suporte difícil, pouco intuitivo ou até
  mesmo impossível, por parte do software utilizado nos nossos
  computadores.

  Nossa língua assume particularidades em cada um dos países em que é
  falada e mesmo dentro de um único país como o Brasil, de dimensões
  continentais e com influências culturais de muitos outros povos. Este
  documento foi originalmente escrito por um português, mas agora é
  mantido por um brasileiro. Há uma mistura de sotaques que deve se
  manter por um bom tempo, pois não há razão para alterar o texto
  original senão para fazer de adições e correções, até por respeito ao
  primeiro autor. Termos ``estrangeiros'' desnecessários foram
  substituídos por correspondentes da Língua Portuguesa, preservando-se
  apenas os que já fazem parte do jargão da informática.


  1.1.  Finalidades deste HOWTO

  Este HOWTO é um guia de referência de configuração do sistema
  operativo Linux e seus programas, teclados e fontes de caracteres,
  permitindo sua utilização mais confortável por pessoas que falem a
  Língua Portuguesa. Como os programas mais antigos não foram desenhados
  com suporte a caracteres acentuados ou internacionalização, às vezes é
  preciso usar algum artifício que permita contornar o problema, mas o
  resultado nem sempre é totalmente satisfatório e em alguns casos chega
  ser frustrante. As dificuldades encontradas centram-se essencialmente
  em torno de quatro pontos:


  ·  a introdução de caracteres acentuados através do teclado, como seja
     a escrita de jo~ao em vez da sua forma correcta: joão;

  ·  a exibição dos mesmos na tela do computador. O suporte resume-se
     normalmente à correcta localização das teclas, nada mais;

  ·  o correto tratamento de convenções nacionais de formato de datas,
     horas e valores monetários;

  ·  a exibição de mensagens, títulos e demais informações dos programas
     em outra língua que não o Inglês, que é a língua original da
     maioria desses programas.

  Versões anteriores do Portuguese HOWTO concentravam-se em contornar as
  duas primeiras dificuldades mencionadas, de forma a fazer que, dentro
  do possível, tanto o sistema operativo como os programas nele
  utilizados aceitassem os caracteres acentuados e usassem os teclados
  com suporte para o Português.  Embora esse objetivo ainda seja
  perseguido, os problemas de teclado e caracteres já têm soluções
  satisfatórias, pelo menos para as aplicações mais usadas. As próximas
  versões deverão se dedicar mais aos dois últimos problemas.

  O texto contém uma já não tão breve discussão sobre o tratamento do
  teclado e das fontes de caracteres do console pelo Linux, bem como do
  suporte a várias línguas nacionais. O Sistema de Janelas X também é
  discutido, fazendo-se uma comparação entre ele e o modo de texto. Por
  fim, são fornecidas instruções para a configuração do sistema
  operativo e de diversos aplicativos importantes.

  O documento tem se tornado menos slackwariano, incluindo cada vez mais
  informações relativas a outras distribuições. Slackware e Caldera
  ainda se baseiam na versão 5 da biblioteca de funções do sistema para
  Linux (libc), enquanto Debian, Red Hat, TurboLinux, S.u.S.E e Stampede
  já suportam a versão 6 (que na verdade é a glibc versão 2). Esta nova
  versão da biblioteca está um passo adiante no suporte a
  internacionalização e localização.  A partir da versão 3.2 do
  Portuguese-HOWTO as particularidades de cada distribuição serão
  destacadas quando houver necessidade. A tentativa de tornar Debian uma
  distribuição ``de referência'' a partir da versão 3.0 do HOWTO
  fracassou miseravelmente porque o número de diferenças entre as
  distribuições é muito grande.

  A intenção original de não tentar concentrar toda a informação em um
  único texto, tratando apenas de alguns temas essenciais e fornecendo
  referências para outras fontes, também fracassou. O HOWTO em sua
  versão 3.1 já alcançava 38 páginas impressas em formato A4, o que está
  longe de poder ser chamado de sucinto. As principais razões para tal
  gigantismo são a necessidade de discutir diferenças entre as
  distribuições e a necessidade de fornecer informações mais detalhadas
  sobre aplicativos.

  Excetuando-se aspectos muito específicos do Linux, como a configuração
  do modo texto e do kernel, a maioria das informações contidas neste
  documento pode ser aplicada a outros sistemas Unix. Exemplos são as
  configurações do Sistema de Janelas X e de vários aplicativos, que
  foram aplicadas em Solaris 2.{5,6,7} e Digital UNIX 3.2. Os mapas de
  teclado para terminais X e estações de trabalho Sun foram criados e
  são usados em máquinas que rodam Solaris. O documento poderá um dia se
  tornar o ``Unix Portuguese HOWTO'', embora no momento não se tenha
  intenção ou meios de fazê-lo.


  1.2.  Onde encontrar a versão mais atual

  Os Linux HOWTO fazem parte do Projeto de Documentação Linux (Linux
  Documentation Project -- LDP). Os documentos do LDP são mantidos em
  servidores da Universidade da Carolina do Norte (UNC) e do Instituto
  de Tecnologia de Massachusetts (MIT), nos Estados Unidos da América, e
  podem ser obtidos via FTP anônimo nos seguintes endereços:

  ·  <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO> (conhecida
     anteriormente como sunsite.unc.edu).

  ·  <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO>

  Pode-se também folhear os documentos HOWTO em formato HTML no endereço

  ·  <http://metalab.unc.edu/LDP/HOWTO>

  Muitas localidades mantêm cópias desses documentos. Deve-se dar
  preferência ao acesso à cópia mais próxima, para economizar o precioso
  tráfego internacional na Internet e também evitar a sobrecarga da
  máquina metalab.unc.edu. Uma lista completa dessas localidades pode
  ser obtida em

  ·  <http://metalab.unc.edu/LDP/mirrors.html>

  Eis uma lista dos endereços recomendados:

  Brasil

  ·  <http://linusp.usp.br/LDP/>

  ·  <http://www.conectiva.com.br/LDP/>

  ·  <http://www.opensite.com.br/linux/>

  ·  <http://taubate.valley-bbs.com.br/LDP/>

  ·  <http://linux.unicamp.br/docs/>

  Portugal

  ·  <http://gil.di.uminho.pt/mirrors/LDP/>

  ·  <http://deneb.cec.pt/LDP/>

  ·  <http://ftp.dei.uc.pt/LDP/>

  ·  <http://www.sc.uevora.pt/LDP/>

  ·  <http://lwp.ualg.pt/docs/LDP/>

  ·  <http://linux.global-one.pt/LDP/>

  ·  <http://linux.ispgaya.pt/LDP/>

  ·  <http://ae.fe.up.pt/LDP/>

  Os Linux HOWTO estão disponíveis em diversos formatos: texto simples,
  PostScript, DVI, HTML, RTF e Lyx. O formato original é SGML e os
  demais são gerados usando o SGMLtools (maiores informações em
  <http://www.sgmltools.org/>).

  1.3.  Página oficial na WWW

  A página oficial do Linux Portuguese-HOWTO, assim como os diversos
  arquivos de configuração do sistema e programas aplicativos
  mencionados no texto, podem ser encontrados nos seguintes endereços:


  ·  Brasil:  <http://linusp.usp.br/~casantos/>

  ·  Portugal:  <http://linux.fe.up.pt/howto/>


  1.4.  Como enviar colaborações

  Toda a formatação deste HOWTO, incluindo a numeração das seções é
  feita pelo SGMLtools. Por isso, ao enviar sugestões ou correções,
  mencione os títulos das seções onde as alterações sugeridas devem
  ocorrer e não os números. Nunca refira-se a um parágrafo como sendo
  ``o terceiro da seção 3.1''; cite as palavras inicias do trecho a ser
  modificado.

  Envie sugestões e correções via correio eletrônico em texto simples,
  opcionalmente com acentuação no código ISO-8859-1.  Se o texto não for
  composto em um sistema *NIX, certifique-se de usar a codificação
  correta.  Todas as mensagens recebidas serão lidas, mas nem todas
  receberão resposta direta, devido à falta de tempo para tanto.

  Não envie documentos no formato proprietário de processadores de texto
  nem em formato HTML (o que infelizmente parece ser o comportamento
  normal do Netscape Communicator e do Microsoft Outlook).

  Mensagens perguntando como configurar seu modem, placa de vídeo ou
  rede não serão respondidas. Para esse tipo de consulta é aconselhável
  procurar uma lista de discussão sobre Linux em Português ou acompanhar
  os grupos de discussão de Linux na USENET comp.os.linux.*.

  ``Flames'' terão o destino costumeiro: /dev/null.


  2.  Informações gerais

  2.1.  Conjuntos de caracteres

  Um conjunto de caracteres é definido de acordo com os símbolos
  constantes no alfabeto utilizado para escrita em uma ou mais línguas.
  A Organização Internacional de Normas (International Standards
  Organization - ISO) padronizou através da norma ISO-8859 vários desses
  conjuntos, identificados por ISO-8859-x onde o x corresponde a um
  determinado alfabeto. O conjunto ISO-8859 utiliza 8 bits para
  representar cada caracter, o que permite uma gama de 256 sinais
  (valores de zero a 255). Em cada um dos conjuntos, os códigos zero a
  127 correspondem ao conjunto ASCII (American Standard Code for
  Information Interchange) e os códigos 160 a 255 são usados para
  caracteres nacionais.

  Para a língua portuguesa, recomenda-se o uso do conjunto ISO-8859-1,
  que compreende o alfabeto latino e letras acentuadas usadas pelas
  línguas do oeste da Europa e América. Este conjunto de caracteres
  também é frequentemente chamado de Latin-1 ou ISO Latin-1.

  Um padrão mais recente é o Unicode, definido pela norma ISO-10646, que
  permite definir caracteres cuja representação interna no computador
  utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as
  versões mais recentes de sistemas Unix suportam Unicode (ou pelo menos
  seus fabricantes alegam suportar).

  Além dos caracteres alfanuméricos e sinais de acentuação, é possível
  também gerar sinais semigráficos para desenho de linhas e bordas.
  Esses sinais podem aproveitar códigos não utilizados pelo conjunto
  oficial, tornando-os não portáveis.

  O Linux foi desenhado internamente de modo a facilitar a sua fácil
  configuração e extensão em tempo de execução, não constituindo o
  tratamento do teclado e fontes de caracteres excepção. Ele possui uma
  implementação ``nível 1'' do padrão Unicode. Maiores detalhes podem
  ser encontrados nos manuais do Linux, que podem ser lido com os
  comandos

      man unicode
      man utf-8
      man iso_8859_1
      man ascii


  mas antes disso certifique-se de que o man está configurado correta­
  mente, conforme mostrado na seção ``Man, groff, troff''.


  2.2.  Modo texto versus Sistema de Janelas X

  Alguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT,
  possuem interfaces gráficas próprias. No Linux, assim como na maioria
  dos sistemas compatíveis com Unix, é de uso corrente um ambiente
  gráfico criado para ser ``multiplataforma'': o X Window System, que
  também foi projetado para suportar diversos conjuntos de caracteres,
  idiomas e formatos de teclado, mas ainda não suporta totalmente o
  padrão Unicode e sim uma extensão do ISO-8859.


       A rigor o X Window System não é uma interface gráfica com o
       usuário, mas a combinação de um protocolo de comunicação com
       uma interface com programas aplicativos (API) sobre a qual
       se construíram várias interfaces gráficas.  Tanto o proto­
       colo quanto o Sistema de Janelas definem um conjunto de
       mecanismos e não políticas (elementos característicos da
       política de uma Interface Gráfica com o Usuário são menus,
       botões e caixas de diálogo).  O uso do termo ``XWindows'' é
       incorreto e deve ser evitado, dando-se preferência ao nome
       genérico ``X''.


  Existem muitas semelhanças entre os dois ambientes.  Ambos se baseiam
  em padrões internacionais para definição de conjuntos de caracteres.
  Tanto no X quanto no console do Linux pode-se definir uma tecla
  chamada Compose cujo pressionamento seguido de duas outras gerará o
  caracter correspondente.  Assim sendo, o pressionamento da seqüência
  compose-,-c gerará um c cedilhado.

  O tratamento do console é feito diretamente pelo sistema operativo e
  aplicações comuns não se envolvem com o processamento dos códigos de
  varredura do teclado, recebendo um caracter ou uma seqüência deles ao
  ser pressionada cada tecla, de tal sorte que tendo sido corretamente
  configurados o teclado e a fonte de caracteres pouco mais se tem a
  fazer.

  O X possui uma arquitetura muito diferente: tanto o teclado quanto
  a(s) tela(s) -- pode haver mais de uma tela -- são controlados por uma
  aplicação especial chamada servidor X. O pressionamento de uma tecla
  gera uma mensagem (chamada de evento) que é passada pelo servidor X à
  aplicação cliente. Há um programa muito útil chamado xev que permite
  observar cada evento a ele transmitido. Cliente e servidor se
  comunicam via rede usando um conjunto de regras chamado protocolo X e
  podem rodar em máquinas diferentes. A máquina onde roda o servidor é
  chamada estação de trabalho ou terminal X e a máquina onde roda a
  aplicação (programa cliente) também é chamada de cliente.

  Foge ao escopo deste texto a discussão mais profunda do tratamento de
  eventos no X. Para maiores informações, sugere-se a consulta aos
  documentos mencionados na seção ``Leituras recomendadas'', mas é
  importante esclarecer que o evento enviado pelo servidor ao cliente
  não contém o código numérico da tecla, chamado keycode na terminologia
  do X.  Ao invés disso, é enviado um símbolo, chamado keysymbol ou
  keysym, obtido pela consulta a uma tabela de conversão mantida na
  memória do servidor.  Esta tabela pode ser modificada total ou
  parcialmente a qualquer momento por meio de requisições definidas no
  protocolo X.

  Existe um programa chamado xmodmap capaz de ler um arquivo contendo
  uma tabela de conversão keycode-->keysym e enviá-la, também na forma
  de mensagens no protocolo X, ao servidor. É responsabilidade do
  cliente e não do servidor interpretar o keysym, o que significa que a
  aplicação deve saber esperar mais um caracter ao receber uma ``tecla
  morta'' para compor uma letra acentuada.

  Desde a revisão 5 do X existe na bibliotaca de funções (Xlib) um
  mecanismo sofisticado de suporte à geração de caracteres em diversos
  códigos.  A função de tratamento de entrada de texto que já existia
  nas versões anteriores, chamada XLookupString, entretanto,  não
  processa as seqüências de acentos e letras de modo transparente às
  aplicações. Ao invés disso foi incluído um método de composição usando
  contextos de entrada (input contexts) por meio das funções
  XmbLookupString e XwcLookupString, cujo uso é responsabilidade da
  aplicação -- ou do seu programador, melhor dizendo -- mesmo no caso da
  tecla Compose.  Isto deve-se so fato de o X Consortium ter chegado à
  conclusão de que o sistema de mapeamento de teclas não tratava de
  forma satisfatória toda a imensa variedade de línguas escritas nas
  várias partes do mundo. Deste modo, decidiu-se que o ``peso'' relativo
  à gestão do teclado fosse transferido para as aplicações X, o que cria
  uma dificuldade quando usamos aquelas mais antigas, que não usam o
  novo método de tratar a entrada.

  Por essas razões é normalmente mais difícil conseguir acrescentar
  suporte à geração de caracteres acentuados em aplicativos que rodam
  sob o X, principalmente quando não se possui o código fonte.
  Aplicativos feitos para rodar apenas em modo texto, tais como vi e
  minicom dependerão totalmente dos recursos do emulador de terminal em
  uso quando rodando em uma janela do X. Se for usada uma versão atual
  do xterm ou rxvt o emulador fará o tratamento correto dos acentos.

  O francês Thomas Quinot, cansado de esperar uma solução melhor para o
  problema da acentuação no X, resolveu implementar uma modificação para
  a Xlib proposta por André D. Balsa, que adiciona suporte à acentuação
  direta conforme mostrado na seção ``Contornando os limites do X''.
  Isso permite usar aplicações como xfig ou xedit sem que seja
  necessário alterá-las. O truque parece funcionar apenas para
  caracteres do código ISO-8859-1 mas é suficiente para o Português e
  outras línguas. Como bem observa Balsa, a longo prazo todos os
  programas deverão ser modificados para usar os novos recursos do X,
  mas como a longo prazo estaremos todos mortos a solução de curto prazo
  de Quinot torna-se bastante atraente...


  3.  Configuração do console (modo texto)

  O documento de referência sobre a configuração do console do Linux é o
  Keyboard and Console HOWTO, de Andries Brouwer, que pode ser
  encontrado nos repositórios do LDP. Conforme lá descrito, a
  configuração da fonte de caracteres e mapa de teclado é feita usando o
  pacote KBD, encontrado em todas as distribuições de Linux.


  3.1.  Mapas de teclado

  Cada tecla do PC possui um código numérico. Ao pressionarmos uma delas
  o processador controlador do teclado envia ao computador esse código
  de varredura, também conhecido como scancode, junto com um sinal de
  que a tecla foi pressionada ou solta. As seqüências de eventos são
  então processadas pelo driver de teclado e armazenadas em uma fila de
  caracteres que é lida pelas aplicações por meio da chamada de funções
  do sistema operativo.

  Um mapa de teclado é um arquivo de texto que estabelace as
  correspondências entre o scancode de tecla e o caracter (ou seqüência
  de caracteres) a gerar quando ela for pressionada, chamado keycode.
  Por exemplo:

      # atribuição da tecla '-' do teclado numérico à tecla com código 74
      keycode  74 = KP_Subtract

      # atribuição da tecla '4' do teclado numérico à tecla com código 75
      keycode  75 = KP_4

      # etc...

      keycode  76 = KP_5            # tecla 5
      keycode  77 = KP_6            # tecla 6
      keycode  78 = KP_Add          # soma
      keycode  79 = KP_1            # tecla 1
      keycode  80 = KP_2            # tecla 2



  Além das teclas alfabéticas, numéricas e de símbolos, existem outras
  chamadas modificadoras que permitem gerar códigos que não correspondem
  a nenhum sinal gráfico: Shift Control Alt e Meta. Esta última
  normalmente não é encontrada em teclados de PCs, apenas em estações de
  trabalho de fabricantes como Sun, SGI, HP e Digital (eles não gostam
  de ser chamados de ``DEC''). O editor de texto Emacs usa muito a tecla
  Meta.

  O arquivo de mapa permite também especificar teclas especiais chamadas
  ``teclas mortas'' (deadkeys). Quando pressionadas elas não resultam no
  aparecimento de um caracter na tela, limitando-se a alterar o
  comportamento da tecla pressionada a seguir para que, por exemplo, ao
  se digitar um ~ seguida de um a, seja gerado um `ã'.


  3.2.  Mapas de tradução de tela

  Um mapa de tradução de tela permite especificar qual o caracter X a
  ser exibido na tela, quando um programa deseja exibir um caracter Y.
  Desta forma, poderíamos fazer com que ao escrever o caracter com o
  código do c-cedilhado na tela, fosse na realidade exibido um outro
  caracter de código diferente mas cuja imagem na nossa fonte de
  caracteres correspondesse à imagem de um c-cedilhado.

  Este mapeamento é necessário apenas quando queremos usar uma fonte
  cujos caracteres não possuem códigos diretamente correspondentes aos
  do conjunto usado no mapa de teclado.



  3.3.  Comandos do pacote KBD


     Loadkeys
        Permite carregar um mapa de teclado. Por exemplo, o comando a
        seguir carrega o mapa armazenado no arquivo portugal.map.

            loadkeys /usr/lib/kbd/keytables/portugal.map



     Setfont
        Permite o carregamento de uma fonte de caracteres de tela,
        possibilitando a alteração das fontes utilizadas em modo de
        texto. O comando a seguir, por exemplo, irá carregar uma fonte
        com o conjunto Latin-1:

            setfont lat1u-16.psf



     Showfont
        mostra todos os caracteres existentes na fonte que está
        atualmente em uso no console. O X também tem um comanto chamado
        showfont, que serve para mostrar as características de uma
        determinada fonte, mas não os caracteres em si. Para esta última
        finalidade se usa o comando xfd. Se o programa showfont do
        pacote KBD for invocado em um emulador de terminal X, como
        xterm, ele gerará um erro ``GIO_SCRNMAP: Invalid argument'', mas
        não provocará nenhum dano.

     Mapscr
        Permite carregar um mapa de tradução de tela. Suponhamos que
        exista o arquivo /etc/portugal.trad. Se executarmos o comando

            mapscrn /etc/portugal.trad


     então a partir deste momento as traduções lá definidas serão
     usadas.

     Loadunimap
        Carrega um mapa de tradução de Unicode para a fonte de tela. O
        mapa padrão, chamado ``def.uni'' considera que estamos usando a
        fonte normal do IBM-PC.  Este comando não é necessário quando
        usamos uma fonte com caracteres definidos no padrão Unicode,
        pois o programa setfont carrega automaticamente a tabela de
        mapeamento adequada. O comando a seguir carregará o mapa de
        tradução para as fontes latin-1:

            loadunimap lat1



  3.4.  Carregamento de uma fonte de caracteres

  O pacote KBD contém dois tipos de fontes com codificação latin-1:

  ·  as que já possuem uma tabela de mapeamento unicode, carregada
     automaticamente pelo programa setfont. Estas fontes têm nomes
     lat1u-*.psf;

  ·  as que não possuem tabela de mapeamento. Neste caso é preciso
     carregar uma com o programa loadunimap. Estas têm nomes lat1-*.psf
     (o ``u'' indica Unicode).

  Nas versões mais novas do KBD os arquivos são comprimidos com gzip.  É
  preciso carregar uma fonte que tenha os caractres latinos acentuados
  no padrão ISO 8859-1 e também os símbolos semigráficos. As fontes de
  nome iso01.* não possuem esses símbolos. A fonte mais recomendada é a
  lat1u-16.psf.

  As versões mais antigas do pacote KBD mantinham essas fontes no
  diretório /usr/lib/kbd/consolefonts, que foi trocado depois da versão
  0.92 por /usr/share/consolefonts. Dependendo da sua distribuição e do
  quanto ela esteja atualizada o diretório poderá ser um ou outro.


  3.4.1.  Slackware

  Foi criado o script /etc/rc.d/rc.font, contendo o seguinte:


      #!/bin/sh
      #
      # /etc/rc.d/rc.font
      #
      # Seleciona uma das fontes de caracteres disponiveis em
      # /usr/lib/kbd/consolefonts.
      #
      setfont lat1u-16.psf

      # O comando a seguir é totalmente desnecessário
      # com a fonte lat1u-16.psf.
      # loadunimap lat1u

      # Remova o comentário da linha abaixo se estiver usando uma fonte sem
      # tabela de mapeamento de Unicode para tela:
      # loadunimap lat1



  3.4.2.  Debian

  Edite o arquivo /etc/kbd/config e coloque uma linha contendo

      CONSOLE_FONT=lat1u-16.psf


  esse arquivo é processado pelo script /etc/rc.boot/kbd. Execute-o para
  ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre:
  Linux não é Windows!


  3.4.3.  Red Hat

  Edite o arquivo /etc/sysconfig/i18n e veja se contém o seguinte:

      LANG=pt_BR
      LINGUAS=pt_BR
      LC_CTYPE=ISO-8859-1
      LC_ALL=pt_BR
      SYSFONT=lat1u-16
      SYSTERM=linux-lat



  3.4.4.  Conectiva Red Hat Linux

  Se você selecionar a língua correta durante a instalação não há nada
  mais a fazer. A configuração é feita extatamente como do Red Hat.


  3.4.5.  S.u.S.E.

  Edite o arquivo /etc/rc.config e procure uma linha que começa com
  ``FONT='' (linha 64, em minha máquina com S.u.S.E. verão 5.6) e
  coloque

      FONT=lat1u-16.psf



  Edite os scripts boot.setup e single contidos no diretório /etc/rc.d.
  Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou
  ponha no seu início um ``#'' para deixá-la como comentário. Veja
  comentários sobre este comando na seção ``Carregamento de uma fonte de
  caracteres''.


  3.4.6.  Testando a fonte

  Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o
  comando showfont para mostrar a fonte em uso.


  3.5.  Carregando um mapa de teclado

  A seguir é necessário carregar o mapa de teclado adequado. Até a
  versão 0.92 do pacote KBD esses mapas ficavam no diretório
  /usr/lib/kbd/keytables passando mais tarde para /usr/share/keytables.
  Dependendo da distribuição você terá um diretório ou outro. Os mapas
  para diversos tipos de teclados são apresentados mais adiante.


  3.5.1.  Slackware.

  Foi criado o script /etc/rc.d/rc.keyboard, contendo o seguinte:

      #!/bin/sh
      #
      # /etc/rc.d/rc.keyboard
      #
      # Seleciona um dos mapas de teclado disponíveis no diretório
      # /usr/lib/kbd/keytables
      #
      loadkeys abnt2


  e acrescentei as seguintes linhas ao /etc/rc.d/rc.S, imediatamente
  antes do tratamento do /etc/rc.d/rc.keyboard:

      # Carrega uma fonte de caracteres se existe um script rc.font.
      if [ -x /etc/rc.d/rc.font ]; then
        /etc/rc.d/rc.font start
      fi

      # Carrega um mapa de teclado se existe um script rc.keyboard.
      if [ -x /etc/rc.d/rc.keyboard ]; then
        /etc/rc.d/rc.keyboard start
      fi


  3.5.2.  Debian.

  Certifique-se de ter instalado o pacote kbd e depois faça o seguinte:

  ·  copie os arquivos com os mapas de teclado fornecidos (veja a seção
     ``Ficheiros necessários'') para o diretório /usr/share/keytables/.
     Não é necessário descomprimi-los;

  ·  copie o mapa correspondente ao seu teclado para o arquivo
     /etc/kbd/default.map.gz.

  ·  rode o script /etc/init.d/keymaps.sh.


  3.5.3.  Red Hat.

  Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os
  mapas de teclado fornecidos (veja a seção ``Ficheiros necessários'')
  para o diretório /usr/lib/kbd/keytables/ (ou
  /usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2). Não é
  necessário descomprimi-los.

  Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a
  usar na variável KEYTABLE, como por exemplo

      KEYTABLE="abnt2"



  3.5.4.  Conectiva Red Hat Linux.

  O CRHL já vem com os mapas de teclado para Português. Se você
  selecionou o teclado correto durante a instalação, não há mais nada a
  fazer. Caso contrário, edite o arquivo /etc/sysconfig/keyboard e
  coloque

      KEYTABLE="nome"


  Onde ``nome'' é br-abnt2, pt ou us-acentos caso o desenho do seu
  teclado seja ABNT-2, português ou americano.



  3.5.5.  S.u.S.E..

  Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os
  mapas de teclado fornecidos (veja a seção ``Ficheiros necessários'')
  para o diretório /usr/lib/kbd/keytables/. Não é necessário
  descomprimi-los.

  Descomprima o mapa de teclado adequado, copiando para o arquivo
  /etc/default.keytab, usando por exemplo um comando como

      zcat /usr/lib/kbd/keytables/pt.map.gz > /etc/default.keytab



  3.5.6.  Testando o teclado

  Experimente pressionar a tecla c-cedilhado (se o teclado não tem esta
  tecla, digite 'c). Verifique se todas as letras acentuadas, maiúsculas
  e minúsculas são geradas corretamente e aparecem na tela. Se aparecer
  algum caracter estranho verifique se carregou o mapa de teclado e a
  fonte de caracteres corretos, pois provavelmente uma dessas operações
  foi mal sucedida.

  Se ao invés de c-cedilha minúsculo aparecer um maiúsculo é provável
  que uma tabela de mapeamento Unicode incorreta esteja a ser carregada.
  Este problema ocorrerá na distribuição S.u.S.E. se não se fizerem as
  alterações nos scripts do sistema mencionadas anteriormente.

  3.6.  Verificando erros

  Mas, e se alguns dos caracteres continuarem a não aparecer? Bem, antes
  de mais nada verifique se a fonte e o mapa de teclado adequados foram
  carregados. Um caso especial é quando queremos usar uma fonte que não
  segue a codificação ISO Latin-1 (é o caso da fonte padrão do console
  do PC). Teríamos então de convencer a tela a mostrar os caracteres
  certos em cada caso.

  Poderíamos recorrer ao comando mapscrn.  O arquivo com a tabela de
  tradução teria no entanto de ser criado por nós, seguindo um processo
  moroso de tentativa e erro até encontrar o caracter cuja imagem
  desejávamos. Ou, de uma forma mais fácil, poderíamos usar o comando
  showfont.

  Se usarmos a fonte de caracteres correta, o uso deste último comando
  será desnecessário. É até recomendável que não se use tal recurso,
  pois embora ele permita criar uma tabela de caracteres
  ``personalizada'' em um computador, será difícil que um documento
  acentuado produzido nessa máquina possa ser lido em outra que não
  tenha a mesma configuração.


  4.  Biblioteca de funções libc e aplicativos GNU

  A biblioteca padrão de funções do Linux suporta Internacionalização e
  Localização segundo o padrão POSIX (Portable Operating System
  Interface).  Trata-se de uma norma estabelecida pelo IEEE (Institute
  of Electrical and Electronics Engineers) para intercomunicação entre
  diferentes sistemas operativos. Existe também um padrão estabelecido
  pelo ANSI (American National Standards Institute) para a linguagem de
  programação C que permite escrever programas com suporte
  internacional.


  4.1.  Configurando o suporte internacional

  Resumidamente, podemos dizer que as funções que tratam informações
  dependentes da língua ou do país podem ter seu comportamento
  modificado, bastando para tanto estabelecer algumas variáveis de
  ambiente. E que funções são essas?  Podemos citar as de formatação de
  datas, valores monetários e mensagens de erro do sistema. Se você não
  sabe o que é uma variável de ambiente, sugiro que leia o manual com o
  comando

      man environ



  O padrão POSIX permite usar diversas variáveis de configuração, cada
  uma delas definindo o tratamento dado a um tipo de informação, a saber

     LC_COLLATE
        Define regras para comparação entre caracteres no alfabeto
        local. Por exemplo, a letra `ã' deve ser tratada como idêntica
        ao `a' no Português quando ordenamos alfabeticamente.


     LC_CTYPE
        Define regras para comparação entre caracteres maiúsculos e
        minúsculos. Se estivermos trabalhando com o código ASCII,
        sabemos que o código numérico de uma letra minúscula é 32 a mais
        do que a maiúscula correspondente, mas para uma letra acentuada
        esta regra não é válida!


     LC_MONETARY
        Muda o comportamento das funções de formatação de valores
        monetários e permite descobrir, por exemplo, o símbolo da moeda
        local, ou se usa ponto ou vírgula como separador de milhares e
        de casas decimais.


     LC_MESSAGES
        Estabelece a língua em que as mensagens serão apresentadas e
        como é uma resposta afirmativa ou negativa (S/N).


     LC_NUMERIC
        Estabelece o comportamento das funções de leitura/escrita de
        valores numéricos permitindo, por exemplo que usemos a vírgula
        decimal.


     LC_TIME
        Define a formatação de datas e horas.


     LC_ALL
        Define de uma só vez todas as categorias. Se usarmos LC_ALL, não
        precisaremos definir nenhuma das outras, a não ser que queiramos
        um comportamento diferente para aquele ítem específico.


     LANG
        Define de uma só vez todas as categorias, se LC_ALL não estiver
        definida.  Também é usada pelo comando man para compor os
        caminhos pelos quais ele procurará as páginas do manual. Veja as
        observações a respeito desta variável nas seções ``Locale'',
        ``Locale'' e ``Locale''.

  Maiores informações podem ser obtidas no manual do sistema com o
  comando

      man 7 locale


  O `7' no comando anterior é necessário para evitar confusão com uma
  função homônima da linguagem Perl. Note que as configurações acima
  afetam, em princípio, apenas as funções disponíveis na biblioteca de
  funções da linguagem C. Na prática, todos os programas que rodam em
  Linux usam aquela biblioteca, mas o sistema operativo não provê,
  catálogos de mensagens em diversas línguas para todos os programas.

  A identificação da língua e do local é feita por dois códigos de duas
  letras, separados por um sinal ``_''. Se omitirmos o código de país,
  assume-se o país padrão para a língua informada, mas deve haver um
  catálogo correspondente.  Deste modo, o código ``pt_PT'' significa
  Português de Portugal, enquanto ``pt_BR'' significa Português do
  Brasil. Escolher uma combinação língua/local basta então colocar em
  seu arquivo /etc/profile uma linha contendo



      LC_ALL="pt_PT"
      export LC_ALL


  Usuários brasileiros devem usar ``pt_BR'' ao invés de ``pt_PT''. Teste
  o resultado com os comandos a seguir (/inexistente é o nome de um
  arquivo que não existe):

      echo ÁÉÍÓÚ | tr '[:upper:]' '[:lower:]'
      tar tf /inexistente
      ls -l /
      date
      cal 1 1999


  O resultado do primeiro deverá ser ``áéíóú''. Os comandos tar e ls
  devem retornar mensagens em Português e cal deve mostrar um calendário
  de janeiro de 1999, com do se te qu qu se sá no cabeçalho dos dias da
  semana.

  Na distribuição Debian, certifique-se de ter instalado o pacote
  ``locales'', que pertence ao grupo ``admin''. O nome do arquivo que
  contém o pacote (na versão 2.0 da distribuição) é locales_2.0.7t-1.deb
  e em meu CD está no diretório debian/main/binary-i386/admin.

  4.2.  Problemas com a libc 5

  Até meados de 1997 todas as distribuições de Linux usavam a mesma
  biblioteca libc, que estava na versão 5, desenvolvida a partir de uma
  versão mais antiga da libc do projeto GNU. Esta biblioteca possuia
  suporte muito limitado à internacionalização e normalmente nenhum dos
  catálogos de locais era incluído na distribuição, ficando o inglês
  como língua padrão.

  A versão 6 da libc do Linux baseia-se na versão 2 da libc do projeto
  GNU. O suporte à internacionalização foi muito melhorado, além de
  incluir outros atributos que não interessam para os fins deste HOWTO.
  Se sua distribuição for a Debian versão 2, Red Hat versão 5 ou
  qualquer outra que use a nova libc, então não há mais nada a fazer
  além do descrito na seção anterior.

  Mas se você usa uma distribuição ainda baseada na libc 5 (Slackware,
  Caldera 1.x ou uma versão mais antiga de Debian ou Red Hat) é preciso
  instalar a coleção de locais. Não tente copiar a coleção de uma
  distribuição mais recente, pois os formatos dos arquivos são
  incompatíveis. Pegue na página do Portuguese HOWTO o arquivo locales-
  pt.tgz. Para instalá-lo na distribuição Slackware, basta (como usuário
  root) usar o comando

      installpkg locales-pt.tgz


  e para outras distribuições use o comando

      tar xzf locales-pt.tgz -C /



  Verifique se há dois subdiretórios do /usr/share/locale chamados pt_BR
  e pt_PT. Basta então configurar a variável de ambiente LC_ALL, como já
  descrito.



  5.  Configuração do X

  Quando o servidor X está ativo, ele coloca o teclado do computador em
  um modo de operação chamado raw (cru), em oposição ao modo normal,
  chamado cooked (isto mesmo: cozido). No modo raw o sistema operativo
  não processa seqüências acento-letra. O servidor X é uma daquelas
  raras aplicações que, por dever de ofício, tem que tratar o teclado
  ``em baixo nível''.

  O X vem equipado com um utilitário destinado à configuração do
  teclado, chamado xmodmap, que cumpre uma função correspondente à do
  comando loadkeys, ou seja, lê um arquivo de mapa de teclado do X,
  expecificando as equivalências entre os keycodes e respectivos
  keysymbols.

  Eis um excerto deste arquivo:

      keycode 47 = ccedilla Ccedilla dead_acute dead_doubleacute
      keycode 48 = masculine ordfeminine dead_circumflex dead_caron
      keycode 49 = backslash bar notsign
      keycode 50 = Shift_L
      keycode 51 = dead_tilde dead_circumflex dead_grave dead_breve


  Observem que, ao contrário do loadkeys, o xmodmap não possui um
  diretório padrão onde o arquivo é procurado.

  A configuração do X não interfere de forma alguma com a configuração
  do modo de texto.  De facto, é possível ter o seu X bem configurado, e
  no entanto não ter realizado qualquer tipo de configuração ao modo de
  texto, e vice-versa.  Outro ponto importante de se observar é que os
  códigos numéricos das teclas no X não correspondem aos do console. A
  tecla Backspace, por exemplo, tem o número 14 no console, e 22 no X
  (em um computador do tipo IBM-PC).

  As versões 3.2 e posteriores do XFree86 permitam definir dead-keys,
  mas o seu tratamento é responsabilidade da aplicação, conforme visto
  na seção ``Modo texto versus Sistema de Janelas X''. Há modos de
  contornar esta limitação e tornar o tratamento de dead-keys
  transparente às aplicações, conforme mostrado na seção ``Contornando
  os limites do X''.

  Dividimos a configuração em duas partes: Uma que deve ser feita antes
  do login do usuário e outra depois.


  5.1.  Configuração do xinit

  Junto com este documento são fornecidos vários mapas de teclado para
  uso no X. Para automatizar o processo de configuração do teclado basta
  copiar o arquivo adequado para o diretório /usr/X11R6/lib/X11/xinit,
  onde normalmente ficam os arquivos de início da seção de trabalho no
  X. Na distribuição Slackware esse diretório é um link simbólico para
  /var/X11R6/lib/xinit e na Debian e na Red Hat para /etc/X11/xinit.

  Nas distribuições Slackware e Red Hat, verifique se no referido
  diretório existe um arquivo chamado .Xmodmap. Se existir, copie o
  Xmodmap.<alguma-coisa>  para ele, ou faça um link.  Normalmente o
  arquivo de configuração xinitrc possui os comandos para carregá-lo
  automaticamente. Veja o seguinte trecho:



      #!/bin/sh
      # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

      userresources=$HOME/.Xresources
      usermodmap=$HOME/.Xmodmap
      sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
      sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

      # merge in defaults and keymaps

      if [ -f $sysresources ]; then
          xrdb -merge $sysresources
      fi

      if [ -f $sysmodmap ]; then
          xmodmap $sysmodmap
      fi



  Na distribuição Debian o mapa de teclado padrão do X é
  /etc/X11/Xmodmap, basta copiar o mapa desejado para aquele arquivo.
  Ele será carregado pelo xinitrc, que por sua vez é um link simbólico
  para /etc/X11/Xsession, sempre que iniciar a seção de trabalho do
  usuário.


  5.2.  Configuração do XDM

  Existe ainda um pequeno problema: no meu computador, por exemplo, o
  sistema carrega diretamente o X ao dar boot e o login é feito pelo X
  Display Manager (xdm). Como o xdm faz o login antes de iniciar a seção
  de trabalho, o mapa de teclado não será carregado, o que pode criar
  problemas se o usuário usa caracteres como ``['' ou ``]'' em sua
  senha, pois nos teclados ABNT-2 e português esses símbolos são gerados
  por teclas cujos códigos numéricos não são os mesmos do teclado
  americano.

  É preciso fazer uma pequena alteração no arquivo de configuração
  Xsetup_0.  Esse arquivo deve estar no diretório
  /usr/X11R6/lib/X11/xdm, que na Slackware é um link simbólico para
  /var/X11R6/lib/xdm e /etc/X11/xdm na Debian e -- sujeito a confirmação
  -- RedHat. Eis o conteúdo completo desse arquivo:

      #!/bin/sh
      #
      # /usr/X11R6/lib/X11/xdm/Xsetup_0
      #

      sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
      sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

      # merge in defaults and keymaps

      if [ -r $sysresources ]; then
          xrdb -merge $sysresources
      fi

      if [ -r $sysmodmap ]; then
          xmodmap $sysmodmap
      fi

      xconsole -geometry 480x130-0-0 -daemon -notify -verbose -exitOnFail



  A distribuição Debian tem um Xsetup_0 um pouco diferente, em
  /etc/X11/xdm/Xsetup_0, mas basta acrescentar-lhe o seguinte:


      sysmodmap=/etc/X11/Xmodmap
      sysresources=/etc/X11/Xresources

      if [ -f $sysresources ]; then
        xrdb -merge $sysresources
      fi

      if [ -f $sysmodmap ]; then
        xmodmap $sysmodmap
      fi



  Se no seu computador o login do usuário também for feito sempre via
  xdm, não é necessário mexer no xinitrc, como mostrado na seção
  anterior, já que o mapa de teclado será carregado antes do início na
  seção do usuário.


  5.3.  Compose

  Uma das coisas mais importantes a definir quando vamos utilizar
  acentuação por meio de dead-keys é o conjunto de regras de composição.
  Essas regras determinam, por exemplo que a composição do caracter
  ' com a letra e gerará um é.

  Ao contrário do console, no qual podemos definir as regras de
  composição no próprio mapa de teclado, no X essas regras são colocadas
  no arquivo /usr/X11R6/lib/X11/locale/???/Compose, onde ??? é a
  codificação em uso (no nosso caso, iso8859-1).

  Para facilitar o uso dos mapas para teclados que não têm o c-
  cedilhado, como o US+ (veja adiante) é conveniente definirmos uma nova
  regra de composição, permitindo que o Ç seja gerado pela seqüência 'C.
  Se não fizermos isso, seremos obrigados a digitar <dead_cedilla-C>,
  sedo o dead_cedilla produzido pela combinação AltGR-=, o que não é
  nada confortável. Além disso, no teclado americano somos obrigados a
  usar as aspas duplas para gerar o trema.

  O arquivo Compose fornecido foi feito procurando imitar ao máximo o
  comportamento do console e possui as seguintes facilidades para
  geração de caracteres:

  ·  C-cedilha: tecla Ç ou seqüência <acento-agudo>-C

  ·  Apóstrofo: tecla ' ou seqüências <acento-agudo>-<acento-agudo> e
     <acento-agudo>-<espaço>

  ·  Acento grave: seqüências <acento-grave>-<acento-grave> e <acento-
     grave>-<espaço>

  ·  Aspas: tecla " ou seqüência <trema>-<trema>

  ·  Trema: seqüência <trema>-<espaço>

  ·  Til: seqüências <til>-<espaço> e <til>-<til>

  ·  Circumflexo: seqüências <circumflexo>-<espaço> e
     <circumflexo>-<circumflexo>

  Para incluirmos as novas regras, basta aplicar uma alteração à
  definição original. O arquivo Compose.patch pode ser obtido via WWW na
  página do Portuguese HOWTO. Para aplicar a atualização, copie-o para o
  diretório /usr/X11R6/lib/X11/locale/iso8859-1/, faça uma cópia de
  reserva do Compose original e invoque o utilitário patch:

      cp -p Compose Compose.backup
      patch < Compose.patch



  Caso você prefira não aplicar o ``patch'', um arquivo Compose pronto
  também é fornecido. Lembre-se de fazer cópia do original antes de
  substituí-lo!

  5.4.  Locale

  Para os usuários brasileiros, pode haver mais uma alteração a fazer no
  X.  Conforme vimos na seção ``Biblioteca libc'', uma variável de
  ambiente (LANG ou LC_ALL) configura o suporte internacional existente
  na biblioteca de funções padrão do sistema (libc). A biblioteca de
  funções do X (Xlib) usa a variável LANG para identificar a língua em
  uso mas até a revisão 6.3, na qual é baseado o XFree86, não era
  incluída a combinação ``pt_BR'', correspondente a Português/Brasil.
  Como resultado, cada vez que executarmos um aplicativo X com LC_ALL
  definido como ``pt_BR'' ele emitirá a mensagem ``Warning: locale not
  supported by Xlib, locale set to C''.

  Para incluir o local pt_BR no X11R6.3 basta alterar três arquivos
  existentes no diretório /usr/X11R6/lib/X11/locale. Pegue o arquivo
  Xlocale.patch via WWW na página do Portuguese HOWTO. Para aplicar a
  atualização, copie-o para o diretório /usr/X11R6/lib/X11/locale, faça
  uma cópia de reserva dos arquivos a serem alterados e invoque o
  utilitário patch:

      cp -p compose.dir compose.dir.backup
      cp -p locale.alias locale.alias.backup
      cp -p locale.dir locale.dir.backup
      patch < Xlocale.patch



  Caso você prefira não aplicar o ``patch'', arquivos prontos também são
  fornecidos. Lembre-se de fazer cópias dos originais antes de
  substituí-los!

  Em setembro de 1998 o fix-2 da revisão 6.4 do X Window System incluiu
  oficialmente o suporte ao local pt_BR. Infelizmente neste mesmo fix-2
  foi introduzida uma falha em uma das funções de tratamento de input
  contexts da Xlib que provoca violações de acesso à memória. Uma das
  aplicações afetadas é o processador de textos LyX. Uma correção
  provavelmente será incluída no fix-4. O X11R6.4 deverá ser a base para
  a versão 4 do XFree86.


  5.5.  Geração de mapas com o XKeyCaps

  O programa XKeyCaps, criado por Jamie Zawinski é uma interface gráfica
  para o xmodmap, que mostra na tela o desenho de um teclado e permite
  modificar interativamente os símbolos gerados por cada tecla e gerar
  automaticamente o arquivo .Xmodmap correspondente.

  Ele pode ser obtido via WWW em  <http://www.jwz.org/xkeycaps/> e, a
  partir da versão 2.43, já incoropra também suporte para o desenho
  brasileiro (ABNT2), uma contribuição de Andre Gerhard.



  5.6.  Contornando os limites do X

  Conforme foi explicado na seção ``Modo texto versus Sistema de Janelas
  X'', o tratamento de acentos deve ser feito pela aplicação, mas ainda
  há muitos programas que não levam isto em consideração, tais como
  Netscape Navigator/Communicator e Nedit. Como não é possível modificar
  muitos deles, é preciso encontrar outro tipo de solução.


  5.6.1.  Alteração da biblioteca Xlib

  Linux, assim como a maioria dos sistemas operacionais modernos, usa um
  sistema de vínculo de programas a bibliotecas de funções chamado
  ``ligação dinâmica'' (dynamic binding). Deste modo, podemos modificar
  o comportamento de um programa alterando uma dessas bibliotecas.
  Maiores informações sobre este tema pode ser obtida nos manuais do
  Linux com os comandos

      man ld.so
      man ldconfig
      man ldd
      man dlopen


  Thomas Quinot criou uma alteração para a biblioteca de funções do X
  (Xlib) introduzindo o tratamento de acentos na função XLookupString,
  Tudo que se tem a fazer é substituir o arquivo contendo esta bib­
  lioteca por outro, que pode ser obtido via internet no endereço


       <http://web.fdn.fr/~tquinot/dead-keys.en.html>


  Existem duas versões do arquivo, uma para sistemas onde as bibliotecas
  do X suportam o uso seguro de threads (Debian 2.x, Red Hat 5.x, etc.)
  e outra para os sistemas que não possuem tal atributo (Slackware,
  Caldera 1.x). Se você não sabe o que são threads não se preocupe com
  isso, mas saiba que eles permitem criar um programa capaz de se
  dividir em sub-processos que rodam concorrentemente em um computador.
  Para analisar sua Xlib rode o seguinte comando:


       nm --dynamic /usr/X11R6/lib/libXext.so.6|grep _Xglobal_lock


  Se aparecer ``U _Xglobal_lock'' seu sistema suporta threads e o
  arquivo a obter é libX11-XF3.3.1-TS.tar.gz. Se não aparecer, seu
  sistema não suporta threads e o arquivo a obter é
  libX11-XF3.3.1.tar.gz. Tendo obtido o arquivo, copie-o para um
  diretório temporário e extraia seu conteúdo.  Mova o arquivo
  /usr/X11R6/libX11.so.6.1 para outro diretório, para preservá-lo. Não é
  suficiente renomeá-lo! Remova-o para um diretório cujo nome não esteja
  contido no arquivo /etc/ld.so.conf. Depois, mova o novo arquivo para o
  lugar do antigo e rode o programa ldconfig (isto deve ser feito pelo
  usuário root):

      cp libX11-XF3.3.1-TS.tar.gz /tmp
      cd /tmp
      tar xzf libX11-XF3.3.1-TS.tar.gz
      mkdir /usr/X11R6/oldlib
      mv /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/oldlib
      mv libX11.so.6.1 /usr/X11R6/lib
      chown root:root /usr/X11R6/lib/libX11.so.6.1
      chmod 755 /usr/X11R6/lib/libX11.so.6.1
      /sbin/ldconfig

  É aconselhável que a operação seja realizada quando nenhuma aplicação
  X estiver rodando. A seguir, edite o arquivo de configuração do
  servidor X, chamado XF86Config. Este arquivo fica no diretório /etc
  (Slackware) ou /etc/X11 (Debian, Red Hat). Procure a seção
  ``Keyboard'' e inclua a opção ``XkbDisable'', conforme mostrado a
  seguir:

      Section "Keyboard"
         Protocol        "Standard"
         XkbDisable
      EndSection



  A opção XkbDisable inabilita a extensão XKEYBOARD do servidor X, o que
  neste caso serve para sinalizar à função XLookupString que ela deve
  tratar os acentos. Se quisermos voltar ao comportamento normal, basta
  retirar a opção do XF86Config.

  Configure o mapa de teclado do X conforme explicado nas seções
  anteriores deste documento. Para testar o resultado, rode o programa
  xedit e digite alguns caracteres acentuados.


  5.6.2.  Alteração no kernel do Linux


       Esta seção é baseada em contribuição enviada por Bruno Bar­
       beri Gnecco e na documentação do diacrd. Podem haver ainda
       alguns erros e se alguém os detectar, por favor avise-me.


  Seguindo a regra geral do mundo *nix, existe sempre mais de um modo se
  resolver o mesmo problema. Conforme vimos anteriormente, existem dois
  modos de operação do teclado, chamados raw e cooked. Estes modos de
  operação podem ser mudados com o programa kbd_mode, integrante do
  pacote kbd, o que não é recomendável fazer a não ser para restaurar o
  estado do console após um desastre com o servidor X, por exemplo. No
  modo raw o kernel não processa os diacríticos (acentos).

  Cedric Adjih criou uma alteração para o kernel que permitia tratar os
  acentos mesmo em modo raw, inicialmente voltada para o teclado de
  desenho francês.  Enéas Queiroz, André D. Balsa e Claudemir Todo Bom
  fizeram melhorias e o adaptaram para os teclados internacional,
  português e ABNT. O tratemanto de acentos é feito parte pelo kernel,
  parte por um processo que roda em retaguarda (daemon) chamado diacrd,
  conforme descrito a seguir:

  ·  Uma modificação no kernel faz que todos os dados lidos do teclado
     sejam redirecionados para um dispositivo especial do sistema
     chamado /dev/rawkbd quando o teclado estiver em modo raw.

  ·  Os dados que o kernel grava no /dev/rawkbd são lidos pelo programa
     diacrd, que processa as seqüências acento-letra e reescreve no
     /dev/rawkbd os caracteres acentuados na forma de códigos de
     varredura (scancodes) que normalmente não existem no teclado.

  ·  O kernel lê no /dev/rawkbd os códigos gravados pelo diacrd e os
     passa à aplicação, que no caso é o servidor X.

  ·  O servidor X mapeia os códigos de varredura para caracteres. Um
     mapa de teclado especial permite então gerar as letras acentuadas.

  O diacrd pode ser obtido via FTP anônimo no endereço


  <ftp://metalab.unc.edu/pub/Linux/system/keyboards>


  Há versões diferentes, de acordo com o tipo de teclado e, pelo menos
  por enquanto, não se pode reconfigurá-lo sem recompilar. Para fazer a
  instalação, de acordo com o arquivo ``README'', deve-se fazer o
  seguinte (pelo usuário root):

  ·  Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia
     seu conteúdo, o que deverá criar um diretório chamado
     diacrd-<versão>.

  ·  Edite o arquivo diacrd.c e remova os comentários desejados, de
     acordo com suas preferências. Pode-se incluir capacidade de rodar o
     programa xmodmap e ejetar o CD-ROM sob controle do pressionamento
     de uma combinação de teclas.

  ·  Aplique a modificação no kernel. Para isto, execute o comando
     ``make patch-usr-src''.

  ·  Crie o dispositivo /dev/rawkbd executando o comando
     ``make rawkbd''.

  ·  Compile o diacrd e instale-o executando os comandos ``make'' e
     ``make install''.

  ·  Compile e instale o kernel, com os comandos

         cd /usr/src/linux
         make config
         make zlilo


  Para maiores informações sobre compilação/instalação do kernel, leia o
  Kernel-HOWTO, disponível via Internet nos repositórios do LDP men­
  cionados na seção ``Onde encontrar a versão mais atual''.

  ·  Dê um ``reboot'' no computador. Verifique se o suporte ao
     dispositivo rawkbd foi instalado com sucesso com o comando

         dmesg | grep RAWKBD


  Deve aparecer

      RAWKBD interface for diacriticals translation enabled...


  e teste o dispositivo /dev/rawkbd com o comando

      printf "### TESTANDO ###" >> /dev/rawkbd


  Veja na seção ``Configuração do console'' como carregar um mapa com
  suporte à acentuação. O pacote diacrd vem com um arquivo chamada
  usintl.map, que corresponde ao nosso us+.map. Se seu teclado não for
  do tipo americano, use o pt.map ou abnt-2.map.

  ·  Substitua o arquivo /usr/X11R6/lib/X11/xkb/keycodes/xfree86 pelo
     arquivo fornecido junto com o diacrd.

  ·  Se tudo correr bem, rode o programa diacrd. Depois ative o X e use
     o xmodmap para carregar o mapa xmodmap.diacrd.

  Se a geração de acentos funcionar, é preciso tornar permanentes as
  alterações necessárias. Pode-se fazê-lo incluindo a carga do diacrd no
  arquivo /etc/rc.d/rc.local (Slackware).

       Se algum dos leitores tiver criado um script de ativação do
       diacrd para a distribuição Debian ou Red Hat, por favor
       envie-o para que seja incluído aqui.


  Mais informações sobre o diacrd podem ser encontradas no ``Dead keys
  Mini-HOWTO'' de Claudemir Todo Bom, disponível em  <http://linux.uni­
  camp.br/docs/diversos/deadkeys.html>.


  5.6.3.  Comparação entre as duas soluções

  Em termos de resultados práticos, a Xlib modificada e o diacrd são
  equivalentes. Há porém algumas diferenças entre as duas soluções que
  merecem atenção.

  Diacrd exige uma alteração no kernel do Linux para resolver um
  problema que o kernel já resolve, o que não deixa de parecer um tanto
  redundante. A dependência de um processo de usuário (o daemon kerneld)
  é uma desvantagem, pois se esse programa deixar de funcionar perde-se
  o suporte à acentuação no X. Trata-se de uma solução ainda em
  desenvolvimento e, segundo o conteúdo da documentação que o acompanha,
  o ideal seria que todo o tratamento fosse feito pelo kernel, sem
  depender de outro programa.

  Até o momento da publicação deste HOWTO, o diacrd ainda não era
  compatível com a versão 2.2 do kernel do Linux.

  A solução via Xlib é, pelo menos em teoria, totalmente transparente às
  aplicações e permite reconfiguração em tempo de execução, bastando
  alterar o mapa de teclado do X e as regras de composição. Já o diacrd
  precisa ser recompilado se quisermos trocar o tipo de teclado, mas é
  possível que novas versões incorporem algum recurso de reconfiguração.

  O diacrd só funciona no teclado do próprio computador. Se quisermos
  usar um display remoto, seja um terminal X, seja um outro computador,
  não teremos suporte à acentuação. A troca da Xlib, por outro lado,
  enquadra-se plenamente na filosofia do X de que o servidor provê
  mecanismo, deixando a cargo da aplicação a definição de políticas.
  Exemplo da vantagem deste paradigma é poder usar as técnicas descritas
  na seção ``Configuração do X'' em outros sistemas operativos e com
  terminais X.

  A solução via Xlib parece-me mais ``limpa'' e é minha predileta, mas,
  como sempre, fica a critério do usuário ou do administrador do sistema
  qual alternativa escolher. De qualquer modo, sempre é bom lembrar qua
  ambas as soluções são remendos. Considerando-se a rápida evolução que
  está a ocorrer no campo do software livre, com o desenvolvimendo de
  ambientes de trabalho como KDE, GNOME e GNUStep, podemos supor que em
  breve nenhum desses remendos será mais necessário.


  6.  Configuração dos vários programas


  6.1.  Aplicativos

  A maioria das aplicações que rodam no Unix usa algum tipo de arquivo
  de configuração que o usuário coloca em seu diretório de trabalho
  (home) e cujo nome normalmente é .alguma-coisarc. Tanto quanto
  possível, tentei evitar que isso fosse necessário, pois além de dar
  mais trabalho ao usuário (e ao administrador da rede ;-) pode
  dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o
  diretório home compartilhado entre um servidor Alpha rodando DEC UNIX
  com os PCs rodando Linux via NFS (até a maior parte do Linux está
  instalada no Alpha, os PCs só têm a partição raiz e uma área de swap).
  Os arquivos podem necessitar algum ajuste dependendo da plataforma e
  nem todos os programas possuem flexibilidade bastante para isso.

  Uma opção que muitos programas também oferecem é especificar em uma
  variável de ambiente o nome do arquivo de configuração ou o uso de
  arquivos padrão que normalmente ficam em um diretório /usr/lib/alguma-
  coisa ou /etc/alguma-coisa.


  6.1.1.  Bash (biblioteca GNU readline)

  Os programas que utilizam a biblioteca GNU readline para ler a linha
  de comando procuram por um arquivo chamado .inputrc no diretório
  ``HOME'' do usuário caso não exista uma variável de ambiente INPUTRC
  contendo o caminho para um arquivo de configuração.

  Coloque uma linha no seu arquivo /etc/profile contendo

      INPUTRC="/etc/inputrc"
      export INPUTRC


  e crie um arquivo /etc/inputrc contendo

      set meta-flag on
      set convert-meta off
      set output-meta on


  Outra alternativa é criar um arquivo .inputrc no diretório home do
  usuário com o conteúdo acima, mas é muito difícil manter atualizados
  os arquivos de todos os usuários, principalmente quando eles são
  muitos.  Um inputrc mais completo pode ser obtido via WWW na página do
  Portuguese HOWTO. Ele contém opções para vários tipos de terminal e
  permite usar as teclas de movimento de cursor para percorrer o
  histórico de comandos (setas para cima e para baixo); ir para o
  primeiro e para o último comandos do histórico (teclas PageUp e Page­
  Down); posicionar o cursor na linha (setas para a esquerda e direita)
  e posicionar o cursor no início e no fim da linha (teclas Home e End).

  Para maiores informações leia os manuais do bash e da biblioteca
  readline com os comandos

      man bash
      man readline



  6.1.2.  Emacs

  O pai de todos os editores pode ser configurado criando-se um arquivo
  chamado .emacs no diretório do usuário, contendo as seguintes linhas:

      (set-input-mode nil nil 1)
      (standard-display-european t)
      (require 'iso-syntax)



  Para tornar esta configuração global, na distribuição Slackware
  coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el.
  Na distribuição Debian o emacs executa todos os scripts contidos no
  diretório /etc/emacs/site-start.d ao ser carregado. Tudo que se tem a
  fazer é colocar esses comandos em um arquivo chamado, por exemplo,
  01portugues-emacs.el.

  Se o estimado leitor, assim como eu, não se agrada do tratamento dado
  pelo Emacs às teclas de Delete, Home e End, aproveite a oportunidade e
  acrescente ao mesmo arquivo o seguinte:

      (global-unset-key [backspace] )
      (global-set-key [backspace] 'delete-backward-char)
      (global-unset-key [delete] )
      (global-set-key [delete] 'delete-char)
      (define-key global-map [home] 'beginning-of-line)
      (define-key global-map [C-home] 'beginning-of-buffer)
      (define-key global-map [end] 'end-of-line)
      (define-key global-map [C-end] 'end-of-buffer)



  Arquivos de configuração prontos podem ser obtidos via WWW na página
  do Portuguese HOWTO. Para Slackware, há um site-start-emacs.el, que
  deve ser copiado para o diretório /usr/lib/emacs/site-lisp com o nome
  de site-start.el. Para Debian, há um 01portugues-emacs.el que deve ser
  copiado para o diretório /etc/emacs/site-start.d.

  Certifique-se de estar usando a versão 24-out-1998 ou mais recente do
  arquivo de mapa de teclado para o X, pois ela possui uma correção no
  tratamento das teclas modificadoras Alt e Meta, que são muito usadas
  pelo Emacs.


  6.1.3.  flex

  Especifique a opção -8 se o parser a gerar necessitar de ler dados de
  8 bit.


  6.1.4.  Fortune

  Fortune é aquele programa que toda vez que é invocado apresenta uma
  pequena mensagem, geralmente bem humorada. Ele é inspirado nos
  biscoitos da fortuna chineses (em inglês fortune cookies, daí o nome).
  Eis algumas mensagens típicas:

      dROGA!!oNDE ESTA O cAPSLOCK??

      Mouse não encontrado, bater no gato? (S/N)

      Que fio é ess<=V++088.../NO CARRIER

      Quem ri por último está conectado a 2400Bit/s.


  Tudo que o programa faz é escolher aleatoriamente uma mensagem em um
  repositório mantido no diretório /usr/games/fortunes (Slackware) ou
  /usr/share/games/fortunes (Debian). Neste diretório existem diversos
  arquivos com as ``fortunas'' e um arquivo índice para cada um deles,
  que possui a extensão .dat. O formato dos arquivos é muito simples:
  cada fortuna é composta de uma série de linhas de texto. As fortunas
  são separadas umas das outras por linhas contendo apenas um caracter
  %. Veja o trecho a seguir:



      O que são quatro pontos na parede? Four migas. Ugh!
      %
      Errar é humano, botar a culpa no computador é mais humano ainda.
      %
      Aí ela me disse: Ou eu ou o modem! Sinto muitas saudades dela...


  Tudo que temos a fazer é criar um arquivo com as fortunas chamado,
  digamos fortunes com o formato descrito acima. Depois basta usar o
  programa strfile para gerar o índice:

      strfile fortunes


  e um arquivo chamado fortunes.dat será criado. Claro que se quisermos
  que o fortune mostre apenas mensagens em Português, teremos que
  remover os arquivos existentes no diretório original. Sugiro simples­
  mente renomeá-lo para fortunes-en (de English) e criar outro vazio.
  Eu coletei algumas fortunas e as coloquei no arquivo fortunes-
  pt.tar.gz que pode ser obtido via WWW na página do Portuguese HOWTO.
  Não esqueça de colocar no seu /etc/profile algumas linhas contendo uma
  chamada ao fortune, por exemplo

      if [ -x /usr/games/fortune -a ! -e $HOME/.hushlogin ]; then
         echo
         /usr/games/fortune
         echo
      fi


  Uma última informação: se o nome de um arquivo termina com o sufixo -o
  o fortune só o consulta se for chamado com a opção -o. Esses arquivos
  são os que contém mensagens cujo conteúdo pode ser considerado ofen­
  sivo por algumas pessoas, tais como

      Só não mando a sogra pro inferno, com pena do Diabo.


  Claro que existem coisas muito mais ofensivas por aí, mas este é um
  Linux HOWTO e não queremos realmente ofender ninguém, certo?


  6.1.5.  Ispell

  Dicionários para o Português de Portugal podem ser obtidos via WWW na
  página do Projecto Natura em
  <http://www.di.uminho.pt/~jj/pln/pln.html>. Para o Brasil, há uma
  versão compilada pelo Ueda: <http://www.ime.usp.br/~ueda/>.


       Eu gostaria de poder colocar maiores informações, mas ainda
       não tenho conhecimento suficiente sobre o Ispell e não posso
       ensinar o que não sei. Preciso de ajuda aqui.



  6.1.6.  JDK (inclui ICQJava)


       Esta informação é baseada em uma mensagem da qual guardei o
       conteúdo mas não o remetente. Peço desculpas e espero que
       perdoe a falha. Não testei pessoalmente a informação e peço
       que me escrevam confirmando tanto a correção quanto, se
       possível, a identidade do autor.


  O JDK utiliza fontes padrão que não suportam acentos. Isto quer dizer
  que letras com acentos são ignoradas e, geralmente, confundem o resto
  do texto.  Resolver isto é extremamente fácil:

  ·  entre no diretório jdk1.1.5/lib (no meu caso, /jdk1.1.5/lib);

  ·  copie o arquivo font.properties.hu sobrescrevendo o font.properties
     atual (lembre-se de fazer backups!);

  ·  entre no jdk e divirta-se! Fazendo isto, seu ICQ e todos os
     aplicativos que usem o jdk estarão aptos a lerem acentos! (fácil,
     não?)


  6.1.7.  Joe

  Invoque o joe com a opção -asis na linha de comando ou altere os
  arquivos de configuração para ativar tal opção. Na Slackware eles
  estão no diretório /usr/lib/joe. Tudo que se tem a fazer é remover o
  espaço em branco existente no início de cada linha. Outra alternativa
  é acrescentar a seguinte linha ao arquivo /etc/profile:

      alias joe='joe -asis'



  Joe pode emular os editores Pico, emacs e WordStar. Um arquivo joerc
  está disponível via WWW na página do Portuguese HOWTO, contendo
  configurações que permitem usar as teclas Home e End para movimentar o
  cursor para o início e fim da linha.


  6.1.8.  Less

  Coloque as seguintes linhas no seu arquivo /etc/profile:

      LESS="-MM -i"
      LESSCHARSET="latin1"
      LESSKEY="/etc/lesskey"
      LESSOPEN='|lesspipe.sh "%s"'
      export LESS LESSCHARSET LESSKEY LESSOPEN


  LESSKEY informa o nome de um arquivo contendo uma tabela de seqüências
  de caracteres geradas por cada tecla e as ações a serem tomadas pelo
  less.  Para criar o arquivo /etc/lesskey, crie primeiro o arquivo
  /etc/lesskey.in contendo as seguintes linhas:



      # Termianl ANSI (console do Linux, XTerm, etc)
      \e[1~      goto-line
      \e[4~      goto-end
      \e[5~      back-screen
      \e[6~      forw-screen
      \e[7~      goto-line
      \e[8~      goto-end
      \e[A       back-line
      \e[B       forw-line
      # XTerm
      \eOH       goto-line
      \eOF       goto-end
      \e[H       goto-line
      \e[F       goto-end
      # Console Sun (testado com teclados Type 4/5)
      \e[214z    goto-line
      \e[220z    goto-end
      \e[216z    back-screen
      \e[222z    forw-screen
      # Arquivo seguinte/anterior
      :n  next-file
      :N  next-file
      :p  prev-file


  Depois ``compile-o'' usando o comando

      # lesskey -o /etc/lesskey /etc/lesskey.in


  Crie o arquivo /usr/bin/lesspipe.sh contendo

      #!/bin/sh
      # This is a preprocessor for 'less'.  It is used when this environment
      # variable is set:   LESSOPEN="|lesspipe.sh %s"

      case "$1" in
        *.rpm) rpm -qilp "$1" 2>/dev/null ;;
        *.tar) tar tvvf "$1" 2>/dev/null ;;
        *.tgz | *.tar.gz | *.taz | *.tar.Z | *.tar.z)
          tar tzvvf "$1" 2>/dev/null ;;
        *.tbz2 | *.tar.bz2)
          bzip2 -dc "$1" | tar tvvf - 2>/dev/null ;;
        *.Z) gzip -dc "$1"  2>/dev/null ;;
        *.z) gzip -dc "$1"  2>/dev/null ;;
        *.[1-9].gz | *.n.gz | *.man.gz)
          FILE=`file -Lz "$1" | cut -d ' ' -f 2`
          if [ "$FILE" = "troff" ]; then
            gzip -dc "$1" | groff -s -p -t -e -Tlatin1 -mandoc
          fi ;;
        *.gz) gzip -dc "$1"  2>/dev/null ;;
        *.zip) unzip -l "$1" 2>/dev/null ;;
        *.[1-9] | *.n | *.man)
          FILE=`file -L "$1" | cut -d ' ' -f 2`
          if [ "$FILE" = "troff" ]; then
            groff -s -p -t -e -Tlatin1 -mandoc "$1"
          fi ;;
      esac


  Não esqueça de torná-lo executável:

      chmod 755 /usr/bin/lesspipe.sh



  Na distribuição Debian já existe um script /usr/bin/lesspipe (note a
  ausência da extensão .sh). Para os curiosos a respeito da referência a
  ``*.rpm'', embora na máquina em questão se use Slackware, é possível
  ter o utilitário RPM instalado também, o que facilita tomar
  ``emprestados'' pacotes do Red Hat, Caldera e S.u.S.E.. Existe um
  RPM+Slackware Mini-HOWTO que explica como fazer isso.


  6.1.9.  ls

  Acrescente a seguinte linha ao arquivo /etc/profile :

      alias ls="ls -N"


  ou

      alias ls="ls -b"


  Se a sua distribuição de Linux usa o GNU ls (todas as que eu conheço
  usam) basta acrescentar ao arquivo /etc/profile ou .profile as
  seguintes linhas:

      # -----------------------------------------
      # Set up the color-ls environment variables
      # -----------------------------------------
      if [   "$SHELL" = "/bin/bash" -o \
             "$SHELL" = "/bin/sh" ]; then
         eval `dircolors -b`
      elif [ "$SHELL" = "/bin/zsh" ]; then
         eval `dircolors -z`
      elif [ "$SHELL" = "/bin/ash" ]; then
         eval `dircolors -s`
      elif [ "$SHELL" = "/bin/ksh" -o \
             "$SHELL" = "/bin/pdksh" ]; then
         eval `dircolors -k`
      elif [ "$SHELL" = "/bin/csh" -o \
             "$SHELL" = "/bin/tcsh" ]; then
         eval `dircolors -c`
      else
         eval `dircolors -b`
      fi


  Se o seu shell é o csh ou tcsh, acrescente a seguinte linha ao arquivo
  /etc/csh.login ou ~/.login:

      alias ls 'ls --color'



  6.1.10.  LyX

  Para aqueles que acham trabalhoso escrever documentos para o LaTeX
  usando um simples editor de texto (e realmente é) LyX é uma excelente
  opção.  Este programa cria uma interface gráfica através da qual
  editamos os documentos que serão depois formatados pelo LaTeX. O
  ambiente é quase-WYSIWYG (What You See Is What You Get - O que tu vês
  é o que tu obténs). LyX não roda apenas em Linux, mas em qualquer
  Unix. Maiores informações podem ser obtidas em


       <http://www.lyx.org>

  A partir da versão 1.0.1 do LyX já tem a interface com o usuário em
  Português, traduzida por Pedro Kröger, que também está traduzindo os
  manuais, junto com Roberto Mello. Estas traduções já fazem parte da
  distribuição oficial do LyX.

  Tendo o LyX instalado, é muito fácil criar documentos com acentuação
  em Português. Seguindo as seguintes regras:


  ·  Se o teclado foi configurado para ter dead keys usando um dos mapas
     aqui fornecidos, não é necessário fazer mais nada. Basta digitar o
     texto normalmente usando as seqüências de acentuação. A única
     exceção é o c-cedilha que não pode ser gerado usando a seqüência
     'c, pois o LyX gera um c com acento. Temos que usar a seqüência
     Compose-vírgula-c.

  ·  Se o teclado não foi configurado para ter dead keys ainda assim é
     possível acentuar no LyX. Selecione o menu Options/Keyboard. Na
     caixa de diálogo ``Key Mappings'', selecione no ítem
     Language/Primary a opção ``American''.  Com isto o LyX fará a
     composição dos caracteres acentuados usando regras semelhantes às
     das dead keys.

  ·  A vírgula será tratada como cedilha. Para obter um `Ç'digite ,C e
     para obter uma vírgula digite ,,. Cuidado! A seqüência ,<espaço>
     gerará uma cedilha isolada e não uma vírgula!

  ·  ~ ^ ' e ` serão tratados como acentos. Vale a mesma regra anterior:
     para obter apenas o acento, pressione a tecla duas vezes
     consecutivas.

  ·  : ; . / ? e - também serão tratados como acentos. ?a gerará um `å'
     e assim por diante.

  Para o LyX imprimir corretamente, é necessário que, ao criar um novo
  documento, sejam selecionados a língua e a codificação de caracteres
  adequadas. Crie um documento selecionando o menu File/New.  Depois
  selecione o menu Layout/Document. Na caixa de diálogo ``Document
  Layout'' selecione no ítem Language a opção ``brazil'' ou ``portuges''
  (sem o u mesmo); no ítem Encoding selecione ``latin1''.

  Veja a observação sobre o pacote algorithm na seção ``TeX e LaTeX''

  Uma observação final sobre o LyX: a versão atual (1.0.x) utiliza a
  biblioteca XForms para construir a interface com o usuário. Como essa
  biblioteca não tem suporte para acentuação, não é possível digitar
  letras acentuadas nas caixas de diálogo, somente no corpo do documento
  editado. Segundo os desenvolvedores, nas novas versões do LyX será
  possível escolher o tipo de interface ao compilar o programa, o que
  permitirá o uso de toolkits mais flexíveis. Já existe uma versão de
  LyX portada para o toolkit Qt, usado no KDE, chamada KLyX. Os autores
  são Matthias Ettrich -- autor original do LyX -- e Kalle Dalheimer.
  Para maiores informações, consulte via WWW:  <http://www-
  pu.informatik.uni-tuebingen.de/users/ettrich/>.


  6.1.11.  Man, groff, troff

  Pode-se usar a opção de linha de comando -Tlatin1 para o groff, mas é
  mais simples colocar uma linha no seu arquivo /etc/profile contendo

      GROFF_TYPESETTER="latin1"
      export GROFF_TYPESETTER



  Para maiores informações leia o manual do groff com o comando

      man groff



  No Linux, o comando man usa o groff para formatar os manuais e deve
  ser configurado para usar o conjunto Latin 1, ou não será possível
  formatar satisfatoriamente manuais que contenham caracteres não
  pertencentes ao conjunto ASCII, como é o caso do ``man iso_8859_1''.
  Na distribuição Slackware, é preciso editar o arquivo
  /usr/lib/man.config e alterar as definições NROFF e NEQN, trocando a
  opção ``-Tascii'' para ``-Tlatin1'':

      NROFF           /usr/bin/groff -Tlatin1 -mandoc
      NEQN            /usr/bin/geqn -Tlatin1


  ou, se usarmos a variável de ambiente GROFF_TYPESETTER, podemos sim­
  plesmente eliminar a opção -Tascii. Na distribuição Debian não é
  necessário fazer nenhuma configuração para o man, bastando configurar
  GROFF_TYPESETTER e na Red Hat (incluindo Conectiva) o arquivo é
  /etc/man.config

  Groff também pode ser configurado para fazer a separação silábica em
  português, o que é muito útil se tivermos páginas de manual em
  Português. Isto é bastante simples, porque quando James Clarck pôs
  suporte a hifenização no groff ele usou o mesmo algoritmo de
  hifenização do TeX. Para ter hifenização em português, basta copiar o
  arquivo de regras do TeX e fazer o groff usá-lo. O arquivo hyphen.pt
  pode ser obtido junto com os demais na página do HOWTO. Trata-se do
  arquivo pt8hyph.tex (ver seção ``TeX e LaTeX'') ao qual foi adicionado
  apenas um comentário.

  Ele deve ser copiado para o diretório /usr/share/groff/tmac/ ou
  /usr/lib/groff/tmac/, dependendo da distribuição. É conveniente criar
  um ``link'' simbólico para hyphen.br. Para usar esse arquivo, basta
  colocar no início do seu documento troff/groff as linhas a seguir:

      .if \n(.g \{\
      .hla pt
      .hpf hyphen.pt
      .\}


  O .if não é necessário para a acentuação, mas ele testa se o proces­
  sador usado é o groff. Deste modo pode-se usar o mesmo documento em
  outros UNIX nos quais se use o troff normal sem que ele gere mensagens
  de erro sobre comandos desconhecidos.


  6.1.12.  Midnight Comander (mc)

  No menu Options sub-menu Display bits... ligue a opção ``Full 8 bits''
  ou ``ISO 8859-1''. Na versão 3.2.11 isso permite que sejam mostrados
  nomes de arquivos contendo caracteres acentuados, mas não foi possível
  digitar tais caracteres na linha de comando ou nas caixas de diálogo.


  6.1.13.  Minicom

  Coloque uma linha no seu arquivo /etc/profile contendo

      MINICOM="-m -c on"
      export MINICOM

  Isso permitirá usar a tecla Alt para ativar os comandos (exatamente
  como o Telix) e também usar cores. Para maiores informações, leia o
  manual do Minicom usando o comando

      man minicom


  Mais uma dica sobre o Minicom: para fazê-lo usar usar corretamante a
  tecla Meta para ativação dos comandos rodando dentro de um xterm,
  deve-se invocá-lo com a opção ``-m'' e passar a opção ``-xrm "*eight­
  BitInput: false"'' para o xterm. Se usarmos o rxvt então o minicom
  deve ser chamado com a opção ``-m'' e a tecla de ativação dos comandos
  será Alt. Fiz uma adaptação no script xminicom que pode ser obtido via
  WWW na página do Portuguese HOWTO.

  Segundo Arnaldo Carvalho de Melo, as versões mais recentes do Minicom
  suportam internacionalização. Suporte para o Português foi
  acrescentado pelo pessoal da Conectiva. O código fonte pode ser obtido
  na página do Jukka (atual mantenedor do Minicom) em

       <http://www.clinet.fi/~walker/minicom.html>



  6.1.14.  Netscape Communicator

  O Communicator, assim como muitas aplicações que utilizam toolkits
  baseados no X Toolkit (Xt), permite que se modifiquem muitas de suas
  características por meio de arquivos de configuração (X Resources). No
  caso específico do Communicator, pode-se criar um arquivo chamado
  Netscape no diretório /usr/X11R6/lib/X11/app-defaults contendo estas
  opções.

  Na distribuição brasileira Conectiva, o pacote do Communicator vem com
  um arquivo /usr/lib/netscape/i18n/Netscape.ad.pt_BR e um script
  /usr/bin/netscape que executa o Communicator fazendo-o ler este
  arquivo. Uma cópia do Netscape.ad.pt_BR pode ser obtida na página
  oficial do Portuguese-HOWTO. Para usá-lo, simplesmente copie-o para
  /usr/X11R6/lib/X11/app-defaults/Netscape, se sua distribuição não o
  possuir, mas fique atento que seu uso pode criar problemas com novas
  versões do programa.

  Maiores informações sobre ``X Resources'' podem ser obtidas em
  [GET94], [McC94] e no manual do programa xrdb, com o comando


      man xrdb



  6.1.15.  nn


       Alô, alô, alguém usa nn? Informação mais atualizada será bem
       recebida.


  Acrescente a seguinte linha ao arquivo ~/.nn/init:

      set data-bits 8



  6.1.16.  Pine e Pico

  Para o Pine utilizar o conjunto de caracteres Latin 1, coloque uma
  linha no arquivo .pinerc, no diretório do usuário, contendo

      character-set=ISO-8859-1


  ou crie um arquivo geral de configuração contendo tal linha. Esse
  arquivo normalmente é /usr/local/lib/pine.conf ou /usr/lib/pine.conf

  A configuração também pode ser feita usando o próprio programa. No
  menu de entrada selecione as opções Setup/Configuration. Vá até o ítem
  ``character-set'' e preencha-o com ``ISO-8859-1''. Para maiores
  informações leia o manual do pine com o comando

      man pine



  6.1.17.  tcsh

  Nenhuma medida especial é necessária se for feita a correta
  configuração das variáveis de ambiente ``LANG'' e ``LC_ALL'', conforme
  mostrado mostrado na seção ``Biblioteca libc''.

  Tcsh tem suporte a internacionalização e na distribuição Debian há um
  pacote chamado tcsh-i18n com suporte para French, German, Greek and
  Spanish.


  6.1.18.  TeX e LaTeX


       Esta seção foi escrita com ajuda de Klaus Steding-Jessen.



  6.1.18.1.  O pacote Babel

  O pacote Babel, criado por Johannes Braams provê suporte a um grande
  número de idiomas para o LaTeX. De acordo com o idioma selecionado ele
  define muitas coisa como, por exemplo, os títulos dos capítulos
  (Chapter, Capítulo, Kapitel) e o título das tabelas (Tabela, Table,
  Tabelle). Para usar o pacote, basta incluir no preâmbulo de seu
  documento LaTeX o comando


      \usepackage[portuges]{babel}

      ou

      \usepackage[brazil]{babel}



  Há diferenças sutis entre o Portugues do Brasil e o de Portugal, tais
  como as normas para escrita de datas e nomes de meses com a primeira
  letra maiúscula ou minúscula.

  Pode-se misturar mais de um idioma no mesmo documento. Para Alemão e
  Português ficaria:



      \usepackage[german,brazil]{babel}



  Nesse caso a última opção (brazil) fica sendo o idioma corrente. Para
  mudar ao longo do texto, entre um e outro, use:


      \selectlanguage{german}

      [...]

      \selectlanguage{brazil}



  Isto é muito útil também quando queremos que uma palavra não seja
  separada.  Basta definir um novo idioma e usá-lo nas palavras que não
  podem ser separadas. Coloque no preâmbulo:


      \newlanguage\nohyphen
      \newcommand\nh[1]{{\language\nohyphen #1}}



  E use com \nh{FOO BAR}. É melhor do que usar \mbox, que impede quebra
  no espaco em \mbox{FOO BAR}.


  6.1.18.2.  Separação silábica

  Normalmente apenas os suportes a separação silábica para Inglês e
  Alemão são carregados.  Para configurar hifenização no teTeX, execute
  o utilitário texconfig, que na distribuição Slackware deve ser o
  programa /usr/lib/teTeX/bin/texconfig e na Debian é
  /usr/bin/texconfig.  Digite o comando


      texconfig hyphen



  O editor usado normalmente é o vi. Se o seu editor predileto for
  outro, crie uma variável de ambiente chamada EDITOR contendo o nome
  desse programa, como no exemplo a seguir:


      EDITOR=pico
      export EDITOR



  O editor de texto será carregado, para editar o arquivo language.dat.
  Procure uma linha que começa por %portuges e remova o %. Grave o
  arquivo e saia do editor. O texconfig atualizará diversos arquivos de
  configuração (não se assuste com a quantidade de mensagens que
  aparecem na tela).

  Se o nome da tabela de hifenização que consta no seu language.dat é
  pthyph.tex então provavelmente trata-se da versão 1.0, de 1987. A
  versão 1.2, de 1996, pode ser obtida via FTP anônimo em

       <ftp://ftp.tex.ac.uk/tex-archive/language/por­
       tuguese/pt8hyph.tex>

  Copie-o para o mesmo diretório onde se encontra o pthyph.tex, que
  dependendo de sua distribuição pode ser
  /usr/lib/texmf/tex/generic/hyphen /usr/share/texmf/tex/generic/hyphen
  ou /usr/lib/teTeX/texmf/tex/generic/hyphen. Execute o comando texcon­
  fig~hash e na mesma linha mencionada anteriormente insira um `8' no
  nome do arquivo, de modo que fique pt8hyph.tex.


  6.1.18.3.  Uso de Font Encoding T1

  Se o conjunto de caracteres (encoding) de uma fonte não provê acesso
  direto a caracteres acentuados, (como é o caso do OT1, padrão do
  LaTeX) então o TeX gera estes caracteres sobrepondo o caracter base
  mais o acento. O algoritmo de hifenização, contudo, não hifeniza
  palavras formadas dessa forma.

  Se uma fonte já provê acesso direto a caracteres acentuados, como as
  de codificação T1, estes caracteres são usados diretamente sem
  prejuízo do algoritmo de hifenização.  O uso de encoding T1 é
  fundamental para a correta hifenização em Português.

  Note que trata-se da mesma fonte, por falta a Computer Modern, apenas
  o que muda é o seu encoding, isto é, a ordem/disponibilidade dos
  caracteres dentro da mesma. Para selecionar estas fontes, inclua no
  preâmbulo do seu documento o comando


      \usepackage[T1]{fontenc}



  O antigo pacote t1enc não deve mais ser usado e existe hoje apenas por
  questões de compatibilidade com documentos antigos. O fontenc é mais
  atual, continua a ser mantido e é de uso mais geral, portanto
  preferível.


  6.1.18.4.  Edição de documentos

  Normalmente a introdução de caracteres acentuados no texto exige o uso
  de seqüências de escape bastante trabalhosas. Para gerar um ``ö''
  deve-se digitar \"o. Com babel pode-se digitar apenas "o, o que não
  deixa de ser inconveniente para ler o fonte do documento. Há um pacote
  chamado inputenc que permite especificar a codificação em que estão os
  caracteres de um documento. Lembre-se porém que se o seu documento for
  enviado para outro usuário que não possua o inputenc ele poderá não
  conseguir processá-lo, mas esse recurso já está disponível desde a
  liberação do LaTeX2e em dezembro 1994. Todas as distribuições de Linux
  atuais o incluem.

  Sugestão: uma configuração do GNU Emacs para gerar caracteres
  acentuados, própria para o uso com o pacote inputenc:


      (add-hook 'LaTeX-mode-hook
                (lambda ()
                  (standard-display-european 1)
                  (load-library "iso-acc")
                  (iso-accents-mode 1)
                  (iso-accents-customize "portuguese")
                  (auto-fill-mode 1)
                  ))



  E outra que não requer o inputenc.  O uso da biblioteca `iso-cvt' faz
  a transformação de ISO-8859-1 (no buffer do Emacs) para o padrão do
  LaTeX (no arquivo).


      (add-hook 'LaTeX-mode-hook
                (lambda ()
                  (standard-display-european 1)
                  (load-library "iso-cvt")
                  (load-library "iso-acc")
                  (iso-accents-mode 1)
                  (iso-accents-customize "portuguese")
                  (auto-fill-mode 1)
                  ))



  Muitas vezes o usuario já possui muitos arquivos num formato de acento
  do LaTeX e gostaria de passar tudo para o formato ISO, próprio para
  uso do pacote inputenc. Uma boa opção para isto é usar o programa
  recode. Se você possui arquivos .tex e deseja converte-lo para formato
  ISO-8859-1 pode usar:


      recode -d LaTeX:l1 file.tex



  O código-fonte do GNU recode pode ser obtido via FTP anônimo em
  <ftp://prep.ai.mit.edu/pub/gnu/recode/recode-3.4.tar.gz> e em muitos
  espelhos do GNU mundo afora. A distribuição Debian tem um pacote
  pronto e outras também devem ter.


  6.1.18.5.  Teste da configuração do LaTeX

  Para testar a nova configuração copie o seguinte trecho para um
  arquivo chamado, digamos, exemplo.tex:


      \documentclass[a4paper]{article}
      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage[portuges]{babel}
      %%
      %% ou \usepackage[brazil]{babel}
      %%

      \begin{document}
      \title{Linux Portuguese-HOWTO}
      \author{Carlos Augusto Moreira dos Santos}
      \date{\today}

      \maketitle

      \section{Introdução}

      Este documento pretende ser um guia de referência de configuração
      do \textbf{Linux} e seus programas, teclados e fontes de
      caracteres, permitindo sua internacionalização/utilização confortável
      por pessoas que falem a Língua Portuguesa.

      \end{document}



  Esse texto contém de propósito uma ``palavra'' bastante longa para
  forçar a separação silábica. Ele está disponível via WWW no arquivo
  exemplo.tex na página do Portuguese HOWTO. Para processá-lo, use o
  comando latex, conforme mostrado a seguir:

      bash$ latex exemplo.tex
      This is TeX, Version 3.14159 (C version 6.1)
      (exemplo.tex
      LaTeX2e <1996/06/01>
      Hyphenation patterns for english, german, portuges, loaded.
      (/usr/lib/teTeX/texmf/tex/latex/base/article.cls
      Document Class: article 1996/05/26 v1.3r Standard LaTeX document class
      (/usr/lib/teTeX/texmf/tex/latex/base/size10.clo))
      (/usr/lib/teTeX/texmf/tex/latex/base/inputenc.sty beta test version
      (/usr/lib/teTeX/texmf/tex/latex/base/latin1.def))
      (/usr/lib/teTeX/texmf/tex/latex/base/fontenc.sty
      (/usr/lib/teTeX/texmf/tex/latex/base/T1enc.def))
      (/usr/lib/teTeX/texmf/tex/generic/babel/babel.sty (portuges.ldf
      (/usr/lib/teTeX/texmf/tex/generic/babel/babel.def))) (exemplo.aux) [1]
      (exemplo.aux) )
      (see the transcript file for additional information)
      Output written on exemplo.dvi (1 page, 812 bytes).
      Transcript written on exemplo.log.


  A mensagem ``Hyphenation patterns for english, german, portuges,
  loaded.'' indica que a configuração foi bem sucedida. Se o seu com­
  putador está rodando o X o documento formatado poderá ser visto com o
  comando

      xdvi exemplo.dvi



  Observe que o ``\today'' gera a data corrente. No ``portugues'' seria
  ``17 de Julho de 1998'' mas no ``brazil'' seria ``17 de julho de
  1998''.


  6.1.18.6.  Problemas com alguns pacotes do teTeX

  Há um problema com o pacote algorithm do LaTeX, que não é suportado
  pelo babel, fazendo com que a lista de algoritmos saia com o título
  ``List of Algorithms'' e o título de cada um deles seja impresso como
  ``Algorithm #''.  Para evitar esse problema, coloque no preâmbulo de
  seu documento LaTeX, após o comando ``\usepackage{algorithm}'' o
  seguinte:


      \makeatletter
      \renewcommand{\ALG@name}}{Algoritmo}}
      \makeatother
      \renewcommand{\listalgorithmname}}{Lista de Algoritmos}}



  No teTeX 0.4 (versão 1.2h do portuges.ldf) o título do ambiente proof,
  encontrado nas classes amsbook, amsart, etc., sai como ``Proof.''.
  Para corrigir isso, coloque no preâmbulo de seu documento o comando


      \renewcommand{\proofname}}{Demonstra\c{c}\~ao}



  mas o mais recomendável é que se atualize a versão do teTeX.

  Usuários do LyX podem incluir esses comandos no preâmbulo do documento
  usando o menu Layout/LaTeX Preamble. Pode-se resolver o problema
  alterando o arquivo portuges.ldf que contém as definições necessárias
  ao Português, mas esta solução não é portável, pois exigirá que tal
  arquivo seja alterado em todas os computadores em que o documento deva
  ser processado.

  A licença do Babel não me permite distribuir o portuges.ldf separado
  do resto do pacote, mas para os interessados, coloquei à disposição na
  página do HOWTO um arquivo chamado portuges.ldf.patch que criei para o
  meu teTeX antigo (Slackware 3.4).  Para aplicar a atualização, copie-o
  para o diretório /usr/lib/teTeX/texmf/tex/generic/babel (Slackware),
  faça uma cópia de reserva do portuges.ldf original e invoque o
  utilitário patch:


      cp -p portuges.ldf portuges.ldf.backup
      patch < portuges.ldf.patch



  Use o patch por sua conta e risco! Se você deixar o backup no
  diretório original ele será incluído no arquivo ls-R da próxima vez
  que o programa texhash for executado.  Isso não fará mal algum, mas
  pode-se mover o backup para algum lugar seguro (eu uso /usr/backup).


  6.1.18.7.  Lista TeX-BR

  Há uma lista de discussão brasileira de usuários de TeX/LaTeX, chamada
  TeX-BR, que roda no servidor de listas da FURG. Para entrar da lista
  mande um mail contendo apenas a palavra ``subscribe'' no corpo para
  <tex-br-request@listas.furg.br>. Esta lista é administrada por Rafael
  Rodrigues Obelheiro.

  Há uma página na WWW em  <http://biquinho.furg.br/tex-br/> por meio da
  qual se pode ler o histórico de mensagens. Também há referências para
  muitos documentos sobre LaTeX, alguns em Português e outros em Inglês.


  6.1.18.8.  LaTeX-demo

  Pode ser útil também um documento de exemplo para ter onde começar.
  Pensando nisso, Klaus Steding-Jessen preparou um pequeno documento em
  Português com o objetivo de ser um guia ``by example'' para o usuário
  de LaTeX iniciante e intermediário, que pode ser obtido via WWW em
  <http://biquinho.furg.br/doc/LaTeX-demo/>.

  Klaus ecreveu também uma série três artigos destinados a ``descrever o
  sistema LaTeX como uma alternativa mais eficiente aos processadores de
  texto WYSIWYG'' que podem ser lidos via WWW em
  <http://biquinho.furg.br/tex-br/doc/artigo-1-jessen/>.



  6.1.19.  WordPerfect

  O Corel Wordperfect para Linux versão 8 suporta a acentuação por
  teclas mortas. Não é necessário nenhum procedimento especial. Como um
  entusiasta de software livre, entretanto, recomendo enfaticamente que
  se use o LyX, que já foi inclusive traduzido para nossa língua,
  conforme mencionado na seção ``LyX''.


  6.1.20.  Xemacs (antigo lucid emacs)


       Agradeço a colaboração de Judson Santos Santiago e Goedson
       Teixeira Paixão que ajudaram a identificar os problemas com
       o Xemacs.


  O Xemacs já tem suporte à acentuação direta no teclado usando ``dead
  keys'', mas há um erro na configuração original que o impede de
  reconhecer o acento circunflexo.  Este problema não ocorre se for
  usada a biblioteca Xlib aterada por Thomas Quinot, mencionada na
  seção ``Contornando os limites do X'', mas mesmo que não a usemos,
  basta colocar os seguintes comandos no seu arquivo de configuração
  .emacs:

      ;; Ajuste para fazer o acento circunflexo funcionar
      ;; Contribuição de Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br>
      (require 'x-compose)
      (define-key global-map 'dead-circumflex compose-circumflex-map)



  Na distribuição Debian 2.0 o Xemacs 20.4 executa todos os scripts
  contidos no diretório /etc/xemacs20/site-start.d ao ser carregado.
  Tudo que se tem a fazer é colocar esses comandos em um arquivo
  chamado, por exemplo, 01portugues-xemacs.el. Não é necessário instalar
  o xemacs20-mule, que possui extensões para línguas que não usam o
  alfabeto romano. Os pacotes a instalar são os seguintes:


  ·  xemacs20-bin

  ·  xemacs20-nomule

  ·  xemacs20-support

  ·  xemacs20-supportel

  Se você instalou o Xemacs no Slackware ou outro Unix, à moda antiga
  (dowload, compilação, instação), então o arquivo a alterar é o site-
  start.el, que deve estar no diretório /usr/lib/xemacs/site-lisp ou
  /usr/local/lib/xemacs/site-lisp, dependendo de sua instalação.

  Observe que a partir da versão 20.3 o Xemacs usa uma variável especial
  para controlar o comportamento da tecla ``Delete'', não existente nos
  outros emacs chamada delete-key-deletes-forward. Para ativar este
  comportamento coloque no seu arquivo .emacs uma linha contendo


      (setq delete-key-deletes-forward t)



  Arquivos de configuração prontos podem ser obtidos via WWW na página
  do Portuguese HOWTO. Para Slackware, há um site-start-xemacs.el, que
  deve ser copiado para o diretório correto com o nome de site-start.el.
  Para Debian, há um 01portugues-xemacs.el que deve ser copiado para o
  diretório /etc/xemacs20/site-start.d.

  Certifique-se de estar usando a versão 24-out-1998 ou mais recente do
  arquivo de ``mapa de teclado'' para o X, pois ela possui uma correção
  no tratamento das teclas modificadoras Alt e Meta, que são muito
  usadas pelo Xemacs.


  6.2.  Rede local e Internet


  6.2.1.  FTP (File Transfer Protocol)

  Existem dois modos de transferência de arquivos: binary e ASCII, sendo
  este  utilizado para textos.  Deve-se tomar cuidado ao transferir um
  arquivo, pois o modo de transfêrencia ASCII remove o oitavo bit de
  cada caracter transmitido, o que terá como conseqüência a perda de
  todos os caracteres acentuados. Desta forma é aconselhado o envio de
  documentação em modo binary de forma a manter a integridade da mesma.

  Cuidado! Algumas versões mais antigas do pacote net-tools do Linux têm
  um cliente FTP que não reconhece corretamente quando o servidor remoto
  roda Unix. Deste modo ele não comutará o modo de transferência para
  binário automaticamente. Além disso, alguns servidores FTP também não
  fornecem a informação corretamente.  Certifique-se de digitar o
  comando bin antes de um get quando quiser que a transferência seja
  binária!


  6.2.2.  Correio eletrônico

  O mesmo tipo de restrições do FTP se aplica ao envio de documentos
  contendo caracteres acentuados através de correio eletrônico. Embora
  isto não aconteça em todos os sistemas em uso na internet, bastará que
  o correio enviado passe no seu trajecto por um sistema que não suporte
  8 bits de informação para que o nosso documento seja deturpado.

  Para que não hajam problemas, deve-se utilizar um programa de emeil,
  que suporte o formato MIME (Multipurpose Internet Mail Extensions),
  formato este que permite o envio de documentação em modo 8 bits.
  Exemplos de programas de correio eletrônico com suporte para MIME, são
  o Eudora e o Pine.

  Se o destinatário da mensagem não usa um agente com suporte para MIME,
  existe a opção de codificar os documentos com o utilitário UUENCODE.
  Para maiores informações a esse respeito, leia a documentação usando
  os comandos


      man uuencode
      man uudecode



  7.  Ficheiros necessários

  Atenção! Os mapas de teclado para o X fornecidos mapeiam a função das
  teclas segundo a lista a seguir:

  ·  Alt esquerdo: Alt

  ·  Alt direito: AltGr

  ·  Control esquerdo: Control

  ·  Control direito: Control

  ·  ScrollLock: ScrollLock

  ·  Janela esquerda: Meta

  ·  Janela direita: Compose

  ·  Menu: Menu

  Se o seu teclado não possuir as teclas para Windows 95 então pode ser
  melhor restabelecer a distribuição padrão: edite o mapa e coloque um
  ponto de exclamação no início das linhas que definem os keycodes 64,
  113, 115, 116 e 117.

  Foram elaborados mapas com suporte à acentuação para seis modelos de
  teclado, tanto para uso no console quanto para o X. Eles podem ser
  obtidos via WWW em um dos repositórios da página do Portuguese HOWTO:


  ·  <http://linusp.usp.br/~casantos/>

  Ao instalar um dos mapas fornecidos, lembre-se de ler os comentários
  contidos neles, pois há informações importantes sobre opções de
  configuração e aproveitamento das teclas adicionais dos teclados
  padrão Windows 95.  As instruções para instalação estão nas seções
  ``Configuração do console'' e ``Configuração do X''.



     O mapa US+ (us+.map e Xmodmap.us+)
        Mapas para os teclados que seguem o padrão americano. Como não
        existem teclas especiais para gerar o c-cedilhado nem o trema,
        foi usado um pequeno truque: o c-cedilhado é gerado pela
        seqüência 'C.  No console pode-se fazê-lo com a seqüência AltGR-
        C.  O trema é gerado pela tecla ". Para gerar as aspas duplas é
        necessário digitar a seqüência "<espaço> e no console pode-se
        usar ""; opcionalmente pode-se usar AltGR-", o que não é uma
        solução muito confortável, mas funciona...

        Testados com teclados de várias marcas (e alguns sem marca :-).


     O mapa Portugal (pt.map e Xmodmap.pt)
        Mapas para teclados com desenho português. Esses teclados são os
        que possuem uma tecla com os caracteres « e ». Não são muito
        confortáveis, porque para gerar o símbolos @ [ ] { } e o trema é
        necessário usar a tecla Alt-GR.

        Testado com um teclado da marca Key Tronic.


     O mapa ABNT-2 (abnt-2.map e Xmodmap.abnt2)
        Os computadores vendidos no Brasil fabricados pela IBM, Compaq e
        Itautec, entre outros, vêm com esses teclados. Eles também pode
        ser adquiridos avulsos e são fabricados pela UIS e Keytec (não
        confundir com Key Tronic).  Este desenho é o mais confortável de
        todos, pois tem a mesma distribuição dos acentos encontrada nas
        máquinas de escrever.

        Testado com teclados das marcas UIS e IBM.


     Sun Type 4 e Type 5 (Xmodmap.Sun4+ e Xmodmap.Sun5c+)
        Encontrados nas máquinas fabricadas pela Sun.  Estes mapas foram
        testados em SPARCstations modelos 1, 4, IPC e Classic rodando
        SunOS 4.1, Solaris 2.5.1 e Linux 2.0.33 (Red Hat 4.2). Como
        esses teclados não possuem o c-cedilhado, foi usado o mesmo
        truque do mapa US+. Apenas o mapa para o X é fornecido.


     NCD+ (Xmodmap.NCD+)
        Este mapa é para o teclado modelo N107 e foi testado em
        terminais X modelo 16r fabricados pela Network Computing Devices
        Inc. (NCD).  Embora a distribuição de teclas seja idêntica à do
        Sun Type 4, os keycodes das teclas são diferentes. Esses
        teclados também não possuem o c-cedilhado, por isso foi usado o
        mesmo truque do mapa US+.  Apenas o mapa para o X é fornecido.

  A geração dos caracteres acentuados é feita de acordo com a tabela a
  seguir:


      Para gerar              Digitar
      -------------------------------------------------
      ç                       'c ou compose-,-c
      á é í ó ú               'a 'e 'i 'o 'u
      à è ì ò ù               `a `e `i `o `u
      ã õ                     ~a ~o
      â ê î ô û               ^a ^e ^i ^o ^u
      ä ë ï ö ü               "a "e "i "o "u
      " (aspas)               "" ou AltGR-" no mapa US+
      ¨ (trema)               "-espaço
      ' (apóstrofo)           '' ou AltGR-' no mapa US+
      ` (grave)               `` ou AltGR-` no mapa US+
      ®                       compose-O-R
      ©                       compose-O-C
      -------------------------------------------------



  8.  Informações Adicionais

  8.1.  Fontes de informação sobre Linux em Português


     Grupo de Investigação Linux
        Grupo de usuários de linux da Universidade do Minho, em Portugal
        que pode ser visitado em  <http://gil.di.uminho.pt>.

     Grupo de Utilizadores de Linux do ISCTE
        Pode ser visitado em
        <http://www.students.iscte.pt/~a12593/gul.html>.

     Linux Brasil
        Servidor da Universidade Estadual de Campinas, Brasil, contendo
        informações sobre Linux no Brasil, que absorveu o antigo projeto
        LDP-br.  Pode ser visitado em  <http://linux.unicamp.br>.

     Projeto LinUSP
        Desenvolvido na Universidade de São Paulo, Brasil, coordenado
        por Jorge L.  deLyra. Pode ser visitado em
        <http://linusp.usp.br/>.


  8.2.  Free Translation Project

  Programadores que quiserem desenvolver aplicações com suporte a mais
  de uma língua devem usar algum método de definir mensagens em tempo de
  execução, possivelmente usando uma biblioteca de funções para este
  fim. O projeto GNU criou o ``Free Translation Project'', com esta
  finalidade. Muitos aplicativos GNU já permitem que se troquem as
  mensagens bastando criar um catálogo que é lido pelo programa ao
  iniciar. Há equipes de tradução responsáveis por cada língua.

  Há uma lista de discussão via emeil para cada equipe de tradução,
  rodando em um servidor provido pela <Linux International>. Para fazer
  contato com a equipe de tradução para Português, envie um emeil para
  <pt@li.org> e para assinar a lista envie emeil para <pt-
  request@li.org> contendo apenas a palavra ``subscribe''. Assine a
  lista somente se você quiser fazer parte da equipe de tradutores, pois
  ela não se destina ao esclarecimento de dúvidas de usuários!

  Mais informações podem ser encontradas na documentação do pacote
  gettext disponível via FTP anônimo em qualquer repositório de software
  do GNU.  Provavelmente sua distribuição já tem um pacote pronto para
  ser instalado, mas se você desejar, os fontes da versão mais recentes
  podem ser encontrados em

       <ftp://ftp.gnu.org/pub/gnu/>


  e o nome do arquivo a copiar é ``gettext-<versão>.tar.gz''.


  8.3.  LIE-BR


       A informação a seguir é baseada no conteúdo da página de
       apresentação da lie-br, escrita por Jorge Godoy.


  A lie-br foi criada com o intuito de auxiliar a comunidade Linux
  brasileira a obter softwares e documentação em sua língua nativa: o
  português.  Essa lista é uma ramificação de outra maior, a LIE que
  visa a internacionalização do Linux e sua posterior tradução para
  todos os idiomas (português incluso).

  Resumo dos objetivos da lie-br:

  ·  contribuir para o projeto de internacionalização do Linux fazendo a
     parte relativa ao português para o Brasil;

  ·  internacionalizar programas, de modo a poderem ser usados nas
     línguas nativas de cada país, e não ficar preso ao idioma original
     ou ao inglês;

  ·  disponibilizar (sic) material em português para consulta e
     documentação;

  ·  aumentar o acervo de documentação disponível e, indiretamente,
     auxiliar no desenvolvimento iniciado pelo projeto LDP-BR.

  Mais informações podem ser encontradas na página WWW da lie-br, no
  endereço

       <http://lie-br.conectiva.com.br/>


  Ainda há uma quantidade enorme de documentos por traduzir. Se você tem
  bom domínio do Inglês e deseja colaborar, então primeiro leia as
  instruções na página mencionada e assine a lista ``lie-br'', enviando
  um emeil para <lie-br-subscribe@bazar.conectiva.com.br>. Não é preciso
  especificar o assunto (subject) nem colocar nada no corpo da mensagem.


  8.4.  Versões de software testadas

  Todas as informações presentes neste documento foram testadas nas
  seguintes versões de software:


  ·  Distribuições Slackware 3.2 (muito modificada), Debian 2.0, Red Hat
     5.2, Conectiva 3.0 (Guarani) e S.u.S.E. 5.6

  ·  XFree86 versões 3.3 a 3.3.3.1

  ·  Fvwm 2.0.46

  ·  Rxvt versão 2.4.5

  ·  Kernel versões 2.0.33 a 2.0.36

  ·  Kbd versões 0.92 a 0.96

  ·  GNU emacs versões 19.34 a 20.3

  ·  Less versões 321 e 332

  ·  GNU Bash versões 1.14.7 a 2.01.1

  ·  tcsh versões 6.07.02 e 6.07.06

  ·  LyX 0.12.0 a 1.0.0pre6

  ·  XForms 0.88

  ·  Joe 2.8

  ·  Pine 3.96 e 4.0

  ·  Pico 2.9

  ·  teTeX versões 0.4 e 0.9-9

  ·  XEmacs versões 20.3 e 20.4



  9.  Observações finais

  9.1.  Futuras adições a este documento

  As próximas versões do HOWTO deverão conter, entre outros assuntos, os
  seguintes:

  ·  suporte à distribuição Caldera;

  ·  informações sobre compartilhamento de arquivos em rede usando NFS,
     SAMBA e Mars-NWE;

  ·  configuração de toolkits de interface gráfica: Qt, GTK, XForms, Tk
     (Tcl) e os baseados em Xt, como Motif, Lesstif, Xaw (*international
     ainda não está funcionando);

  ·  uma seção sobre desenvolvimento de programas;

  ·  referências ao Ispell (usá-lo para corrigir o próprio HOWTO :-);

  ·  informações sobre X/Open, XPG4 e POSIX, ou pelo menos ponteiros
     para elas.

     Aceitam-se voluntários para qualquer uma destas tarefas.

  Parece cada vez mais claro que as informações sobre configuração de
  aplicativos devem ser movidas para outro documento, independente do
  HOWTO. Na forma como ele está hoje já chega a quase quarenta páginas
  impressas e com a adição de outras distribuições e aplicações em breve
  chegará às 50. Um documento tão grande foge ao espírito de um HOWTO,
  que deve ser sucinto e concentrado em um assunto específico.
  9.2.  Nota de Direitos de Autor

  Este HOWTO teve como autor João Carlos Rodrigues Pereira, baseado em
  documentação escrita por José Bandeira além dos restantes HOWTO's do
  Linux.  Atualmente ele é mantido por Carlos Augusto Moreira dos
  Santos, com a colaboração de muitos outros.

  Os documentos HOWTO do Linux podem ser reproduzidos e distribuídos em
  todo ou em parte, segundo qualquer meio físico ou electrónico, desde
  que esta Nota de Direitos de Autor se mantenha intacta em todas as
  cópias dos mesmos.  A distribuição comercial é autorizada e
  encorajada, no entanto, o autor gostaria de ser notificado de tais
  ocorrências.

  Todas as traduções, trabalhos derivados, ou trabalhos agregando
  qualquer dos documentos HOWTO do Linux deverão estar abrangidos por
  esta Nota de Direitos de Autor, ou seja, não poderá ser imposta
  qualquer restrição adicional a trabalhos efectuados a partir de um dos
  documentos HOWTO do Linux nomeadamente no que diz respeito à sua
  distribuição.

  Exceções a estas regras poderam ser obtidas. Para tal, dever-se-á
  contactar o coordenador dos documentos HOWTO do Linux no endereço
  <linux-howto@metalab.unc.edu>.


  9.3.  Garantia (inexistência de) e nota de responsabilidade

  Apesar de ter sido feito o máximo esforço possível para que o conteúdo
  deste documento esteja correto, não há nenhuma garantia de que ele não
  possua erros, nem de que tenha algum tipo de utilidade ou aplicação
  comercial, técnica, educacional ou medicinal.  O autor não se
  responsabiliza por prejuízos decorrentes do seu uso. Em resumo: se a
  informação aqui contida quebrar seu computador em mil pedacinhos,
  junte tudo e cole, mas não reclame para mim!

  Documentos escritos por terceiros são de responsabilidade exclusiva
  deles e sua referência neste HOWTO não representa nenhum tipo de
  recomendação, abono ou garantia de suporte.


  9.4.  Agradecimentos

  Deixo aqui os meus agradecimentos a todos os que de alguma forma me
  ajudaram quer através das suas sugestões quer através de contribuições
  de outro tipo, em especial a


     João Carlos Rodrigues Pereira
        Autor original deste documento que agora mantenho. Nunca tive
        contato com ele, nem sei por onde andará.  Sua página no
        Departamento de Informática da Faculdade de Ciências da
        Universidade de Lisboa (http://caravela.di.fc.ul.pt/~jcrp/) não
        existe mais. Lembro-me de tê-la visto, anos atrás.

     Greg Hankins
        Ex-coordenador dos Linux HOWTO, por me permitir assumir a
        manutenção deste documento e fornecer as primeiras dicas sobre
        autoria de documentos SGML.

  As pessoas listadas a seguir enviaram mensagens diretamente para mim
  ou para as listas Linux-BR da UNICAMP e TeX-BR com informações,
  sugestões ou comentários que foram incluídas neste texto. Se alguém
  foi esquecido, por favor desculpe a falha.


       Andre Gerhard <andre@lme.usp.br>
       Arnaldo Carvalho de Melo <acme@conectiva.com.br>
       Bruno Barberi Gnecco <brunobg@geocities.com>
       Cees de Groot <cg@pobox.com>
       Francisco Semeraro <semeraro@sti.com.br>
       Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br>
       Joao Carvalho <foxfire@fe.up.pt>
       Jorge Carvalho Pinto <jmcpinto@yahoo.com>
       Judson S Santiago <judson@costeira.dimap.ufrn.br>
       Ken MacLeod <ken@bitsko.slc.ut.us>
       Klaus Steding-Jessen <jessen@acm.org>
       Lamarque Vieira Souza <lamarque@dcc.ufmg.br>
       Marcelo Malheiros <malheiro@dca.fee.unicamp.br>
       Marcos Vinicius Lannes dos Santos <lannes@cnpgl.embrapa.br>
       Pedro Kröger <kroger@e-net.com.br>
       Rafael Caetano dos Santos <rcaetano@linux.ime.usp.br>
       Rafael Rodrigues Obelheiro <obelix@biquinho.furg.br>
       Ramiro Morales <morales@siscard.com.ar>
       Raul Carvalho <rmpc@ip.pt>
       Ricardo Y. Igarashi <iga@originet.com.br>
       Roberto Mello <mello@internext.com.br>
       Wanderlei Antonio Cavassin <cavassin@conectiva.com.br>


  Os seguintes agradecimentos são do primeiro autor:

     Carlos Ferreira
        Pela luta que trava pela defesa da lingua portuguesa, bem
        patente na sua Página Portuguesa disponível no URL:
        http://lila.dei.uc.pt/~cjrf/po/ [Nota do mantenedor atual: esta
        página não existe]

     João C. Silva
        Pelo apoio e incentivo e criticas (bem como por me deixar testar
        os meus conhecimentos no SEU computador).

     José Bandeira
        Autor dos ficheiros port.map e xmodmap.  Pelo seu apoio e por
        ter escrito alguma da documentação mais elucidativa que eu já li
        sobre o assunto.


  10.  Bibliografia comentada

  Esta seção ainda está incompleta e deve ser melhorada nas próximas
  versões.  Os HOWTOs mencionados aqui geralmente são distribuídos nos
  CDs de instalação e todas as distribuições possuem pelo menos alguns
  deles em pacotes prontos para instalar.  Na Slackwre esses pacotes são
  os da série F e os documentos ficam instalados no diretório
  /usr/doc/faq/howto e na Debian o diretório é /usr/doc/HOWTO. Eles
  também podem ser obtidos via WWW em
  <http://metalab.unc.edu/LDP/HOWTO/>.


     [BAL97] BALSA, André D. Linux and X11 internationalization
        Disponível via WWW em
        <http://wauug.erols.com/~balsa/linux/deadkeys/>

        Uma discussão sobre o problema da acentuação no X. Também contém
        referências para outros documentos que tratam de
        internacionalização.

     [BRO98] Brower Andries. The Linux Keyboard and Console HOWTO
        Disponível via WWW em
        <http://metalab.unc.edu/LDP/HOWTO/Keyboard-and-Console-
        HOWTO.html>.
        Descreve o tratamento teclado e console no Linux (kernel versão
        2.0) e tem várias referências ao X. Leitura obrigatória para
        quem quer entender a base do assunto.

     [GET94] Gettys, James et al. Xlib - C Language X Interface
        Cambridge, X Consortium, Inc., 1994. 473p.

        Referência definitiva sobre programação com Xlib.

     [JON89] Jones, Oliver. Introduction to the X Window System
        Englewood Cliffs, Prentice Hall, 1990.

        Um livro bastante antigo, mas contendo uma excelente e didática
        introdução ao X e à programação com Xlib.

     [McC94] McCormack, Joel et al.X Toolkit Intrinsics - C Language
        Interface
        Digital Equipment Corporation/X Consortium, 1994.

        A referência básica para programadores interessados em usar Xt.

     [OSS92] Ossana, Joseph & Kernighan, Brian. Troff user's manual
        Computer Science Technical Report No. 54. Murray Hill, AT&T Bell
        Laboratories, 1992.

        Descrição detalhada de como usar o Troff para formatação de
        documentos.

     [KER82] Kernighan, Brian. A Typesetter-independent TROFF
        Murray Hill, AT&T Bell Laboratories, 1982.

        O artigo de um dos pais do UNIX sobre o Troff.

     [QUI98] Quinot, Thomas. Dead keys under X11
        Disponível via WWW em
        <http://www.fdn.fr/~tquinot/index.en.html>

        A versão em inglês do artigo sobre a modificação da Xlib para
        dar suporte à acentuação independente da aplicação.

     [RAY98] Raymond, Eric S. The Linux XFree86 HOWTO
        Disponível via WWW em
        <http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html>.

        Descreve como obter, instalar e configurar o XFree86. Todas as
        distribuições de Linux já vêm com pacotes do XFree86 prontos
        para instalar, mas as informações sobre configuração podem ser
        muito úteis.

     [SCH86] Scheifler, Robert; Gettys, James. The X Window System
        ACM Transactions on Graphics, New York, ACM, 5 (2): 79-109,
        april, 1986.

        O artigo seminal de Scheifler e Gettys descrevendo o X Window
        System.

     [SUN90a] Sun Microsystems. Using NROFF & TROFF.
        Sun Microsystems, 1990.

        Parte da documentação que acompanhava as estações de trabalho
        Sun® e o sistema SunOS®, no tempo em que os fabricantes de
        computadores distribuiam documentação de verdade.

     [SUN90b] Sun Microsystems. Formatting documents
        Sun Microsystems, 1990.

        Veja o ítem anterior.

  Arquivos cuja leitura pode ser útil:


     /usr/src/linux/Documentation/unicode.txt
        Explica como ativar os diversos tipos de fontes no console.
        Também explica onde obter fontes para o alfabeto Klingon, o que
        pode ser muito útil se o leitor for um habitante daquele Império
        ou admirador de Jornada nas Estrelas.  Depois das recentes
        aventuras espaciais do Linux, não duvido de mais nada...

        A respeito deste assunto é de fundamental importância saber que,
        segundo nosso consultor interestrelar Klaus Steding-Jessen,
        ``Klingon é o nome da raça e do seu idioma.  Kling é o nome do
        planeta.  Mas note que o Império Klingon é formado não apenas
        por esse planeta, mas por várias colônias, teoricamente todas
        falando Klingon''. Tenho certeza de que sua vida nunca mais será
        a mesma depois de saber disto.

     /usr/src/linux/include/linux/keyboard.h
        Contém as definições de constantes, funções e macros utilizadas
        por programas que fazem tratamento de teclado sob Linux.
        Normalmente esse arquivo é instalado com o pacote que contém o
        código fonte do kernel. As distribuições geralmente possuem um
        pacote apenas com os arquivos include e outros com o resto dos
        programas-fonte do kernel.

     /usr/X11R6/include/X11/keysymdef.h
        Contém as definições de constantes, funções e macros utilizadas
        por programas que fazem tratamento de teclado sob o X Window
        System.  Normalmente esse arquivo é instalado com o pacote que
        contém as bibliotecas de desenvolvimento de aplicações para X.

Portuguese-HOWTO (last edited 2008-12-14 15:01:55 by jdd)