3111 lines
114 KiB
Plaintext
3111 lines
114 KiB
Plaintext
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.
|
||
|
||
|
||
|