LDP/LDP/howto/linuxdoc/Portuguese-HOWTO.sgml

2967 lines
123 KiB
Plaintext
Raw Permalink Normal View History

<!doctype linuxdoc system>
<!--
Guia de Referencia para a instalacao do Teclado e Pagina
de codigo Portuguesas.
(c)1995 Joao Carlos Rodrigues Pereira, jcrp@caravela.di.fc.ul.pt
(c)1997-1999 Carlos A M dos Santos, casantos@cpmet.ufpel.tche.br
Hist<73>rico
3.2 - 24 de maio de 1999
* Informa<6D><61>o sobre o WordPerfect 8.
* Informa<6D><61>o sobre o XKeyCaps
* Informa<6D><61>es corretas sobre o idioma Klingon, o planeta Kling e Jornada
nas Estrelas, fornecidas pelo Klaus. Este HOWTO nunca mais ser<65> o
mesmo...
* In<49>cio da organiza<7A><61>o de uma bibliografia.
* Removida a se<73><65>o ``Coloca<63><61>o do console em modo Unicode'' (obsoleta).
* Removido http://mirror.pop-mg.rnp.br/LDP/ da lista de espelhos do LDP
(parece estar fora do ar).
* Sunsite.unc.edu agora <20> Metalab.unc.edu.
* Finalmente temos um espelho oficial em Portugal!
* LyX com mensagens em Portugu<67>s e manuais sendo traduzidos.
* Refer<65>ncia para a lista LIE-BR
* Separa<72><61>o sil<69>bica no groff.
* Inclu<6C>da na se<73><65>o sobre libc5 uma discuss<73>o sobre o uso da vari<72>vel LANG,
sua necessidade para o man e a mensagem de erro ``Warning: locale not
supported by C library, locale unchanged'' que a Xlib gera.
* Novo endere<72>o do LDP-br na UNICAMP
* Ponteiro para o Dead keys Mini-HOWTO
* Corre<72><65>o das informa<6D><61>es sobre LaTeX (algoritmo n<>o tem acento - esta
doeu!). Acr<63>scimo das contibui<75><69>es do Klaus.
* Reorganiza<7A><61>o da ordem de algumas se<73><65>es (aplicativos em ordem albab<61>tica
para facilitar a busca).
* Inclus<75>o do comando loadunimap e corre<72><65>o da informa<6D><61>o sobre carga
autom<6F>tica de mapas de tela.
* Informa<6D><61>es sobre S.u.S.E. e Conectiva
* Se<53><65>es sobre configura<72><61>o de fonte e teclado com subse<73><65>es individuais
para cada distribui<75><69>o.
* Descri<72><69>o mais detalhada das regras definidas no novo arquivo Compose.
* Corre<72><65>es e acr<63>scimos nos mapas de teclado NCD e Sun.
* Brevemente, mapas de teclado para Macintosh (assim que eu descobrir como
dar boot do MkLinux ou LinuxPPC *sem* precisar do MacOS.
3.1 - 1 de janeiro de 1999
* Aleta sobre a necessidade do pacote ``locale'' na Debian
* Alterado o uso do comando `export' nos scripts para manter
compatibilidade com Bourne-shell
* Incluido um coment<6E>rio sobre o bug do tratamento de XIC no X11R6.4 fix-2
* Localiza<7A><61>o dos diret<65>rios de fontes e mapas de teclado do pacote KBD
* Informa<6D><61>es mais detalhadas sobre o X
* Troca do nome da se<73><65>o em que se compara o X com o modo de texto e
reorganiza<7A><61>o de alguns de seus par<61>grafos
* Inclu<6C>das informa<6D><61>es sobre lista de algoritmos no LaTeX e ambiente proof
* Corrigida informa<6D><61>o sobre o minicom - contribui<75><69>o de Arnaldo Carvalho
de Melo <acme@conectiva.com.br>
* Informa<6D><61>es sobre localiza<7A><61>o das fontes, mapas de teclado e scripts de
configura<72><61>o no Red Hat - contribui<75><69>o de Ricardo Y. Igarashi
<iga@originet.com.br>
* Inclus<75>o de informa<6D><61>es sobre o comportamento da tecla ``Delete'' no
xemacs.
* Corre<72><65>o da URL do diacrd
3.0 - 28 de outubro de 1998
* Distribui<75><69>o preferencial agora <20> Debian
* Informa<6D><61>es atualizadas sobre Xemacs
* Novo endere<72>o do SGMLtools
* Refer<65>ncias servidores WWW do II/UFRGS e LinUSP
* Melhores explica<63><61>es sobre Xlib
* Corre<72><65>o da informa<6D><61>o sobre a modifica<63><61>o feita por Thomas Quinot na
Xlib e inclus<75>o de instru<72><75>es de instala<6C><61>o no XFree86 e X11R6
* Informa<6D><61>es sobre o diacrd
* Informa<6D><61>es mais detalhadas sobre groff e man
2.1 - 17 de julho de 1998
* Configura<72><61>o global do Emacs
* Informa<6D><61>es sobre TeX/LaTeX
* Informa<6D><61>es sobre dicion<6F>rios para o Ispel
* Fortune
* LyX
* Refer<65>ncia <20> libX11 de Thomas Quinot e maiores informa<6D><61>es sobre suporte
<20> internacionalizal<61><6C>o no X
* Agradecimentos
2.0 - 24 Dezembro 1997
* Novo mantenedor
* Corre<72><65>es nos mapas para o teclado portugu<67>s
* Inclus<75>o dos mapas de teclado ABNT-2 e US+
* Supress<73>o de informa<6D><61>es desatualizadas (incluindo toda a se<73><65>o
Bibliografia Aconselhada)
0.3 - Update (14 Setembro 1995)
* Correcoes
* Endereco do coordenador mudou
* Sistema de janelas X -> Sistema de janelas X (X-Window Sistem)
* Aviso sobre a diferenca entre conf. de X e Texto, nao inter-dependentes
0.2 - Update (3 Setembro 1995)
* Correcoes
* Gestor de janelas X -> Sistema de janelas X
* LEMACS - nova entrada
* Emacs - dados acrescentados, os anteriores eram nulos !
* pequenas correcoes de sintaxe
0.1 - Versao original (1 Setembro 1995)
-->
<ARTICLE>
<!--
SGMLtools 1.0 n<>o trata corretamente espa<70>os e quebras de linha em
t<>tulos, subt<62>tulos e nomes, por isso esta coisa horr<72>vel a<> adiante.
-->
<TITLE>Linux Portuguese-HOWTO
<SUBTITLE>Configura<72><61>es do Linux para a L<>ngua Portuguesa
<AUTHOR><name>Carlos A. M. dos Santos &lt;<HTMLURL URL="mailto:casantos@cpmet.ufpel.tche.br" name="casantos@cpmet.ufpel.tche.br">&gt;
<INST>CPMet/UFPEL -- Pelotas, RS, Brasil
<DATE>v3.2, 24 May 1999
<ABSTRACT>
Este documento pretende ser um guia de refer<65>ncia de configura<72><61>o do
<BF/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.
</ABSTRACT>
<TOC>
<SECT>Introdu<64><75>o
<P>
<EFBFBD> semelhan<61>a de outras l<>nguas faladas na Europa, a L<>ngua Portuguesa tem
caracter<EFBFBD>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<EFBFBD>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<EFBFBD>dos por correspondentes da L<>ngua Portuguesa, preservando-se apenas
os que j<> fazem parte do jarg<72>o da inform<72>tica.
<SECT1>Finalidades deste HOWTO
<P>
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<EFBFBD><EFBFBD>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:
<ITEMIZE>
<ITEM>a introdu<64><75>o de caracteres acentuados atrav<61>s do teclado, como seja a
escrita de jo&tilde;ao em vez da sua forma correcta: jo<6A>o;
<ITEM>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;
<ITEM>o correto tratamento de conven<65><6E>es nacionais de formato de datas, horas e
valores monet<65>rios;
<ITEM>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.
</ITEMIZE>
Vers<EFBFBD>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<EFBFBD><EFBFBD>es para a configura<72><61>o do sistema operativo e de diversos aplicativos
importantes.
O documento tem se tornado menos <EM/slackwariano/, incluindo cada vez mais
informa<EFBFBD><EFBFBD>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
(<EM/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<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>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 <EM/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.&lcub;5,6,7&rcub; e Digital UNIX 3.2. Os mapas de teclado para terminais X e
esta<EFBFBD><EFBFBD>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.
<SECT1>Onde encontrar a vers<72>o mais atual<LABEL ID="SEC:ONDE">
<P>
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:
<ITEMIZE>
<ITEM><URL URL="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO"> (conhecida
anteriormente como <TT/sunsite.unc.edu/).
<ITEM><URL URL="ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO">
</ITEMIZE>
Pode-se tamb<6D>m folhear os documentos HOWTO em formato HTML no endere<72>o
<ITEMIZE>
<ITEM><URL URL="http://metalab.unc.edu/LDP/HOWTO">
</ITEMIZE>
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
<ITEMIZE>
<ITEM><URL URL="http://metalab.unc.edu/LDP/mirrors.html">
</ITEMIZE>
Eis uma lista dos endere<72>os recomendados:
Brasil
<ITEMIZE>
<ITEM><URL URL="http://linusp.usp.br/LDP/">
<ITEM><URL URL="http://www.conectiva.com.br/LDP/">
<ITEM><URL URL="http://www.opensite.com.br/linux/">
<ITEM><URL URL="http://taubate.valley-bbs.com.br/LDP/">
<ITEM><URL URL="http://linux.unicamp.br/docs/">
</ITEMIZE>
Portugal
<ITEMIZE>
<ITEM><URL URL="http://gil.di.uminho.pt/mirrors/LDP/">
<ITEM><URL URL="http://deneb.cec.pt/LDP/">
<ITEM><URL URL="http://ftp.dei.uc.pt/LDP/">
<ITEM><URL URL="http://www.sc.uevora.pt/LDP/">
<ITEM><URL URL="http://lwp.ualg.pt/docs/LDP/">
<ITEM><URL URL="http://linux.global-one.pt/LDP/">
<ITEM><URL URL="http://linux.ispgaya.pt/LDP/">
<ITEM><URL URL="http://ae.fe.up.pt/LDP/">
</ITEMIZE>
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 <URL
URL="http://www.sgmltools.org/">).
<SECT1>P<>gina oficial na WWW
<P>
A p<>gina oficial do Linux Portuguese-HOWTO, assim como os diversos arquivos de
configura<EFBFBD><EFBFBD>o do sistema e programas aplicativos mencionados no texto, podem
ser encontrados nos seguintes endere<72>os:
<ITEMIZE>
<ITEM>Brasil: <URL URL="http://linusp.usp.br/~casantos/">
<ITEM>Portugal: <URL URL="http://linux.fe.up.pt/howto/">
</ITEMIZE>
<SECT1>Como enviar colabora<72><61>es
<P>
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 <BF/os
t<EFBFBD>tulos das se<73><65>es/ onde as altera<72><61>es sugeridas devem ocorrer e n<>o os
n<EFBFBD>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<EFBFBD>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<EFBFBD>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 <TT/comp.os.linux.*/.
``Flames'' ter<65>o o destino costumeiro: <TT>/dev/null</TT>.
</SECT1>
<SECT>Informa<6D><61>es gerais
<SECT1>Conjuntos de caracteres
<P>
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 (<EM/International Standards Organization/ - ISO)
padronizou atrav<61>s da norma ISO-8859 v<>rios desses conjuntos, identificados
por ISO-8859-<EM/x/ onde o <EM/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<EFBFBD>digos zero a 127 correspondem ao conjunto ASCII (<EM/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 <EM/octeto/ na nomenclatura ISO). Todas as vers<72>es mais recentes de
sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam
suportar).
Al<EFBFBD>m dos caracteres alfanum<75>ricos e sinais de acentua<75><61>o, <20> poss<73>vel tamb<6D>m
gerar sinais <EM/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 <BF/Linux/ foi desenhado internamente de modo a facilitar a sua f<>cil
configura<EFBFBD><EFBFBD>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
<VERB>
man unicode
man utf-8
man iso_8859_1
man ascii
</VERB>
mas antes disso certifique-se de que o <EM/man/ est<73> configurado corretamente,
conforme mostrado na se<73><65>o <REF ID="SEC:MAN" name="Man, groff, troff">.
<SECT1>Modo texto versus Sistema de Janelas X<LABEL ID="SEC:DIFXC">
<P>
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 <BF/n<>o/ suporta totalmente o padr<64>o Unicode e sim uma extens<6E>o do
ISO-8859.
<QUOTE>
A rigor o X Window System <BF/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) <EM/sobre a qual/ se constru<72>ram v<>rias interfaces gr<67>ficas.
Tanto o protocolo quanto o Sistema de Janelas definem um conjunto de
<EM/mecanismos/ e n<>o <EM/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<EFBFBD>ncia ao nome gen<65>rico ``X''.
</QUOTE>
Existem muitas semelhan<61>as entre os dois ambientes. Ambos se baseiam em
padr<EFBFBD>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 <EM/Compose/
cujo pressionamento seguido de duas outras gerar<61> o caracter correspondente.
Assim sendo, o pressionamento da seq<65><71>ncia <BF/compose-,-c/ gerar<61> um c
cedilhado.
O tratamento do console <20> feito diretamente pelo sistema operativo e
aplica<EFBFBD><EFBFBD>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 <EM/servidor X/. O pressionamento de uma tecla gera uma
mensagem (chamada de <EM/evento/) que <20> passada pelo servidor X <20> aplica<63><61>o
<EM/cliente/. H<> um programa muito <20>til chamado <EM/xev/ que permite observar
cada evento a ele transmitido. Cliente e servidor se comunicam via
rede usando um conjunto de regras chamado <EM/protocolo X/ e podem rodar em
m<EFBFBD>quinas diferentes. A m<>quina onde roda o servidor <20> chamada <EM/esta<74><61>o de
trabalho/ ou <EM/terminal X/ e a m<>quina onde roda a aplica<63><61>o (programa
cliente) tamb<6D>m <20> chamada de <EM/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 <REF ID="SEC:BIBLIOGRAFIA" name="Leituras recomendadas">, mas
<EFBFBD> importante esclarecer que o evento enviado pelo servidor ao cliente n<>o
cont<EFBFBD>m o c<>digo num<75>rico da tecla, chamado <EM/keycode/ na terminologia do X.
Ao inv<6E>s disso, <20> enviado um s<>mbolo, chamado <EM/keysymbol/ ou <EM/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 <EM/xmodmap/ capaz de ler um arquivo contendo uma
tabela de convers<72>o <EM/keycode/--&gt;<EM/keysym/ e envi<76>-la, tamb<6D>m na forma
de mensagens no protocolo X, ao servidor. <20> responsabilidade do cliente e
n<EFBFBD>o do servidor interpretar o <EM/keysym/, o que significa que a
aplica<EFBFBD><EFBFBD>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 (<EM/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 <BF/XLookupString/, entretanto, n<>o processa as
seq<EFBFBD><EFBFBD>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 <EM/contextos de entrada/
(<EM/input contexts/) por meio das fun<75><6E>es <BF/XmbLookupString/ e
<BF/XwcLookupString/, cujo uso <20> responsabilidade da aplica<63><61>o -- ou do seu
programador, melhor dizendo -- mesmo no caso da tecla <EM/Compose/. Isto
deve-se so fato de o <EM/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<EFBFBD><EFBFBD>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 <BF/vi/ e <BF/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 <EM/xterm/ ou <EM/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~<REF ID="SEC:CONTOR-X" name="Contornando os limites do X">. Isso
permite usar aplica<63><61>es como <EM/xfig/ ou <EM/xedit/ sem que seja necess<73>rio
alter<EFBFBD>-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<EFBFBD><EFBFBD>o de curto prazo de Quinot torna-se bastante atraente...
</SECT1>
</SECT>
<SECT>Configura<72><61>o do console (modo texto)<LABEL ID="CONF-CONS">
<P>
O documento de refer<65>ncia sobre a configura<72><61>o do console do Linux <20> o
<htmlurl
URL="http://metalab.unc.edu/pub/Linux/docs/HOWTO/Keyboard-and-Console-HOWTO"
name="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.
<SECT1>Mapas de teclado
<P>
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 <EM/de
varredura/, tamb<6D>m conhecido como <EM/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 <EM/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 <EM/scancode/ de tecla e o caracter (ou seq<65><71>ncia de caracteres)
a gerar quando ela for pressionada, chamado <EM/keycode/. Por exemplo:
<VERB>
# 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
</VERB>
Al<EFBFBD>m das teclas alfab<61>ticas, num<75>ricas e de s<>mbolos, existem outras
chamadas <EM/modificadoras/ que permitem gerar c<>digos que n<>o
correspondem a nenhum sinal gr<67>fico: <EM/Shift Control
Alt/ e <EM/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 <EM/Meta/.
O arquivo de mapa permite tamb<6D>m especificar teclas especiais chamadas
``teclas mortas'' (<EM/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
<BF/&tilde;/ seguida de um <BF/a/, seja gerado um `<60>'.
</SECT1>
<SECT1>Mapas de tradu<64><75>o de tela
<P>
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
<TT/c-cedilhado/ na tela, fosse na realidade exibido um outro caracter de
c<EFBFBD>digo diferente mas cuja <EM/imagem/ na nossa fonte de caracteres
correspondesse <20> imagem de um <TT/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.
<!-- *** O que <20> uma fonte? *** -->
<SECT1>Comandos do pacote KBD
<P>
<DESCRIP>
<TAG/Loadkeys/
Permite carregar um mapa de teclado. Por exemplo, o comando
a seguir carrega o mapa armazenado no arquivo <TT/portugal.map/.
<VERB>
loadkeys /usr/lib/kbd/keytables/portugal.map
</VERB>
<TAG/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:
<VERB>
setfont lat1u-16.psf
</VERB>
<TAG/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 <EM/xfd/. Se o
programa showfont do pacote KBD for invocado em um emulador de terminal X,
como <EM/xterm/, ele gerar<61> um erro ``GIO_SCRNMAP: Invalid argument'', mas
n<>o provocar<61> nenhum dano.
<TAG/Mapscr/
Permite carregar um mapa de tradu<64><75>o de tela. Suponhamos que exista o arquivo
<TT>/etc/portugal.trad</TT>. Se executarmos o comando
<VERB>
mapscrn /etc/portugal.trad
</VERB>
ent<6E>o a partir deste momento as tradu<64><75>es l<> definidas ser<65>o usadas.
<TAG/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 <BF/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:
<VERB>
loadunimap lat1
</VERB>
</DESCRIP>
<!--
Esta se<73><65>o n<>o <20> realmente necess<73>ria.
<SECT1>Coloca<63><61>o do console em modo Unicode
<P>
<QUOTE>
<BF/Nota/: a configura<72><61>o descrita nesta se<73><65>o n<>o <20> obrigat<61>ria. Ela <20>
mantida aqui apenas como refer<65>ncia para os usu<73>rios.
</QUOTE>
Para colocar o console no modo Unicode permitindo o uso dos acentos e
caracteres semigr<67>ficos, pode ser usado o comando
<VERB>
echo -n -e '\033(B'
</VERB>
A ativa<76><61>o do modo Unicode deve ser feita para cada terminal virtual, mas
<EFBFBD> muito mais f<>cil criar um arquivo <TT>/etc/issue</TT> que contenha as
seq<EFBFBD><EFBFBD>ncias de configura<72><61>o. Isso pode ser feito usando este pequeno
script:
<VERB>
#!/bin/sh
echo -e '\033(B\033&lsqb;H\033&lsqb;J\033&lsqb;37m\033&lsqb;44m\033&lsqb;K' > /etc/issue
echo -e ' Welcome to \\n (\\s \\m \\r) \\l\033&lsqb;K' >> /etc/issue
echo -e ' \\d \\t (\\U)\033&lsqb;K' >> /etc/issue
echo -e '\033&lsqb;K\033&lsqb;37m\033&lsqb;40m' >> /etc/issue
echo -e >> issue
</VERB>
Esse arquivo cont<6E>m seq<65><71>ncias de escape para o agetty, que <20> usado nas
distribui<EFBFBD><EFBFBD>es Slackware e Debian. Ele faz apresentar no topo da tela um quadro
colorido com v<>rias informa<6D><61>es <20>teis. No meu computador, por exemplo, aparece
a seguinte mensagem em letras brancas sobre um fundo azul:
<VERB>
Welcome to doncarlo (Linux i586 2.0.33) tty5
Fri Jul 17 1998 03:12:37 (4 users)
</VERB>
Outras distribui<75><69>es usam programas diferentes para ativar o login do
usu<EFBFBD>rio, o que pode obrigar a fazer altera<72><61>es. Se algum dos leitores
tiver um arquivo adequado para outros *getty (mingetty, getty-ps, mgetty,
etc.) por favor envie-me uma c<>pia para que seja incluida aqui.
Na Slackware <20> importante tamb<6D>m editar o arquivo <TT>/etc/rc.d/rc.S</TT>
e comentar as linhas com os comandos que geram um novo <TT>/etc/issue
cada</TT> vez que o o sistema <20> iniciado.
Uma alternativa ao m<>todo anterior <20> colocar no in<69>cio do
<TT>/etc/rc.d/rc.S</TT> a seguinte seq<65><71>ncia de comandos:
<VERB>
# Configura<72><61>o das consolas
#
# activacao do modo de mapeamento Latin-1
#
for tty in /dev/tty&lsqb;1-9&rsqb;*
do
echo -n -e "\\033(B" &gt; $tty
done
</VERB>
</SECT1>
-->
<SECT1>Carregamento de uma fonte de caracteres<LABEL ID="SEC:CARFONTE">
<P>
O pacote KBD cont<6E>m dois tipos de fontes com codifica<63><61>o latin-1:
<ITEMIZE>
<ITEM>as que j<> possuem uma tabela de mapeamento unicode, carregada
automaticamente pelo programa <TT/setfont/. Estas fontes t<>m nomes
<TT/lat1u-*.psf/;
<ITEM>as que n<>o possuem tabela de mapeamento. Neste caso <20> preciso carregar
uma com o programa <TT/loadunimap/. Estas t<>m nomes <TT/lat1-*.psf/
(o ``u'' indica Unicode).
</ITEMIZE>
Nas vers<72>es mais novas do KBD os arquivos s<>o comprimidos com <TT/gzip/. <20>
preciso carregar uma fonte que tenha os caractres latinos acentuados no padr<64>o
ISO 8859-1 e <EM/tamb<6D>m/ os s<>mbolos semigr<67>ficos. As fontes de nome
<TT/iso01.*/ n<>o possuem esses s<>mbolos. A fonte mais recomendada <20> a
<TT/lat1u-16.psf/.
As vers<72>es mais antigas do pacote KBD mantinham essas fontes no diret<65>rio
<TT>/usr/lib/kbd/consolefonts</TT>, que foi trocado depois da vers<72>o 0.92 por
<TT>/usr/share/consolefonts</TT>. Dependendo da sua distribui<75><69>o e do quanto
ela esteja atualizada o diret<65>rio poder<65> ser um ou outro.
<SECT2>Slackware
<P>
Foi criado o script <TT>/etc/rc.d/rc.font</TT>, contendo o seguinte:
<VERB>
#!/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
</VERB>
<SECT2>Debian
<P>
Edite o arquivo <TT>/etc/kbd/config</TT> e coloque uma linha contendo
<VERB>
CONSOLE_FONT=lat1u-16.psf
</VERB>
esse arquivo <20> processado pelo script <TT>/etc/rc.boot/kbd</TT>. Execute-o
para ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre: Linux
<BF/n<>o/ <20> Windows!
<SECT2>Red Hat
<P>
Edite o arquivo <TT>/etc/sysconfig/i18n</TT> e veja se cont<6E>m o seguinte:
<VERB>
LANG=pt_BR
LINGUAS=pt_BR
LC_CTYPE=ISO-8859-1
LC_ALL=pt_BR
SYSFONT=lat1u-16
SYSTERM=linux-lat
</VERB>
<SECT2>Conectiva Red Hat Linux
<P>
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.
<SECT2>S.u.S.E.
<P>
Edite o arquivo <TT>/etc/rc.config</TT> 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
<VERB>
FONT=lat1u-16.psf
</VERB>
Edite os scripts <TT/boot.setup/ e <TT/single/ contidos no diret<65>rio
<TT>/etc/rc.d</TT>. Procure a linha contendo o comando
<TT>/usr/bin/loadunimap</TT> 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<EFBFBD><EFBFBD>o~<REF ID="SEC:CARFONTE" name="Carregamento de uma fonte de caracteres">.
<SECT2>Testando a fonte
<P>
Experimente algumas teclas como ``,.&verbar;!"&num;&dollar;%&amp;/()=?'',
etc. e use o comando <TT/showfont/ para mostrar a fonte em uso.
</SECT1>
<SECT1>Carregando um mapa de teclado
<P>
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 <TT>/usr/lib/kbd/keytables</TT>
passando mais tarde para <TT>/usr/share/keytables</TT>. Dependendo da
distribui<EFBFBD><EFBFBD>o voc<6F> ter<65> um diret<65>rio ou outro. Os mapas para diversos tipos de
teclados s<>o apresentados mais adiante.
<SECT2>Slackware.
<P>
Foi criado o script <TT>/etc/rc.d/rc.keyboard</TT>, contendo o seguinte:
<VERB>
#!/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
</VERB>
e acrescentei as seguintes linhas ao <TT>/etc/rc.d/rc.S</TT>,
imediatamente antes do tratamento do <TT>/etc/rc.d/rc.keyboard</TT>:
<VERB>
# Carrega uma fonte de caracteres se existe um script rc.font.
if &lsqb; -x /etc/rc.d/rc.font &rsqb;; then
/etc/rc.d/rc.font start
fi
# Carrega um mapa de teclado se existe um script rc.keyboard.
if &lsqb; -x /etc/rc.d/rc.keyboard &rsqb;; then
/etc/rc.d/rc.keyboard start
fi
</VERB>
<SECT2>Debian.
<P>
Certifique-se de ter instalado o pacote <EM/kbd/ e depois fa<66>a o seguinte:
<ITEMIZE>
<ITEM>copie os arquivos com os mapas de teclado fornecidos (veja a se<73><65>o <ref
id="SEC:FICHEIROS" name="Ficheiros necess<73>rios">) para o diret<65>rio
<TT>/usr/share/keytables/</TT>. N<>o <20> necess<73>rio descomprimi-los;
<ITEM>copie o mapa correspondente ao seu teclado para o arquivo
<TT>/etc/kbd/default.map.gz</TT>.
<ITEM>rode o script <TT>/etc/init.d/keymaps.sh</TT>.
</ITEMIZE>
<SECT2>Red Hat.
<P>
Certifique-se de ter instalado o pacote <EM/kbd/. Copie os arquivos com os
mapas de teclado fornecidos (veja a se<73><65>o <REF ID="SEC:FICHEIROS"
name="Ficheiros necess<73>rios">) para o diret<65>rio
<TT>/usr/lib/kbd/keytables/</TT> (ou
<TT>/usr/lib/kbd/keymaps/i386/qwerty/</TT>, a pertir do Red Hat 5.2). N<>o
<EFBFBD> necess<73>rio descomprimi-los.
Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na
vari<EFBFBD>vel KEYTABLE, como por exemplo
<VERB>
KEYTABLE="abnt2"
</VERB>
<SECT2>Conectiva Red Hat Linux.
<P>
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<EFBFBD>rio, edite o arquivo <TT>/etc/sysconfig/keyboard</TT> e coloque
<VERB>
KEYTABLE="nome"
</VERB>
Onde ``nome'' <20> <EM/br-abnt2/, <EM/pt/ ou <EM/us-acentos/ caso o desenho do
seu teclado seja ABNT-2, portugu<67>s ou americano.
<SECT2>S.u.S.E..
<P>
Certifique-se de ter instalado o pacote <EM/kbd/. Copie os arquivos com os
mapas de teclado fornecidos (veja a se<73><65>o <REF ID="SEC:FICHEIROS"
name="Ficheiros necess<73>rios">) para o diret<65>rio
<TT>/usr/lib/kbd/keytables/</TT>. N<>o <20> necess<73>rio descomprimi-los.
Descomprima o mapa de teclado adequado, copiando para o arquivo
<TT>/etc/default.keytab</TT>, usando por exemplo um comando como
<VERB>
zcat /usr/lib/kbd/keytables/pt.map.gz &gt; /etc/default.keytab
</VERB>
<SECT2>Testando o teclado
<P>
Experimente pressionar a tecla <BF/c-cedilhado/ (se o teclado n<>o tem esta
tecla, digite <TT/'c/). Verifique se todas as letras acentuadas, mai<61>sculas e
min<EFBFBD>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<EFBFBD> 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.
</SECT1>
<SECT1>Verificando erros
<P>
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
<EM/convencer/ a tela a mostrar os caracteres certos em cada caso.
Poder<EFBFBD>amos recorrer ao comando <EM/mapscrn/. O arquivo com a tabela de
tradu<EFBFBD><EFBFBD>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 <EM/showfont/.
Se usarmos a fonte de caracteres correta, o uso deste <20>ltimo comando ser<65>
desnecess<EFBFBD>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<EFBFBD> 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.
</SECT>
<SECT>Biblioteca de fun<75><6E>es libc e aplicativos GNU<LABEL ID="SEC:LIBC">
<P>
A biblioteca padr<64>o de fun<75><6E>es do Linux suporta Internacionaliza<7A><61>o e
Localiza<EFBFBD><EFBFBD>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.
<SECT1>Configurando o suporte internacional
<P>
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
<VERB>
man environ
</VERB>
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
<DESCRIP>
<TAG/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.
<TAG/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!
<TAG/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.
<TAG/LC_MESSAGES/
Estabelece a l<>ngua em que as mensagens ser<65>o apresentadas e como <20> uma
resposta afirmativa ou negativa (S/N).
<TAG/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.
<TAG/LC_TIME/
Define a formata<74><61>o de datas e horas.
<TAG/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.
<TAG/LANG/
Define de uma s<> vez todas as categorias, se LC_ALL n<>o estiver definida.
Tamb<6D>m <20> usada pelo comando <TT/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 <REF ID="SEC:LOCALE" NAME="Locale">, <REF
ID="SEC:LOCALE" NAME="Locale"> e <REF ID="SEC:LOCALE" NAME="Locale">.
</DESCRIP>
Maiores informa<6D><61>es podem ser obtidas no manual do sistema com o comando
<VERB>
man 7 locale
</VERB>
O `7' no comando anterior <20> necess<73>rio para evitar confus<75>o com uma fun<75><6E>o
hom<EFBFBD>nima da linguagem Perl. Note que as configura<72><61>es acima afetam, em
princ<EFBFBD>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<EFBFBD>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 <TT>/etc/profile</TT> uma linha contendo
<VERB>
LC_ALL="pt_PT"
export LC_ALL
</VERB>
Usu<EFBFBD>rios brasileiros devem usar ``pt_BR'' ao inv<6E>s de ``pt_PT''. Teste o
resultado com os comandos a seguir (<TT>/inexistente</TT> <20> o nome de um
arquivo que <BF/n<>o/ existe):
<VERB>
echo <20><><EFBFBD><EFBFBD><EFBFBD> | tr '&lsqb;:upper:&rsqb;' '&lsqb;:lower:&rsqb;'
tar tf /inexistente
ls -l /
date
cal 1 1999
</VERB>
O resultado do primeiro dever<65> ser ``<TT/<2F><><EFBFBD><EFBFBD><EFBFBD>/''. Os comandos <TT/tar/ e
<TT/ls/ devem retornar mensagens em Portugu<67>s e <TT/cal/ deve mostrar um
calend<EFBFBD>rio de janeiro de 1999, com <EM/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<EFBFBD>o 2.0 da distribui<75><69>o) <20> <TT/locales_2.0.7t-1.deb/ e em meu CD
est<EFBFBD> no diret<65>rio <TT>debian/main/binary-i386/admin</TT>.
</SECT1>
<SECT1>Problemas com a libc 5
<P>
At<EFBFBD> meados de 1997 todas as distribui<75><69>es de Linux usavam a mesma biblioteca
<EM/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<EFBFBD>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<EFBFBD><EFBFBD>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 <TT/locales-pt.tgz/. Para instal<61>-lo na
distribui<EFBFBD><EFBFBD>o Slackware, basta (como usu<73>rio <BF/root/) usar o comando
<VERB>
installpkg locales-pt.tgz
</VERB>
e para outras distribui<75><69>es use o comando
<VERB>
tar xzf locales-pt.tgz -C /
</VERB>
Verifique se h<> dois subdiret<65>rios do <TT>/usr/share/locale</TT> chamados
<TT/pt_BR/ e <TT/pt_PT/. Basta ent<6E>o configurar a vari<72>vel de ambiente
LC_ALL, como j<> descrito.
</SECT>
<SECT>Configura<72><61>o do X<LABEL ID="CONF-X">
<P>
Quando o servidor X est<73> ativo, ele coloca o teclado do computador em um modo
de opera<72><61>o chamado <EM/raw/ (cru), em oposi<73><69>o ao modo normal, chamado
<EM/cooked/ (isto mesmo: cozido). No modo raw o sistema operativo n<>o processa
seq<EFBFBD><EFBFBD>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 <EM/xmodmap/, que cumpre uma fun<75><6E>o correspondente <20> do comando
<EM/loadkeys/, ou seja, l<> um arquivo de mapa de teclado do X, expecificando
as equival<61>ncias entre os <EM/keycodes/ e respectivos <EM/keysymbols/.
Eis um excerto deste arquivo:
<VERB>
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
</VERB>
Observem que, ao contr<74>rio do loadkeys, o xmodmap n<>o possui um diret<65>rio
padr<EFBFBD>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<EFBFBD>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 <BF/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 <EM/dead-keys/, mas
o seu tratamento <20> responsabilidade da aplica<63><61>o, conforme visto na se<73><65>o~<ref
id="SEC:DIFXC" name="Modo texto versus Sistema de Janelas X">. H<> modos de
contornar esta limita<74><61>o e tornar o tratamento de <EM/dead-keys/ transparente
<EFBFBD>s aplica<63><61>es, conforme mostrado na se<73><65>o <REF ID="SEC:CONTOR-X"
name="Contornando os limites do X">.
Dividimos a configura<72><61>o em duas partes: Uma que deve ser feita antes do
<EM/login/ do usu<73>rio e outra depois.
<SECT1>Configura<72><61>o do xinit
<P>
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 <TT>/usr/X11R6/lib/X11/xinit</TT>, onde
normalmente ficam os arquivos de in<69>cio da se<73><65>o de trabalho no X. Na
distribui<EFBFBD><EFBFBD>o Slackware esse diret<65>rio <20> um link simb<6D>lico para
<TT>/var/X11R6/lib/xinit</TT> e na Debian e na Red Hat para
<TT>/etc/X11/xinit</TT>.
Nas distribui<75><69>es Slackware e Red Hat, verifique se no referido diret<65>rio
existe um arquivo chamado <TT>.Xmodmap</TT>. Se existir, copie o
<TT>Xmodmap.</TT>&lt;alguma-coisa&gt; para ele, ou fa<66>a um link.
Normalmente o arquivo de configura<72><61>o <TT>xinitrc</TT> possui os comandos
para carreg<65>-lo automaticamente. Veja o seguinte trecho:
<VERB>
#!/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 &lsqb; -f $sysresources &rsqb;; then
xrdb -merge $sysresources
fi
if &lsqb; -f $sysmodmap &rsqb;; then
xmodmap $sysmodmap
fi
</VERB>
Na distribui<75><69>o Debian o mapa de teclado padr<64>o do X <20>
<TT>/etc/X11/Xmodmap</TT>, 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 <TT>/etc/X11/Xsession</TT>, sempre que iniciar a se<73><65>o de trabalho do
usu<EFBFBD>rio.
<SECT1>Configura<72><61>o do XDM
<P>
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 <BF/antes/ de iniciar a
se<EFBFBD><EFBFBD>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 ``&lsqb;'' ou ``&rsqb;'' 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.
<EFBFBD> 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 <TT>/usr/X11R6/lib/X11/xdm</TT>, que
na Slackware <20> um link simb<6D>lico para <TT>/var/X11R6/lib/xdm</TT> e
<TT>/etc/X11/xdm</TT> na Debian e -- sujeito a confirma<6D><61>o -- RedHat. Eis
o conte<74>do completo desse arquivo:
<VERB>
#!/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 &lsqb; -r $sysresources &rsqb;; then
xrdb -merge $sysresources
fi
if &lsqb; -r $sysmodmap &rsqb;; then
xmodmap $sysmodmap
fi
xconsole -geometry 480x130-0-0 -daemon -notify -verbose -exitOnFail
</VERB>
A distribui<75><69>o Debian tem um <TT/Xsetup_0/ um pouco diferente, em
<TT>/etc/X11/xdm/Xsetup_0</TT>, mas basta acrescentar-lhe o seguinte:
<VERB>
sysmodmap=/etc/X11/Xmodmap
sysresources=/etc/X11/Xresources
if &lsqb; -f $sysresources &rsqb;; then
xrdb -merge $sysresources
fi
if &lsqb; -f $sysmodmap &rsqb;; then
xmodmap $sysmodmap
fi
</VERB>
Se no seu computador o login do usu<73>rio tamb<6D>m for feito sempre via xdm, n<>o <20>
necess<EFBFBD>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.
<SECT1>Compose
<P>
Uma das coisas mais importantes a definir quando vamos utilizar acentua<75><61>o
por meio de <EM/dead-keys/ <20> o conjunto de <EM/regras de composi<73><69>o/. Essas
regras determinam, por exemplo que a composi<73><69>o do caracter <BF/'/&nbsp;com
a letra <BF/e/ gerar<61> um <BF/<2F>/.
Ao contr<74>rio do console, no qual podemos definir as regras de composi<73><69>o no
pr<EFBFBD>prio mapa de teclado, no X essas regras s<>o colocadas no arquivo
<TT>/usr/X11R6/lib/X11/locale/???/Compose</TT>, 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 <BF/<2F>/ seja gerado pela seq<65><71>ncia <TT/'C/. Se n<>o fizermos
isso, seremos obrigados a digitar <TT/&lt;dead_cedilla-C&gt;/, sedo o
<EM/dead_cedilla/ produzido pela combina<6E><61>o <TT/AltGR-=/, o que n<>o <20> nada
confort<EFBFBD>vel. Al<41>m disso, no teclado americano somos obrigados a usar as aspas
duplas para gerar o trema.
O arquivo <TT/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:
<ITEMIZE>
<ITEM>C-cedilha: tecla <TT/<2F>/ ou seq<65><71>ncia
&lt;acento-agudo&gt;-C
<ITEM>Ap<41>strofo: tecla <TT/'/ ou seq<65><71>ncias
&lt;acento-agudo&gt;-&lt;acento-agudo&gt; e
&lt;acento-agudo&gt;-&lt;espa<70>o&gt;
<ITEM>Acento grave: seq<65><71>ncias &lt;acento-grave&gt;-&lt;acento-grave&gt; e
&lt;acento-grave&gt;-&lt;espa<70>o&gt;
<ITEM>Aspas: tecla <TT/&dquot;/ ou seq<65><71>ncia &lt;trema&gt;-&lt;trema&gt;
<ITEM>Trema: seq<65><71>ncia &lt;trema&gt;-&lt;espa<70>o&gt;
<ITEM>Til: seq<65><71>ncias &lt;til&gt;-&lt;espa<70>o&gt; e &lt;til&gt;-&lt;til&gt;
<ITEM>Circumflexo: seq<65><71>ncias &lt;circumflexo&gt;-&lt;espa<70>o&gt; e
&lt;circumflexo&gt;-&lt;circumflexo&gt;
</ITEMIZE>
Para incluirmos as novas regras, basta aplicar uma altera<72><61>o <20> defini<6E><69>o
original. O arquivo <TT/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
<TT>/usr/X11R6/lib/X11/locale/iso8859-1/</TT>, fa<66>a uma c<>pia de reserva do
<TT/Compose/ original e invoque o utilit<69>rio <EM/patch/:
<VERB>
cp -p Compose Compose.backup
patch < Compose.patch
</VERB>
Caso voc<6F> prefira n<>o aplicar o ``patch'', um arquivo <TT/Compose/ pronto
tamb<EFBFBD>m <20> fornecido. Lembre-se de fazer c<>pia do original <BF/antes/ de
substitu<EFBFBD>-lo!
</SECT1>
<SECT1>Locale<LABEL ID="SEC:LOCALE">
<P>
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~<REF ID="SEC:LIBC" name="Biblioteca libc">, uma
vari<EFBFBD>vel de ambiente (LANG ou LC_ALL) configura o suporte internacional
existente na biblioteca de fun<75><6E>es padr<64>o do sistema (<EM/libc/). A biblioteca
de fun<75><6E>es do X (<EM/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<EFBFBD><EFBFBD>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<EFBFBD> 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 <TT>/usr/X11R6/lib/X11/locale</TT>. Pegue o arquivo
<TT/Xlocale.patch/ via WWW na p<>gina do Portuguese HOWTO. Para aplicar a
atualiza<EFBFBD><EFBFBD>o, copie-o para o diret<65>rio <TT>/usr/X11R6/lib/X11/locale</TT>,
fa<EFBFBD>a uma c<>pia de reserva dos arquivos a serem alterados e invoque o
utilit<EFBFBD>rio <EM/patch/:
<VERB>
cp -p compose.dir compose.dir.backup
cp -p locale.alias locale.alias.backup
cp -p locale.dir locale.dir.backup
patch < Xlocale.patch
</VERB>
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 <BF/antes/ de
substitu<EFBFBD>-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 <EM/input contexts/
da Xlib que provoca viola<6C><61>es de acesso <20> mem<65>ria. Uma das aplica<63><61>es afetadas
<EFBFBD> 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.
</SECT1>
<SECT1>Gera<72><61>o de mapas com o XKeyCaps
<P>
O programa XKeyCaps, criado por <HTMLURL URL="http://www.jwz.org/" NAME="Jamie
Zawinski"> <20> uma interface gr<67>fica para o <TT/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 <TT/.Xmodmap/ correspondente.
Ele pode ser obtido via WWW em <URL URL="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.
</SECT1>
<SECT1>Contornando os limites do X<LABEL ID="SEC:CONTOR-X">
<P>
Conforme foi explicado na se<73><65>o <REF ID="SEC:DIFXC" name="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.
<SECT2>Altera<72><61>o da biblioteca Xlib
<P>
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<EFBFBD>mica'' (<EM/dynamic binding/). Deste modo, podemos modificar o
comportamento de um programa alterando uma dessas bibliotecas. Maiores
informa<EFBFBD><EFBFBD>es sobre este tema pode ser obtida nos manuais do Linux com os
comandos
<VERB>
man ld.so
man ldconfig
man ldd
man dlopen
</VERB>
Thomas Quinot criou uma altera<72><61>o para a biblioteca de fun<75><6E>es do X
(<EM/Xlib/) introduzindo o tratamento de acentos na fun<75><6E>o <BF/XLookupString/,
Tudo que se tem a fazer <20> substituir o arquivo contendo esta biblioteca por
outro, que pode ser obtido via internet no endere<72>o
<QUOTE>
<URL URL="http://web.fdn.fr/~tquinot/dead-keys.en.html">
</QUOTE>
Existem duas vers<72>es do arquivo, uma para sistemas onde as bibliotecas do X
suportam o uso seguro de <EM/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<EFBFBD> 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 <EM/Xlib/ rode o seguinte
comando:
<QUOTE>
nm --dynamic /usr/X11R6/lib/libXext.so.6|grep _Xglobal_lock
</QUOTE>
Se aparecer ``<TT/U _Xglobal_lock/'' seu sistema suporta threads e o arquivo
a obter <20> <TT/libX11-XF3.3.1-TS.tar.gz/. Se n<>o aparecer, seu sistema n<>o
suporta threads e o arquivo a obter <20> <TT/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 <TT>/usr/X11R6/libX11.so.6.1</TT> 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 <BF/n<>o/ esteja contido no arquivo <TT>/etc/ld.so.conf</TT>. Depois,
mova o novo arquivo para o lugar do antigo e rode o programa <EM/ldconfig/
(isto deve ser feito pelo usu<73>rio <BF/root/):
<VERB>
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
</VERB>
<EFBFBD> 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 <TT/XF86Config/. Este arquivo fica no diret<65>rio <TT>/etc</TT>
(Slackware) ou <TT>/etc/X11</TT> (Debian, Red Hat). Procure a se<73><65>o
``Keyboard'' e inclua a op<6F><70>o ``XkbDisable'', conforme mostrado a seguir:
<VERB>
Section "Keyboard"
Protocol "Standard"
XkbDisable
EndSection
</VERB>
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 <BF/XLookupString/ que ela deve tratar os
acentos. Se quisermos voltar ao comportamento normal, basta retirar a op<6F><70>o
do <TT/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 <EM/xedit/ e digite
alguns caracteres acentuados.
</SECT2>
<SECT2>Altera<72><61>o no kernel do Linux
<P>
<QUOTE>
Esta se<73><65>o <20> baseada em contribui<75><69>o enviada por Bruno Barberi 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.
</QUOTE>
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<EFBFBD><EFBFBD>o do teclado, chamados <EM/raw/ e <EM/cooked/. Estes modos de opera<72><61>o
podem ser mudados com o programa <BF/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<EFBFBD>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 (<EM/daemon/) chamado <BF/diacrd/, conforme descrito a seguir:
<ITEMIZE>
<ITEM>Uma modifica<63><61>o no kernel faz que todos os dados lidos do teclado
sejam redirecionados para um dispositivo especial do sistema chamado
<TT>/dev/rawkbd</TT> quando o teclado estiver em modo <EM/raw/.
<ITEM>Os dados que o kernel grava no <TT>/dev/rawkbd</TT> s<>o lidos pelo
programa <TT/diacrd/, que processa as seq<65><71>ncias acento-letra e reescreve
no <TT>/dev/rawkbd</TT> os caracteres acentuados na forma de c<>digos de
varredura (<EM/scancodes/) que normalmente n<>o existem no teclado.
<ITEM>O kernel l<> no <TT>/dev/rawkbd</TT> os c<>digos gravados pelo
<TT/diacrd/ e os passa <20> aplica<63><61>o, que no caso <20> o servidor X.
<ITEM>O servidor X mapeia os c<>digos de varredura para caracteres. Um mapa de
teclado especial permite ent<6E>o gerar as letras acentuadas.
</ITEMIZE>
O diacrd pode ser obtido via FTP an<61>nimo no endere<72>o
<QUOTE>
<URL URL="ftp://metalab.unc.edu/pub/Linux/system/keyboards">
</QUOTE>
H<EFBFBD> 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<EFBFBD><EFBFBD>o, de acordo com o arquivo ``README'', deve-se fazer o seguinte (pelo
usu<EFBFBD>rio <BF/root/):
<ITEMIZE>
<ITEM>Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia seu
conte<74>do, o que dever<65> criar um diret<65>rio chamado
<TT/diacrd-&lt;vers<72>o&gt;/.
<ITEM>Edite o arquivo <TT/diacrd.c/ e remova os coment<6E>rios desejados, de
acordo com suas prefer<65>ncias. Pode-se incluir capacidade de rodar o
programa <BF/xmodmap/ e ejetar o CD-ROM sob controle do pressionamento de
uma combina<6E><61>o de teclas.
<ITEM>Aplique a modifica<63><61>o no kernel. Para isto, execute o comando
``make~patch-usr-src''.
<ITEM>Crie o dispositivo <TT>/dev/rawkbd</TT> executando o comando
``make~rawkbd''.
<ITEM>Compile o diacrd e instale-o executando os comandos ``make'' e
``make~install''.
<ITEM>Compile e instale o kernel, com os comandos
<VERB>
cd /usr/src/linux
make config
make zlilo
</VERB>
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 mencionados
na se<73><65>o <REF ID="SEC:ONDE" name="Onde encontrar a vers<72>o mais atual">.
<ITEM>D<> um ``reboot'' no computador. Verifique se o suporte ao dispositivo
rawkbd foi instalado com sucesso com o comando
<VERB>
dmesg | grep RAWKBD
</VERB>
Deve aparecer
<VERB>
RAWKBD interface for diacriticals translation enabled...
</VERB>
e teste o dispositivo <TT>/dev/rawkbd</TT> com o comando
<VERB>
printf "### TESTANDO ###" &gt;&gt; /dev/rawkbd
</VERB>
Veja na se<73><65>o <REF ID="CONF-CONS" name="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 <TT/usintl.map/, que corresponde ao nosso
<TT/us+.map/. Se seu teclado n<>o for do tipo americano, use o
<TT/pt.map/ ou <TT/abnt-2.map/.
<ITEM>Substitua o arquivo <TT>/usr/X11R6/lib/X11/xkb/keycodes/xfree86</TT>
pelo arquivo fornecido junto com o diacrd.
<ITEM>Se tudo correr bem, rode o programa <BF/diacrd/. Depois ative o X e
use o <BF/xmodmap/ para carregar o mapa <TT/xmodmap.diacrd/.
</ITEMIZE>
Se a gera<72><61>o de acentos funcionar, <20> preciso tornar permanentes as altera<72><61>es
necess<EFBFBD>rias. Pode-se faz<61>-lo incluindo a carga do diacrd no arquivo
<TT>/etc/rc.d/rc.local</TT> (Slackware).
<QUOTE>
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.
</QUOTE>
Mais informa<6D><61>es sobre o diacrd podem ser encontradas no ``Dead keys
Mini-HOWTO'' de Claudemir Todo Bom, dispon<6F>vel em <URL
URL="http://linux.unicamp.br/docs/diversos/deadkeys.html">.
</SECT2>
<SECT2>Compara<72><61>o entre as duas solu<6C><75>es
<P>
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<EFBFBD><EFBFBD>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<EFBFBD>ncia de um processo de usu<73>rio (o <EM/daemon/ kerneld) <20> uma
desvantagem, pois se esse programa deixar de funcionar perde-se o suporte <20>
acentua<EFBFBD><EFBFBD>o no X. Trata-se de uma solu<6C><75>o ainda em desenvolvimento e, segundo o
conte<EFBFBD>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<EFBFBD> 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<EFBFBD><EFBFBD>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<EFBFBD>es incorporem algum recurso de reconfigura<72><61>o.
O diacrd s<> funciona no teclado do pr<70>prio computador. Se quisermos usar um
<EM/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> <EM/mecanismo/, deixando a cargo da
aplica<EFBFBD><EFBFBD>o a defini<6E><69>o de <EM/pol<6F>ticas/. Exemplo da vantagem deste paradigma <20>
poder usar as t<>cnicas descritas na se<73><65>o <REF ID="CONF-X" name="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<EFBFBD><EFBFBD>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
<HTMLURL URL="http://www.kde.org/" NAME="KDE">, <HTMLURL
URL="http://www.gnome.org/" NAME="GNOME"> e <HTMLURL
URL="http://www.gnustep.org/" NAME="GNUStep">, podemos supor que em breve
nenhum desses remendos ser<65> mais necess<73>rio.
</SECT2>
</SECT1>
</SECT>
<SECT>Configura<72><61>o dos v<>rios programas
<P>
<SECT1>Aplicativos
<P>
A maioria das aplica<63><61>es que rodam no Unix usa algum tipo de arquivo de
configura<EFBFBD><EFBFBD>o que o usu<73>rio coloca em seu diret<65>rio de trabalho (home) e
cujo nome normalmente <20> <TT/.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<EFBFBD>rio (e ao administrador da rede ;-) pode dificultar um pouco as
coisas. Por exemplo, aqui no CPMet temos o diret<65>rio <EM/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<EFBFBD>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
<TT>/usr/lib/alguma-coisa</TT> ou <TT>/etc/alguma-coisa</TT>.
<SECT2>Bash (biblioteca GNU readline)
<P>
Os programas que utilizam a biblioteca GNU readline para ler a linha
de comando procuram por um arquivo chamado <TT/.inputrc/ no diret<65>rio ``HOME''
do usu<73>rio caso n<>o exista uma vari<72>vel de ambiente <TT/INPUTRC/ contendo o
caminho para um arquivo de configura<72><61>o.
Coloque uma linha no seu arquivo <TT>/etc/profile</TT> contendo
<VERB>
INPUTRC="/etc/inputrc"
export INPUTRC
</VERB>
e crie um arquivo /etc/inputrc contendo
<VERB>
set meta-flag on
set convert-meta off
set output-meta on
</VERB>
Outra alternativa <20> criar um arquivo <TT/.inputrc/ no diret<65>rio <EM/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 <TT/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 PageDown); 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 <BF/bash/ e da biblioteca
<BF/readline/ com os comandos
<VERB>
man bash
man readline
</VERB>
<SECT2>Emacs
<P>
O pai de todos os editores pode ser configurado criando-se um arquivo
chamado <TT/.emacs/ no diret<65>rio do usu<73>rio, contendo as seguintes linhas:
<VERB>
(set-input-mode nil nil 1)
(standard-display-european t)
(require 'iso-syntax)
</VERB>
Para tornar esta configura<72><61>o global, na distribui<75><69>o Slackware coloque os
comandos no arquivo <TT>/usr/lib/emacs/site-lisp/site-start.el</TT>. Na
distribui<EFBFBD><EFBFBD>o Debian o emacs executa todos os scripts contidos no diret<65>rio
<TT>/etc/emacs/site-start.d</TT> ao ser carregado. Tudo que se tem a fazer
<EFBFBD> colocar esses comandos em um arquivo chamado, por exemplo,
<TT/01portugues-emacs.el/.
Se o estimado leitor, assim como eu, n<>o se agrada do tratamento dado pelo
Emacs <20>s teclas de <EM/Delete/, <EM/Home/ e <EM/End/, aproveite a oportunidade
e acrescente ao mesmo arquivo o seguinte:
<VERB>
(global-unset-key &lsqb;backspace&rsqb; )
(global-set-key &lsqb;backspace&rsqb; 'delete-backward-char)
(global-unset-key &lsqb;delete&rsqb; )
(global-set-key &lsqb;delete&rsqb; 'delete-char)
(define-key global-map &lsqb;home&rsqb; 'beginning-of-line)
(define-key global-map &lsqb;C-home&rsqb; 'beginning-of-buffer)
(define-key global-map &lsqb;end&rsqb; 'end-of-line)
(define-key global-map &lsqb;C-end&rsqb; 'end-of-buffer)
</VERB>
Arquivos de configura<72><61>o prontos podem ser obtidos via WWW na p<>gina do
Portuguese HOWTO. Para Slackware, h<> um <TT/site-start-emacs.el/, que deve
ser copiado para o diret<65>rio <TT>/usr/lib/emacs/site-lisp</TT> com o nome
de <TT/site-start.el/. Para Debian, h<> um <TT/01portugues-emacs.el/ que
deve ser copiado para o diret<65>rio <TT>/etc/emacs/site-start.d</TT>.
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.
<SECT2>flex
<P>
Especifique a op<6F><70>o <BF/-8/ se o <EM/parser/ a gerar necessitar de ler
dados de 8 bit.
<SECT2>Fortune
<P>
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 <EM/fortune cookies/, da<64> o nome).
Eis algumas mensagens t<>picas:
<VERB>
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.
</VERB>
Tudo que o programa faz <20> escolher aleatoriamente uma mensagem em um
reposit<EFBFBD>rio mantido no diret<65>rio <TT>/usr/games/fortunes</TT> (Slackware)
ou <TT>/usr/share/games/fortunes</TT> (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 <TT/.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 <BF/%/. Veja
o trecho a seguir:
<VERB>
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...
</VERB>
Tudo que temos a fazer <20> criar um arquivo com as fortunas chamado, digamos
<TT/fortunes/ com o formato descrito acima. Depois basta usar o programa
<TT/strfile/ para gerar o <20>ndice:
<VERB>
strfile fortunes
</VERB>
e um arquivo chamado <TT/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 simplesmente renome<6D>-lo para
<TT/fortunes-en/ (de <EM/En/glish) e criar outro vazio. Eu coletei algumas
fortunas e as coloquei no arquivo <TT/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
<VERB>
if &lsqb; -x /usr/games/fortune -a ! -e $HOME/.hushlogin &rsqb;; then
echo
/usr/games/fortune
echo
fi
</VERB>
Uma <20>ltima informa<6D><61>o: se o nome de um arquivo termina com o sufixo
<TT/-o/ o fortune s<> o consulta se for chamado com a op<6F><70>o
<TT/-o/. Esses arquivos s<>o os que cont<6E>m mensagens cujo conte<74>do pode
ser considerado ofensivo por algumas pessoas, tais como
<VERB>
S<> n<>o mando a sogra pro inferno, com pena do Diabo.
</VERB>
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?
<SECT2>Ispell
<P>
Dicion<EFBFBD>rios para o Portugu<67>s de Portugal podem ser obtidos via WWW
na p<>gina do <EM/Projecto Natura/ em
<URL URL="http://www.di.uminho.pt/~jj/pln/pln.html">. Para o Brasil, h<>
uma vers<72>o compilada pelo Ueda:
<URL URL="http://www.ime.usp.br/~ueda/">.
<QUOTE>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.</QUOTE>
<SECT2>JDK (inclui ICQJava)
<P>
<QUOTE>
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<EFBFBD>vel, a identidade do autor.
</QUOTE>
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:
<ITEMIZE>
<ITEM>entre no diret<65>rio <TT>jdk1.1.5/lib</TT> (no meu caso,
<TT>/jdk1.1.5/lib</TT>);
<ITEM>copie o arquivo <TT/font.properties.hu/ sobrescrevendo o
<TT/font.properties/ atual (lembre-se de fazer backups!);
<ITEM>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?)
</ITEMIZE>
<SECT2>Joe
<P>
Invoque o joe com a op<6F><70>o <TT/-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<EFBFBD>rio <TT>/usr/lib/joe</TT>. Tudo que se tem a fazer <20> remover o
espa<EFBFBD>o em branco existente no in<69>cio de cada linha. Outra alternativa <20>
acrescentar a seguinte linha ao arquivo <TT>/etc/profile</TT>:
<VERB>
alias joe='joe -asis'
</VERB>
Joe pode emular os editores Pico, emacs e WordStar. Um arquivo <EM/joerc/ est<73>
dispon<EFBFBD>vel via WWW na p<>gina do Portuguese HOWTO, contendo configura<72><61>es que
permitem usar as teclas <EM/Home/ e <EM/End/ para movimentar o cursor para o
in<EFBFBD>cio e fim da linha.
<SECT2>Less
<P>
Coloque as seguintes linhas no seu arquivo <TT>/etc/profile</TT>:
<VERB>
LESS="-MM -i"
LESSCHARSET="latin1"
LESSKEY="/etc/lesskey"
LESSOPEN='|lesspipe.sh "%s"'
export LESS LESSCHARSET LESSKEY LESSOPEN
</VERB>
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 <TT>/etc/lesskey</TT>, crie primeiro o arquivo
<TT>/etc/lesskey.in</TT> contendo as seguintes linhas:
<VERB>
# Termianl ANSI (console do Linux, XTerm, etc)
\e&lsqb;1~ goto-line
\e&lsqb;4~ goto-end
\e&lsqb;5~ back-screen
\e&lsqb;6~ forw-screen
\e&lsqb;7~ goto-line
\e&lsqb;8~ goto-end
\e&lsqb;A back-line
\e&lsqb;B forw-line
# XTerm
\eOH goto-line
\eOF goto-end
\e&lsqb;H goto-line
\e&lsqb;F goto-end
# Console Sun (testado com teclados Type 4/5)
\e&lsqb;214z goto-line
\e&lsqb;220z goto-end
\e&lsqb;216z back-screen
\e&lsqb;222z forw-screen
# Arquivo seguinte/anterior
:n next-file
:N next-file
:p prev-file
</VERB>
Depois ``compile-o'' usando o comando
<VERB>
# lesskey -o /etc/lesskey /etc/lesskey.in
</VERB>
Crie o arquivo <TT>/usr/bin/lesspipe.sh</TT> contendo
<VERB>
#!/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 ;;
*.&lsqb;1-9&rsqb;.gz | *.n.gz | *.man.gz)
FILE=`file -Lz "$1" | cut -d ' ' -f 2`
if &lsqb; "$FILE" = "troff" &rsqb;; 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 ;;
*.&lsqb;1-9&rsqb; | *.n | *.man)
FILE=`file -L "$1" | cut -d ' ' -f 2`
if &lsqb; "$FILE" = "troff" &rsqb;; then
groff -s -p -t -e -Tlatin1 -mandoc "$1"
fi ;;
esac
</VERB>
N<EFBFBD>o esque<75>a de torn<72>-lo execut<75>vel:
<VERB>
chmod 755 /usr/bin/lesspipe.sh
</VERB>
Na distribui<75><69>o Debian j<> existe um script <TT>/usr/bin/lesspipe</TT>
(note a aus<75>ncia da extens<6E>o <TT/.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
<EM/RPM+Slackware Mini-HOWTO/ que explica como fazer isso.
<SECT2>ls
<P>
Acrescente a seguinte linha ao arquivo <TT>/etc/profile</TT> :
<VERB>
alias ls="ls -N"
</VERB>
ou
<VERB>
alias ls="ls -b"
</VERB>
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 <TT>/etc/profile</TT> ou <TT/.profile/ as
seguintes linhas:
<VERB>
# -----------------------------------------
# Set up the color-ls environment variables
# -----------------------------------------
if &lsqb; "$SHELL" = "/bin/bash" -o \
"$SHELL" = "/bin/sh" &rsqb;; then
eval `dircolors -b`
elif &lsqb; "$SHELL" = "/bin/zsh" &rsqb;; then
eval `dircolors -z`
elif &lsqb; "$SHELL" = "/bin/ash" &rsqb;; then
eval `dircolors -s`
elif &lsqb; "$SHELL" = "/bin/ksh" -o \
"$SHELL" = "/bin/pdksh" &rsqb;; then
eval `dircolors -k`
elif &lsqb; "$SHELL" = "/bin/csh" -o \
"$SHELL" = "/bin/tcsh" &rsqb;; then
eval `dircolors -c`
else
eval `dircolors -b`
fi
</VERB>
Se o seu shell <20> o csh ou tcsh, acrescente a seguinte linha ao arquivo
<TT>/etc/csh.login</TT> ou <TT>~/.login</TT>:
<VERB>
alias ls 'ls --color'
</VERB>
<SECT2>LyX<LABEL ID="SEC:LYX">
<P>
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<EFBFBD>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
<QUOTE><URL URL="http://www.lyx.org"></QUOTE>
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<EFBFBD><EFBFBD>o oficial do LyX.
Tendo o LyX instalado, <20> muito f<>cil criar documentos com acentua<75><61>o em
Portugu<EFBFBD>s. Seguindo as seguintes regras:
<ITEMIZE>
<ITEM>Se o teclado foi configurado para ter <EM/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 <TT/'c/, pois o
LyX gera um c com acento. Temos que usar a seq<65><71>ncia Compose-v<>rgula-c.
<ITEM>Se o teclado <BF/n<>o/ foi configurado para ter <EM/dead keys/ ainda
assim <20> poss<73>vel acentuar no LyX. Selecione o <EM/menu/
<TT>Options/Keyboard</TT>. Na caixa de di<64>logo ``Key Mappings'',
selecione no <20>tem <TT>Language/Primary</TT> 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 <EM/dead keys/.
<ITEMIZE>
<ITEM>A v<>rgula ser<65> tratada como cedilha. Para obter um `<60>'digite
<TT/,C/ e para obter uma v<>rgula digite <TT/,,/. Cuidado! A
seq<65><71>ncia <TT/,/&lt;espa<70>o&gt; gerar<61> uma cedilha isolada e
n<>o uma v<>rgula!
<ITEM><TT/&tilde; ^ ' e `/ ser<65>o tratados como acentos. Vale a mesma
regra anterior: para obter apenas o acento, pressione a tecla duas
vezes consecutivas.
<ITEM><TT>: ; . / ?</TT> e <TT/-/ tamb<6D>m ser<65>o tratados como
acentos. <TT/?a/ gerar<61> um `&aring;' e assim por diante.
</ITEMIZE>
</ITEMIZE>
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 <EM/menu/ <TT>File/New</TT>.
Depois selecione o <EM/menu/ <TT>Layout/Document</TT>. Na caixa de di<64>logo
``Document Layout'' selecione no <20>tem <TT/Language/ a op<6F><70>o ``brazil'' ou
``portuges'' (sem o <EM/u/ mesmo); no <20>tem <TT/Encoding/ selecione
``latin1''.
Veja a observa<76><61>o sobre o pacote <EM/algorithm/ na se<73><65>o~<REF ID="SEC:LATEX"
name="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 <EM/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: <URL
URL="http://www-pu.informatik.uni-tuebingen.de/users/ettrich/">.
<SECT2>Man, groff, troff<LABEL ID="SEC:MAN">
<P>
Pode-se usar a op<6F><70>o de linha de comando <TT/-Tlatin1/ para o groff,
mas <20> mais simples colocar uma linha no seu arquivo <TT>/etc/profile</TT>
contendo
<VERB>
GROFF_TYPESETTER="latin1"
export GROFF_TYPESETTER
</VERB>
Para maiores informa<6D><61>es leia o manual do groff com o comando
<VERB>
man groff
</VERB>
No Linux, o comando <EM/man/ usa o <EM/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 <TT>/usr/lib/man.config</TT> e
alterar as defini<6E><69>es NROFF e NEQN, trocando a op<6F><70>o ``-Tascii'' para
``-Tlatin1'':
<VERB>
NROFF /usr/bin/groff -Tlatin1 -mandoc
NEQN /usr/bin/geqn -Tlatin1
</VERB>
ou, se usarmos a vari<72>vel de ambiente GROFF_TYPESETTER, podemos simplesmente
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> <TT>/etc/man.config</TT>
Groff tamb<6D>m pode ser configurado para fazer a separa<72><61>o sil<69>bica em
portugu<EFBFBD>s, o que <20> muito <20>til se tivermos p<>ginas de manual em Portugu<67>s. Isto
<EFBFBD> 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 <TT/groff/
us<EFBFBD>-lo. O arquivo <TT/hyphen.pt/ pode ser obtido junto com os demais na p<>gina
do HOWTO. Trata-se do arquivo <TT/pt8hyph.tex/ (ver se<73><65>o <REF ID="SEC:LATEX"
name="TeX e LaTeX">) ao qual foi adicionado apenas um coment<6E>rio.
Ele deve ser copiado para o diret<65>rio
<TT>/usr/share/groff/tmac/</TT> ou <TT>/usr/lib/groff/tmac/</TT>,
dependendo da distribui<75><69>o. <20> conveniente criar um ``link'' simb<6D>lico para
<TT/hyphen.br/. Para usar esse arquivo, basta colocar no in<69>cio do seu
documento troff/groff as linhas a seguir:
<VERB>
.if \n(.g \&lcub;\
.hla pt
.hpf hyphen.pt
.\&rcub;
</VERB>
O <TT/.if/ n<>o <20> necess<73>rio para a acentua<75><61>o, mas ele testa se o
processador 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.
<SECT2>Midnight Comander (mc)
<P>
No menu <TT/Options/ sub-menu <TT/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<EFBFBD>o foi poss<73>vel digitar tais caracteres na linha de comando ou nas caixas
de di<64>logo.
<SECT2>Minicom
<P>
Coloque uma linha no seu arquivo <TT>/etc/profile</TT> contendo
<VERB>
MINICOM="-m -c on"
export MINICOM
</VERB>
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
<VERB>
man minicom
</VERB>
Mais uma dica sobre o Minicom: para faz<61>-lo usar usar corretamante a tecla
<EM/Meta/ para ativa<76><61>o dos comandos rodando dentro de um <EM/xterm/, deve-se
invoc<EFBFBD>-lo com a op<6F><70>o ``-m'' e passar a op<6F><70>o ``-xrm "*eightBitInput: false"''
para o xterm. Se usarmos o <EM/rxvt/ ent<6E>o o minicom deve ser chamado com a
op<EFBFBD><EFBFBD>o ``-m'' e a tecla de ativa<76><61>o dos comandos ser<65> <EM/Alt/. Fiz uma
adapta<EFBFBD><EFBFBD>o no script <TT/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<EFBFBD><EFBFBD>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
<QUOTE>
<URL URL="http://www.clinet.fi/~walker/minicom.html">
</QUOTE>
<SECT2>Netscape Communicator
<P>
O Communicator, assim como muitas aplica<63><61>es que utilizam <EM/toolkits/
baseados no X Toolkit (Xt), permite que se modifiquem muitas de suas
caracter<EFBFBD>sticas por meio de arquivos de configura<72><61>o (X Resources). No caso
espec<EFBFBD>fico do Communicator, pode-se criar um arquivo chamado <TT/Netscape/
no diret<65>rio <TT>/usr/X11R6/lib/X11/app-defaults</TT> contendo estas
op<EFBFBD><EFBFBD>es.
Na distribui<75><69>o brasileira Conectiva, o pacote do Communicator vem com um
arquivo <TT>/usr/lib/netscape/i18n/Netscape.ad.pt_BR</TT> e um script
<TT>/usr/bin/netscape</TT> que executa o Communicator fazendo-o ler este
arquivo. Uma c<>pia do <TT/Netscape.ad.pt_BR/ pode ser obtida na p<>gina
oficial do Portuguese-HOWTO. Para us<75>-lo, simplesmente copie-o para
<TT>/usr/X11R6/lib/X11/app-defaults/Netscape</TT>, 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 <TT/xrdb/, com o comando
<VERB>
man xrdb
</VERB>
<SECT2>nn
<P>
<QUOTE>
Al<41>, al<61>, algu<67>m usa nn? Informa<6D><61>o mais atualizada ser<65> bem recebida.
</QUOTE>
Acrescente a seguinte linha ao arquivo <TT>~/.nn/init</TT>:
<VERB>
set data-bits 8
</VERB>
<SECT2>Pine e Pico
<P>
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
<VERB>
character-set=ISO-8859-1
</VERB>
ou crie um arquivo geral de configura<72><61>o contendo tal linha. Esse arquivo
normalmente <20> <TT>/usr/local/lib/pine.conf</TT> ou
<TT>/usr/lib/pine.conf</TT>
A configura<72><61>o tamb<6D>m pode ser feita usando o pr<70>prio programa. No <EM/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
<VERB>
man pine
</VERB>
<SECT2>tcsh
<P>
Nenhuma medida especial <20> necess<73>ria se for feita a correta configura<72><61>o das
vari<EFBFBD>veis de ambiente ``LANG'' e ``LC_ALL'', conforme mostrado mostrado na
se<EFBFBD><EFBFBD>o~<REF ID="SEC:LIBC" name="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.
<SECT2>TeX e LaTeX<LABEL ID="SEC:LATEX">
<P>
<QUOTE>
Esta se<73><65>o foi escrita com ajuda de Klaus Steding-Jessen.
</QUOTE>
<SECT3>O pacote Babel
<P>
O pacote <EM/Babel/, criado por Johannes Braams prov<6F> suporte a um grande
n<EFBFBD>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
<VERB>
\usepackage&lsqb;portuges&rsqb;&lcub;babel&rcub;
ou
\usepackage&lsqb;brazil&rsqb;&lcub;babel&rcub;
</VERB>
H<EFBFBD> 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<EFBFBD>scula ou min<69>scula.
Pode-se misturar mais de um idioma no mesmo documento. Para Alem<65>o e
Portugu<EFBFBD>s ficaria:
<VERB>
\usepackage&lsqb;german,brazil&rsqb;&lcub;babel&rcub;
</VERB>
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:
<VERB>
\selectlanguage&lcub;german&rcub;
&lsqb;...&rsqb;
\selectlanguage&lcub;brazil&rcub;
</VERB>
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:
<VERB>
\newlanguage\nohyphen
\newcommand\nh&lsqb;1&rsqb;&lcub;&lcub;\language\nohyphen #1&rcub;&rcub;
</VERB>
E use com \nh&lcub;FOO BAR&rcub;. <20> melhor do que usar <TT/\mbox/, que
impede quebra no espaco em <TT/\mbox&lcub;FOO BAR&rcub;/.
<SECT3>Separa<72><61>o sil<69>bica
<P>
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 <BF/teTeX/, execute o utilit<69>rio
<EM/texconfig/, que na distribui<75><69>o Slackware deve ser o programa
<TT>/usr/lib/teTeX/bin/texconfig</TT> e na Debian <20>
<TT>/usr/bin/texconfig</TT>. Digite o comando
<VERB>
texconfig hyphen
</VERB>
O editor usado normalmente <20> o <BF/vi/. Se o seu editor predileto for
outro, crie uma vari<72>vel de ambiente chamada <BF/EDITOR/ contendo o nome desse
programa, como no exemplo a seguir:
<VERB>
EDITOR=pico
export EDITOR
</VERB>
O editor de texto ser<65> carregado, para editar o arquivo
<TT>language.dat</TT>. Procure uma linha que come<6D>a por <BF/%portuges/ e
remova o <BF/%/. 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 <TT>language.dat</TT>
<EFBFBD> <TT>pthyph.tex</TT> 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
<QUOTE>
<URL URL="ftp://ftp.tex.ac.uk/tex-archive/language/portuguese/pt8hyph.tex">
</QUOTE>
Copie-o para o mesmo diret<65>rio onde se encontra o <TT/pthyph.tex/, que
dependendo de sua distribui<75><69>o pode ser
<TT>/usr/lib/texmf/tex/generic/hyphen</TT>
<TT>/usr/share/texmf/tex/generic/hyphen</TT> ou
<TT>/usr/lib/teTeX/texmf/tex/generic/hyphen</TT>. Execute o comando
<TT/texconfig~hash/ e na mesma linha mencionada anteriormente insira um `8'
no nome do arquivo, de modo que fique <TT/pt8hyph.tex/.
<SECT3>Uso de Font Encoding T1
<P>
Se o conjunto de caracteres (<EM/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<EFBFBD><EFBFBD>o T1, estes caracteres s<>o usados diretamente sem preju<6A>zo do
algoritmo de hifeniza<7A><61>o. O uso de <EM/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 <EM/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
<VERB>
\usepackage&lsqb;T1&rsqb;&lcub;fontenc&rcub;
</VERB>
O antigo pacote <TT/t1enc/ n<>o deve mais ser usado e existe hoje apenas por
quest<EFBFBD>es de compatibilidade com documentos antigos. O <TT/fontenc/ <20> mais
atual, continua a ser mantido e <20> de uso mais geral, portanto prefer<65>vel.
<SECT3>Edi<64><69>o de documentos
<P>
Normalmente a introdu<64><75>o de caracteres acentuados no texto exige o uso
de <EM/seq<65><71>ncias de escape/ bastante trabalhosas. Para gerar um ``<60>''
deve-se digitar \"o. Com <EM/babel/ pode-se digitar apenas "o, o que n<>o
deixa de ser inconveniente para ler o fonte do documento. H<> um pacote chamado
<BF/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 <BF/inputenc/ ele poder<65> n<>o
conseguir process<73>-lo, mas esse recurso j<> est<73> dispon<6F>vel desde a
libera<EFBFBD><EFBFBD>o do LaTeX2e em dezembro 1994. Todas as distribui<75><69>es de Linux
atuais o incluem.
Sugest<EFBFBD>o: uma configura<72><61>o do GNU Emacs para gerar caracteres
acentuados, pr<70>pria para o uso com o pacote inputenc:
<VERB>
(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)
))
</VERB>
E outra que n<>o requer o inputenc. O uso da biblioteca `iso-cvt' faz a
transforma<EFBFBD><EFBFBD>o de ISO-8859-1 (no buffer do Emacs) para o padr<64>o do LaTeX (no
arquivo).
<VERB>
(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)
))
</VERB>
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 <TT/recode/. Se voc<6F>
possui arquivos .tex e deseja converte-lo para formato ISO-8859-1 pode usar:
<VERB>
recode -d LaTeX:l1 file.tex
</VERB>
O c<>digo-fonte do GNU recode pode ser obtido via FTP an<61>nimo em <URL
URL="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.
<SECT3>Teste da configura<72><61>o do LaTeX
<P>
Para testar a nova configura<72><61>o copie o seguinte trecho para um arquivo
chamado, digamos, <TT/exemplo.tex/:
<VERB>
\documentclass&lsqb;a4paper&rsqb;&lcub;article&rcub;
\usepackage&lsqb;latin1&rsqb;&lcub;inputenc&rcub;
\usepackage&lsqb;T1&rsqb;&lcub;fontenc&rcub;
\usepackage&lsqb;portuges&rsqb;&lcub;babel&rcub;
%%
%% ou \usepackage&lsqb;brazil&rsqb;&lcub;babel&rcub;
%%
\begin&lcub;document&rcub;
\title&lcub;Linux Portuguese-HOWTO&rcub;
\author&lcub;Carlos Augusto Moreira dos Santos&rcub;
\date&lcub;\today&rcub;
\maketitle
\section&lcub;Introdu<64><75>o&rcub;
Este documento pretende ser um guia de refer<65>ncia de configura<72><61>o
do \textbf&lcub;Linux&rcub; 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&lcub;document&rcub;
</VERB>
Esse texto cont<6E>m de prop<6F>sito uma ``palavra'' bastante longa para for<6F>ar a
separa<EFBFBD><EFBFBD>o sil<69>bica. Ele est<73> dispon<6F>vel via WWW no arquivo <TT/exemplo.tex/
na p<>gina do Portuguese HOWTO. Para process<73>-lo, use o comando <TT/latex/,
conforme mostrado a seguir:
<VERB>
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) &lsqb;1&rsqb;
(exemplo.aux) )
(see the transcript file for additional information)
Output written on exemplo.dvi (1 page, 812 bytes).
Transcript written on exemplo.log.
</VERB>
A mensagem ``Hyphenation patterns for english, german, <BF/portuges/,
loaded.'' indica que a configura<72><61>o foi bem sucedida. Se o seu computador
est<EFBFBD> rodando o X o documento formatado poder<65> ser visto com
o comando
<VERB>
xdvi exemplo.dvi
</VERB>
Observe que o ``<TT/\today/'' gera a data corrente. No ``portugues'' seria
``17 de Julho de 1998'' mas no ``brazil'' seria ``17 de julho de 1998''.
<SECT3>Problemas com alguns pacotes do teTeX
<P>
H<EFBFBD> um problema com o pacote <EM/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 ``<TT/\usepackage&lcub;algorithm&rcub;/'' o seguinte:
<VERB>
\makeatletter
\renewcommand&lcub;\ALG@name&rcub;&rcub;&lcub;Algoritmo&rcub;&rcub;
\makeatother
\renewcommand&lcub;\listalgorithmname&rcub;&rcub;&lcub;Lista de Algoritmos&rcub;&rcub;
</VERB>
No teTeX 0.4 (vers<72>o 1.2h do portuges.ldf) o t<>tulo do ambiente <EM/proof/,
encontrado nas classes <EM/amsbook/, <EM/amsart/, etc., sai como ``Proof.''.
Para corrigir isso, coloque no pre<72>mbulo de seu documento o comando
<VERB>
\renewcommand&lcub;\proofname&rcub;&rcub;&lcub;Demonstra\c&lcub;c&rcub;\~ao&rcub;
</VERB>
mas o mais recomend<6E>vel <20> que se atualize a vers<72>o do teTeX.
Usu<EFBFBD>rios do LyX podem incluir esses comandos no pre<72>mbulo do documento usando
o menu <TT>Layout/LaTeX Preamble</TT>. Pode-se resolver o problema
alterando o arquivo <TT/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 <TT/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 <TT/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
<TT>/usr/lib/teTeX/texmf/tex/generic/babel</TT> (Slackware), fa<66>a uma
c<EFBFBD>pia de reserva do <TT/portuges.ldf/ original e invoque o utilit<69>rio
<TT/patch/:
<VERB>
cp -p portuges.ldf portuges.ldf.backup
patch &lt; portuges.ldf.patch
</VERB>
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 <TT/ls-R/ da pr<70>xima vez que o
programa <EM/texhash/ for executado. Isso n<>o far<61> mal algum, mas pode-se
mover o backup para algum lugar seguro (eu uso <TT>/usr/backup</TT>).
<SECT3>Lista TeX-BR
<P>
H<EFBFBD> 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 &lt;<HTMLURL
URL="mailto:tex-br-request@listas.furg.br"
name="tex-br-request@listas.furg.br">&gt;. Esta lista <20> administrada por Rafael
Rodrigues Obelheiro.
H<EFBFBD> uma p<>gina na WWW em <URL URL="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.
<SECT3>LaTeX-demo
<P>
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 <URL URL="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 <URL
URL="http://biquinho.furg.br/tex-br/doc/artigo-1-jessen/">.
<SECT2>WordPerfect
<P>
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 <HTMLURL
URL="http://www.lyx.org/" NAME="LyX">, que j<> foi inclusive traduzido para
nossa l<>ngua, conforme mencionado na se<73><65>o~<REF ID="SEC:LYX" NAME=LyX>.
<SECT2>Xemacs (antigo lucid emacs)
<P>
<QUOTE>
Agrade<EFBFBD>o a colabora<72><61>o de Judson Santos Santiago e Goedson Teixeira
Paix<EFBFBD>o que ajudaram a identificar os problemas com o Xemacs.
</QUOTE>
O <HTMLURL URL="http://www.xemacs.org/" NAME="Xemacs"> j<> tem suporte <20>
acentua<EFBFBD><EFBFBD>o direta no teclado usando ``dead keys'', mas h<> um erro na
configura<EFBFBD><EFBFBD>o original que o impede de reconhecer o acento circunflexo. Este
problema n<>o ocorre se for usada a biblioteca <EM/Xlib/ aterada por Thomas
Quinot, mencionada na se<73><65>o~<REF ID="SEC:CONTOR-X" name="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 <TT/.emacs/:
<VERB>
;; 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)
</VERB>
Na distribui<75><69>o Debian 2.0 o Xemacs 20.4 executa todos os scripts contidos no
diret<EFBFBD>rio <TT>/etc/xemacs20/site-start.d</TT> ao ser carregado. Tudo que
se tem a fazer <20> colocar esses comandos em um arquivo chamado, por exemplo,
<TT/01portugues-xemacs.el/. N<>o <20> necess<73>rio instalar o <EM/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:
<ITEMIZE>
<ITEM>xemacs20-bin
<ITEM>xemacs20-nomule
<ITEM>xemacs20-support
<ITEM>xemacs20-supportel
</ITEMIZE>
Se voc<6F> instalou o Xemacs no Slackware ou outro Unix, <20> moda antiga (dowload,
compila<EFBFBD><EFBFBD>o, insta<74><61>o), ent<6E>o o arquivo a alterar <20> o <TT/site-start.el/, que
deve estar no diret<65>rio <TT>/usr/lib/xemacs/site-lisp</TT> ou
<TT>/usr/local/lib/xemacs/site-lisp</TT>, 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 <BF/delete-key-deletes-forward/. Para ativar este comportamento
coloque no seu arquivo <TT/.emacs/ uma linha contendo
<VERB>
(setq delete-key-deletes-forward t)
</VERB>
Arquivos de configura<72><61>o prontos podem ser obtidos via WWW na p<>gina do
Portuguese HOWTO. Para Slackware, h<> um <TT/site-start-xemacs.el/, que deve
ser copiado para o diret<65>rio correto com o nome de <TT/site-start.el/. Para
Debian, h<> um <TT/01portugues-xemacs.el/ que deve ser copiado para o
diret<EFBFBD>rio <TT>/etc/xemacs20/site-start.d</TT>.
Certifique-se de estar usando a vers<72>o 24-out-1998 ou mais recente do arquivo
de <REF ID="SEC:FICHEIROS" name="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.
<!-- Talvez seja <20>til uma se<73><65>o sobre toolkits... -->
<SECT1>Rede local e Internet
<P>
<SECT2>FTP (File Transfer Protocol)
<P>
Existem dois modos de transfer<65>ncia de arquivos: <EM/binary/ e <EM/ASCII/,
sendo este utilizado para textos. Deve-se tomar cuidado ao transferir um
arquivo, pois o modo de transf<73>rencia
<TT/ASCII/ remove o oitavo bit de cada caracter transmitido, o que ter<65> como
conseq<EFBFBD><EFBFBD>ncia a perda de todos os caracteres acentuados. Desta forma <20>
aconselhado o envio de documenta<74><61>o em modo <TT/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<EFBFBD>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 <TT/bin/ antes de um <TT/get/ quando
quiser que a transfer<65>ncia seja bin<69>ria!
<SECT2>Correio eletr<74>nico
<P>
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
<VERB>
man uuencode
man uudecode
</VERB>
<SECT>Ficheiros necess<73>rios<LABEL ID="SEC:FICHEIROS">
<P>
<BF/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:
<ITEMIZE>
<ITEM>Alt esquerdo: Alt
<ITEM>Alt direito: AltGr
<ITEM>Control esquerdo: Control
<ITEM>Control direito: Control
<ITEM>ScrollLock: ScrollLock
<ITEM>Janela esquerda: Meta
<ITEM>Janela direita: Compose
<ITEM>Menu: Menu
</ITEMIZE>
Se o seu teclado n<>o possuir as teclas <EM/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<EFBFBD><EFBFBD>o no in<69>cio das linhas que definem os <EM/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:
<ITEMIZE>
<ITEM><URL URL="http://linusp.usp.br/~casantos/">
</ITEMIZE>
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 <EM/Windows~95/.
As instru<72><75>es para instala<6C><61>o est<73>o nas se<73><65>es <REF ID="CONF-CONS"
name="Configura<72><61>o do console"> e <REF ID="CONF-X" name="Configura<72><61>o do
X">.
<DESCRIP>
<TAG/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 <TT/'C/. No console pode-se faz<61>-lo com
a seq<65><71>ncia <TT/AltGR-C/. O trema <20> gerado pela tecla <TT/&dquot;/. Para
gerar as aspas duplas <20> necess<73>rio digitar a seq<65><71>ncia
<TT/&dquot;&lt;espa<70>o&gt;/ e no console pode-se usar <TT/&dquot;&dquot;/;
opcionalmente pode-se usar <TT/AltGR-&dquot;/, o que n<>o <20> uma solu<6C><75>o muito
confort<EFBFBD>vel, mas funciona...
Testados com teclados de v<>rias marcas (e alguns sem marca :-).
<TAG/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 <BF/<2F>/ e <BF/<2F>/. N<>o s<>o muito confort<72>veis,
porque para gerar o s<>mbolos <BF/@ &lsqb; &rsqb; &lcub; &rcub;/ e o trema <20>
necess<EFBFBD>rio usar a tecla <BF/Alt-GR/.
Testado com um teclado da marca Key Tronic.
<TAG/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.
<TAG/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.
<TAG/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 <EM/Type 4/, os <EM/keycodes/ das teclas
s<EFBFBD>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.
</DESCRIP>
A gera<72><61>o dos caracteres acentuados <20> feita de acordo com a tabela a seguir:
<VERB>
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
-------------------------------------------------
</VERB>
</SECT>
<SECT>Informa<6D><61>es Adicionais
<SECT1>Fontes de informa<6D><61>o sobre Linux em Portugu<67>s
<P>
<DESCRIP>
<TAG/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 <URL URL="http://gil.di.uminho.pt">.
<TAG/Grupo de Utilizadores de Linux do ISCTE/
Pode ser visitado em <URL
URL="http://www.students.iscte.pt/~a12593/gul.html">.
<TAG/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 <URL URL="http://linux.unicamp.br">.
<TAG/Projeto LinUSP/
Desenvolvido na Universidade de S<>o Paulo, Brasil, coordenado por Jorge L.
deLyra. Pode ser visitado em <URL
URL="http://linusp.usp.br/">.
</DESCRIP>
</SECT1>
<SECT1>Free Translation Project
<P>
Programadores que quiserem desenvolver aplica<63><61>es com suporte a mais de uma
l<EFBFBD>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<EFBFBD>logo que <20> lido pelo programa ao iniciar. H<> equipes de tradu<64><75>o
respons<EFBFBD>veis por cada l<>ngua.
H<EFBFBD> uma lista de discuss<73>o via emeil para cada equipe de tradu<64><75>o, rodando em
um servidor provido pela &lt;<htmlurl URL="http://www.li.org" name="Linux
International">&gt;. Para fazer contato com a equipe de tradu<64><75>o para
Portugu<EFBFBD>s, envie um emeil para &lt;<HTMLURL URL="mailto:pt@li.org"
name="pt@li.org">&gt; e para assinar a lista envie emeil para &lt;<HTMLURL
URL="mailto:pt-request@li.org" name="pt-request@li.org">&gt; contendo apenas a
palavra ``subscribe''. Assine a lista somente se voc<6F> quiser fazer parte da
equipe de tradutores, pois ela <BF/n<>o/ se destina ao esclarecimento de
d<EFBFBD>vidas de usu<73>rios!
Mais informa<6D><61>es podem ser encontradas na documenta<74><61>o do pacote <EM/gettext/
dispon<EFBFBD>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
<QUOTE>
<URL URL="ftp://ftp.gnu.org/pub/gnu/">
</QUOTE>
e o nome do arquivo a copiar <20> ``gettext-&lt;vers<72>o&gt;.tar.gz''.
</SECT1>
<SECT1>LIE-BR
<P>
<QUOTE>
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.
</QUOTE>
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
<EFBFBD> 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:
<ITEMIZE>
<ITEM>contribuir para o projeto de internacionaliza<7A><61>o do Linux fazendo a parte
relativa ao portugu<67>s para o Brasil;
<ITEM>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;
<ITEM>disponibilizar (sic) material em portugu<67>s para consulta e documenta<74><61>o;
<ITEM>aumentar o acervo de documenta<74><61>o dispon<6F>vel e, indiretamente, auxiliar
no desenvolvimento iniciado pelo projeto LDP-BR.
</ITEMIZE>
Mais informa<6D><61>es podem ser encontradas na p<>gina WWW da lie-br, no endere<72>o
<QUOTE>
<URL URL="http://lie-br.conectiva.com.br/">
</QUOTE>
Ainda h<> uma quantidade enorme de documentos por traduzir. Se voc<6F> tem bom
dom<EFBFBD>nio do Ingl<67>s e deseja colaborar, ent<6E>o <BF/primeiro/ leia as instru<72><75>es
na p<>gina mencionada e assine a lista ``lie-br'', enviando um emeil para
&lt;<htmlurl URL="lie-br-subscribe@bazar.conectiva.com.br"
name="lie-br-subscribe@bazar.conectiva.com.br">&gt;. N<>o <20> preciso especificar
o assunto (subject) nem colocar nada no corpo da mensagem.
</SECT1>
<SECT1>Vers<72>es de software testadas<LABEL ID="SEC:VERSTEST">
<P>
Todas as informa<6D><61>es presentes neste documento foram testadas nas
seguintes vers<72>es de software:
<ITEMIZE>
<ITEM>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
<ITEM>XFree86 vers<72>es 3.3 a 3.3.3.1
<ITEM>Fvwm 2.0.46
<ITEM>Rxvt vers<72>o 2.4.5
<ITEM>Kernel vers<72>es 2.0.33 a 2.0.36
<ITEM>Kbd vers<72>es 0.92 a 0.96
<ITEM>GNU emacs vers<72>es 19.34 a 20.3
<ITEM>Less vers<72>es 321 e 332
<ITEM>GNU Bash vers<72>es 1.14.7 a 2.01.1
<ITEM>tcsh vers<72>es 6.07.02 e 6.07.06
<ITEM>LyX 0.12.0 a 1.0.0pre6
<ITEM>XForms 0.88
<ITEM>Joe 2.8
<ITEM>Pine 3.96 e 4.0
<ITEM>Pico 2.9
<ITEM>teTeX vers<72>es 0.4 e 0.9-9
<ITEM>XEmacs vers<72>es 20.3 e 20.4
</ITEMIZE>
<!-- *** Termos Especiais *** -->
<!--
PELAMORDIDEUS, CASANTOS!
Toma vergonha na cara e atualiza isto!
<SECT1>Termos Especiais
<P>
<DESCRIP>
<TAG/BOOT/Processo de arranque da m<>quina.
<TAG/HOWTO/Possiveis tradu<64><75>es seram : ``Como <20> que ...?'', ``O que <20> ...''
<TAG/Dir<69>ctoria HOME/a que se obtem executando ``cd &lt;ENTER&gt;''.
<TAG/Package ou pacote/Conjunto de programas, arquivos de dados e/ou
documenta<EFBFBD><EFBFBD>o reunidos segundo um fim e designa<6E><61>o comuns.
<TAG/P<>gina de C<>digo/Normalmente designada em MSDOS como sendo o bin<69>mio
FONTES - POSI<53><49>ES DE CARACTER, sendo por exemplo a P<>gina de c<>digo 850
caracterizada por um certo tipo de caracteres (diferentes dos exibidos pela
placa gr<67>fica no momento do ``boot'') e suas posi<73><69>es no teclado (o
``<TT/c-cedilhado/'' no sitio certo bem como os ``&lt;,-~ etc''). No
<BF/Linux/ o mesmo <20> obtido atrav<61>s dos comandos setfont e mapscrn.
</DESCRIP>
-->
<SECT>Observa<76><61>es finais
<SECT1>Futuras adi<64><69>es a este documento
<P>
As pr<70>ximas vers<72>es do HOWTO dever<65>o conter, entre outros assuntos, os
seguintes:
<ITEMIZE>
<ITEM>suporte <20> distribui<75><69>o Caldera;
<ITEM>informa<6D><61>es sobre compartilhamento de arquivos em rede usando NFS, SAMBA
e Mars-NWE;
<ITEM>configura<72><61>o de <EM/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);
<ITEM>uma se<73><65>o sobre desenvolvimento de programas;
<ITEM>refer<65>ncias ao Ispell (us<75>-lo para corrigir o pr<70>prio HOWTO :-);
<ITEM>informa<6D><61>es sobre X/Open, XPG4 e POSIX, ou pelo menos ponteiros para
elas.
</ITEMIZE>
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<EFBFBD><EFBFBD>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.
<SECT1>Nota de Direitos de Autor
<P>
Este HOWTO teve como autor Jo<4A>o Carlos Rodrigues Pereira, baseado em
documenta<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>es a estas regras poderam ser obtidas. Para tal, dever-se-<2D> contactar o
coordenador dos documentos HOWTO do Linux no endere<72>o &lt;<HTMLURL
URL="mailto:linux-howto@metalab.unc.edu"
NAME="linux-howto@metalab.unc.edu">&gt;.
<SECT1>Garantia (inexist<73>ncia de) e nota de responsabilidade
<P>
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 <BF>n<>o reclame para
mim</BF>!
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.
<SECT1>Agradecimentos
<P>
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
<DESCRIP>
<TAG/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/&tilde;jcrp/) n<>o
existe mais. Lembro-me de t<>-la visto, anos atr<74>s.
<TAG/Greg Hankins/Ex-coordenador dos <BF/Linux HOWTO/, por me permitir assumir
a manuten<65><6E>o deste documento e fornecer as primeiras dicas sobre autoria
de documentos SGML.
</DESCRIP>
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<EFBFBD>rios que foram inclu<6C>das neste texto. Se algu<67>m foi esquecido, por
favor desculpe a falha.
<QUOTE>
Andre Gerhard &lt;andre@lme.usp.br&gt;<newline>
Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;<newline>
Bruno Barberi Gnecco &lt;brunobg@geocities.com&gt;<newline>
Cees de Groot &lt;cg@pobox.com&gt;<newline>
Francisco Semeraro &lt;semeraro@sti.com.br&gt;<newline>
Goedson Teixeira Paixao &lt;gopaixao@dcc.ufmg.br&gt;<newline>
Joao Carvalho &lt;foxfire@fe.up.pt&gt;<newline>
Jorge Carvalho Pinto &lt;jmcpinto@yahoo.com&gt;<newline>
Judson S Santiago &lt;judson@costeira.dimap.ufrn.br&gt;<newline>
Ken MacLeod &lt;ken@bitsko.slc.ut.us&gt;<newline>
Klaus Steding-Jessen &lt;jessen@acm.org&gt;<newline>
Lamarque Vieira Souza &lt;lamarque@dcc.ufmg.br&gt;<newline>
Marcelo Malheiros &lt;malheiro@dca.fee.unicamp.br&gt;<newline>
Marcos Vinicius Lannes dos Santos &lt;lannes@cnpgl.embrapa.br&gt;<newline>
Pedro Kr<4B>ger &lt;kroger@e-net.com.br&gt;<newline>
Rafael Caetano dos Santos &lt;rcaetano@linux.ime.usp.br&gt;<newline>
Rafael Rodrigues Obelheiro &lt;obelix@biquinho.furg.br&gt;<newline>
Ramiro Morales &lt;morales@siscard.com.ar&gt;<newline>
Raul Carvalho &lt;rmpc@ip.pt&gt;<newline>
Ricardo Y. Igarashi &lt;iga@originet.com.br&gt;<newline>
Roberto Mello &lt;mello@internext.com.br&gt;<newline>
Wanderlei Antonio Cavassin &lt;cavassin@conectiva.com.br&gt;<newline>
</QUOTE>
Os seguintes agradecimentos s<>o do primeiro autor:
<DESCRIP>
<TAG/Carlos Ferreira/Pela luta que trava pela defesa da lingua portuguesa, bem
patente na sua <EM/P<>gina Portuguesa/ dispon<6F>vel no URL:
<TT>http://lila.dei.uc.pt/&tilde;cjrf/po/</TT> [Nota do mantenedor
atual: esta p<>gina n<>o existe]
<TAG/Jo<4A>o C. Silva/Pelo apoio e incentivo e criticas (bem como por me deixar
testar os meus conhecimentos no SEU computador).
<TAG/Jos<6F> Bandeira/Autor dos ficheiros <TT/port.map/ e <TT/xmodmap/. Pelo seu
apoio e por ter escrito alguma da documenta<74><61>o mais elucidativa que eu j<>
li sobre o assunto.
</DESCRIP>
</SECT1>
</SECT>
<SECT>Bibliografia comentada<LABEL ID="SEC:BIBLIOGRAFIA">
<P>
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<EFBFBD><EFBFBD>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 <TT>/usr/doc/faq/howto</TT> e na
Debian o diret<65>rio <20> <TT>/usr/doc/HOWTO</TT>. Eles tamb<6D>m podem ser obtidos
via WWW em <URL URL="http://metalab.unc.edu/LDP/HOWTO/">.
<DESCRIP>
<TAG>[BAL97]~BALSA,~Andr<64>~D. Linux and X11 internationalization</TAG>
Dispon<6F>vel via WWW em <URL
URL="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.
<TAG>[BRO98]~Brower~Andries. The Linux Keyboard and Console HOWTO</TAG>
Dispon<6F>vel via WWW em <URL
URL="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.
<TAG>[GET94]~Gettys, James et al. Xlib - C Language X Interface</TAG>
Cambridge, X Consortium, Inc., 1994. 473p.
Refer<65>ncia definitiva sobre programa<6D><61>o com <TT/Xlib/.
<TAG>[JON89]~Jones,~Oliver. Introduction to the X Window System</TAG>
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 <TT/Xlib/.
<TAG>[McC94]~McCormack,~Joel et al.X Toolkit Intrinsics - C Language Interface</TAG>
Digital Equipment Corporation/X Consortium, 1994.
A refer<65>ncia b<>sica para programadores interessados em usar Xt.
<TAG>[OSS92]~Ossana,~Joseph~&amp;~Kernighan,~Brian. Troff user's manual</TAG>
Computer Science Technical Report No. 54. Murray Hill, AT&amp;T Bell
Laboratories, 1992.
Descri<72><69>o detalhada de como usar o Troff para formata<74><61>o de documentos.
<TAG>[KER82]~Kernighan,~Brian. A Typesetter-independent TROFF</TAG>
Murray Hill, AT&amp;T Bell Laboratories, 1982.
O artigo de um dos pais do UNIX sobre o Troff.
<TAG>[QUI98]~Quinot,~Thomas. Dead keys under X11</TAG>
Dispon<6F>vel via WWW em <URL URL="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
<EM/Xlib/ para dar suporte <20> acentua<75><61>o independente da aplica<63><61>o.
<TAG>[RAY98]~Raymond,~Eric~S. The Linux XFree86 HOWTO</TAG>
Dispon<6F>vel via WWW em <URL
URL="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.
<TAG>[SCH86]~Scheifler,~Robert;~Gettys,~James. The X Window System</TAG>
<em/ACM Transactions on Graphics/, New York, ACM, <em/5/ (2): 79-109,
april, 1986.
O artigo seminal de Scheifler e Gettys descrevendo o X Window System.
<TAG>[SUN90a]~Sun~Microsystems. Using NROFF &amp; TROFF.</TAG>
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.
<TAG>[SUN90b]~Sun~Microsystems. Formatting documents</TAG>
Sun Microsystems, 1990.
Veja o <20>tem anterior.
</DESCRIP>
Arquivos cuja leitura pode ser <20>til:
<DESCRIP>
<TAG><TT>/usr/src/linux/Documentation/unicode.txt</TT></TAG>
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.
<TAG><TT>/usr/src/linux/include/linux/keyboard.h</TT></TAG>
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
<EM/include/ e outros com o resto dos programas-fonte do kernel.
<TAG><TT>/usr/X11R6/include/X11/keysymdef.h</TT></TAG>
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.
</DESCRIP>
</SECT>
</ARTICLE>