old-www/HOWTO/text/Portuguese-HOWTO

3111 lines
114 KiB
Plaintext
Raw Permalink Normal View History

2020-08-23 10:33:19 +00:00
Linux Portuguese-HOWTO
Configura<72><61>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<65>ncia de configura<72><61>o do
Linux e seus programas, teclados e fontes de caracteres, permitindo
sua utiliza<7A><61>o mais confort<72>vel por pessoas que falem a L<>ngua Por<6F>
tuguesa.
______________________________________________________________________
Table of Contents
1. Introdu<64><75>o
1.1 Finalidades deste HOWTO
1.2 Onde encontrar a vers<72>o mais atual
1.3 P<>gina oficial na WWW
1.4 Como enviar colabora<72><61>es
2. Informa<6D><61>es gerais
2.1 Conjuntos de caracteres
2.2 Modo texto versus Sistema de Janelas X
3. Configura<72><61>o do console (modo texto)
3.1 Mapas de teclado
3.2 Mapas de tradu<64><75>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<75><6E>es libc e aplicativos GNU
4.1 Configurando o suporte internacional
4.2 Problemas com a libc 5
5. Configura<72><61>o do X
5.1 Configura<72><61>o do xinit
5.2 Configura<72><61>o do XDM
5.3 Compose
5.4 Locale
5.5 Gera<72><61>o de mapas com o XKeyCaps
5.6 Contornando os limites do X
5.6.1 Altera<72><61>o da biblioteca Xlib
5.6.2 Altera<72><61>o no kernel do Linux
5.6.3 Compara<72><61>o entre as duas solu<6C><75>es
6. Configura<72><61>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<72><61>o sil<69>bica
6.1.18.3 Uso de Font Encoding T1
6.1.18.4 Edi<64><69>o de documentos
6.1.18.5 Teste da configura<72><61>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<74>nico
7. Ficheiros necess<73>rios
8. Informa<6D><61>es Adicionais
8.1 Fontes de informa<6D><61>o sobre Linux em Portugu<67>s
8.2 Free Translation Project
8.3 LIE-BR
8.4 Vers<72>es de software testadas
9. Observa<76><61>es finais
9.1 Futuras adi<64><69>es a este documento
9.2 Nota de Direitos de Autor
9.3 Garantia (inexist<73>ncia de) e nota de responsabilidade
9.4 Agradecimentos
10. Bibliografia comentada
______________________________________________________________________
1. Introdu<64><75>o
<20> semelhan<61>a de outras l<>nguas faladas na Europa, a L<>ngua Portuguesa
tem caracter<65>sticas especiais, como a utiliza<7A><61>o de caracteres
acentuados, que tornam o seu suporte dif<69>cil, pouco intuitivo ou at<61>
mesmo imposs<73>vel, por parte do software utilizado nos nossos
computadores.
Nossa l<>ngua assume particularidades em cada um dos pa<70>ses em que <20>
falada e mesmo dentro de um <20>nico pa<70>s como o Brasil, de dimens<6E>es
continentais e com influ<6C>ncias culturais de muitos outros povos. Este
documento foi originalmente escrito por um portugu<67>s, mas agora <20>
mantido por um brasileiro. H<> uma mistura de sotaques que deve se
manter por um bom tempo, pois n<>o h<> raz<61>o para alterar o texto
original sen<65>o para fazer de adi<64><69>es e corre<72><65>es, at<61> por respeito ao
primeiro autor. Termos ``estrangeiros'' desnecess<73>rios foram
substitu<74>dos por correspondentes da L<>ngua Portuguesa, preservando-se
apenas os que j<> fazem parte do jarg<72>o da inform<72>tica.
1.1. Finalidades deste HOWTO
Este HOWTO <20> um guia de refer<65>ncia de configura<72><61>o do sistema
operativo Linux e seus programas, teclados e fontes de caracteres,
permitindo sua utiliza<7A><61>o mais confort<72>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<7A><61>o, <20>s vezes <20>
preciso usar algum artif<69>cio que permita contornar o problema, mas o
resultado nem sempre <20> totalmente satisfat<61>rio e em alguns casos chega
ser frustrante. As dificuldades encontradas centram-se essencialmente
em torno de quatro pontos:
<20> a introdu<64><75>o de caracteres acentuados atrav<61>s do teclado, como seja
a escrita de jo~ao em vez da sua forma correcta: jo<6A>o;
<20> a exibi<62><69>o dos mesmos na tela do computador. O suporte resume-se
normalmente <20> correcta localiza<7A><61>o das teclas, nada mais;
<20> o correto tratamento de conven<65><6E>es nacionais de formato de datas,
horas e valores monet<65>rios;
<20> a exibi<62><69>o de mensagens, t<>tulos e demais informa<6D><61>es dos programas
em outra l<>ngua que n<>o o Ingl<67>s, que <20> a l<>ngua original da
maioria desses programas.
Vers<72>es anteriores do Portuguese HOWTO concentravam-se em contornar as
duas primeiras dificuldades mencionadas, de forma a fazer que, dentro
do poss<73>vel, tanto o sistema operativo como os programas nele
utilizados aceitassem os caracteres acentuados e usassem os teclados
com suporte para o Portugu<67>s. Embora esse objetivo ainda seja
perseguido, os problemas de teclado e caracteres j<> t<>m solu<6C><75>es
satisfat<61>rias, pelo menos para as aplica<63><61>es mais usadas. As pr<70>ximas
vers<72>es dever<65>o se dedicar mais aos dois <20>ltimos problemas.
O texto cont<6E>m uma j<> n<>o t<>o breve discuss<73>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<6D>m <20>
discutido, fazendo-se uma compara<72><61>o entre ele e o modo de texto. Por
fim, s<>o fornecidas instru<72><75>es para a configura<72><61>o do sistema
operativo e de diversos aplicativos importantes.
O documento tem se tornado menos slackwariano, incluindo cada vez mais
informa<6D><61>es relativas a outras distribui<75><69>es. Slackware e Caldera
ainda se baseiam na vers<72>o 5 da biblioteca de fun<75><6E>es do sistema para
Linux (libc), enquanto Debian, Red Hat, TurboLinux, S.u.S.E e Stampede
j<> suportam a vers<72>o 6 (que na verdade <20> a glibc vers<72>o 2). Esta nova
vers<72>o da biblioteca est<73> um passo adiante no suporte a
internacionaliza<7A><61>o e localiza<7A><61>o. A partir da vers<72>o 3.2 do
Portuguese-HOWTO as particularidades de cada distribui<75><69>o ser<65>o
destacadas quando houver necessidade. A tentativa de tornar Debian uma
distribui<75><69>o ``de refer<65>ncia'' a partir da vers<72>o 3.0 do HOWTO
fracassou miseravelmente porque o n<>mero de diferen<65>as entre as
distribui<75><69>es <20> muito grande.
A inten<65><6E>o original de n<>o tentar concentrar toda a informa<6D><61>o em um
<20>nico texto, tratando apenas de alguns temas essenciais e fornecendo
refer<65>ncias para outras fontes, tamb<6D>m fracassou. O HOWTO em sua
vers<72>o 3.1 j<> alcan<61>ava 38 p<>ginas impressas em formato A4, o que est<73>
longe de poder ser chamado de sucinto. As principais raz<61>es para tal
gigantismo s<>o a necessidade de discutir diferen<65>as entre as
distribui<75><69>es e a necessidade de fornecer informa<6D><61>es mais detalhadas
sobre aplicativos.
Excetuando-se aspectos muito espec<65>ficos do Linux, como a configura<72><61>o
do modo texto e do kernel, a maioria das informa<6D><61>es contidas neste
documento pode ser aplicada a outros sistemas Unix. Exemplos s<>o as
configura<72><61>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<74><61>es de trabalho Sun foram criados e
s<>o usados em m<>quinas que rodam Solaris. O documento poder<65> um dia se
tornar o ``Unix Portuguese HOWTO'', embora no momento n<>o se tenha
inten<65><6E>o ou meios de faz<61>-lo.
1.2. Onde encontrar a vers<72>o mais atual
Os Linux HOWTO fazem parte do Projeto de Documenta<74><61>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<41>rica, e
podem ser obtidos via FTP an<61>nimo nos seguintes endere<72>os:
<20> <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO> (conhecida
anteriormente como sunsite.unc.edu).
<20> <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO>
Pode-se tamb<6D>m folhear os documentos HOWTO em formato HTML no endere<72>o
<20> <http://metalab.unc.edu/LDP/HOWTO>
Muitas localidades mant<6E>m c<>pias desses documentos. Deve-se dar
prefer<65>ncia ao acesso <20> c<>pia mais pr<70>xima, para economizar o precioso
tr<74>fego internacional na Internet e tamb<6D>m evitar a sobrecarga da
m<>quina metalab.unc.edu. Uma lista completa dessas localidades pode
ser obtida em
<20> <http://metalab.unc.edu/LDP/mirrors.html>
Eis uma lista dos endere<72>os recomendados:
Brasil
<20> <http://linusp.usp.br/LDP/>
<20> <http://www.conectiva.com.br/LDP/>
<20> <http://www.opensite.com.br/linux/>
<20> <http://taubate.valley-bbs.com.br/LDP/>
<20> <http://linux.unicamp.br/docs/>
Portugal
<20> <http://gil.di.uminho.pt/mirrors/LDP/>
<20> <http://deneb.cec.pt/LDP/>
<20> <http://ftp.dei.uc.pt/LDP/>
<20> <http://www.sc.uevora.pt/LDP/>
<20> <http://lwp.ualg.pt/docs/LDP/>
<20> <http://linux.global-one.pt/LDP/>
<20> <http://linux.ispgaya.pt/LDP/>
<20> <http://ae.fe.up.pt/LDP/>
Os Linux HOWTO est<73>o dispon<6F>veis em diversos formatos: texto simples,
PostScript, DVI, HTML, RTF e Lyx. O formato original <20> SGML e os
demais s<>o gerados usando o SGMLtools (maiores informa<6D><61>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<72><61>o do sistema e programas aplicativos
mencionados no texto, podem ser encontrados nos seguintes endere<72>os:
<20> Brasil: <http://linusp.usp.br/~casantos/>
<20> Portugal: <http://linux.fe.up.pt/howto/>
1.4. Como enviar colabora<72><61>es
Toda a formata<74><61>o deste HOWTO, incluindo a numera<72><61>o das se<73><65>es <20>
feita pelo SGMLtools. Por isso, ao enviar sugest<73>es ou corre<72><65>es,
mencione os t<>tulos das se<73><65>es onde as altera<72><61>es sugeridas devem
ocorrer e n<>o os n<>meros. Nunca refira-se a um par<61>grafo como sendo
``o terceiro da se<73><65>o 3.1''; cite as palavras inicias do trecho a ser
modificado.
Envie sugest<73>es e corre<72><65>es via correio eletr<74>nico em texto simples,
opcionalmente com acentua<75><61>o no c<>digo ISO-8859-1. Se o texto n<>o for
composto em um sistema *NIX, certifique-se de usar a codifica<63><61>o
correta. Todas as mensagens recebidas ser<65>o lidas, mas nem todas
receber<65>o resposta direta, devido <20> falta de tempo para tanto.
N<>o envie documentos no formato propriet<65>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<65>o respondidas. Para esse tipo de consulta <20> aconselh<6C>vel
procurar uma lista de discuss<73>o sobre Linux em Portugu<67>s ou acompanhar
os grupos de discuss<73>o de Linux na USENET comp.os.linux.*.
``Flames'' ter<65>o o destino costumeiro: /dev/null.
2. Informa<6D><61>es gerais
2.1. Conjuntos de caracteres
Um conjunto de caracteres <20> definido de acordo com os s<>mbolos
constantes no alfabeto utilizado para escrita em uma ou mais l<>nguas.
A Organiza<7A><61>o Internacional de Normas (International Standards
Organization - ISO) padronizou atrav<61>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<41>rica. Este conjunto de caracteres
tamb<6D>m <20> frequentemente chamado de Latin-1 ou ISO Latin-1.
Um padr<64>o mais recente <20> o Unicode, definido pela norma ISO-10646, que
permite definir caracteres cuja representa<74><61>o interna no computador
utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as
vers<72>es mais recentes de sistemas Unix suportam Unicode (ou pelo menos
seus fabricantes alegam suportar).
Al<41>m dos caracteres alfanum<75>ricos e sinais de acentua<75><61>o, <20> poss<73>vel
tamb<6D>m gerar sinais semigr<67>ficos para desenho de linhas e bordas.
Esses sinais podem aproveitar c<>digos n<>o utilizados pelo conjunto
oficial, tornando-os n<>o port<72>veis.
O Linux foi desenhado internamente de modo a facilitar a sua f<>cil
configura<72><61>o e extens<6E>o em tempo de execu<63><75>o, n<>o constituindo o
tratamento do teclado e fontes de caracteres excep<65><70>o. Ele possui uma
implementa<74><61>o ``n<>vel 1'' do padr<64>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<73> configurado correta<74>
mente, conforme mostrado na se<73><65>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<67>ficas pr<70>prias. No Linux, assim como na maioria
dos sistemas compat<61>veis com Unix, <20> de uso corrente um ambiente
gr<67>fico criado para ser ``multiplataforma'': o X Window System, que
tamb<6D>m foi projetado para suportar diversos conjuntos de caracteres,
idiomas e formatos de teclado, mas ainda n<>o suporta totalmente o
padr<64>o Unicode e sim uma extens<6E>o do ISO-8859.
A rigor o X Window System n<>o <20> uma interface gr<67>fica com o
usu<73>rio, mas a combina<6E><61>o de um protocolo de comunica<63><61>o com
uma interface com programas aplicativos (API) sobre a qual
se constru<72>ram v<>rias interfaces gr<67>ficas. Tanto o proto<74>
colo quanto o Sistema de Janelas definem um conjunto de
mecanismos e n<>o pol<6F>ticas (elementos caracter<65>sticos da
pol<6F>tica de uma Interface Gr<47>fica com o Usu<73>rio s<>o menus,
bot<6F>es e caixas de di<64>logo). O uso do termo ``XWindows'' <20>
incorreto e deve ser evitado, dando-se prefer<65>ncia ao nome
gen<65>rico ``X''.
Existem muitas semelhan<61>as entre os dois ambientes. Ambos se baseiam
em padr<64>es internacionais para defini<6E><69>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<61> o
caracter correspondente. Assim sendo, o pressionamento da seq<65><71>ncia
compose-,-c gerar<61> um c cedilhado.
O tratamento do console <20> feito diretamente pelo sistema operativo e
aplica<63><61>es comuns n<>o se envolvem com o processamento dos c<>digos de
varredura do teclado, recebendo um caracter ou uma seq<65><71>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<63><61>o especial chamada servidor X. O pressionamento de uma tecla
gera uma mensagem (chamada de evento) que <20> passada pelo servidor X <20>
aplica<63><61>o cliente. H<> um programa muito <20>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 <20>
chamada esta<74><61>o de trabalho ou terminal X e a m<>quina onde roda a
aplica<63><61>o (programa cliente) tamb<6D>m <20> chamada de cliente.
Foge ao escopo deste texto a discuss<73>o mais profunda do tratamento de
eventos no X. Para maiores informa<6D><61>es, sugere-se a consulta aos
documentos mencionados na se<73><65>o ``Leituras recomendadas'', mas <20>
importante esclarecer que o evento enviado pelo servidor ao cliente
n<>o cont<6E>m o c<>digo num<75>rico da tecla, chamado keycode na terminologia
do X. Ao inv<6E>s disso, <20> enviado um s<>mbolo, chamado keysymbol ou
keysym, obtido pela consulta a uma tabela de convers<72>o mantida na
mem<65>ria do servidor. Esta tabela pode ser modificada total ou
parcialmente a qualquer momento por meio de requisi<73><69>es definidas no
protocolo X.
Existe um programa chamado xmodmap capaz de ler um arquivo contendo
uma tabela de convers<72>o keycode-->keysym e envi<76>-la, tamb<6D>m na forma
de mensagens no protocolo X, ao servidor. <20> responsabilidade do
cliente e n<>o do servidor interpretar o keysym, o que significa que a
aplica<63><61>o deve saber esperar mais um caracter ao receber uma ``tecla
morta'' para compor uma letra acentuada.
Desde a revis<69>o 5 do X existe na bibliotaca de fun<75><6E>es (Xlib) um
mecanismo sofisticado de suporte <20> gera<72><61>o de caracteres em diversos
c<>digos. A fun<75><6E>o de tratamento de entrada de texto que j<> existia
nas vers<72>es anteriores, chamada XLookupString, entretanto, n<>o
processa as seq<65><71>ncias de acentos e letras de modo transparente <20>s
aplica<63><61>es. Ao inv<6E>s disso foi inclu<6C>do um m<>todo de composi<73><69>o usando
contextos de entrada (input contexts) por meio das fun<75><6E>es
XmbLookupString e XwcLookupString, cujo uso <20> responsabilidade da
aplica<63><61>o -- ou do seu programador, melhor dizendo -- mesmo no caso da
tecla Compose. Isto deve-se so fato de o X Consortium ter chegado <20>
conclus<75>o de que o sistema de mapeamento de teclas n<>o tratava de
forma satisfat<61>ria toda a imensa variedade de l<>nguas escritas nas
v<>rias partes do mundo. Deste modo, decidiu-se que o ``peso'' relativo
<20> gest<73>o do teclado fosse transferido para as aplica<63><61>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<61>es <20> normalmente mais dif<69>cil conseguir acrescentar
suporte <20> gera<72><61>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<65>o totalmente dos recursos do emulador de terminal em
uso quando rodando em uma janela do X. Se for usada uma vers<72>o atual
do xterm ou rxvt o emulador far<61> o tratamento correto dos acentos.
O franc<6E>s Thomas Quinot, cansado de esperar uma solu<6C><75>o melhor para o
problema da acentua<75><61>o no X, resolveu implementar uma modifica<63><61>o para
a Xlib proposta por Andr<64> D. Balsa, que adiciona suporte <20> acentua<75><61>o
direta conforme mostrado na se<73><65>o ``Contornando os limites do X''.
Isso permite usar aplica<63><61>es como xfig ou xedit sem que seja
necess<73>rio alter<65>-las. O truque parece funcionar apenas para
caracteres do c<>digo ISO-8859-1 mas <20> suficiente para o Portugu<67>s e
outras l<>nguas. Como bem observa Balsa, a longo prazo todos os
programas dever<65>o ser modificados para usar os novos recursos do X,
mas como a longo prazo estaremos todos mortos a solu<6C><75>o de curto prazo
de Quinot torna-se bastante atraente...
3. Configura<72><61>o do console (modo texto)
O documento de refer<65>ncia sobre a configura<72><61>o do console do Linux <20> o
Keyboard and Console HOWTO, de Andries Brouwer, que pode ser
encontrado nos reposit<69>rios do LDP. Conforme l<> descrito, a
configura<72><61>o da fonte de caracteres e mapa de teclado <20> feita usando o
pacote KBD, encontrado em todas as distribui<75><69>es de Linux.
3.1. Mapas de teclado
Cada tecla do PC possui um c<>digo num<75>rico. Ao pressionarmos uma delas
o processador controlador do teclado envia ao computador esse c<>digo
de varredura, tamb<6D>m conhecido como scancode, junto com um sinal de
que a tecla foi pressionada ou solta. As seq<65><71>ncias de eventos s<>o
ent<6E>o processadas pelo driver de teclado e armazenadas em uma fila de
caracteres que <20> lida pelas aplica<63><61>es por meio da chamada de fun<75><6E>es
do sistema operativo.
Um mapa de teclado <20> um arquivo de texto que estabelace as
correspond<6E>ncias entre o scancode de tecla e o caracter (ou seq<65><71>ncia
de caracteres) a gerar quando ela for pressionada, chamado keycode.
Por exemplo:
# atribui<75><69>o da tecla '-' do teclado num<75>rico <20> tecla com c<>digo 74
keycode 74 = KP_Subtract
# atribui<75><69>o da tecla '4' do teclado num<75>rico <20> 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<41>m das teclas alfab<61>ticas, num<75>ricas e de s<>mbolos, existem outras
chamadas modificadoras que permitem gerar c<>digos que n<>o correspondem
a nenhum sinal gr<67>fico: Shift Control Alt e Meta. Esta <20>ltima
normalmente n<>o <20> encontrada em teclados de PCs, apenas em esta<74><61>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<6D>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 `<60>'.
3.2. Mapas de tradu<64><75>o de tela
Um mapa de tradu<64><75>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<65>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 <20> imagem de um c-cedilhado.
Este mapeamento <20> necess<73>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<72><61>o das fontes utilizadas em modo de
texto. O comando a seguir, por exemplo, ir<69> carregar uma fonte
com o conjunto Latin-1:
setfont lat1u-16.psf
Showfont
mostra todos os caracteres existentes na fonte que est<73>
atualmente em uso no console. O X tamb<6D>m tem um comanto chamado
showfont, que serve para mostrar as caracter<65>sticas de uma
determinada fonte, mas n<>o os caracteres em si. Para esta <20>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<61> um erro ``GIO_SCRNMAP: Invalid argument'', mas
n<>o provocar<61> nenhum dano.
Mapscr
Permite carregar um mapa de tradu<64><75>o de tela. Suponhamos que
exista o arquivo /etc/portugal.trad. Se executarmos o comando
mapscrn /etc/portugal.trad
ent<6E>o a partir deste momento as tradu<64><75>es l<> definidas ser<65>o
usadas.
Loadunimap
Carrega um mapa de tradu<64><75>o de Unicode para a fonte de tela. O
mapa padr<64>o, chamado ``def.uni'' considera que estamos usando a
fonte normal do IBM-PC. Este comando n<>o <20> necess<73>rio quando
usamos uma fonte com caracteres definidos no padr<64>o Unicode,
pois o programa setfont carrega automaticamente a tabela de
mapeamento adequada. O comando a seguir carregar<61> o mapa de
tradu<64><75>o para as fontes latin-1:
loadunimap lat1
3.4. Carregamento de uma fonte de caracteres
O pacote KBD cont<6E>m dois tipos de fontes com codifica<63><61>o latin-1:
<20> as que j<> possuem uma tabela de mapeamento unicode, carregada
automaticamente pelo programa setfont. Estas fontes t<>m nomes
lat1u-*.psf;
<20> as que n<>o possuem tabela de mapeamento. Neste caso <20> preciso
carregar uma com o programa loadunimap. Estas t<>m nomes lat1-*.psf
(o ``u'' indica Unicode).
Nas vers<72>es mais novas do KBD os arquivos s<>o comprimidos com gzip. <20>
preciso carregar uma fonte que tenha os caractres latinos acentuados
no padr<64>o ISO 8859-1 e tamb<6D>m os s<>mbolos semigr<67>ficos. As fontes de
nome iso01.* n<>o possuem esses s<>mbolos. A fonte mais recomendada <20> a
lat1u-16.psf.
As vers<72>es mais antigas do pacote KBD mantinham essas fontes no
diret<65>rio /usr/lib/kbd/consolefonts, que foi trocado depois da vers<72>o
0.92 por /usr/share/consolefonts. Dependendo da sua distribui<75><69>o e do
quanto ela esteja atualizada o diret<65>rio poder<65> 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 <20> totalmente desnecess<73>rio
# com a fonte lat1u-16.psf.
# loadunimap lat1u
# Remova o coment<6E>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 <20> 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 <20> Windows!
3.4.3. Red Hat
Edite o arquivo /etc/sysconfig/i18n e veja se cont<6E>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<6F> selecionar a l<>ngua correta durante a instala<6C><61>o n<>o h<> nada
mais a fazer. A configura<72><61>o <20> 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<6D>a com
``FONT='' (linha 64, em minha m<>quina com S.u.S.E. ver<65>o 5.6) e
coloque
FONT=lat1u-16.psf
Edite os scripts boot.setup e single contidos no diret<65>rio /etc/rc.d.
Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou
ponha no seu in<69>cio um ``#'' para deix<69>-la como coment<6E>rio. Veja
coment<6E>rios sobre este comando na se<73><65>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 <20> necess<73>rio carregar o mapa de teclado adequado. At<41> a
vers<72>o 0.92 do pacote KBD esses mapas ficavam no diret<65>rio
/usr/lib/kbd/keytables passando mais tarde para /usr/share/keytables.
Dependendo da distribui<75><69>o voc<6F> ter<65> um diret<65>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<6F>veis no diret<65>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<66>a o seguinte:
<20> copie os arquivos com os mapas de teclado fornecidos (veja a se<73><65>o
``Ficheiros necess<73>rios'') para o diret<65>rio /usr/share/keytables/.
N<>o <20> necess<73>rio descomprimi-los;
<20> copie o mapa correspondente ao seu teclado para o arquivo
/etc/kbd/default.map.gz.
<20> 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<73><65>o ``Ficheiros necess<73>rios'')
para o diret<65>rio /usr/lib/kbd/keytables/ (ou
/usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2). N<>o <20>
necess<73>rio descomprimi-los.
Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a
usar na vari<72>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<67>s. Se voc<6F>
selecionou o teclado correto durante a instala<6C><61>o, n<>o h<> mais nada a
fazer. Caso contr<74>rio, edite o arquivo /etc/sysconfig/keyboard e
coloque
KEYTABLE="nome"
Onde ``nome'' <20> br-abnt2, pt ou us-acentos caso o desenho do seu
teclado seja ABNT-2, portugu<67>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<73><65>o ``Ficheiros necess<73>rios'')
para o diret<65>rio /usr/lib/kbd/keytables/. N<>o <20> necess<73>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<61>sculas
e min<69>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<72><61>es
foi mal sucedida.
Se ao inv<6E>s de c-cedilha min<69>sculo aparecer um mai<61>sculo <20> prov<6F>vel
que uma tabela de mapeamento Unicode incorreta esteja a ser carregada.
Este problema ocorrer<65> na distribui<75><69>o S.u.S.E. se n<>o se fizerem as
altera<72><61>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 <20> quando queremos usar uma fonte que n<>o
segue a codifica<63><61>o ISO Latin-1 (<28> o caso da fonte padr<64>o do console
do PC). Ter<65>amos ent<6E>o de convencer a tela a mostrar os caracteres
certos em cada caso.
Poder<65>amos recorrer ao comando mapscrn. O arquivo com a tabela de
tradu<64><75>o teria no entanto de ser criado por n<>s, seguindo um processo
moroso de tentativa e erro at<61> encontrar o caracter cuja imagem
desej<65>vamos. Ou, de uma forma mais f<>cil, poder<65>amos usar o comando
showfont.
Se usarmos a fonte de caracteres correta, o uso deste <20>ltimo comando
ser<65> desnecess<73>rio. <20> at<61> recomend<6E>vel que n<>o se use tal recurso,
pois embora ele permita criar uma tabela de caracteres
``personalizada'' em um computador, ser<65> dif<69>cil que um documento
acentuado produzido nessa m<>quina possa ser lido em outra que n<>o
tenha a mesma configura<72><61>o.
4. Biblioteca de fun<75><6E>es libc e aplicativos GNU
A biblioteca padr<64>o de fun<75><6E>es do Linux suporta Internacionaliza<7A><61>o e
Localiza<7A><61>o segundo o padr<64>o POSIX (Portable Operating System
Interface). Trata-se de uma norma estabelecida pelo IEEE (Institute
of Electrical and Electronics Engineers) para intercomunica<63><61>o entre
diferentes sistemas operativos. Existe tamb<6D>m um padr<64>o estabelecido
pelo ANSI (American National Standards Institute) para a linguagem de
programa<6D><61>o C que permite escrever programas com suporte
internacional.
4.1. Configurando o suporte internacional
Resumidamente, podemos dizer que as fun<75><6E>es que tratam informa<6D><61>es
dependentes da l<>ngua ou do pa<70>s podem ter seu comportamento
modificado, bastando para tanto estabelecer algumas vari<72>veis de
ambiente. E que fun<75><6E>es s<>o essas? Podemos citar as de formata<74><61>o de
datas, valores monet<65>rios e mensagens de erro do sistema. Se voc<6F> n<>o
sabe o que <20> uma vari<72>vel de ambiente, sugiro que leia o manual com o
comando
man environ
O padr<64>o POSIX permite usar diversas vari<72>veis de configura<72><61>o, cada
uma delas definindo o tratamento dado a um tipo de informa<6D><61>o, a saber
LC_COLLATE
Define regras para compara<72><61>o entre caracteres no alfabeto
local. Por exemplo, a letra `<60>' deve ser tratada como id<69>ntica
ao `a' no Portugu<67>s quando ordenamos alfabeticamente.
LC_CTYPE
Define regras para compara<72><61>o entre caracteres mai<61>sculos e
min<69>sculos. Se estivermos trabalhando com o c<>digo ASCII,
sabemos que o c<>digo num<75>rico de uma letra min<69>scula <20> 32 a mais
do que a mai<61>scula correspondente, mas para uma letra acentuada
esta regra n<>o <20> v<>lida!
LC_MONETARY
Muda o comportamento das fun<75><6E>es de formata<74><61>o de valores
monet<65>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<65>o apresentadas e
como <20> uma resposta afirmativa ou negativa (S/N).
LC_NUMERIC
Estabelece o comportamento das fun<75><6E>es de leitura/escrita de
valores num<75>ricos permitindo, por exemplo que usemos a v<>rgula
decimal.
LC_TIME
Define a formata<74><61>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 <20>tem espec<65>fico.
LANG
Define de uma s<> vez todas as categorias, se LC_ALL n<>o estiver
definida. Tamb<6D>m <20> usada pelo comando man para compor os
caminhos pelos quais ele procurar<61> as p<>ginas do manual. Veja as
observa<76><61>es a respeito desta vari<72>vel nas se<73><65>es ``Locale'',
``Locale'' e ``Locale''.
Maiores informa<6D><61>es podem ser obtidas no manual do sistema com o
comando
man 7 locale
O `7' no comando anterior <20> necess<73>rio para evitar confus<75>o com uma
fun<75><6E>o hom<6F>nima da linguagem Perl. Note que as configura<72><61>es acima
afetam, em princ<6E>pio, apenas as fun<75><6E>es dispon<6F>veis na biblioteca de
fun<75><6E>es da linguagem C. Na pr<70>tica, todos os programas que rodam em
Linux usam aquela biblioteca, mas o sistema operativo n<>o prov<6F>,
cat<61>logos de mensagens em diversas l<>nguas para todos os programas.
A identifica<63><61>o da l<>ngua e do local <20> feita por dois c<>digos de duas
letras, separados por um sinal ``_''. Se omitirmos o c<>digo de pa<70>s,
assume-se o pa<70>s padr<64>o para a l<>ngua informada, mas deve haver um
cat<61>logo correspondente. Deste modo, o c<>digo ``pt_PT'' significa
Portugu<67>s de Portugal, enquanto ``pt_BR'' significa Portugu<67>s do
Brasil. Escolher uma combina<6E><61>o l<>ngua/local basta ent<6E>o colocar em
seu arquivo /etc/profile uma linha contendo
LC_ALL="pt_PT"
export LC_ALL
Usu<73>rios brasileiros devem usar ``pt_BR'' ao inv<6E>s de ``pt_PT''. Teste
o resultado com os comandos a seguir (/inexistente <20> o nome de um
arquivo que n<>o existe):
echo <20><><EFBFBD><EFBFBD><EFBFBD> | tr '[:upper:]' '[:lower:]'
tar tf /inexistente
ls -l /
date
cal 1 1999
O resultado do primeiro dever<65> ser ``<60><><EFBFBD><EFBFBD><EFBFBD>''. Os comandos tar e ls
devem retornar mensagens em Portugu<67>s e cal deve mostrar um calend<6E>rio
de janeiro de 1999, com do se te qu qu se s<> no cabe<62>alho dos dias da
semana.
Na distribui<75><69>o Debian, certifique-se de ter instalado o pacote
``locales'', que pertence ao grupo ``admin''. O nome do arquivo que
cont<6E>m o pacote (na vers<72>o 2.0 da distribui<75><69>o) <20> locales_2.0.7t-1.deb
e em meu CD est<73> no diret<65>rio debian/main/binary-i386/admin.
4.2. Problemas com a libc 5
At<41> meados de 1997 todas as distribui<75><69>es de Linux usavam a mesma
biblioteca libc, que estava na vers<72>o 5, desenvolvida a partir de uma
vers<72>o mais antiga da libc do projeto GNU. Esta biblioteca possuia
suporte muito limitado <20> internacionaliza<7A><61>o e normalmente nenhum dos
cat<61>logos de locais era inclu<6C>do na distribui<75><69>o, ficando o ingl<67>s
como l<>ngua padr<64>o.
A vers<72>o 6 da libc do Linux baseia-se na vers<72>o 2 da libc do projeto
GNU. O suporte <20> internacionaliza<7A><61>o foi muito melhorado, al<61>m de
incluir outros atributos que n<>o interessam para os fins deste HOWTO.
Se sua distribui<75><69>o for a Debian vers<72>o 2, Red Hat vers<72>o 5 ou
qualquer outra que use a nova libc, ent<6E>o n<>o h<> mais nada a fazer
al<61>m do descrito na se<73><65>o anterior.
Mas se voc<6F> usa uma distribui<75><69>o ainda baseada na libc 5 (Slackware,
Caldera 1.x ou uma vers<72>o mais antiga de Debian ou Red Hat) <20> preciso
instalar a cole<6C><65>o de locais. N<>o tente copiar a cole<6C><65>o de uma
distribui<75><69>o mais recente, pois os formatos dos arquivos s<>o
incompat<61>veis. Pegue na p<>gina do Portuguese HOWTO o arquivo locales-
pt.tgz. Para instal<61>-lo na distribui<75><69>o Slackware, basta (como usu<73>rio
root) usar o comando
installpkg locales-pt.tgz
e para outras distribui<75><69>es use o comando
tar xzf locales-pt.tgz -C /
Verifique se h<> dois subdiret<65>rios do /usr/share/locale chamados pt_BR
e pt_PT. Basta ent<6E>o configurar a vari<72>vel de ambiente LC_ALL, como j<>
descrito.
5. Configura<72><61>o do X
Quando o servidor X est<73> ativo, ele coloca o teclado do computador em
um modo de opera<72><61>o chamado raw (cru), em oposi<73><69>o ao modo normal,
chamado cooked (isto mesmo: cozido). No modo raw o sistema operativo
n<>o processa seq<65><71>ncias acento-letra. O servidor X <20> uma daquelas
raras aplica<63><61>es que, por dever de of<6F>cio, tem que tratar o teclado
``em baixo n<>vel''.
O X vem equipado com um utilit<69>rio destinado <20> configura<72><61>o do
teclado, chamado xmodmap, que cumpre uma fun<75><6E>o correspondente <20> do
comando loadkeys, ou seja, l<> um arquivo de mapa de teclado do X,
expecificando as equival<61>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<74>rio do loadkeys, o xmodmap n<>o possui um
diret<65>rio padr<64>o onde o arquivo <20> procurado.
A configura<72><61>o do X n<>o interfere de forma alguma com a configura<72><61>o
do modo de texto. De facto, <20> poss<73>vel ter o seu X bem configurado, e
no entanto n<>o ter realizado qualquer tipo de configura<72><61>o ao modo de
texto, e vice-versa. Outro ponto importante de se observar <20> que os
c<>digos num<75>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<72>es 3.2 e posteriores do XFree86 permitam definir dead-keys,
mas o seu tratamento <20> responsabilidade da aplica<63><61>o, conforme visto
na se<73><65>o ``Modo texto versus Sistema de Janelas X''. H<> modos de
contornar esta limita<74><61>o e tornar o tratamento de dead-keys
transparente <20>s aplica<63><61>es, conforme mostrado na se<73><65>o ``Contornando
os limites do X''.
Dividimos a configura<72><61>o em duas partes: Uma que deve ser feita antes
do login do usu<73>rio e outra depois.
5.1. Configura<72><61>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<72><61>o do teclado basta
copiar o arquivo adequado para o diret<65>rio /usr/X11R6/lib/X11/xinit,
onde normalmente ficam os arquivos de in<69>cio da se<73><65>o de trabalho no
X. Na distribui<75><69>o Slackware esse diret<65>rio <20> um link simb<6D>lico para
/var/X11R6/lib/xinit e na Debian e na Red Hat para /etc/X11/xinit.
Nas distribui<75><69>es Slackware e Red Hat, verifique se no referido
diret<65>rio existe um arquivo chamado .Xmodmap. Se existir, copie o
Xmodmap.<alguma-coisa> para ele, ou fa<66>a um link. Normalmente o
arquivo de configura<72><61>o xinitrc possui os comandos para carreg<65>-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<75><69>o Debian o mapa de teclado padr<64>o do X <20>
/etc/X11/Xmodmap, basta copiar o mapa desejado para aquele arquivo.
Ele ser<65> carregado pelo xinitrc, que por sua vez <20> um link simb<6D>lico
para /etc/X11/Xsession, sempre que iniciar a se<73><65>o de trabalho do
usu<73>rio.
5.2. Configura<72><61>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 <20> feito pelo X
Display Manager (xdm). Como o xdm faz o login antes de iniciar a se<73><65>o
de trabalho, o mapa de teclado n<>o ser<65> carregado, o que pode criar
problemas se o usu<73>rio usa caracteres como ``['' ou ``]'' em sua
senha, pois nos teclados ABNT-2 e portugu<67>s esses s<>mbolos s<>o gerados
por teclas cujos c<>digos num<75>ricos n<>o s<>o os mesmos do teclado
americano.
<20> preciso fazer uma pequena altera<72><61>o no arquivo de configura<72><61>o
Xsetup_0. Esse arquivo deve estar no diret<65>rio
/usr/X11R6/lib/X11/xdm, que na Slackware <20> um link simb<6D>lico para
/var/X11R6/lib/xdm e /etc/X11/xdm na Debian e -- sujeito a confirma<6D><61>o
-- RedHat. Eis o conte<74>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<75><69>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<73>rio tamb<6D>m for feito sempre via
xdm, n<>o <20> necess<73>rio mexer no xinitrc, como mostrado na se<73><65>o
anterior, j<> que o mapa de teclado ser<65> carregado antes do in<69>cio na
se<73><65>o do usu<73>rio.
5.3. Compose
Uma das coisas mais importantes a definir quando vamos utilizar
acentua<75><61>o por meio de dead-keys <20> o conjunto de regras de composi<73><69>o.
Essas regras determinam, por exemplo que a composi<73><69>o do caracter
' com a letra e gerar<61> um <20>.
Ao contr<74>rio do console, no qual podemos definir as regras de
composi<73><69>o no pr<70>prio mapa de teclado, no X essas regras s<>o colocadas
no arquivo /usr/X11R6/lib/X11/locale/???/Compose, onde ??? <20> a
codifica<63><61>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) <20> conveniente definirmos uma nova
regra de composi<73><69>o, permitindo que o <20> seja gerado pela seq<65><71>ncia 'C.
Se n<>o fizermos isso, seremos obrigados a digitar <dead_cedilla-C>,
sedo o dead_cedilla produzido pela combina<6E><61>o AltGR-=, o que n<>o <20>
nada confort<72>vel. Al<41>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<72><61>o de caracteres:
<20> C-cedilha: tecla <20> ou seq<65><71>ncia <acento-agudo>-C
<20> Ap<41>strofo: tecla ' ou seq<65><71>ncias <acento-agudo>-<acento-agudo> e
<acento-agudo>-<espa<70>o>
<20> Acento grave: seq<65><71>ncias <acento-grave>-<acento-grave> e <acento-
grave>-<espa<70>o>
<20> Aspas: tecla " ou seq<65><71>ncia <trema>-<trema>
<20> Trema: seq<65><71>ncia <trema>-<espa<70>o>
<20> Til: seq<65><71>ncias <til>-<espa<70>o> e <til>-<til>
<20> Circumflexo: seq<65><71>ncias <circumflexo>-<espa<70>o> e
<circumflexo>-<circumflexo>
Para incluirmos as novas regras, basta aplicar uma altera<72><61>o <20>
defini<6E><69>o original. O arquivo Compose.patch pode ser obtido via WWW na
p<>gina do Portuguese HOWTO. Para aplicar a atualiza<7A><61>o, copie-o para o
diret<65>rio /usr/X11R6/lib/X11/locale/iso8859-1/, fa<66>a uma c<>pia de
reserva do Compose original e invoque o utilit<69>rio patch:
cp -p Compose Compose.backup
patch < Compose.patch
Caso voc<6F> prefira n<>o aplicar o ``patch'', um arquivo Compose pronto
tamb<6D>m <20> fornecido. Lembre-se de fazer c<>pia do original antes de
substitu<74>-lo!
5.4. Locale
Para os usu<73>rios brasileiros, pode haver mais uma altera<72><61>o a fazer no
X. Conforme vimos na se<73><65>o ``Biblioteca libc'', uma vari<72>vel de
ambiente (LANG ou LC_ALL) configura o suporte internacional existente
na biblioteca de fun<75><6E>es padr<64>o do sistema (libc). A biblioteca de
fun<75><6E>es do X (Xlib) usa a vari<72>vel LANG para identificar a l<>ngua em
uso mas at<61> a revis<69>o 6.3, na qual <20> baseado o XFree86, n<>o era
inclu<6C>da a combina<6E><61>o ``pt_BR'', correspondente a Portugu<67>s/Brasil.
Como resultado, cada vez que executarmos um aplicativo X com LC_ALL
definido como ``pt_BR'' ele emitir<69> a mensagem ``Warning: locale not
supported by Xlib, locale set to C''.
Para incluir o local pt_BR no X11R6.3 basta alterar tr<74>s arquivos
existentes no diret<65>rio /usr/X11R6/lib/X11/locale. Pegue o arquivo
Xlocale.patch via WWW na p<>gina do Portuguese HOWTO. Para aplicar a
atualiza<7A><61>o, copie-o para o diret<65>rio /usr/X11R6/lib/X11/locale, fa<66>a
uma c<>pia de reserva dos arquivos a serem alterados e invoque o
utilit<69>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<6F> prefira n<>o aplicar o ``patch'', arquivos prontos tamb<6D>m s<>o
fornecidos. Lembre-se de fazer c<>pias dos originais antes de
substitu<74>-los!
Em setembro de 1998 o fix-2 da revis<69>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<75><6E>es de tratamento de input
contexts da Xlib que provoca viola<6C><61>es de acesso <20> mem<65>ria. Uma das
aplica<63><61>es afetadas <20> o processador de textos LyX. Uma corre<72><65>o
provavelmente ser<65> inclu<6C>da no fix-4. O X11R6.4 dever<65> ser a base para
a vers<72>o 4 do XFree86.
5.5. Gera<72><61>o de mapas com o XKeyCaps
O programa XKeyCaps, criado por Jamie Zawinski <20> uma interface gr<67>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<72>o 2.43, j<> incoropra tamb<6D>m suporte para o desenho
brasileiro (ABNT2), uma contribui<75><69>o de Andre Gerhard.
5.6. Contornando os limites do X
Conforme foi explicado na se<73><65>o ``Modo texto versus Sistema de Janelas
X'', o tratamento de acentos deve ser feito pela aplica<63><61>o, mas ainda
h<> muitos programas que n<>o levam isto em considera<72><61>o, tais como
Netscape Navigator/Communicator e Nedit. Como n<>o <20> poss<73>vel modificar
muitos deles, <20> preciso encontrar outro tipo de solu<6C><75>o.
5.6.1. Altera<72><61>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<75><6E>es chamado
``liga<67><61>o din<69>mica'' (dynamic binding). Deste modo, podemos modificar
o comportamento de um programa alterando uma dessas bibliotecas.
Maiores informa<6D><61>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<72><61>o para a biblioteca de fun<75><6E>es do X
(Xlib) introduzindo o tratamento de acentos na fun<75><6E>o XLookupString,
Tudo que se tem a fazer <20> substituir o arquivo contendo esta bib<69>
lioteca por outro, que pode ser obtido via internet no endere<72>o
<http://web.fdn.fr/~tquinot/dead-keys.en.html>
Existem duas vers<72>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<6F> 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 <20> libX11-XF3.3.1-TS.tar.gz. Se n<>o aparecer, seu
sistema n<>o suporta threads e o arquivo a obter <20>
libX11-XF3.3.1.tar.gz. Tendo obtido o arquivo, copie-o para um
diret<65>rio tempor<6F>rio e extraia seu conte<74>do. Mova o arquivo
/usr/X11R6/libX11.so.6.1 para outro diret<65>rio, para preserv<72>-lo. N<>o <20>
suficiente renome<6D>-lo! Remova-o para um diret<65>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<73>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
<20> aconselh<6C>vel que a opera<72><61>o seja realizada quando nenhuma aplica<63><61>o
X estiver rodando. A seguir, edite o arquivo de configura<72><61>o do
servidor X, chamado XF86Config. Este arquivo fica no diret<65>rio /etc
(Slackware) ou /etc/X11 (Debian, Red Hat). Procure a se<73><65>o
``Keyboard'' e inclua a op<6F><70>o ``XkbDisable'', conforme mostrado a
seguir:
Section "Keyboard"
Protocol "Standard"
XkbDisable
EndSection
A op<6F><70>o XkbDisable inabilita a extens<6E>o XKEYBOARD do servidor X, o que
neste caso serve para sinalizar <20> fun<75><6E>o XLookupString que ela deve
tratar os acentos. Se quisermos voltar ao comportamento normal, basta
retirar a op<6F><70>o do XF86Config.
Configure o mapa de teclado do X conforme explicado nas se<73><65>es
anteriores deste documento. Para testar o resultado, rode o programa
xedit e digite alguns caracteres acentuados.
5.6.2. Altera<72><61>o no kernel do Linux
Esta se<73><65>o <20> baseada em contribui<75><69>o enviada por Bruno Bar<61>
beri Gnecco e na documenta<74><61>o do diacrd. Podem haver ainda
alguns erros e se algu<67>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<72><61>o do teclado, chamados raw e cooked. Estes modos de
opera<72><61>o podem ser mudados com o programa kbd_mode, integrante do
pacote kbd, o que n<>o <20> recomend<6E>vel fazer a n<>o ser para restaurar o
estado do console ap<61>s um desastre com o servidor X, por exemplo. No
modo raw o kernel n<>o processa os diacr<63>ticos (acentos).
Cedric Adjih criou uma altera<72><61>o para o kernel que permitia tratar os
acentos mesmo em modo raw, inicialmente voltada para o teclado de
desenho franc<6E>s. En<45>as Queiroz, Andr<64> D. Balsa e Claudemir Todo Bom
fizeram melhorias e o adaptaram para os teclados internacional,
portugu<67>s e ABNT. O tratemanto de acentos <20> feito parte pelo kernel,
parte por um processo que roda em retaguarda (daemon) chamado diacrd,
conforme descrito a seguir:
<20> Uma modifica<63><61>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.
<20> Os dados que o kernel grava no /dev/rawkbd s<>o lidos pelo programa
diacrd, que processa as seq<65><71>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.
<20> O kernel l<> no /dev/rawkbd os c<>digos gravados pelo diacrd e os
passa <20> aplica<63><61>o, que no caso <20> o servidor X.
<20> O servidor X mapeia os c<>digos de varredura para caracteres. Um
mapa de teclado especial permite ent<6E>o gerar as letras acentuadas.
O diacrd pode ser obtido via FTP an<61>nimo no endere<72>o
<ftp://metalab.unc.edu/pub/Linux/system/keyboards>
H<> vers<72>es diferentes, de acordo com o tipo de teclado e, pelo menos
por enquanto, n<>o se pode reconfigur<75>-lo sem recompilar. Para fazer a
instala<6C><61>o, de acordo com o arquivo ``README'', deve-se fazer o
seguinte (pelo usu<73>rio root):
<20> Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia
seu conte<74>do, o que dever<65> criar um diret<65>rio chamado
diacrd-<vers<72>o>.
<20> Edite o arquivo diacrd.c e remova os coment<6E>rios desejados, de
acordo com suas prefer<65>ncias. Pode-se incluir capacidade de rodar o
programa xmodmap e ejetar o CD-ROM sob controle do pressionamento
de uma combina<6E><61>o de teclas.
<20> Aplique a modifica<63><61>o no kernel. Para isto, execute o comando
``make patch-usr-src''.
<20> Crie o dispositivo /dev/rawkbd executando o comando
``make rawkbd''.
<20> Compile o diacrd e instale-o executando os comandos ``make'' e
``make install''.
<20> Compile e instale o kernel, com os comandos
cd /usr/src/linux
make config
make zlilo
Para maiores informa<6D><61>es sobre compila<6C><61>o/instala<6C><61>o do kernel, leia o
Kernel-HOWTO, dispon<6F>vel via Internet nos reposit<69>rios do LDP men<65>
cionados na se<73><65>o ``Onde encontrar a vers<72>o mais atual''.
<20> 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<73><65>o ``Configura<72><61>o do console'' como carregar um mapa com
suporte <20> acentua<75><61>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.
<20> Substitua o arquivo /usr/X11R6/lib/X11/xkb/keycodes/xfree86 pelo
arquivo fornecido junto com o diacrd.
<20> 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<72><61>o de acentos funcionar, <20> preciso tornar permanentes as
altera<72><61>es necess<73>rias. Pode-se faz<61>-lo incluindo a carga do diacrd no
arquivo /etc/rc.d/rc.local (Slackware).
Se algum dos leitores tiver criado um script de ativa<76><61>o do
diacrd para a distribui<75><69>o Debian ou Red Hat, por favor
envie-o para que seja inclu<6C>do aqui.
Mais informa<6D><61>es sobre o diacrd podem ser encontradas no ``Dead keys
Mini-HOWTO'' de Claudemir Todo Bom, dispon<6F>vel em <http://linux.uni<6E>
camp.br/docs/diversos/deadkeys.html>.
5.6.3. Compara<72><61>o entre as duas solu<6C><75>es
Em termos de resultados pr<70>ticos, a Xlib modificada e o diacrd s<>o
equivalentes. H<> por<6F>m algumas diferen<65>as entre as duas solu<6C><75>es que
merecem aten<65><6E>o.
Diacrd exige uma altera<72><61>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<6E>ncia de um processo de usu<73>rio (o daemon kerneld)
<20> uma desvantagem, pois se esse programa deixar de funcionar perde-se
o suporte <20> acentua<75><61>o no X. Trata-se de uma solu<6C><75>o ainda em
desenvolvimento e, segundo o conte<74>do da documenta<74><61>o que o acompanha,
o ideal seria que todo o tratamento fosse feito pelo kernel, sem
depender de outro programa.
At<41> o momento da publica<63><61>o deste HOWTO, o diacrd ainda n<>o era
compat<61>vel com a vers<72>o 2.2 do kernel do Linux.
A solu<6C><75>o via Xlib <20>, pelo menos em teoria, totalmente transparente <20>s
aplica<63><61>es e permite reconfigura<72><61>o em tempo de execu<63><75>o, bastando
alterar o mapa de teclado do X e as regras de composi<73><69>o. J<> o diacrd
precisa ser recompilado se quisermos trocar o tipo de teclado, mas <20>
poss<73>vel que novas vers<72>es incorporem algum recurso de reconfigura<72><61>o.
O diacrd s<> funciona no teclado do pr<70>prio computador. Se quisermos
usar um display remoto, seja um terminal X, seja um outro computador,
n<>o teremos suporte <20> acentua<75><61>o. A troca da Xlib, por outro lado,
enquadra-se plenamente na filosofia do X de que o servidor prov<6F>
mecanismo, deixando a cargo da aplica<63><61>o a defini<6E><69>o de pol<6F>ticas.
Exemplo da vantagem deste paradigma <20> poder usar as t<>cnicas descritas
na se<73><65>o ``Configura<72><61>o do X'' em outros sistemas operativos e com
terminais X.
A solu<6C><75>o via Xlib parece-me mais ``limpa'' e <20> minha predileta, mas,
como sempre, fica a crit<69>rio do usu<73>rio ou do administrador do sistema
qual alternativa escolher. De qualquer modo, sempre <20> bom lembrar qua
ambas as solu<6C><75>es s<>o remendos. Considerando-se a r<>pida evolu<6C><75>o que
est<73> 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<65> mais necess<73>rio.
6. Configura<72><61>o dos v<>rios programas
6.1. Aplicativos
A maioria das aplica<63><61>es que rodam no Unix usa algum tipo de arquivo
de configura<72><61>o que o usu<73>rio coloca em seu diret<65>rio de trabalho
(home) e cujo nome normalmente <20> .alguma-coisarc. Tanto quanto
poss<73>vel, tentei evitar que isso fosse necess<73>rio, pois al<61>m de dar
mais trabalho ao usu<73>rio (e ao administrador da rede ;-) pode
dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o
diret<65>rio home compartilhado entre um servidor Alpha rodando DEC UNIX
com os PCs rodando Linux via NFS (at<61> a maior parte do Linux est<73>
instalada no Alpha, os PCs s<> t<>m a parti<74><69>o raiz e uma <20>rea de swap).
Os arquivos podem necessitar algum ajuste dependendo da plataforma e
nem todos os programas possuem flexibilidade bastante para isso.
Uma op<6F><70>o que muitos programas tamb<6D>m oferecem <20> especificar em uma
vari<72>vel de ambiente o nome do arquivo de configura<72><61>o ou o uso de
arquivos padr<64>o que normalmente ficam em um diret<65>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<65>rio
``HOME'' do usu<73>rio caso n<>o exista uma vari<72>vel de ambiente INPUTRC
contendo o caminho para um arquivo de configura<72><61>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 <20> criar um arquivo .inputrc no diret<65>rio home do
usu<73>rio com o conte<74>do acima, mas <20> muito dif<69>cil manter atualizados
os arquivos de todos os usu<73>rios, principalmente quando eles s<>o
muitos. Um inputrc mais completo pode ser obtido via WWW na p<>gina do
Portuguese HOWTO. Ele cont<6E>m op<6F><70>es para v<>rios tipos de terminal e
permite usar as teclas de movimento de cursor para percorrer o
hist<73>rico de comandos (setas para cima e para baixo); ir para o
primeiro e para o <20>ltimo comandos do hist<73>rico (teclas PageUp e Page<67>
Down); posicionar o cursor na linha (setas para a esquerda e direita)
e posicionar o cursor no in<69>cio e no fim da linha (teclas Home e End).
Para maiores informa<6D><61>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<65>rio do usu<73>rio, contendo as seguintes linhas:
(set-input-mode nil nil 1)
(standard-display-european t)
(require 'iso-syntax)
Para tornar esta configura<72><61>o global, na distribui<75><69>o Slackware
coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el.
Na distribui<75><69>o Debian o emacs executa todos os scripts contidos no
diret<65>rio /etc/emacs/site-start.d ao ser carregado. Tudo que se tem a
fazer <20> 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 <20>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<72><61>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<65>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<65>rio /etc/emacs/site-start.d.
Certifique-se de estar usando a vers<72>o 24-out-1998 ou mais recente do
arquivo de mapa de teclado para o X, pois ela possui uma corre<72><65>o no
tratamento das teclas modificadoras Alt e Meta, que s<>o muito usadas
pelo Emacs.
6.1.3. flex
Especifique a op<6F><70>o -8 se o parser a gerar necessitar de ler dados de
8 bit.
6.1.4. Fortune
Fortune <20> aquele programa que toda vez que <20> invocado apresenta uma
pequena mensagem, geralmente bem humorada. Ele <20> inspirado nos
biscoitos da fortuna chineses (em ingl<67>s fortune cookies, da<64> o nome).
Eis algumas mensagens t<>picas:
dROGA!!oNDE ESTA O cAPSLOCK??
Mouse n<>o encontrado, bater no gato? (S/N)
Que fio <20> ess<=V++088.../NO CARRIER
Quem ri por <20>ltimo est<73> conectado a 2400Bit/s.
Tudo que o programa faz <20> escolher aleatoriamente uma mensagem em um
reposit<69>rio mantido no diret<65>rio /usr/games/fortunes (Slackware) ou
/usr/share/games/fortunes (Debian). Neste diret<65>rio existem diversos
arquivos com as ``fortunas'' e um arquivo <20>ndice para cada um deles,
que possui a extens<6E>o .dat. O formato dos arquivos <20> muito simples:
cada fortuna <20> 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 <20> humano, botar a culpa no computador <20> mais humano ainda.
%
A<> ela me disse: Ou eu ou o modem! Sinto muitas saudades dela...
Tudo que temos a fazer <20> criar um arquivo com as fortunas chamado,
digamos fortunes com o formato descrito acima. Depois basta usar o
programa strfile para gerar o <20>ndice:
strfile fortunes
e um arquivo chamado fortunes.dat ser<65> criado. Claro que se quisermos
que o fortune mostre apenas mensagens em Portugu<67>s, teremos que
remover os arquivos existentes no diret<65>rio original. Sugiro simples<65>
mente renome<6D>-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<75>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 <20>ltima informa<6D><61>o: se o nome de um arquivo termina com o sufixo -o
o fortune s<> o consulta se for chamado com a op<6F><70>o -o. Esses arquivos
s<>o os que cont<6E>m mensagens cujo conte<74>do pode ser considerado ofen<65>
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 <20> um
Linux HOWTO e n<>o queremos realmente ofender ningu<67>m, certo?
6.1.5. Ispell
Dicion<6F>rios para o Portugu<67>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<72>o compilada pelo Ueda: <http://www.ime.usp.br/~ueda/>.
Eu gostaria de poder colocar maiores informa<6D><61>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<6D><61>o <20> baseada em uma mensagem da qual guardei o
conte<74>do mas n<>o o remetente. Pe<50>o desculpas e espero que
perdoe a falha. N<>o testei pessoalmente a informa<6D><61>o e pe<70>o
que me escrevam confirmando tanto a corre<72><65>o quanto, se
poss<73>vel, a identidade do autor.
O JDK utiliza fontes padr<64>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 <20> extremamente f<>cil:
<20> entre no diret<65>rio jdk1.1.5/lib (no meu caso, /jdk1.1.5/lib);
<20> copie o arquivo font.properties.hu sobrescrevendo o font.properties
atual (lembre-se de fazer backups!);
<20> entre no jdk e divirta-se! Fazendo isto, seu ICQ e todos os
aplicativos que usem o jdk estar<61>o aptos a lerem acentos! (f<>cil,
n<>o?)
6.1.7. Joe
Invoque o joe com a op<6F><70>o -asis na linha de comando ou altere os
arquivos de configura<72><61>o para ativar tal op<6F><70>o. Na Slackware eles
est<73>o no diret<65>rio /usr/lib/joe. Tudo que se tem a fazer <20> remover o
espa<70>o em branco existente no in<69>cio de cada linha. Outra alternativa
<20> 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<73> dispon<6F>vel via WWW na p<>gina do Portuguese HOWTO, contendo
configura<72><61>es que permitem usar as teclas Home e End para movimentar o
cursor para o in<69>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<65><71>ncias
de caracteres geradas por cada tecla e as a<><61>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<75>a de torn<72>-lo execut<75>vel:
chmod 755 /usr/bin/lesspipe.sh
Na distribui<75><69>o Debian j<> existe um script /usr/bin/lesspipe (note a
aus<75>ncia da extens<6E>o .sh). Para os curiosos a respeito da refer<65>ncia a
``*.rpm'', embora na m<>quina em quest<73>o se use Slackware, <20> poss<73>vel
ter o utilit<69>rio RPM instalado tamb<6D>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<75><69>o de Linux usa o GNU ls (todas as que eu conhe<68>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 <20> 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 <20>) LyX <20> uma excelente
op<6F><70>o. Este programa cria uma interface gr<67>fica atrav<61>s da qual
editamos os documentos que ser<65>o depois formatados pelo LaTeX. O
ambiente <20> quase-WYSIWYG (What You See Is What You Get - O que tu v<>s
<20> o que tu obt<62>ns). LyX n<>o roda apenas em Linux, mas em qualquer
Unix. Maiores informa<6D><61>es podem ser obtidas em
<http://www.lyx.org>
A partir da vers<72>o 1.0.1 do LyX j<> tem a interface com o usu<73>rio em
Portugu<67>s, traduzida por Pedro Kr<4B>ger, que tamb<6D>m est<73> traduzindo os
manuais, junto com Roberto Mello. Estas tradu<64><75>es j<> fazem parte da
distribui<75><69>o oficial do LyX.
Tendo o LyX instalado, <20> muito f<>cil criar documentos com acentua<75><61>o
em Portugu<67>s. Seguindo as seguintes regras:
<20> Se o teclado foi configurado para ter dead keys usando um dos mapas
aqui fornecidos, n<>o <20> necess<73>rio fazer mais nada. Basta digitar o
texto normalmente usando as seq<65><71>ncias de acentua<75><61>o. A <20>nica
exce<63><65>o <20> o c-cedilha que n<>o pode ser gerado usando a seq<65><71>ncia
'c, pois o LyX gera um c com acento. Temos que usar a seq<65><71>ncia
Compose-v<>rgula-c.
<20> Se o teclado n<>o foi configurado para ter dead keys ainda assim <20>
poss<73>vel acentuar no LyX. Selecione o menu Options/Keyboard. Na
caixa de di<64>logo ``Key Mappings'', selecione no <20>tem
Language/Primary a op<6F><70>o ``American''. Com isto o LyX far<61> a
composi<73><69>o dos caracteres acentuados usando regras semelhantes <20>s
das dead keys.
<20> A v<>rgula ser<65> tratada como cedilha. Para obter um `<60>'digite ,C e
para obter uma v<>rgula digite ,,. Cuidado! A seq<65><71>ncia ,<espa<70>o>
gerar<61> uma cedilha isolada e n<>o uma v<>rgula!
<20> ~ ^ ' e ` ser<65>o tratados como acentos. Vale a mesma regra anterior:
para obter apenas o acento, pressione a tecla duas vezes
consecutivas.
<20> : ; . / ? e - tamb<6D>m ser<65>o tratados como acentos. ?a gerar<61> um `<60>'
e assim por diante.
Para o LyX imprimir corretamente, <20> necess<73>rio que, ao criar um novo
documento, sejam selecionados a l<>ngua e a codifica<63><61>o de caracteres
adequadas. Crie um documento selecionando o menu File/New. Depois
selecione o menu Layout/Document. Na caixa de di<64>logo ``Document
Layout'' selecione no <20>tem Language a op<6F><70>o ``brazil'' ou ``portuges''
(sem o u mesmo); no <20>tem Encoding selecione ``latin1''.
Veja a observa<76><61>o sobre o pacote algorithm na se<73><65>o ``TeX e LaTeX''
Uma observa<76><61>o final sobre o LyX: a vers<72>o atual (1.0.x) utiliza a
biblioteca XForms para construir a interface com o usu<73>rio. Como essa
biblioteca n<>o tem suporte para acentua<75><61>o, n<>o <20> poss<73>vel digitar
letras acentuadas nas caixas de di<64>logo, somente no corpo do documento
editado. Segundo os desenvolvedores, nas novas vers<72>es do LyX ser<65>
poss<73>vel escolher o tipo de interface ao compilar o programa, o que
permitir<69> o uso de toolkits mais flex<65>veis. J<> existe uma vers<72>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<6D><61>es, consulte via WWW: <http://www-
pu.informatik.uni-tuebingen.de/users/ettrich/>.
6.1.11. Man, groff, troff
Pode-se usar a op<6F><70>o de linha de comando -Tlatin1 para o groff, mas <20>
mais simples colocar uma linha no seu arquivo /etc/profile contendo
GROFF_TYPESETTER="latin1"
export GROFF_TYPESETTER
Para maiores informa<6D><61>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<65> poss<73>vel
formatar satisfatoriamente manuais que contenham caracteres n<>o
pertencentes ao conjunto ASCII, como <20> o caso do ``man iso_8859_1''.
Na distribui<75><69>o Slackware, <20> preciso editar o arquivo
/usr/lib/man.config e alterar as defini<6E><69>es NROFF e NEQN, trocando a
op<6F><70>o ``-Tascii'' para ``-Tlatin1'':
NROFF /usr/bin/groff -Tlatin1 -mandoc
NEQN /usr/bin/geqn -Tlatin1
ou, se usarmos a vari<72>vel de ambiente GROFF_TYPESETTER, podemos sim<69>
plesmente eliminar a op<6F><70>o -Tascii. Na distribui<75><69>o Debian n<>o <20>
necess<73>rio fazer nenhuma configura<72><61>o para o man, bastando configurar
GROFF_TYPESETTER e na Red Hat (incluindo Conectiva) o arquivo <20>
/etc/man.config
Groff tamb<6D>m pode ser configurado para fazer a separa<72><61>o sil<69>bica em
portugu<67>s, o que <20> muito <20>til se tivermos p<>ginas de manual em
Portugu<67>s. Isto <20> bastante simples, porque quando James Clarck p<>s
suporte a hifeniza<7A><61>o no groff ele usou o mesmo algoritmo de
hifeniza<7A><61>o do TeX. Para ter hifeniza<7A><61>o em portugu<67>s, basta copiar o
arquivo de regras do TeX e fazer o groff us<75>-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<73><65>o ``TeX e LaTeX'') ao qual foi adicionado
apenas um coment<6E>rio.
Ele deve ser copiado para o diret<65>rio /usr/share/groff/tmac/ ou
/usr/lib/groff/tmac/, dependendo da distribui<75><69>o. <20> conveniente criar
um ``link'' simb<6D>lico para hyphen.br. Para usar esse arquivo, basta
colocar no in<69>cio do seu documento troff/groff as linhas a seguir:
.if \n(.g \{\
.hla pt
.hpf hyphen.pt
.\}
O .if n<>o <20> necess<73>rio para a acentua<75><61>o, mas ele testa se o proces<65>
sador usado <20> 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<6F><70>o ``Full 8 bits''
ou ``ISO 8859-1''. Na vers<72>o 3.2.11 isso permite que sejam mostrados
nomes de arquivos contendo caracteres acentuados, mas n<>o foi poss<73>vel
digitar tais caracteres na linha de comando ou nas caixas de di<64>logo.
6.1.13. Minicom
Coloque uma linha no seu arquivo /etc/profile contendo
MINICOM="-m -c on"
export MINICOM
Isso permitir<69> usar a tecla Alt para ativar os comandos (exatamente
como o Telix) e tamb<6D>m usar cores. Para maiores informa<6D><61>es, leia o
manual do Minicom usando o comando
man minicom
Mais uma dica sobre o Minicom: para faz<61>-lo usar usar corretamante a
tecla Meta para ativa<76><61>o dos comandos rodando dentro de um xterm,
deve-se invoc<6F>-lo com a op<6F><70>o ``-m'' e passar a op<6F><70>o ``-xrm "*eight<68>
BitInput: false"'' para o xterm. Se usarmos o rxvt ent<6E>o o minicom
deve ser chamado com a op<6F><70>o ``-m'' e a tecla de ativa<76><61>o dos comandos
ser<65> Alt. Fiz uma adapta<74><61>o no script xminicom que pode ser obtido via
WWW na p<>gina do Portuguese HOWTO.
Segundo Arnaldo Carvalho de Melo, as vers<72>es mais recentes do Minicom
suportam internacionaliza<7A><61>o. Suporte para o Portugu<67>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<63><61>es que utilizam toolkits
baseados no X Toolkit (Xt), permite que se modifiquem muitas de suas
caracter<65>sticas por meio de arquivos de configura<72><61>o (X Resources). No
caso espec<65>fico do Communicator, pode-se criar um arquivo chamado
Netscape no diret<65>rio /usr/X11R6/lib/X11/app-defaults contendo estas
op<6F><70>es.
Na distribui<75><69>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<75>-lo, simplesmente copie-o para
/usr/X11R6/lib/X11/app-defaults/Netscape, se sua distribui<75><69>o n<>o o
possuir, mas fique atento que seu uso pode criar problemas com novas
vers<72>es do programa.
Maiores informa<6D><61>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<41>, al<61>, algu<67>m usa nn? Informa<6D><61>o mais atualizada ser<65> 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<65>rio do usu<73>rio, contendo
character-set=ISO-8859-1
ou crie um arquivo geral de configura<72><61>o contendo tal linha. Esse
arquivo normalmente <20> /usr/local/lib/pine.conf ou /usr/lib/pine.conf
A configura<72><61>o tamb<6D>m pode ser feita usando o pr<70>prio programa. No
menu de entrada selecione as op<6F><70>es Setup/Configuration. V<> at<61> o <20>tem
``character-set'' e preencha-o com ``ISO-8859-1''. Para maiores
informa<6D><61>es leia o manual do pine com o comando
man pine
6.1.17. tcsh
Nenhuma medida especial <20> necess<73>ria se for feita a correta
configura<72><61>o das vari<72>veis de ambiente ``LANG'' e ``LC_ALL'', conforme
mostrado mostrado na se<73><65>o ``Biblioteca libc''.
Tcsh tem suporte a internacionaliza<7A><61>o e na distribui<75><69>o Debian h<> um
pacote chamado tcsh-i18n com suporte para French, German, Greek and
Spanish.
6.1.18. TeX e LaTeX
Esta se<73><65>o foi escrita com ajuda de Klaus Steding-Jessen.
6.1.18.1. O pacote Babel
O pacote Babel, criado por Johannes Braams prov<6F> 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<61>tulos
(Chapter, Cap<61>tulo, Kapitel) e o t<>tulo das tabelas (Tabela, Table,
Tabelle). Para usar o pacote, basta incluir no pre<72>mbulo de seu
documento LaTeX o comando
\usepackage[portuges]{babel}
ou
\usepackage[brazil]{babel}
H<> diferen<65>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<61>scula ou min<69>scula.
Pode-se misturar mais de um idioma no mesmo documento. Para Alem<65>o e
Portugu<67>s ficaria:
\usepackage[german,brazil]{babel}
Nesse caso a <20>ltima op<6F><70>o (brazil) fica sendo o idioma corrente. Para
mudar ao longo do texto, entre um e outro, use:
\selectlanguage{german}
[...]
\selectlanguage{brazil}
Isto <20> muito <20>til tamb<6D>m quando queremos que uma palavra n<>o seja
separada. Basta definir um novo idioma e us<75>-lo nas palavras que n<>o
podem ser separadas. Coloque no pre<72>mbulo:
\newlanguage\nohyphen
\newcommand\nh[1]{{\language\nohyphen #1}}
E use com \nh{FOO BAR}. <20> melhor do que usar \mbox, que impede quebra
no espaco em \mbox{FOO BAR}.
6.1.18.2. Separa<72><61>o sil<69>bica
Normalmente apenas os suportes a separa<72><61>o sil<69>bica para Ingl<67>s e
Alem<65>o s<>o carregados. Para configurar hifeniza<7A><61>o no teTeX, execute
o utilit<69>rio texconfig, que na distribui<75><69>o Slackware deve ser o
programa /usr/lib/teTeX/bin/texconfig e na Debian <20>
/usr/bin/texconfig. Digite o comando
texconfig hyphen
O editor usado normalmente <20> o vi. Se o seu editor predileto for
outro, crie uma vari<72>vel de ambiente chamada EDITOR contendo o nome
desse programa, como no exemplo a seguir:
EDITOR=pico
export EDITOR
O editor de texto ser<65> carregado, para editar o arquivo language.dat.
Procure uma linha que come<6D>a por %portuges e remova o %. Grave o
arquivo e saia do editor. O texconfig atualizar<61> diversos arquivos de
configura<72><61>o (n<>o se assuste com a quantidade de mensagens que
aparecem na tela).
Se o nome da tabela de hifeniza<7A><61>o que consta no seu language.dat <20>
pthyph.tex ent<6E>o provavelmente trata-se da vers<72>o 1.0, de 1987. A
vers<72>o 1.2, de 1996, pode ser obtida via FTP an<61>nimo em
<ftp://ftp.tex.ac.uk/tex-archive/language/por<6F>
tuguese/pt8hyph.tex>
Copie-o para o mesmo diret<65>rio onde se encontra o pthyph.tex, que
dependendo de sua distribui<75><69>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<6F>
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<6F> acesso
direto a caracteres acentuados, (como <20> o caso do OT1, padr<64>o do
LaTeX) ent<6E>o o TeX gera estes caracteres sobrepondo o caracter base
mais o acento. O algoritmo de hifeniza<7A><61>o, contudo, n<>o hifeniza
palavras formadas dessa forma.
Se uma fonte j<> prov<6F> acesso direto a caracteres acentuados, como as
de codifica<63><61>o T1, estes caracteres s<>o usados diretamente sem
preju<6A>zo do algoritmo de hifeniza<7A><61>o. O uso de encoding T1 <20>
fundamental para a correta hifeniza<7A><61>o em Portugu<67>s.
Note que trata-se da mesma fonte, por falta a Computer Modern, apenas
o que muda <20> o seu encoding, isto <20>, a ordem/disponibilidade dos
caracteres dentro da mesma. Para selecionar estas fontes, inclua no
pre<72>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<73>es de compatibilidade com documentos antigos. O fontenc <20> mais
atual, continua a ser mantido e <20> de uso mais geral, portanto
prefer<65>vel.
6.1.18.4. Edi<64><69>o de documentos
Normalmente a introdu<64><75>o de caracteres acentuados no texto exige o uso
de seq<65><71>ncias de escape bastante trabalhosas. Para gerar um ``<60>''
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<63><61>o em que est<73>o os
caracteres de um documento. Lembre-se por<6F>m que se o seu documento for
enviado para outro usu<73>rio que n<>o possua o inputenc ele poder<65> n<>o
conseguir process<73>-lo, mas esse recurso j<> est<73> dispon<6F>vel desde a
libera<72><61>o do LaTeX2e em dezembro 1994. Todas as distribui<75><69>es de Linux
atuais o incluem.
Sugest<73>o: uma configura<72><61>o do GNU Emacs para gerar caracteres
acentuados, pr<70>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<6D><61>o de ISO-8859-1 (no buffer do Emacs) para o padr<64>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<70>prio para
uso do pacote inputenc. Uma boa op<6F><70>o para isto <20> usar o programa
recode. Se voc<6F> 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<61>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<75><69>o Debian tem um pacote
pronto e outras tamb<6D>m devem ter.
6.1.18.5. Teste da configura<72><61>o do LaTeX
Para testar a nova configura<72><61>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<64><75>o}
Este documento pretende ser um guia de refer<65>ncia de configura<72><61>o
do \textbf{Linux} e seus programas, teclados e fontes de
caracteres, permitindo sua internacionaliza<7A><61>o/utiliza<7A><61>o confort<72>vel
por pessoas que falem a L<>ngua Portuguesa.
\end{document}
Esse texto cont<6E>m de prop<6F>sito uma ``palavra'' bastante longa para
for<6F>ar a separa<72><61>o sil<69>bica. Ele est<73> dispon<6F>vel via WWW no arquivo
exemplo.tex na p<>gina do Portuguese HOWTO. Para process<73>-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<72><61>o foi bem sucedida. Se o seu com<6F>
putador est<73> rodando o X o documento formatado poder<65> 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 <20> 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<72>mbulo de
seu documento LaTeX, ap<61>s o comando ``\usepackage{algorithm}'' o
seguinte:
\makeatletter
\renewcommand{\ALG@name}}{Algoritmo}}
\makeatother
\renewcommand{\listalgorithmname}}{Lista de Algoritmos}}
No teTeX 0.4 (vers<72>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<72>mbulo de seu documento o comando
\renewcommand{\proofname}}{Demonstra\c{c}\~ao}
mas o mais recomend<6E>vel <20> que se atualize a vers<72>o do teTeX.
Usu<73>rios do LyX podem incluir esses comandos no pre<72>mbulo do documento
usando o menu Layout/LaTeX Preamble. Pode-se resolver o problema
alterando o arquivo portuges.ldf que cont<6E>m as defini<6E><69>es necess<73>rias
ao Portugu<67>s, mas esta solu<6C><75>o n<>o <20> port<72>vel, pois exigir<69> que tal
arquivo seja alterado em todas os computadores em que o documento deva
ser processado.
A licen<65>a do Babel n<>o me permite distribuir o portuges.ldf separado
do resto do pacote, mas para os interessados, coloquei <20> disposi<73><69>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<7A><61>o, copie-o
para o diret<65>rio /usr/lib/teTeX/texmf/tex/generic/babel (Slackware),
fa<66>a uma c<>pia de reserva do portuges.ldf original e invoque o
utilit<69>rio patch:
cp -p portuges.ldf portuges.ldf.backup
patch < portuges.ldf.patch
Use o patch por sua conta e risco! Se voc<6F> deixar o backup no
diret<65>rio original ele ser<65> inclu<6C>do no arquivo ls-R da pr<70>xima vez
que o programa texhash for executado. Isso n<>o far<61> 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<73>o brasileira de usu<73>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 <20> 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<73>rico de mensagens. Tamb<6D>m h<> refer<65>ncias para
muitos documentos sobre LaTeX, alguns em Portugu<67>s e outros em Ingl<67>s.
6.1.18.8. LaTeX-demo
Pode ser <20>til tamb<6D>m um documento de exemplo para ter onde come<6D>ar.
Pensando nisso, Klaus Steding-Jessen preparou um pequeno documento em
Portugu<67>s com o objetivo de ser um guia ``by example'' para o usu<73>rio
de LaTeX iniciante e intermedi<64>rio, que pode ser obtido via WWW em
<http://biquinho.furg.br/doc/LaTeX-demo/>.
Klaus ecreveu tamb<6D>m uma s<>rie tr<74>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<72>o 8 suporta a acentua<75><61>o por
teclas mortas. N<>o <20> necess<73>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<73><65>o ``LyX''.
6.1.20. Xemacs (antigo lucid emacs)
Agrade<64>o a colabora<72><61>o de Judson Santos Santiago e Goedson
Teixeira Paix<69>o que ajudaram a identificar os problemas com
o Xemacs.
O Xemacs j<> tem suporte <20> acentua<75><61>o direta no teclado usando ``dead
keys'', mas h<> um erro na configura<72><61>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<73><65>o ``Contornando os limites do X'', mas mesmo que n<>o a usemos,
basta colocar os seguintes comandos no seu arquivo de configura<72><61>o
.emacs:
;; Ajuste para fazer o acento circunflexo funcionar
;; Contribui<75><69>o de Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br>
(require 'x-compose)
(define-key global-map 'dead-circumflex compose-circumflex-map)
Na distribui<75><69>o Debian 2.0 o Xemacs 20.4 executa todos os scripts
contidos no diret<65>rio /etc/xemacs20/site-start.d ao ser carregado.
Tudo que se tem a fazer <20> colocar esses comandos em um arquivo
chamado, por exemplo, 01portugues-xemacs.el. N<>o <20> necess<73>rio instalar
o xemacs20-mule, que possui extens<6E>es para l<>nguas que n<>o usam o
alfabeto romano. Os pacotes a instalar s<>o os seguintes:
<20> xemacs20-bin
<20> xemacs20-nomule
<20> xemacs20-support
<20> xemacs20-supportel
Se voc<6F> instalou o Xemacs no Slackware ou outro Unix, <20> moda antiga
(dowload, compila<6C><61>o, insta<74><61>o), ent<6E>o o arquivo a alterar <20> o site-
start.el, que deve estar no diret<65>rio /usr/lib/xemacs/site-lisp ou
/usr/local/lib/xemacs/site-lisp, dependendo de sua instala<6C><61>o.
Observe que a partir da vers<72>o 20.3 o Xemacs usa uma vari<72>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<72><61>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<65>rio correto com o nome de site-start.el.
Para Debian, h<> um 01portugues-xemacs.el que deve ser copiado para o
diret<65>rio /etc/xemacs20/site-start.d.
Certifique-se de estar usando a vers<72>o 24-out-1998 ou mais recente do
arquivo de ``mapa de teclado'' para o X, pois ela possui uma corre<72><65>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<65>ncia de arquivos: binary e ASCII, sendo
este utilizado para textos. Deve-se tomar cuidado ao transferir um
arquivo, pois o modo de transf<73>rencia ASCII remove o oitavo bit de
cada caracter transmitido, o que ter<65> como conseq<65><71>ncia a perda de
todos os caracteres acentuados. Desta forma <20> aconselhado o envio de
documenta<74><61>o em modo binary de forma a manter a integridade da mesma.
Cuidado! Algumas vers<72>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<61> o modo de transfer<65>ncia para
bin<69>rio automaticamente. Al<41>m disso, alguns servidores FTP tamb<6D>m n<>o
fornecem a informa<6D><61>o corretamente. Certifique-se de digitar o
comando bin antes de um get quando quiser que a transfer<65>ncia seja
bin<69>ria!
6.2.2. Correio eletr<74>nico
O mesmo tipo de restri<72><69>es do FTP se aplica ao envio de documentos
contendo caracteres acentuados atrav<61>s de correio eletr<74>nico. Embora
isto n<>o aconte<74>a em todos os sistemas em uso na internet, bastar<61> que
o correio enviado passe no seu trajecto por um sistema que n<>o suporte
8 bits de informa<6D><61>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<74><61>o em modo 8 bits.
Exemplos de programas de correio eletr<74>nico com suporte para MIME, s<>o
o Eudora e o Pine.
Se o destinat<61>rio da mensagem n<>o usa um agente com suporte para MIME,
existe a op<6F><70>o de codificar os documentos com o utilit<69>rio UUENCODE.
Para maiores informa<6D><61>es a esse respeito, leia a documenta<74><61>o usando
os comandos
man uuencode
man uudecode
7. Ficheiros necess<73>rios
Aten<65><6E>o! Os mapas de teclado para o X fornecidos mapeiam a fun<75><6E>o das
teclas segundo a lista a seguir:
<20> Alt esquerdo: Alt
<20> Alt direito: AltGr
<20> Control esquerdo: Control
<20> Control direito: Control
<20> ScrollLock: ScrollLock
<20> Janela esquerda: Meta
<20> Janela direita: Compose
<20> Menu: Menu
Se o seu teclado n<>o possuir as teclas para Windows 95 ent<6E>o pode ser
melhor restabelecer a distribui<75><69>o padr<64>o: edite o mapa e coloque um
ponto de exclama<6D><61>o no in<69>cio das linhas que definem os keycodes 64,
113, 115, 116 e 117.
Foram elaborados mapas com suporte <20> acentua<75><61>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<69>rios da p<>gina do Portuguese HOWTO:
<20> <http://linusp.usp.br/~casantos/>
Ao instalar um dos mapas fornecidos, lembre-se de ler os coment<6E>rios
contidos neles, pois h<> informa<6D><61>es importantes sobre op<6F><70>es de
configura<72><61>o e aproveitamento das teclas adicionais dos teclados
padr<64>o Windows 95. As instru<72><75>es para instala<6C><61>o est<73>o nas se<73><65>es
``Configura<72><61>o do console'' e ``Configura<72><61>o do X''.
O mapa US+ (us+.map e Xmodmap.us+)
Mapas para os teclados que seguem o padr<64>o americano. Como n<>o
existem teclas especiais para gerar o c-cedilhado nem o trema,
foi usado um pequeno truque: o c-cedilhado <20> gerado pela
seq<65><71>ncia 'C. No console pode-se faz<61>-lo com a seq<65><71>ncia AltGR-
C. O trema <20> gerado pela tecla ". Para gerar as aspas duplas <20>
necess<73>rio digitar a seq<65><71>ncia "<espa<70>o> e no console pode-se
usar ""; opcionalmente pode-se usar AltGR-", o que n<>o <20> uma
solu<6C><75>o muito confort<72>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<67>s. Esses teclados s<>o os
que possuem uma tecla com os caracteres <20> e <20>. N<>o s<>o muito
confort<72>veis, porque para gerar o s<>mbolos @ [ ] { } e o trema <20>
necess<73>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<6D>m pode
ser adquiridos avulsos e s<>o fabricados pela UIS e Keytec (n<>o
confundir com Key Tronic). Este desenho <20> o mais confort<72>vel de
todos, pois tem a mesma distribui<75><69>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 <20> fornecido.
NCD+ (Xmodmap.NCD+)
Este mapa <20> para o teclado modelo N107 e foi testado em
terminais X modelo 16r fabricados pela Network Computing Devices
Inc. (NCD). Embora a distribui<75><69>o de teclas seja id<69>ntica <20> do
Sun Type 4, os keycodes das teclas s<>o diferentes. Esses
teclados tamb<6D>m n<>o possuem o c-cedilhado, por isso foi usado o
mesmo truque do mapa US+. Apenas o mapa para o X <20> fornecido.
A gera<72><61>o dos caracteres acentuados <20> feita de acordo com a tabela a
seguir:
Para gerar Digitar
-------------------------------------------------
<20> 'c ou compose-,-c
<20> <20> <20> <20> <20> 'a 'e 'i 'o 'u
<20> <20> <20> <20> <20> `a `e `i `o `u
<20> <20> ~a ~o
<20> <20> <20> <20> <20> ^a ^e ^i ^o ^u
<20> <20> <20> <20> <20> "a "e "i "o "u
" (aspas) "" ou AltGR-" no mapa US+
<20> (trema) "-espa<70>o
' (ap<61>strofo) '' ou AltGR-' no mapa US+
` (grave) `` ou AltGR-` no mapa US+
<20> compose-O-R
<20> compose-O-C
-------------------------------------------------
8. Informa<6D><61>es Adicionais
8.1. Fontes de informa<6D><61>o sobre Linux em Portugu<67>s
Grupo de Investiga<67><61>o Linux
Grupo de usu<73>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<6D><61>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<63><61>es com suporte a mais
de uma l<>ngua devem usar algum m<>todo de definir mensagens em tempo de
execu<63><75>o, possivelmente usando uma biblioteca de fun<75><6E>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<61>logo que <20> lido pelo programa ao
iniciar. H<> equipes de tradu<64><75>o respons<6E>veis por cada l<>ngua.
H<> uma lista de discuss<73>o via emeil para cada equipe de tradu<64><75>o,
rodando em um servidor provido pela <Linux International>. Para fazer
contato com a equipe de tradu<64><75>o para Portugu<67>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<6F> quiser fazer parte da equipe de tradutores, pois
ela n<>o se destina ao esclarecimento de d<>vidas de usu<73>rios!
Mais informa<6D><61>es podem ser encontradas na documenta<74><61>o do pacote
gettext dispon<6F>vel via FTP an<61>nimo em qualquer reposit<69>rio de software
do GNU. Provavelmente sua distribui<75><69>o j<> tem um pacote pronto para
ser instalado, mas se voc<6F> desejar, os fontes da vers<72>o mais recentes
podem ser encontrados em
<ftp://ftp.gnu.org/pub/gnu/>
e o nome do arquivo a copiar <20> ``gettext-<vers<72>o>.tar.gz''.
8.3. LIE-BR
A informa<6D><61>o a seguir <20> baseada no conte<74>do da p<>gina de
apresenta<74><61>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<74><61>o em sua l<>ngua nativa: o
portugu<67>s. Essa lista <20> uma ramifica<63><61>o de outra maior, a LIE que
visa a internacionaliza<7A><61>o do Linux e sua posterior tradu<64><75>o para
todos os idiomas (portugu<67>s incluso).
Resumo dos objetivos da lie-br:
<20> contribuir para o projeto de internacionaliza<7A><61>o do Linux fazendo a
parte relativa ao portugu<67>s para o Brasil;
<20> internacionalizar programas, de modo a poderem ser usados nas
l<>nguas nativas de cada pa<70>s, e n<>o ficar preso ao idioma original
ou ao ingl<67>s;
<20> disponibilizar (sic) material em portugu<67>s para consulta e
documenta<74><61>o;
<20> aumentar o acervo de documenta<74><61>o dispon<6F>vel e, indiretamente,
auxiliar no desenvolvimento iniciado pelo projeto LDP-BR.
Mais informa<6D><61>es podem ser encontradas na p<>gina WWW da lie-br, no
endere<72>o
<http://lie-br.conectiva.com.br/>
Ainda h<> uma quantidade enorme de documentos por traduzir. Se voc<6F> tem
bom dom<6F>nio do Ingl<67>s e deseja colaborar, ent<6E>o primeiro leia as
instru<72><75>es na p<>gina mencionada e assine a lista ``lie-br'', enviando
um emeil para <lie-br-subscribe@bazar.conectiva.com.br>. N<>o <20> preciso
especificar o assunto (subject) nem colocar nada no corpo da mensagem.
8.4. Vers<72>es de software testadas
Todas as informa<6D><61>es presentes neste documento foram testadas nas
seguintes vers<72>es de software:
<20> Distribui<75><69>es Slackware 3.2 (muito modificada), Debian 2.0, Red Hat
5.2, Conectiva 3.0 (Guarani) e S.u.S.E. 5.6
<20> XFree86 vers<72>es 3.3 a 3.3.3.1
<20> Fvwm 2.0.46
<20> Rxvt vers<72>o 2.4.5
<20> Kernel vers<72>es 2.0.33 a 2.0.36
<20> Kbd vers<72>es 0.92 a 0.96
<20> GNU emacs vers<72>es 19.34 a 20.3
<20> Less vers<72>es 321 e 332
<20> GNU Bash vers<72>es 1.14.7 a 2.01.1
<20> tcsh vers<72>es 6.07.02 e 6.07.06
<20> LyX 0.12.0 a 1.0.0pre6
<20> XForms 0.88
<20> Joe 2.8
<20> Pine 3.96 e 4.0
<20> Pico 2.9
<20> teTeX vers<72>es 0.4 e 0.9-9
<20> XEmacs vers<72>es 20.3 e 20.4
9. Observa<76><61>es finais
9.1. Futuras adi<64><69>es a este documento
As pr<70>ximas vers<72>es do HOWTO dever<65>o conter, entre outros assuntos, os
seguintes:
<20> suporte <20> distribui<75><69>o Caldera;
<20> informa<6D><61>es sobre compartilhamento de arquivos em rede usando NFS,
SAMBA e Mars-NWE;
<20> configura<72><61>o de toolkits de interface gr<67>fica: Qt, GTK, XForms, Tk
(Tcl) e os baseados em Xt, como Motif, Lesstif, Xaw (*international
ainda n<>o est<73> funcionando);
<20> uma se<73><65>o sobre desenvolvimento de programas;
<20> refer<65>ncias ao Ispell (us<75>-lo para corrigir o pr<70>prio HOWTO :-);
<20> informa<6D><61>es sobre X/Open, XPG4 e POSIX, ou pelo menos ponteiros
para elas.
Aceitam-se volunt<6E>rios para qualquer uma destas tarefas.
Parece cada vez mais claro que as informa<6D><61>es sobre configura<72><61>o de
aplicativos devem ser movidas para outro documento, independente do
HOWTO. Na forma como ele est<73> hoje j<> chega a quase quarenta p<>ginas
impressas e com a adi<64><69>o de outras distribui<75><69>es e aplica<63><61>es em breve
chegar<61> <20>s 50. Um documento t<>o grande foge ao esp<73>rito de um HOWTO,
que deve ser sucinto e concentrado em um assunto espec<65>fico.
9.2. Nota de Direitos de Autor
Este HOWTO teve como autor Jo<4A>o Carlos Rodrigues Pereira, baseado em
documenta<74><61>o escrita por Jos<6F> Bandeira al<61>m dos restantes HOWTO's do
Linux. Atualmente ele <20> mantido por Carlos Augusto Moreira dos
Santos, com a colabora<72><61>o de muitos outros.
Os documentos HOWTO do Linux podem ser reproduzidos e distribu<62>dos em
todo ou em parte, segundo qualquer meio f<>sico ou electr<74>nico, desde
que esta Nota de Direitos de Autor se mantenha intacta em todas as
c<>pias dos mesmos. A distribui<75><69>o comercial <20> autorizada e
encorajada, no entanto, o autor gostaria de ser notificado de tais
ocorr<72>ncias.
Todas as tradu<64><75>es, trabalhos derivados, ou trabalhos agregando
qualquer dos documentos HOWTO do Linux dever<65>o estar abrangidos por
esta Nota de Direitos de Autor, ou seja, n<>o poder<65> ser imposta
qualquer restri<72><69>o adicional a trabalhos efectuados a partir de um dos
documentos HOWTO do Linux nomeadamente no que diz respeito <20> sua
distribui<75><69>o.
Exce<63><65>es a estas regras poderam ser obtidas. Para tal, dever-se-<2D>
contactar o coordenador dos documentos HOWTO do Linux no endere<72>o
<linux-howto@metalab.unc.edu>.
9.3. Garantia (inexist<73>ncia de) e nota de responsabilidade
Apesar de ter sido feito o m<>ximo esfor<6F>o poss<73>vel para que o conte<74>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<63><61>o
comercial, t<>cnica, educacional ou medicinal. O autor n<>o se
responsabiliza por preju<6A>zos decorrentes do seu uso. Em resumo: se a
informa<6D><61>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<65>ncia neste HOWTO n<>o representa nenhum tipo de
recomenda<64><61>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<61>s das suas sugest<73>es quer atrav<61>s de contribui<75><69>es
de outro tipo, em especial a
Jo<4A>o Carlos Rodrigues Pereira
Autor original deste documento que agora mantenho. Nunca tive
contato com ele, nem sei por onde andar<61>. Sua p<>gina no
Departamento de Inform<72>tica da Faculdade de Ci<43>ncias da
Universidade de Lisboa (http://caravela.di.fc.ul.pt/~jcrp/) n<>o
existe mais. Lembro-me de t<>-la visto, anos atr<74>s.
Greg Hankins
Ex-coordenador dos Linux HOWTO, por me permitir assumir a
manuten<65><6E>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<6D><61>es,
sugest<73>es ou coment<6E>rios que foram inclu<6C>das neste texto. Se algu<67>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<4B>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<6F>vel no URL:
http://lila.dei.uc.pt/~cjrf/po/ [Nota do mantenedor atual: esta
p<>gina n<>o existe]
Jo<4A>o C. Silva
Pelo apoio e incentivo e criticas (bem como por me deixar testar
os meus conhecimentos no SEU computador).
Jos<6F> Bandeira
Autor dos ficheiros port.map e xmodmap. Pelo seu apoio e por
ter escrito alguma da documenta<74><61>o mais elucidativa que eu j<> li
sobre o assunto.
10. Bibliografia comentada
Esta se<73><65>o ainda est<73> incompleta e deve ser melhorada nas pr<70>ximas
vers<72>es. Os HOWTOs mencionados aqui geralmente s<>o distribu<62>dos nos
CDs de instala<6C><61>o e todas as distribui<75><69>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<65>rio
/usr/doc/faq/howto e na Debian o diret<65>rio <20> /usr/doc/HOWTO. Eles
tamb<6D>m podem ser obtidos via WWW em
<http://metalab.unc.edu/LDP/HOWTO/>.
[BAL97] BALSA, Andr<64> D. Linux and X11 internationalization
Dispon<6F>vel via WWW em
<http://wauug.erols.com/~balsa/linux/deadkeys/>
Uma discuss<73>o sobre o problema da acentua<75><61>o no X. Tamb<6D>m cont<6E>m
refer<65>ncias para outros documentos que tratam de
internacionaliza<7A><61>o.
[BRO98] Brower Andries. The Linux Keyboard and Console HOWTO
Dispon<6F>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<72>o
2.0) e tem v<>rias refer<65>ncias ao X. Leitura obrigat<61>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<65>ncia definitiva sobre programa<6D><61>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<69>tica
introdu<64><75>o ao X e <20> programa<6D><61>o com Xlib.
[McC94] McCormack, Joel et al.X Toolkit Intrinsics - C Language
Interface
Digital Equipment Corporation/X Consortium, 1994.
A refer<65>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<72><69>o detalhada de como usar o Troff para formata<74><61>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<6F>vel via WWW em
<http://www.fdn.fr/~tquinot/index.en.html>
A vers<72>o em ingl<67>s do artigo sobre a modifica<63><61>o da Xlib para
dar suporte <20> acentua<75><61>o independente da aplica<63><61>o.
[RAY98] Raymond, Eric S. The Linux XFree86 HOWTO
Dispon<6F>vel via WWW em
<http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html>.
Descreve como obter, instalar e configurar o XFree86. Todas as
distribui<75><69>es de Linux j<> v<>m com pacotes do XFree86 prontos
para instalar, mas as informa<6D><61>es sobre configura<72><61>o podem ser
muito <20>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<74><61>o que acompanhava as esta<74><61>es de trabalho
Sun<75> e o sistema SunOS<4F>, no tempo em que os fabricantes de
computadores distribuiam documenta<74><61>o de verdade.
[SUN90b] Sun Microsystems. Formatting documents
Sun Microsystems, 1990.
Veja o <20>tem anterior.
Arquivos cuja leitura pode ser <20>til:
/usr/src/linux/Documentation/unicode.txt
Explica como ativar os diversos tipos de fontes no console.
Tamb<6D>m explica onde obter fontes para o alfabeto Klingon, o que
pode ser muito <20>til se o leitor for um habitante daquele Imp<6D>rio
ou admirador de Jornada nas Estrelas. Depois das recentes
aventuras espaciais do Linux, n<>o duvido de mais nada...
A respeito deste assunto <20> de fundamental import<72>ncia saber que,
segundo nosso consultor interestrelar Klaus Steding-Jessen,
``Klingon <20> o nome da ra<72>a e do seu idioma. Kling <20> o nome do
planeta. Mas note que o Imp<6D>rio Klingon <20> formado n<>o apenas
por esse planeta, mas por v<>rias col<6F>nias, teoricamente todas
falando Klingon''. Tenho certeza de que sua vida nunca mais ser<65>
a mesma depois de saber disto.
/usr/src/linux/include/linux/keyboard.h
Cont<6E>m as defini<6E><69>es de constantes, fun<75><6E>es e macros utilizadas
por programas que fazem tratamento de teclado sob Linux.
Normalmente esse arquivo <20> instalado com o pacote que cont<6E>m o
c<>digo fonte do kernel. As distribui<75><69>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<6E>m as defini<6E><69>es de constantes, fun<75><6E>es e macros utilizadas
por programas que fazem tratamento de teclado sob o X Window
System. Normalmente esse arquivo <20> instalado com o pacote que
cont<6E>m as bibliotecas de desenvolvimento de aplica<63><61>es para X.