Linux Portuguese-HOWTO Configura��es do Linux para a L�ngua Portuguesa Carlos A. M. dos Santos <casantos@cpmet.ufpel.tche.br> CPMet/UFPEL -- Pelotas, RS, Brasil v3.2, 24 May 1999 Este documento pretende ser um guia de refer�ncia de configura��o do Linux e seus programas, teclados e fontes de caracteres, permitindo sua utiliza��o mais confort�vel por pessoas que falem a L�ngua Por� tuguesa. ______________________________________________________________________ Table of Contents 1. Introdu��o 1.1 Finalidades deste HOWTO 1.2 Onde encontrar a vers�o mais atual 1.3 P�gina oficial na WWW 1.4 Como enviar colabora��es 2. Informa��es gerais 2.1 Conjuntos de caracteres 2.2 Modo texto versus Sistema de Janelas X 3. Configura��o do console (modo texto) 3.1 Mapas de teclado 3.2 Mapas de tradu��o de tela 3.3 Comandos do pacote KBD 3.4 Carregamento de uma fonte de caracteres 3.4.1 Slackware 3.4.2 Debian 3.4.3 Red Hat 3.4.4 Conectiva Red Hat Linux 3.4.5 S.u.S.E. 3.4.6 Testando a fonte 3.5 Carregando um mapa de teclado 3.5.1 Slackware. 3.5.2 Debian. 3.5.3 Red Hat. 3.5.4 Conectiva Red Hat Linux. 3.5.5 S.u.S.E.. 3.5.6 Testando o teclado 3.6 Verificando erros 4. Biblioteca de fun��es libc e aplicativos GNU 4.1 Configurando o suporte internacional 4.2 Problemas com a libc 5 5. Configura��o do X 5.1 Configura��o do xinit 5.2 Configura��o do XDM 5.3 Compose 5.4 Locale 5.5 Gera��o de mapas com o XKeyCaps 5.6 Contornando os limites do X 5.6.1 Altera��o da biblioteca Xlib 5.6.2 Altera��o no kernel do Linux 5.6.3 Compara��o entre as duas solu��es 6. Configura��o dos v�rios programas 6.1 Aplicativos 6.1.1 Bash (biblioteca GNU readline) 6.1.2 Emacs 6.1.3 flex 6.1.4 Fortune 6.1.5 Ispell 6.1.6 JDK (inclui ICQJava) 6.1.7 Joe 6.1.8 Less 6.1.9 ls 6.1.10 LyX 6.1.11 Man, groff, troff 6.1.12 Midnight Comander (mc) 6.1.13 Minicom 6.1.14 Netscape Communicator 6.1.15 nn 6.1.16 Pine e Pico 6.1.17 tcsh 6.1.18 TeX e LaTeX 6.1.18.1 O pacote Babel 6.1.18.2 Separa��o sil�bica 6.1.18.3 Uso de Font Encoding T1 6.1.18.4 Edi��o de documentos 6.1.18.5 Teste da configura��o do LaTeX 6.1.18.6 Problemas com alguns pacotes do teTeX 6.1.18.7 Lista TeX-BR 6.1.18.8 LaTeX-demo 6.1.19 WordPerfect 6.1.20 Xemacs (antigo lucid emacs) 6.2 Rede local e Internet 6.2.1 FTP (File Transfer Protocol) 6.2.2 Correio eletr�nico 7. Ficheiros necess�rios 8. Informa��es Adicionais 8.1 Fontes de informa��o sobre Linux em Portugu�s 8.2 Free Translation Project 8.3 LIE-BR 8.4 Vers�es de software testadas 9. Observa��es finais 9.1 Futuras adi��es a este documento 9.2 Nota de Direitos de Autor 9.3 Garantia (inexist�ncia de) e nota de responsabilidade 9.4 Agradecimentos 10. Bibliografia comentada ______________________________________________________________________ 1. Introdu��o � semelhan�a de outras l�nguas faladas na Europa, a L�ngua Portuguesa tem caracter�sticas especiais, como a utiliza��o de caracteres acentuados, que tornam o seu suporte dif�cil, pouco intuitivo ou at� mesmo imposs�vel, por parte do software utilizado nos nossos computadores. Nossa l�ngua assume particularidades em cada um dos pa�ses em que � falada e mesmo dentro de um �nico pa�s como o Brasil, de dimens�es continentais e com influ�ncias culturais de muitos outros povos. Este documento foi originalmente escrito por um portugu�s, mas agora � mantido por um brasileiro. H� uma mistura de sotaques que deve se manter por um bom tempo, pois n�o h� raz�o para alterar o texto original sen�o para fazer de adi��es e corre��es, at� por respeito ao primeiro autor. Termos ``estrangeiros'' desnecess�rios foram substitu�dos por correspondentes da L�ngua Portuguesa, preservando-se apenas os que j� fazem parte do jarg�o da inform�tica. 1.1. Finalidades deste HOWTO Este HOWTO � um guia de refer�ncia de configura��o do sistema operativo Linux e seus programas, teclados e fontes de caracteres, permitindo sua utiliza��o mais confort�vel por pessoas que falem a L�ngua Portuguesa. Como os programas mais antigos n�o foram desenhados com suporte a caracteres acentuados ou internacionaliza��o, �s vezes � preciso usar algum artif�cio que permita contornar o problema, mas o resultado nem sempre � totalmente satisfat�rio e em alguns casos chega ser frustrante. As dificuldades encontradas centram-se essencialmente em torno de quatro pontos: � a introdu��o de caracteres acentuados atrav�s do teclado, como seja a escrita de jo~ao em vez da sua forma correcta: jo�o; � a exibi��o dos mesmos na tela do computador. O suporte resume-se normalmente � correcta localiza��o das teclas, nada mais; � o correto tratamento de conven��es nacionais de formato de datas, horas e valores monet�rios; � a exibi��o de mensagens, t�tulos e demais informa��es dos programas em outra l�ngua que n�o o Ingl�s, que � a l�ngua original da maioria desses programas. Vers�es anteriores do Portuguese HOWTO concentravam-se em contornar as duas primeiras dificuldades mencionadas, de forma a fazer que, dentro do poss�vel, tanto o sistema operativo como os programas nele utilizados aceitassem os caracteres acentuados e usassem os teclados com suporte para o Portugu�s. Embora esse objetivo ainda seja perseguido, os problemas de teclado e caracteres j� t�m solu��es satisfat�rias, pelo menos para as aplica��es mais usadas. As pr�ximas vers�es dever�o se dedicar mais aos dois �ltimos problemas. O texto cont�m uma j� n�o t�o breve discuss�o sobre o tratamento do teclado e das fontes de caracteres do console pelo Linux, bem como do suporte a v�rias l�nguas nacionais. O Sistema de Janelas X tamb�m � discutido, fazendo-se uma compara��o entre ele e o modo de texto. Por fim, s�o fornecidas instru��es para a configura��o do sistema operativo e de diversos aplicativos importantes. O documento tem se tornado menos slackwariano, incluindo cada vez mais informa��es relativas a outras distribui��es. Slackware e Caldera ainda se baseiam na vers�o 5 da biblioteca de fun��es do sistema para Linux (libc), enquanto Debian, Red Hat, TurboLinux, S.u.S.E e Stampede j� suportam a vers�o 6 (que na verdade � a glibc vers�o 2). Esta nova vers�o da biblioteca est� um passo adiante no suporte a internacionaliza��o e localiza��o. A partir da vers�o 3.2 do Portuguese-HOWTO as particularidades de cada distribui��o ser�o destacadas quando houver necessidade. A tentativa de tornar Debian uma distribui��o ``de refer�ncia'' a partir da vers�o 3.0 do HOWTO fracassou miseravelmente porque o n�mero de diferen�as entre as distribui��es � muito grande. A inten��o original de n�o tentar concentrar toda a informa��o em um �nico texto, tratando apenas de alguns temas essenciais e fornecendo refer�ncias para outras fontes, tamb�m fracassou. O HOWTO em sua vers�o 3.1 j� alcan�ava 38 p�ginas impressas em formato A4, o que est� longe de poder ser chamado de sucinto. As principais raz�es para tal gigantismo s�o a necessidade de discutir diferen�as entre as distribui��es e a necessidade de fornecer informa��es mais detalhadas sobre aplicativos. Excetuando-se aspectos muito espec�ficos do Linux, como a configura��o do modo texto e do kernel, a maioria das informa��es contidas neste documento pode ser aplicada a outros sistemas Unix. Exemplos s�o as configura��es do Sistema de Janelas X e de v�rios aplicativos, que foram aplicadas em Solaris 2.{5,6,7} e Digital UNIX 3.2. Os mapas de teclado para terminais X e esta��es de trabalho Sun foram criados e s�o usados em m�quinas que rodam Solaris. O documento poder� um dia se tornar o ``Unix Portuguese HOWTO'', embora no momento n�o se tenha inten��o ou meios de faz�-lo. 1.2. Onde encontrar a vers�o mais atual Os Linux HOWTO fazem parte do Projeto de Documenta��o Linux (Linux Documentation Project -- LDP). Os documentos do LDP s�o mantidos em servidores da Universidade da Carolina do Norte (UNC) e do Instituto de Tecnologia de Massachusetts (MIT), nos Estados Unidos da Am�rica, e podem ser obtidos via FTP an�nimo nos seguintes endere�os: � <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO> (conhecida anteriormente como sunsite.unc.edu). � <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO> Pode-se tamb�m folhear os documentos HOWTO em formato HTML no endere�o � <http://metalab.unc.edu/LDP/HOWTO> Muitas localidades mant�m c�pias desses documentos. Deve-se dar prefer�ncia ao acesso � c�pia mais pr�xima, para economizar o precioso tr�fego internacional na Internet e tamb�m evitar a sobrecarga da m�quina metalab.unc.edu. Uma lista completa dessas localidades pode ser obtida em � <http://metalab.unc.edu/LDP/mirrors.html> Eis uma lista dos endere�os recomendados: Brasil � <http://linusp.usp.br/LDP/> � <http://www.conectiva.com.br/LDP/> � <http://www.opensite.com.br/linux/> � <http://taubate.valley-bbs.com.br/LDP/> � <http://linux.unicamp.br/docs/> Portugal � <http://gil.di.uminho.pt/mirrors/LDP/> � <http://deneb.cec.pt/LDP/> � <http://ftp.dei.uc.pt/LDP/> � <http://www.sc.uevora.pt/LDP/> � <http://lwp.ualg.pt/docs/LDP/> � <http://linux.global-one.pt/LDP/> � <http://linux.ispgaya.pt/LDP/> � <http://ae.fe.up.pt/LDP/> Os Linux HOWTO est�o dispon�veis em diversos formatos: texto simples, PostScript, DVI, HTML, RTF e Lyx. O formato original � SGML e os demais s�o gerados usando o SGMLtools (maiores informa��es em <http://www.sgmltools.org/>). 1.3. P�gina oficial na WWW A p�gina oficial do Linux Portuguese-HOWTO, assim como os diversos arquivos de configura��o do sistema e programas aplicativos mencionados no texto, podem ser encontrados nos seguintes endere�os: � Brasil: <http://linusp.usp.br/~casantos/> � Portugal: <http://linux.fe.up.pt/howto/> 1.4. Como enviar colabora��es Toda a formata��o deste HOWTO, incluindo a numera��o das se��es � feita pelo SGMLtools. Por isso, ao enviar sugest�es ou corre��es, mencione os t�tulos das se��es onde as altera��es sugeridas devem ocorrer e n�o os n�meros. Nunca refira-se a um par�grafo como sendo ``o terceiro da se��o 3.1''; cite as palavras inicias do trecho a ser modificado. Envie sugest�es e corre��es via correio eletr�nico em texto simples, opcionalmente com acentua��o no c�digo ISO-8859-1. Se o texto n�o for composto em um sistema *NIX, certifique-se de usar a codifica��o correta. Todas as mensagens recebidas ser�o lidas, mas nem todas receber�o resposta direta, devido � falta de tempo para tanto. N�o envie documentos no formato propriet�rio de processadores de texto nem em formato HTML (o que infelizmente parece ser o comportamento normal do Netscape Communicator e do Microsoft Outlook). Mensagens perguntando como configurar seu modem, placa de v�deo ou rede n�o ser�o respondidas. Para esse tipo de consulta � aconselh�vel procurar uma lista de discuss�o sobre Linux em Portugu�s ou acompanhar os grupos de discuss�o de Linux na USENET comp.os.linux.*. ``Flames'' ter�o o destino costumeiro: /dev/null. 2. Informa��es gerais 2.1. Conjuntos de caracteres Um conjunto de caracteres � definido de acordo com os s�mbolos constantes no alfabeto utilizado para escrita em uma ou mais l�nguas. A Organiza��o Internacional de Normas (International Standards Organization - ISO) padronizou atrav�s da norma ISO-8859 v�rios desses conjuntos, identificados por ISO-8859-x onde o x corresponde a um determinado alfabeto. O conjunto ISO-8859 utiliza 8 bits para representar cada caracter, o que permite uma gama de 256 sinais (valores de zero a 255). Em cada um dos conjuntos, os c�digos zero a 127 correspondem ao conjunto ASCII (American Standard Code for Information Interchange) e os c�digos 160 a 255 s�o usados para caracteres nacionais. Para a l�ngua portuguesa, recomenda-se o uso do conjunto ISO-8859-1, que compreende o alfabeto latino e letras acentuadas usadas pelas l�nguas do oeste da Europa e Am�rica. Este conjunto de caracteres tamb�m � frequentemente chamado de Latin-1 ou ISO Latin-1. Um padr�o mais recente � o Unicode, definido pela norma ISO-10646, que permite definir caracteres cuja representa��o interna no computador utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as vers�es mais recentes de sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam suportar). Al�m dos caracteres alfanum�ricos e sinais de acentua��o, � poss�vel tamb�m gerar sinais semigr�ficos para desenho de linhas e bordas. Esses sinais podem aproveitar c�digos n�o utilizados pelo conjunto oficial, tornando-os n�o port�veis. O Linux foi desenhado internamente de modo a facilitar a sua f�cil configura��o e extens�o em tempo de execu��o, n�o constituindo o tratamento do teclado e fontes de caracteres excep��o. Ele possui uma implementa��o ``n�vel 1'' do padr�o Unicode. Maiores detalhes podem ser encontrados nos manuais do Linux, que podem ser lido com os comandos man unicode man utf-8 man iso_8859_1 man ascii mas antes disso certifique-se de que o man est� configurado correta� mente, conforme mostrado na se��o ``Man, groff, troff''. 2.2. Modo texto versus Sistema de Janelas X Alguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT, possuem interfaces gr�ficas pr�prias. No Linux, assim como na maioria dos sistemas compat�veis com Unix, � de uso corrente um ambiente gr�fico criado para ser ``multiplataforma'': o X Window System, que tamb�m foi projetado para suportar diversos conjuntos de caracteres, idiomas e formatos de teclado, mas ainda n�o suporta totalmente o padr�o Unicode e sim uma extens�o do ISO-8859. A rigor o X Window System n�o � uma interface gr�fica com o usu�rio, mas a combina��o de um protocolo de comunica��o com uma interface com programas aplicativos (API) sobre a qual se constru�ram v�rias interfaces gr�ficas. Tanto o proto� colo quanto o Sistema de Janelas definem um conjunto de mecanismos e n�o pol�ticas (elementos caracter�sticos da pol�tica de uma Interface Gr�fica com o Usu�rio s�o menus, bot�es e caixas de di�logo). O uso do termo ``XWindows'' � incorreto e deve ser evitado, dando-se prefer�ncia ao nome gen�rico ``X''. Existem muitas semelhan�as entre os dois ambientes. Ambos se baseiam em padr�es internacionais para defini��o de conjuntos de caracteres. Tanto no X quanto no console do Linux pode-se definir uma tecla chamada Compose cujo pressionamento seguido de duas outras gerar� o caracter correspondente. Assim sendo, o pressionamento da seq��ncia compose-,-c gerar� um c cedilhado. O tratamento do console � feito diretamente pelo sistema operativo e aplica��es comuns n�o se envolvem com o processamento dos c�digos de varredura do teclado, recebendo um caracter ou uma seq��ncia deles ao ser pressionada cada tecla, de tal sorte que tendo sido corretamente configurados o teclado e a fonte de caracteres pouco mais se tem a fazer. O X possui uma arquitetura muito diferente: tanto o teclado quanto a(s) tela(s) -- pode haver mais de uma tela -- s�o controlados por uma aplica��o especial chamada servidor X. O pressionamento de uma tecla gera uma mensagem (chamada de evento) que � passada pelo servidor X � aplica��o cliente. H� um programa muito �til chamado xev que permite observar cada evento a ele transmitido. Cliente e servidor se comunicam via rede usando um conjunto de regras chamado protocolo X e podem rodar em m�quinas diferentes. A m�quina onde roda o servidor � chamada esta��o de trabalho ou terminal X e a m�quina onde roda a aplica��o (programa cliente) tamb�m � chamada de cliente. Foge ao escopo deste texto a discuss�o mais profunda do tratamento de eventos no X. Para maiores informa��es, sugere-se a consulta aos documentos mencionados na se��o ``Leituras recomendadas'', mas � importante esclarecer que o evento enviado pelo servidor ao cliente n�o cont�m o c�digo num�rico da tecla, chamado keycode na terminologia do X. Ao inv�s disso, � enviado um s�mbolo, chamado keysymbol ou keysym, obtido pela consulta a uma tabela de convers�o mantida na mem�ria do servidor. Esta tabela pode ser modificada total ou parcialmente a qualquer momento por meio de requisi��es definidas no protocolo X. Existe um programa chamado xmodmap capaz de ler um arquivo contendo uma tabela de convers�o keycode-->keysym e envi�-la, tamb�m na forma de mensagens no protocolo X, ao servidor. � responsabilidade do cliente e n�o do servidor interpretar o keysym, o que significa que a aplica��o deve saber esperar mais um caracter ao receber uma ``tecla morta'' para compor uma letra acentuada. Desde a revis�o 5 do X existe na bibliotaca de fun��es (Xlib) um mecanismo sofisticado de suporte � gera��o de caracteres em diversos c�digos. A fun��o de tratamento de entrada de texto que j� existia nas vers�es anteriores, chamada XLookupString, entretanto, n�o processa as seq��ncias de acentos e letras de modo transparente �s aplica��es. Ao inv�s disso foi inclu�do um m�todo de composi��o usando contextos de entrada (input contexts) por meio das fun��es XmbLookupString e XwcLookupString, cujo uso � responsabilidade da aplica��o -- ou do seu programador, melhor dizendo -- mesmo no caso da tecla Compose. Isto deve-se so fato de o X Consortium ter chegado � conclus�o de que o sistema de mapeamento de teclas n�o tratava de forma satisfat�ria toda a imensa variedade de l�nguas escritas nas v�rias partes do mundo. Deste modo, decidiu-se que o ``peso'' relativo � gest�o do teclado fosse transferido para as aplica��es X, o que cria uma dificuldade quando usamos aquelas mais antigas, que n�o usam o novo m�todo de tratar a entrada. Por essas raz�es � normalmente mais dif�cil conseguir acrescentar suporte � gera��o de caracteres acentuados em aplicativos que rodam sob o X, principalmente quando n�o se possui o c�digo fonte. Aplicativos feitos para rodar apenas em modo texto, tais como vi e minicom depender�o totalmente dos recursos do emulador de terminal em uso quando rodando em uma janela do X. Se for usada uma vers�o atual do xterm ou rxvt o emulador far� o tratamento correto dos acentos. O franc�s Thomas Quinot, cansado de esperar uma solu��o melhor para o problema da acentua��o no X, resolveu implementar uma modifica��o para a Xlib proposta por Andr� D. Balsa, que adiciona suporte � acentua��o direta conforme mostrado na se��o ``Contornando os limites do X''. Isso permite usar aplica��es como xfig ou xedit sem que seja necess�rio alter�-las. O truque parece funcionar apenas para caracteres do c�digo ISO-8859-1 mas � suficiente para o Portugu�s e outras l�nguas. Como bem observa Balsa, a longo prazo todos os programas dever�o ser modificados para usar os novos recursos do X, mas como a longo prazo estaremos todos mortos a solu��o de curto prazo de Quinot torna-se bastante atraente... 3. Configura��o do console (modo texto) O documento de refer�ncia sobre a configura��o do console do Linux � o Keyboard and Console HOWTO, de Andries Brouwer, que pode ser encontrado nos reposit�rios do LDP. Conforme l� descrito, a configura��o da fonte de caracteres e mapa de teclado � feita usando o pacote KBD, encontrado em todas as distribui��es de Linux. 3.1. Mapas de teclado Cada tecla do PC possui um c�digo num�rico. Ao pressionarmos uma delas o processador controlador do teclado envia ao computador esse c�digo de varredura, tamb�m conhecido como scancode, junto com um sinal de que a tecla foi pressionada ou solta. As seq��ncias de eventos s�o ent�o processadas pelo driver de teclado e armazenadas em uma fila de caracteres que � lida pelas aplica��es por meio da chamada de fun��es do sistema operativo. Um mapa de teclado � um arquivo de texto que estabelace as correspond�ncias entre o scancode de tecla e o caracter (ou seq��ncia de caracteres) a gerar quando ela for pressionada, chamado keycode. Por exemplo: # atribui��o da tecla '-' do teclado num�rico � tecla com c�digo 74 keycode 74 = KP_Subtract # atribui��o da tecla '4' do teclado num�rico � tecla com c�digo 75 keycode 75 = KP_4 # etc... keycode 76 = KP_5 # tecla 5 keycode 77 = KP_6 # tecla 6 keycode 78 = KP_Add # soma keycode 79 = KP_1 # tecla 1 keycode 80 = KP_2 # tecla 2 Al�m das teclas alfab�ticas, num�ricas e de s�mbolos, existem outras chamadas modificadoras que permitem gerar c�digos que n�o correspondem a nenhum sinal gr�fico: Shift Control Alt e Meta. Esta �ltima normalmente n�o � encontrada em teclados de PCs, apenas em esta��es de trabalho de fabricantes como Sun, SGI, HP e Digital (eles n�o gostam de ser chamados de ``DEC''). O editor de texto Emacs usa muito a tecla Meta. O arquivo de mapa permite tamb�m especificar teclas especiais chamadas ``teclas mortas'' (deadkeys). Quando pressionadas elas n�o resultam no aparecimento de um caracter na tela, limitando-se a alterar o comportamento da tecla pressionada a seguir para que, por exemplo, ao se digitar um ~ seguida de um a, seja gerado um `�'. 3.2. Mapas de tradu��o de tela Um mapa de tradu��o de tela permite especificar qual o caracter X a ser exibido na tela, quando um programa deseja exibir um caracter Y. Desta forma, poder�amos fazer com que ao escrever o caracter com o c�digo do c-cedilhado na tela, fosse na realidade exibido um outro caracter de c�digo diferente mas cuja imagem na nossa fonte de caracteres correspondesse � imagem de um c-cedilhado. Este mapeamento � necess�rio apenas quando queremos usar uma fonte cujos caracteres n�o possuem c�digos diretamente correspondentes aos do conjunto usado no mapa de teclado. 3.3. Comandos do pacote KBD Loadkeys Permite carregar um mapa de teclado. Por exemplo, o comando a seguir carrega o mapa armazenado no arquivo portugal.map. loadkeys /usr/lib/kbd/keytables/portugal.map Setfont Permite o carregamento de uma fonte de caracteres de tela, possibilitando a altera��o das fontes utilizadas em modo de texto. O comando a seguir, por exemplo, ir� carregar uma fonte com o conjunto Latin-1: setfont lat1u-16.psf Showfont mostra todos os caracteres existentes na fonte que est� atualmente em uso no console. O X tamb�m tem um comanto chamado showfont, que serve para mostrar as caracter�sticas de uma determinada fonte, mas n�o os caracteres em si. Para esta �ltima finalidade se usa o comando xfd. Se o programa showfont do pacote KBD for invocado em um emulador de terminal X, como xterm, ele gerar� um erro ``GIO_SCRNMAP: Invalid argument'', mas n�o provocar� nenhum dano. Mapscr Permite carregar um mapa de tradu��o de tela. Suponhamos que exista o arquivo /etc/portugal.trad. Se executarmos o comando mapscrn /etc/portugal.trad ent�o a partir deste momento as tradu��es l� definidas ser�o usadas. Loadunimap Carrega um mapa de tradu��o de Unicode para a fonte de tela. O mapa padr�o, chamado ``def.uni'' considera que estamos usando a fonte normal do IBM-PC. Este comando n�o � necess�rio quando usamos uma fonte com caracteres definidos no padr�o Unicode, pois o programa setfont carrega automaticamente a tabela de mapeamento adequada. O comando a seguir carregar� o mapa de tradu��o para as fontes latin-1: loadunimap lat1 3.4. Carregamento de uma fonte de caracteres O pacote KBD cont�m dois tipos de fontes com codifica��o latin-1: � as que j� possuem uma tabela de mapeamento unicode, carregada automaticamente pelo programa setfont. Estas fontes t�m nomes lat1u-*.psf; � as que n�o possuem tabela de mapeamento. Neste caso � preciso carregar uma com o programa loadunimap. Estas t�m nomes lat1-*.psf (o ``u'' indica Unicode). Nas vers�es mais novas do KBD os arquivos s�o comprimidos com gzip. � preciso carregar uma fonte que tenha os caractres latinos acentuados no padr�o ISO 8859-1 e tamb�m os s�mbolos semigr�ficos. As fontes de nome iso01.* n�o possuem esses s�mbolos. A fonte mais recomendada � a lat1u-16.psf. As vers�es mais antigas do pacote KBD mantinham essas fontes no diret�rio /usr/lib/kbd/consolefonts, que foi trocado depois da vers�o 0.92 por /usr/share/consolefonts. Dependendo da sua distribui��o e do quanto ela esteja atualizada o diret�rio poder� ser um ou outro. 3.4.1. Slackware Foi criado o script /etc/rc.d/rc.font, contendo o seguinte: #!/bin/sh # # /etc/rc.d/rc.font # # Seleciona uma das fontes de caracteres disponiveis em # /usr/lib/kbd/consolefonts. # setfont lat1u-16.psf # O comando a seguir � totalmente desnecess�rio # com a fonte lat1u-16.psf. # loadunimap lat1u # Remova o coment�rio da linha abaixo se estiver usando uma fonte sem # tabela de mapeamento de Unicode para tela: # loadunimap lat1 3.4.2. Debian Edite o arquivo /etc/kbd/config e coloque uma linha contendo CONSOLE_FONT=lat1u-16.psf esse arquivo � processado pelo script /etc/rc.boot/kbd. Execute-o para ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre: Linux n�o � Windows! 3.4.3. Red Hat Edite o arquivo /etc/sysconfig/i18n e veja se cont�m o seguinte: LANG=pt_BR LINGUAS=pt_BR LC_CTYPE=ISO-8859-1 LC_ALL=pt_BR SYSFONT=lat1u-16 SYSTERM=linux-lat 3.4.4. Conectiva Red Hat Linux Se voc� selecionar a l�ngua correta durante a instala��o n�o h� nada mais a fazer. A configura��o � feita extatamente como do Red Hat. 3.4.5. S.u.S.E. Edite o arquivo /etc/rc.config e procure uma linha que come�a com ``FONT='' (linha 64, em minha m�quina com S.u.S.E. ver�o 5.6) e coloque FONT=lat1u-16.psf Edite os scripts boot.setup e single contidos no diret�rio /etc/rc.d. Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou ponha no seu in�cio um ``#'' para deix�-la como coment�rio. Veja coment�rios sobre este comando na se��o ``Carregamento de uma fonte de caracteres''. 3.4.6. Testando a fonte Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o comando showfont para mostrar a fonte em uso. 3.5. Carregando um mapa de teclado A seguir � necess�rio carregar o mapa de teclado adequado. At� a vers�o 0.92 do pacote KBD esses mapas ficavam no diret�rio /usr/lib/kbd/keytables passando mais tarde para /usr/share/keytables. Dependendo da distribui��o voc� ter� um diret�rio ou outro. Os mapas para diversos tipos de teclados s�o apresentados mais adiante. 3.5.1. Slackware. Foi criado o script /etc/rc.d/rc.keyboard, contendo o seguinte: #!/bin/sh # # /etc/rc.d/rc.keyboard # # Seleciona um dos mapas de teclado dispon�veis no diret�rio # /usr/lib/kbd/keytables # loadkeys abnt2 e acrescentei as seguintes linhas ao /etc/rc.d/rc.S, imediatamente antes do tratamento do /etc/rc.d/rc.keyboard: # Carrega uma fonte de caracteres se existe um script rc.font. if [ -x /etc/rc.d/rc.font ]; then /etc/rc.d/rc.font start fi # Carrega um mapa de teclado se existe um script rc.keyboard. if [ -x /etc/rc.d/rc.keyboard ]; then /etc/rc.d/rc.keyboard start fi 3.5.2. Debian. Certifique-se de ter instalado o pacote kbd e depois fa�a o seguinte: � copie os arquivos com os mapas de teclado fornecidos (veja a se��o ``Ficheiros necess�rios'') para o diret�rio /usr/share/keytables/. N�o � necess�rio descomprimi-los; � copie o mapa correspondente ao seu teclado para o arquivo /etc/kbd/default.map.gz. � rode o script /etc/init.d/keymaps.sh. 3.5.3. Red Hat. Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a se��o ``Ficheiros necess�rios'') para o diret�rio /usr/lib/kbd/keytables/ (ou /usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2). N�o � necess�rio descomprimi-los. Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na vari�vel KEYTABLE, como por exemplo KEYTABLE="abnt2" 3.5.4. Conectiva Red Hat Linux. O CRHL j� vem com os mapas de teclado para Portugu�s. Se voc� selecionou o teclado correto durante a instala��o, n�o h� mais nada a fazer. Caso contr�rio, edite o arquivo /etc/sysconfig/keyboard e coloque KEYTABLE="nome" Onde ``nome'' � br-abnt2, pt ou us-acentos caso o desenho do seu teclado seja ABNT-2, portugu�s ou americano. 3.5.5. S.u.S.E.. Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a se��o ``Ficheiros necess�rios'') para o diret�rio /usr/lib/kbd/keytables/. N�o � necess�rio descomprimi-los. Descomprima o mapa de teclado adequado, copiando para o arquivo /etc/default.keytab, usando por exemplo um comando como zcat /usr/lib/kbd/keytables/pt.map.gz > /etc/default.keytab 3.5.6. Testando o teclado Experimente pressionar a tecla c-cedilhado (se o teclado n�o tem esta tecla, digite 'c). Verifique se todas as letras acentuadas, mai�sculas e min�sculas s�o geradas corretamente e aparecem na tela. Se aparecer algum caracter estranho verifique se carregou o mapa de teclado e a fonte de caracteres corretos, pois provavelmente uma dessas opera��es foi mal sucedida. Se ao inv�s de c-cedilha min�sculo aparecer um mai�sculo � prov�vel que uma tabela de mapeamento Unicode incorreta esteja a ser carregada. Este problema ocorrer� na distribui��o S.u.S.E. se n�o se fizerem as altera��es nos scripts do sistema mencionadas anteriormente. 3.6. Verificando erros Mas, e se alguns dos caracteres continuarem a n�o aparecer? Bem, antes de mais nada verifique se a fonte e o mapa de teclado adequados foram carregados. Um caso especial � quando queremos usar uma fonte que n�o segue a codifica��o ISO Latin-1 (� o caso da fonte padr�o do console do PC). Ter�amos ent�o de convencer a tela a mostrar os caracteres certos em cada caso. Poder�amos recorrer ao comando mapscrn. O arquivo com a tabela de tradu��o teria no entanto de ser criado por n�s, seguindo um processo moroso de tentativa e erro at� encontrar o caracter cuja imagem desej�vamos. Ou, de uma forma mais f�cil, poder�amos usar o comando showfont. Se usarmos a fonte de caracteres correta, o uso deste �ltimo comando ser� desnecess�rio. � at� recomend�vel que n�o se use tal recurso, pois embora ele permita criar uma tabela de caracteres ``personalizada'' em um computador, ser� dif�cil que um documento acentuado produzido nessa m�quina possa ser lido em outra que n�o tenha a mesma configura��o. 4. Biblioteca de fun��es libc e aplicativos GNU A biblioteca padr�o de fun��es do Linux suporta Internacionaliza��o e Localiza��o segundo o padr�o POSIX (Portable Operating System Interface). Trata-se de uma norma estabelecida pelo IEEE (Institute of Electrical and Electronics Engineers) para intercomunica��o entre diferentes sistemas operativos. Existe tamb�m um padr�o estabelecido pelo ANSI (American National Standards Institute) para a linguagem de programa��o C que permite escrever programas com suporte internacional. 4.1. Configurando o suporte internacional Resumidamente, podemos dizer que as fun��es que tratam informa��es dependentes da l�ngua ou do pa�s podem ter seu comportamento modificado, bastando para tanto estabelecer algumas vari�veis de ambiente. E que fun��es s�o essas? Podemos citar as de formata��o de datas, valores monet�rios e mensagens de erro do sistema. Se voc� n�o sabe o que � uma vari�vel de ambiente, sugiro que leia o manual com o comando man environ O padr�o POSIX permite usar diversas vari�veis de configura��o, cada uma delas definindo o tratamento dado a um tipo de informa��o, a saber LC_COLLATE Define regras para compara��o entre caracteres no alfabeto local. Por exemplo, a letra `�' deve ser tratada como id�ntica ao `a' no Portugu�s quando ordenamos alfabeticamente. LC_CTYPE Define regras para compara��o entre caracteres mai�sculos e min�sculos. Se estivermos trabalhando com o c�digo ASCII, sabemos que o c�digo num�rico de uma letra min�scula � 32 a mais do que a mai�scula correspondente, mas para uma letra acentuada esta regra n�o � v�lida! LC_MONETARY Muda o comportamento das fun��es de formata��o de valores monet�rios e permite descobrir, por exemplo, o s�mbolo da moeda local, ou se usa ponto ou v�rgula como separador de milhares e de casas decimais. LC_MESSAGES Estabelece a l�ngua em que as mensagens ser�o apresentadas e como � uma resposta afirmativa ou negativa (S/N). LC_NUMERIC Estabelece o comportamento das fun��es de leitura/escrita de valores num�ricos permitindo, por exemplo que usemos a v�rgula decimal. LC_TIME Define a formata��o de datas e horas. LC_ALL Define de uma s� vez todas as categorias. Se usarmos LC_ALL, n�o precisaremos definir nenhuma das outras, a n�o ser que queiramos um comportamento diferente para aquele �tem espec�fico. LANG Define de uma s� vez todas as categorias, se LC_ALL n�o estiver definida. Tamb�m � usada pelo comando man para compor os caminhos pelos quais ele procurar� as p�ginas do manual. Veja as observa��es a respeito desta vari�vel nas se��es ``Locale'', ``Locale'' e ``Locale''. Maiores informa��es podem ser obtidas no manual do sistema com o comando man 7 locale O `7' no comando anterior � necess�rio para evitar confus�o com uma fun��o hom�nima da linguagem Perl. Note que as configura��es acima afetam, em princ�pio, apenas as fun��es dispon�veis na biblioteca de fun��es da linguagem C. Na pr�tica, todos os programas que rodam em Linux usam aquela biblioteca, mas o sistema operativo n�o prov�, cat�logos de mensagens em diversas l�nguas para todos os programas. A identifica��o da l�ngua e do local � feita por dois c�digos de duas letras, separados por um sinal ``_''. Se omitirmos o c�digo de pa�s, assume-se o pa�s padr�o para a l�ngua informada, mas deve haver um cat�logo correspondente. Deste modo, o c�digo ``pt_PT'' significa Portugu�s de Portugal, enquanto ``pt_BR'' significa Portugu�s do Brasil. Escolher uma combina��o l�ngua/local basta ent�o colocar em seu arquivo /etc/profile uma linha contendo LC_ALL="pt_PT" export LC_ALL Usu�rios brasileiros devem usar ``pt_BR'' ao inv�s de ``pt_PT''. Teste o resultado com os comandos a seguir (/inexistente � o nome de um arquivo que n�o existe): echo ����� | tr '[:upper:]' '[:lower:]' tar tf /inexistente ls -l / date cal 1 1999 O resultado do primeiro dever� ser ``�����''. Os comandos tar e ls devem retornar mensagens em Portugu�s e cal deve mostrar um calend�rio de janeiro de 1999, com do se te qu qu se s� no cabe�alho dos dias da semana. Na distribui��o Debian, certifique-se de ter instalado o pacote ``locales'', que pertence ao grupo ``admin''. O nome do arquivo que cont�m o pacote (na vers�o 2.0 da distribui��o) � locales_2.0.7t-1.deb e em meu CD est� no diret�rio debian/main/binary-i386/admin. 4.2. Problemas com a libc 5 At� meados de 1997 todas as distribui��es de Linux usavam a mesma biblioteca libc, que estava na vers�o 5, desenvolvida a partir de uma vers�o mais antiga da libc do projeto GNU. Esta biblioteca possuia suporte muito limitado � internacionaliza��o e normalmente nenhum dos cat�logos de locais era inclu�do na distribui��o, ficando o ingl�s como l�ngua padr�o. A vers�o 6 da libc do Linux baseia-se na vers�o 2 da libc do projeto GNU. O suporte � internacionaliza��o foi muito melhorado, al�m de incluir outros atributos que n�o interessam para os fins deste HOWTO. Se sua distribui��o for a Debian vers�o 2, Red Hat vers�o 5 ou qualquer outra que use a nova libc, ent�o n�o h� mais nada a fazer al�m do descrito na se��o anterior. Mas se voc� usa uma distribui��o ainda baseada na libc 5 (Slackware, Caldera 1.x ou uma vers�o mais antiga de Debian ou Red Hat) � preciso instalar a cole��o de locais. N�o tente copiar a cole��o de uma distribui��o mais recente, pois os formatos dos arquivos s�o incompat�veis. Pegue na p�gina do Portuguese HOWTO o arquivo locales- pt.tgz. Para instal�-lo na distribui��o Slackware, basta (como usu�rio root) usar o comando installpkg locales-pt.tgz e para outras distribui��es use o comando tar xzf locales-pt.tgz -C / Verifique se h� dois subdiret�rios do /usr/share/locale chamados pt_BR e pt_PT. Basta ent�o configurar a vari�vel de ambiente LC_ALL, como j� descrito. 5. Configura��o do X Quando o servidor X est� ativo, ele coloca o teclado do computador em um modo de opera��o chamado raw (cru), em oposi��o ao modo normal, chamado cooked (isto mesmo: cozido). No modo raw o sistema operativo n�o processa seq��ncias acento-letra. O servidor X � uma daquelas raras aplica��es que, por dever de of�cio, tem que tratar o teclado ``em baixo n�vel''. O X vem equipado com um utilit�rio destinado � configura��o do teclado, chamado xmodmap, que cumpre uma fun��o correspondente � do comando loadkeys, ou seja, l� um arquivo de mapa de teclado do X, expecificando as equival�ncias entre os keycodes e respectivos keysymbols. Eis um excerto deste arquivo: keycode 47 = ccedilla Ccedilla dead_acute dead_doubleacute keycode 48 = masculine ordfeminine dead_circumflex dead_caron keycode 49 = backslash bar notsign keycode 50 = Shift_L keycode 51 = dead_tilde dead_circumflex dead_grave dead_breve Observem que, ao contr�rio do loadkeys, o xmodmap n�o possui um diret�rio padr�o onde o arquivo � procurado. A configura��o do X n�o interfere de forma alguma com a configura��o do modo de texto. De facto, � poss�vel ter o seu X bem configurado, e no entanto n�o ter realizado qualquer tipo de configura��o ao modo de texto, e vice-versa. Outro ponto importante de se observar � que os c�digos num�ricos das teclas no X n�o correspondem aos do console. A tecla Backspace, por exemplo, tem o n�mero 14 no console, e 22 no X (em um computador do tipo IBM-PC). As vers�es 3.2 e posteriores do XFree86 permitam definir dead-keys, mas o seu tratamento � responsabilidade da aplica��o, conforme visto na se��o ``Modo texto versus Sistema de Janelas X''. H� modos de contornar esta limita��o e tornar o tratamento de dead-keys transparente �s aplica��es, conforme mostrado na se��o ``Contornando os limites do X''. Dividimos a configura��o em duas partes: Uma que deve ser feita antes do login do usu�rio e outra depois. 5.1. Configura��o do xinit Junto com este documento s�o fornecidos v�rios mapas de teclado para uso no X. Para automatizar o processo de configura��o do teclado basta copiar o arquivo adequado para o diret�rio /usr/X11R6/lib/X11/xinit, onde normalmente ficam os arquivos de in�cio da se��o de trabalho no X. Na distribui��o Slackware esse diret�rio � um link simb�lico para /var/X11R6/lib/xinit e na Debian e na Red Hat para /etc/X11/xinit. Nas distribui��es Slackware e Red Hat, verifique se no referido diret�rio existe um arquivo chamado .Xmodmap. Se existir, copie o Xmodmap.<alguma-coisa> para ele, ou fa�a um link. Normalmente o arquivo de configura��o xinitrc possui os comandos para carreg�-lo automaticamente. Veja o seguinte trecho: #!/bin/sh # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi Na distribui��o Debian o mapa de teclado padr�o do X � /etc/X11/Xmodmap, basta copiar o mapa desejado para aquele arquivo. Ele ser� carregado pelo xinitrc, que por sua vez � um link simb�lico para /etc/X11/Xsession, sempre que iniciar a se��o de trabalho do usu�rio. 5.2. Configura��o do XDM Existe ainda um pequeno problema: no meu computador, por exemplo, o sistema carrega diretamente o X ao dar boot e o login � feito pelo X Display Manager (xdm). Como o xdm faz o login antes de iniciar a se��o de trabalho, o mapa de teclado n�o ser� carregado, o que pode criar problemas se o usu�rio usa caracteres como ``['' ou ``]'' em sua senha, pois nos teclados ABNT-2 e portugu�s esses s�mbolos s�o gerados por teclas cujos c�digos num�ricos n�o s�o os mesmos do teclado americano. � preciso fazer uma pequena altera��o no arquivo de configura��o Xsetup_0. Esse arquivo deve estar no diret�rio /usr/X11R6/lib/X11/xdm, que na Slackware � um link simb�lico para /var/X11R6/lib/xdm e /etc/X11/xdm na Debian e -- sujeito a confirma��o -- RedHat. Eis o conte�do completo desse arquivo: #!/bin/sh # # /usr/X11R6/lib/X11/xdm/Xsetup_0 # sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -r $sysresources ]; then xrdb -merge $sysresources fi if [ -r $sysmodmap ]; then xmodmap $sysmodmap fi xconsole -geometry 480x130-0-0 -daemon -notify -verbose -exitOnFail A distribui��o Debian tem um Xsetup_0 um pouco diferente, em /etc/X11/xdm/Xsetup_0, mas basta acrescentar-lhe o seguinte: sysmodmap=/etc/X11/Xmodmap sysresources=/etc/X11/Xresources if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi Se no seu computador o login do usu�rio tamb�m for feito sempre via xdm, n�o � necess�rio mexer no xinitrc, como mostrado na se��o anterior, j� que o mapa de teclado ser� carregado antes do in�cio na se��o do usu�rio. 5.3. Compose Uma das coisas mais importantes a definir quando vamos utilizar acentua��o por meio de dead-keys � o conjunto de regras de composi��o. Essas regras determinam, por exemplo que a composi��o do caracter ' com a letra e gerar� um �. Ao contr�rio do console, no qual podemos definir as regras de composi��o no pr�prio mapa de teclado, no X essas regras s�o colocadas no arquivo /usr/X11R6/lib/X11/locale/???/Compose, onde ??? � a codifica��o em uso (no nosso caso, iso8859-1). Para facilitar o uso dos mapas para teclados que n�o t�m o c- cedilhado, como o US+ (veja adiante) � conveniente definirmos uma nova regra de composi��o, permitindo que o � seja gerado pela seq��ncia 'C. Se n�o fizermos isso, seremos obrigados a digitar <dead_cedilla-C>, sedo o dead_cedilla produzido pela combina��o AltGR-=, o que n�o � nada confort�vel. Al�m disso, no teclado americano somos obrigados a usar as aspas duplas para gerar o trema. O arquivo Compose fornecido foi feito procurando imitar ao m�ximo o comportamento do console e possui as seguintes facilidades para gera��o de caracteres: � C-cedilha: tecla � ou seq��ncia <acento-agudo>-C � Ap�strofo: tecla ' ou seq��ncias <acento-agudo>-<acento-agudo> e <acento-agudo>-<espa�o> � Acento grave: seq��ncias <acento-grave>-<acento-grave> e <acento- grave>-<espa�o> � Aspas: tecla " ou seq��ncia <trema>-<trema> � Trema: seq��ncia <trema>-<espa�o> � Til: seq��ncias <til>-<espa�o> e <til>-<til> � Circumflexo: seq��ncias <circumflexo>-<espa�o> e <circumflexo>-<circumflexo> Para incluirmos as novas regras, basta aplicar uma altera��o � defini��o original. O arquivo Compose.patch pode ser obtido via WWW na p�gina do Portuguese HOWTO. Para aplicar a atualiza��o, copie-o para o diret�rio /usr/X11R6/lib/X11/locale/iso8859-1/, fa�a uma c�pia de reserva do Compose original e invoque o utilit�rio patch: cp -p Compose Compose.backup patch < Compose.patch Caso voc� prefira n�o aplicar o ``patch'', um arquivo Compose pronto tamb�m � fornecido. Lembre-se de fazer c�pia do original antes de substitu�-lo! 5.4. Locale Para os usu�rios brasileiros, pode haver mais uma altera��o a fazer no X. Conforme vimos na se��o ``Biblioteca libc'', uma vari�vel de ambiente (LANG ou LC_ALL) configura o suporte internacional existente na biblioteca de fun��es padr�o do sistema (libc). A biblioteca de fun��es do X (Xlib) usa a vari�vel LANG para identificar a l�ngua em uso mas at� a revis�o 6.3, na qual � baseado o XFree86, n�o era inclu�da a combina��o ``pt_BR'', correspondente a Portugu�s/Brasil. Como resultado, cada vez que executarmos um aplicativo X com LC_ALL definido como ``pt_BR'' ele emitir� a mensagem ``Warning: locale not supported by Xlib, locale set to C''. Para incluir o local pt_BR no X11R6.3 basta alterar tr�s arquivos existentes no diret�rio /usr/X11R6/lib/X11/locale. Pegue o arquivo Xlocale.patch via WWW na p�gina do Portuguese HOWTO. Para aplicar a atualiza��o, copie-o para o diret�rio /usr/X11R6/lib/X11/locale, fa�a uma c�pia de reserva dos arquivos a serem alterados e invoque o utilit�rio patch: cp -p compose.dir compose.dir.backup cp -p locale.alias locale.alias.backup cp -p locale.dir locale.dir.backup patch < Xlocale.patch Caso voc� prefira n�o aplicar o ``patch'', arquivos prontos tamb�m s�o fornecidos. Lembre-se de fazer c�pias dos originais antes de substitu�-los! Em setembro de 1998 o fix-2 da revis�o 6.4 do X Window System incluiu oficialmente o suporte ao local pt_BR. Infelizmente neste mesmo fix-2 foi introduzida uma falha em uma das fun��es de tratamento de input contexts da Xlib que provoca viola��es de acesso � mem�ria. Uma das aplica��es afetadas � o processador de textos LyX. Uma corre��o provavelmente ser� inclu�da no fix-4. O X11R6.4 dever� ser a base para a vers�o 4 do XFree86. 5.5. Gera��o de mapas com o XKeyCaps O programa XKeyCaps, criado por Jamie Zawinski � uma interface gr�fica para o xmodmap, que mostra na tela o desenho de um teclado e permite modificar interativamente os s�mbolos gerados por cada tecla e gerar automaticamente o arquivo .Xmodmap correspondente. Ele pode ser obtido via WWW em <http://www.jwz.org/xkeycaps/> e, a partir da vers�o 2.43, j� incoropra tamb�m suporte para o desenho brasileiro (ABNT2), uma contribui��o de Andre Gerhard. 5.6. Contornando os limites do X Conforme foi explicado na se��o ``Modo texto versus Sistema de Janelas X'', o tratamento de acentos deve ser feito pela aplica��o, mas ainda h� muitos programas que n�o levam isto em considera��o, tais como Netscape Navigator/Communicator e Nedit. Como n�o � poss�vel modificar muitos deles, � preciso encontrar outro tipo de solu��o. 5.6.1. Altera��o da biblioteca Xlib Linux, assim como a maioria dos sistemas operacionais modernos, usa um sistema de v�nculo de programas a bibliotecas de fun��es chamado ``liga��o din�mica'' (dynamic binding). Deste modo, podemos modificar o comportamento de um programa alterando uma dessas bibliotecas. Maiores informa��es sobre este tema pode ser obtida nos manuais do Linux com os comandos man ld.so man ldconfig man ldd man dlopen Thomas Quinot criou uma altera��o para a biblioteca de fun��es do X (Xlib) introduzindo o tratamento de acentos na fun��o XLookupString, Tudo que se tem a fazer � substituir o arquivo contendo esta bib� lioteca por outro, que pode ser obtido via internet no endere�o <http://web.fdn.fr/~tquinot/dead-keys.en.html> Existem duas vers�es do arquivo, uma para sistemas onde as bibliotecas do X suportam o uso seguro de threads (Debian 2.x, Red Hat 5.x, etc.) e outra para os sistemas que n�o possuem tal atributo (Slackware, Caldera 1.x). Se voc� n�o sabe o que s�o threads n�o se preocupe com isso, mas saiba que eles permitem criar um programa capaz de se dividir em sub-processos que rodam concorrentemente em um computador. Para analisar sua Xlib rode o seguinte comando: nm --dynamic /usr/X11R6/lib/libXext.so.6|grep _Xglobal_lock Se aparecer ``U _Xglobal_lock'' seu sistema suporta threads e o arquivo a obter � libX11-XF3.3.1-TS.tar.gz. Se n�o aparecer, seu sistema n�o suporta threads e o arquivo a obter � libX11-XF3.3.1.tar.gz. Tendo obtido o arquivo, copie-o para um diret�rio tempor�rio e extraia seu conte�do. Mova o arquivo /usr/X11R6/libX11.so.6.1 para outro diret�rio, para preserv�-lo. N�o � suficiente renome�-lo! Remova-o para um diret�rio cujo nome n�o esteja contido no arquivo /etc/ld.so.conf. Depois, mova o novo arquivo para o lugar do antigo e rode o programa ldconfig (isto deve ser feito pelo usu�rio root): cp libX11-XF3.3.1-TS.tar.gz /tmp cd /tmp tar xzf libX11-XF3.3.1-TS.tar.gz mkdir /usr/X11R6/oldlib mv /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/oldlib mv libX11.so.6.1 /usr/X11R6/lib chown root:root /usr/X11R6/lib/libX11.so.6.1 chmod 755 /usr/X11R6/lib/libX11.so.6.1 /sbin/ldconfig � aconselh�vel que a opera��o seja realizada quando nenhuma aplica��o X estiver rodando. A seguir, edite o arquivo de configura��o do servidor X, chamado XF86Config. Este arquivo fica no diret�rio /etc (Slackware) ou /etc/X11 (Debian, Red Hat). Procure a se��o ``Keyboard'' e inclua a op��o ``XkbDisable'', conforme mostrado a seguir: Section "Keyboard" Protocol "Standard" XkbDisable EndSection A op��o XkbDisable inabilita a extens�o XKEYBOARD do servidor X, o que neste caso serve para sinalizar � fun��o XLookupString que ela deve tratar os acentos. Se quisermos voltar ao comportamento normal, basta retirar a op��o do XF86Config. Configure o mapa de teclado do X conforme explicado nas se��es anteriores deste documento. Para testar o resultado, rode o programa xedit e digite alguns caracteres acentuados. 5.6.2. Altera��o no kernel do Linux Esta se��o � baseada em contribui��o enviada por Bruno Bar� beri Gnecco e na documenta��o do diacrd. Podem haver ainda alguns erros e se algu�m os detectar, por favor avise-me. Seguindo a regra geral do mundo *nix, existe sempre mais de um modo se resolver o mesmo problema. Conforme vimos anteriormente, existem dois modos de opera��o do teclado, chamados raw e cooked. Estes modos de opera��o podem ser mudados com o programa kbd_mode, integrante do pacote kbd, o que n�o � recomend�vel fazer a n�o ser para restaurar o estado do console ap�s um desastre com o servidor X, por exemplo. No modo raw o kernel n�o processa os diacr�ticos (acentos). Cedric Adjih criou uma altera��o para o kernel que permitia tratar os acentos mesmo em modo raw, inicialmente voltada para o teclado de desenho franc�s. En�as Queiroz, Andr� D. Balsa e Claudemir Todo Bom fizeram melhorias e o adaptaram para os teclados internacional, portugu�s e ABNT. O tratemanto de acentos � feito parte pelo kernel, parte por um processo que roda em retaguarda (daemon) chamado diacrd, conforme descrito a seguir: � Uma modifica��o no kernel faz que todos os dados lidos do teclado sejam redirecionados para um dispositivo especial do sistema chamado /dev/rawkbd quando o teclado estiver em modo raw. � Os dados que o kernel grava no /dev/rawkbd s�o lidos pelo programa diacrd, que processa as seq��ncias acento-letra e reescreve no /dev/rawkbd os caracteres acentuados na forma de c�digos de varredura (scancodes) que normalmente n�o existem no teclado. � O kernel l� no /dev/rawkbd os c�digos gravados pelo diacrd e os passa � aplica��o, que no caso � o servidor X. � O servidor X mapeia os c�digos de varredura para caracteres. Um mapa de teclado especial permite ent�o gerar as letras acentuadas. O diacrd pode ser obtido via FTP an�nimo no endere�o <ftp://metalab.unc.edu/pub/Linux/system/keyboards> H� vers�es diferentes, de acordo com o tipo de teclado e, pelo menos por enquanto, n�o se pode reconfigur�-lo sem recompilar. Para fazer a instala��o, de acordo com o arquivo ``README'', deve-se fazer o seguinte (pelo usu�rio root): � Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia seu conte�do, o que dever� criar um diret�rio chamado diacrd-<vers�o>. � Edite o arquivo diacrd.c e remova os coment�rios desejados, de acordo com suas prefer�ncias. Pode-se incluir capacidade de rodar o programa xmodmap e ejetar o CD-ROM sob controle do pressionamento de uma combina��o de teclas. � Aplique a modifica��o no kernel. Para isto, execute o comando ``make patch-usr-src''. � Crie o dispositivo /dev/rawkbd executando o comando ``make rawkbd''. � Compile o diacrd e instale-o executando os comandos ``make'' e ``make install''. � Compile e instale o kernel, com os comandos cd /usr/src/linux make config make zlilo Para maiores informa��es sobre compila��o/instala��o do kernel, leia o Kernel-HOWTO, dispon�vel via Internet nos reposit�rios do LDP men� cionados na se��o ``Onde encontrar a vers�o mais atual''. � D� um ``reboot'' no computador. Verifique se o suporte ao dispositivo rawkbd foi instalado com sucesso com o comando dmesg | grep RAWKBD Deve aparecer RAWKBD interface for diacriticals translation enabled... e teste o dispositivo /dev/rawkbd com o comando printf "### TESTANDO ###" >> /dev/rawkbd Veja na se��o ``Configura��o do console'' como carregar um mapa com suporte � acentua��o. O pacote diacrd vem com um arquivo chamada usintl.map, que corresponde ao nosso us+.map. Se seu teclado n�o for do tipo americano, use o pt.map ou abnt-2.map. � Substitua o arquivo /usr/X11R6/lib/X11/xkb/keycodes/xfree86 pelo arquivo fornecido junto com o diacrd. � Se tudo correr bem, rode o programa diacrd. Depois ative o X e use o xmodmap para carregar o mapa xmodmap.diacrd. Se a gera��o de acentos funcionar, � preciso tornar permanentes as altera��es necess�rias. Pode-se faz�-lo incluindo a carga do diacrd no arquivo /etc/rc.d/rc.local (Slackware). Se algum dos leitores tiver criado um script de ativa��o do diacrd para a distribui��o Debian ou Red Hat, por favor envie-o para que seja inclu�do aqui. Mais informa��es sobre o diacrd podem ser encontradas no ``Dead keys Mini-HOWTO'' de Claudemir Todo Bom, dispon�vel em <http://linux.uni� camp.br/docs/diversos/deadkeys.html>. 5.6.3. Compara��o entre as duas solu��es Em termos de resultados pr�ticos, a Xlib modificada e o diacrd s�o equivalentes. H� por�m algumas diferen�as entre as duas solu��es que merecem aten��o. Diacrd exige uma altera��o no kernel do Linux para resolver um problema que o kernel j� resolve, o que n�o deixa de parecer um tanto redundante. A depend�ncia de um processo de usu�rio (o daemon kerneld) � uma desvantagem, pois se esse programa deixar de funcionar perde-se o suporte � acentua��o no X. Trata-se de uma solu��o ainda em desenvolvimento e, segundo o conte�do da documenta��o que o acompanha, o ideal seria que todo o tratamento fosse feito pelo kernel, sem depender de outro programa. At� o momento da publica��o deste HOWTO, o diacrd ainda n�o era compat�vel com a vers�o 2.2 do kernel do Linux. A solu��o via Xlib �, pelo menos em teoria, totalmente transparente �s aplica��es e permite reconfigura��o em tempo de execu��o, bastando alterar o mapa de teclado do X e as regras de composi��o. J� o diacrd precisa ser recompilado se quisermos trocar o tipo de teclado, mas � poss�vel que novas vers�es incorporem algum recurso de reconfigura��o. O diacrd s� funciona no teclado do pr�prio computador. Se quisermos usar um display remoto, seja um terminal X, seja um outro computador, n�o teremos suporte � acentua��o. A troca da Xlib, por outro lado, enquadra-se plenamente na filosofia do X de que o servidor prov� mecanismo, deixando a cargo da aplica��o a defini��o de pol�ticas. Exemplo da vantagem deste paradigma � poder usar as t�cnicas descritas na se��o ``Configura��o do X'' em outros sistemas operativos e com terminais X. A solu��o via Xlib parece-me mais ``limpa'' e � minha predileta, mas, como sempre, fica a crit�rio do usu�rio ou do administrador do sistema qual alternativa escolher. De qualquer modo, sempre � bom lembrar qua ambas as solu��es s�o remendos. Considerando-se a r�pida evolu��o que est� a ocorrer no campo do software livre, com o desenvolvimendo de ambientes de trabalho como KDE, GNOME e GNUStep, podemos supor que em breve nenhum desses remendos ser� mais necess�rio. 6. Configura��o dos v�rios programas 6.1. Aplicativos A maioria das aplica��es que rodam no Unix usa algum tipo de arquivo de configura��o que o usu�rio coloca em seu diret�rio de trabalho (home) e cujo nome normalmente � .alguma-coisarc. Tanto quanto poss�vel, tentei evitar que isso fosse necess�rio, pois al�m de dar mais trabalho ao usu�rio (e ao administrador da rede ;-) pode dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o diret�rio home compartilhado entre um servidor Alpha rodando DEC UNIX com os PCs rodando Linux via NFS (at� a maior parte do Linux est� instalada no Alpha, os PCs s� t�m a parti��o raiz e uma �rea de swap). Os arquivos podem necessitar algum ajuste dependendo da plataforma e nem todos os programas possuem flexibilidade bastante para isso. Uma op��o que muitos programas tamb�m oferecem � especificar em uma vari�vel de ambiente o nome do arquivo de configura��o ou o uso de arquivos padr�o que normalmente ficam em um diret�rio /usr/lib/alguma- coisa ou /etc/alguma-coisa. 6.1.1. Bash (biblioteca GNU readline) Os programas que utilizam a biblioteca GNU readline para ler a linha de comando procuram por um arquivo chamado .inputrc no diret�rio ``HOME'' do usu�rio caso n�o exista uma vari�vel de ambiente INPUTRC contendo o caminho para um arquivo de configura��o. Coloque uma linha no seu arquivo /etc/profile contendo INPUTRC="/etc/inputrc" export INPUTRC e crie um arquivo /etc/inputrc contendo set meta-flag on set convert-meta off set output-meta on Outra alternativa � criar um arquivo .inputrc no diret�rio home do usu�rio com o conte�do acima, mas � muito dif�cil manter atualizados os arquivos de todos os usu�rios, principalmente quando eles s�o muitos. Um inputrc mais completo pode ser obtido via WWW na p�gina do Portuguese HOWTO. Ele cont�m op��es para v�rios tipos de terminal e permite usar as teclas de movimento de cursor para percorrer o hist�rico de comandos (setas para cima e para baixo); ir para o primeiro e para o �ltimo comandos do hist�rico (teclas PageUp e Page� Down); posicionar o cursor na linha (setas para a esquerda e direita) e posicionar o cursor no in�cio e no fim da linha (teclas Home e End). Para maiores informa��es leia os manuais do bash e da biblioteca readline com os comandos man bash man readline 6.1.2. Emacs O pai de todos os editores pode ser configurado criando-se um arquivo chamado .emacs no diret�rio do usu�rio, contendo as seguintes linhas: (set-input-mode nil nil 1) (standard-display-european t) (require 'iso-syntax) Para tornar esta configura��o global, na distribui��o Slackware coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el. Na distribui��o Debian o emacs executa todos os scripts contidos no diret�rio /etc/emacs/site-start.d ao ser carregado. Tudo que se tem a fazer � colocar esses comandos em um arquivo chamado, por exemplo, 01portugues-emacs.el. Se o estimado leitor, assim como eu, n�o se agrada do tratamento dado pelo Emacs �s teclas de Delete, Home e End, aproveite a oportunidade e acrescente ao mesmo arquivo o seguinte: (global-unset-key [backspace] ) (global-set-key [backspace] 'delete-backward-char) (global-unset-key [delete] ) (global-set-key [delete] 'delete-char) (define-key global-map [home] 'beginning-of-line) (define-key global-map [C-home] 'beginning-of-buffer) (define-key global-map [end] 'end-of-line) (define-key global-map [C-end] 'end-of-buffer) Arquivos de configura��o prontos podem ser obtidos via WWW na p�gina do Portuguese HOWTO. Para Slackware, h� um site-start-emacs.el, que deve ser copiado para o diret�rio /usr/lib/emacs/site-lisp com o nome de site-start.el. Para Debian, h� um 01portugues-emacs.el que deve ser copiado para o diret�rio /etc/emacs/site-start.d. Certifique-se de estar usando a vers�o 24-out-1998 ou mais recente do arquivo de mapa de teclado para o X, pois ela possui uma corre��o no tratamento das teclas modificadoras Alt e Meta, que s�o muito usadas pelo Emacs. 6.1.3. flex Especifique a op��o -8 se o parser a gerar necessitar de ler dados de 8 bit. 6.1.4. Fortune Fortune � aquele programa que toda vez que � invocado apresenta uma pequena mensagem, geralmente bem humorada. Ele � inspirado nos biscoitos da fortuna chineses (em ingl�s fortune cookies, da� o nome). Eis algumas mensagens t�picas: dROGA!!oNDE ESTA O cAPSLOCK?? Mouse n�o encontrado, bater no gato? (S/N) Que fio � ess<=V++088.../NO CARRIER Quem ri por �ltimo est� conectado a 2400Bit/s. Tudo que o programa faz � escolher aleatoriamente uma mensagem em um reposit�rio mantido no diret�rio /usr/games/fortunes (Slackware) ou /usr/share/games/fortunes (Debian). Neste diret�rio existem diversos arquivos com as ``fortunas'' e um arquivo �ndice para cada um deles, que possui a extens�o .dat. O formato dos arquivos � muito simples: cada fortuna � composta de uma s�rie de linhas de texto. As fortunas s�o separadas umas das outras por linhas contendo apenas um caracter %. Veja o trecho a seguir: O que s�o quatro pontos na parede? Four migas. Ugh! % Errar � humano, botar a culpa no computador � mais humano ainda. % A� ela me disse: Ou eu ou o modem! Sinto muitas saudades dela... Tudo que temos a fazer � criar um arquivo com as fortunas chamado, digamos fortunes com o formato descrito acima. Depois basta usar o programa strfile para gerar o �ndice: strfile fortunes e um arquivo chamado fortunes.dat ser� criado. Claro que se quisermos que o fortune mostre apenas mensagens em Portugu�s, teremos que remover os arquivos existentes no diret�rio original. Sugiro simples� mente renome�-lo para fortunes-en (de English) e criar outro vazio. Eu coletei algumas fortunas e as coloquei no arquivo fortunes- pt.tar.gz que pode ser obtido via WWW na p�gina do Portuguese HOWTO. N�o esque�a de colocar no seu /etc/profile algumas linhas contendo uma chamada ao fortune, por exemplo if [ -x /usr/games/fortune -a ! -e $HOME/.hushlogin ]; then echo /usr/games/fortune echo fi Uma �ltima informa��o: se o nome de um arquivo termina com o sufixo -o o fortune s� o consulta se for chamado com a op��o -o. Esses arquivos s�o os que cont�m mensagens cujo conte�do pode ser considerado ofen� sivo por algumas pessoas, tais como S� n�o mando a sogra pro inferno, com pena do Diabo. Claro que existem coisas muito mais ofensivas por a�, mas este � um Linux HOWTO e n�o queremos realmente ofender ningu�m, certo? 6.1.5. Ispell Dicion�rios para o Portugu�s de Portugal podem ser obtidos via WWW na p�gina do Projecto Natura em <http://www.di.uminho.pt/~jj/pln/pln.html>. Para o Brasil, h� uma vers�o compilada pelo Ueda: <http://www.ime.usp.br/~ueda/>. Eu gostaria de poder colocar maiores informa��es, mas ainda n�o tenho conhecimento suficiente sobre o Ispell e n�o posso ensinar o que n�o sei. Preciso de ajuda aqui. 6.1.6. JDK (inclui ICQJava) Esta informa��o � baseada em uma mensagem da qual guardei o conte�do mas n�o o remetente. Pe�o desculpas e espero que perdoe a falha. N�o testei pessoalmente a informa��o e pe�o que me escrevam confirmando tanto a corre��o quanto, se poss�vel, a identidade do autor. O JDK utiliza fontes padr�o que n�o suportam acentos. Isto quer dizer que letras com acentos s�o ignoradas e, geralmente, confundem o resto do texto. Resolver isto � extremamente f�cil: � entre no diret�rio jdk1.1.5/lib (no meu caso, /jdk1.1.5/lib); � copie o arquivo font.properties.hu sobrescrevendo o font.properties atual (lembre-se de fazer backups!); � entre no jdk e divirta-se! Fazendo isto, seu ICQ e todos os aplicativos que usem o jdk estar�o aptos a lerem acentos! (f�cil, n�o?) 6.1.7. Joe Invoque o joe com a op��o -asis na linha de comando ou altere os arquivos de configura��o para ativar tal op��o. Na Slackware eles est�o no diret�rio /usr/lib/joe. Tudo que se tem a fazer � remover o espa�o em branco existente no in�cio de cada linha. Outra alternativa � acrescentar a seguinte linha ao arquivo /etc/profile: alias joe='joe -asis' Joe pode emular os editores Pico, emacs e WordStar. Um arquivo joerc est� dispon�vel via WWW na p�gina do Portuguese HOWTO, contendo configura��es que permitem usar as teclas Home e End para movimentar o cursor para o in�cio e fim da linha. 6.1.8. Less Coloque as seguintes linhas no seu arquivo /etc/profile: LESS="-MM -i" LESSCHARSET="latin1" LESSKEY="/etc/lesskey" LESSOPEN='|lesspipe.sh "%s"' export LESS LESSCHARSET LESSKEY LESSOPEN LESSKEY informa o nome de um arquivo contendo uma tabela de seq��ncias de caracteres geradas por cada tecla e as a��es a serem tomadas pelo less. Para criar o arquivo /etc/lesskey, crie primeiro o arquivo /etc/lesskey.in contendo as seguintes linhas: # Termianl ANSI (console do Linux, XTerm, etc) \e[1~ goto-line \e[4~ goto-end \e[5~ back-screen \e[6~ forw-screen \e[7~ goto-line \e[8~ goto-end \e[A back-line \e[B forw-line # XTerm \eOH goto-line \eOF goto-end \e[H goto-line \e[F goto-end # Console Sun (testado com teclados Type 4/5) \e[214z goto-line \e[220z goto-end \e[216z back-screen \e[222z forw-screen # Arquivo seguinte/anterior :n next-file :N next-file :p prev-file Depois ``compile-o'' usando o comando # lesskey -o /etc/lesskey /etc/lesskey.in Crie o arquivo /usr/bin/lesspipe.sh contendo #!/bin/sh # This is a preprocessor for 'less'. It is used when this environment # variable is set: LESSOPEN="|lesspipe.sh %s" case "$1" in *.rpm) rpm -qilp "$1" 2>/dev/null ;; *.tar) tar tvvf "$1" 2>/dev/null ;; *.tgz | *.tar.gz | *.taz | *.tar.Z | *.tar.z) tar tzvvf "$1" 2>/dev/null ;; *.tbz2 | *.tar.bz2) bzip2 -dc "$1" | tar tvvf - 2>/dev/null ;; *.Z) gzip -dc "$1" 2>/dev/null ;; *.z) gzip -dc "$1" 2>/dev/null ;; *.[1-9].gz | *.n.gz | *.man.gz) FILE=`file -Lz "$1" | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then gzip -dc "$1" | groff -s -p -t -e -Tlatin1 -mandoc fi ;; *.gz) gzip -dc "$1" 2>/dev/null ;; *.zip) unzip -l "$1" 2>/dev/null ;; *.[1-9] | *.n | *.man) FILE=`file -L "$1" | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tlatin1 -mandoc "$1" fi ;; esac N�o esque�a de torn�-lo execut�vel: chmod 755 /usr/bin/lesspipe.sh Na distribui��o Debian j� existe um script /usr/bin/lesspipe (note a aus�ncia da extens�o .sh). Para os curiosos a respeito da refer�ncia a ``*.rpm'', embora na m�quina em quest�o se use Slackware, � poss�vel ter o utilit�rio RPM instalado tamb�m, o que facilita tomar ``emprestados'' pacotes do Red Hat, Caldera e S.u.S.E.. Existe um RPM+Slackware Mini-HOWTO que explica como fazer isso. 6.1.9. ls Acrescente a seguinte linha ao arquivo /etc/profile : alias ls="ls -N" ou alias ls="ls -b" Se a sua distribui��o de Linux usa o GNU ls (todas as que eu conhe�o usam) basta acrescentar ao arquivo /etc/profile ou .profile as seguintes linhas: # ----------------------------------------- # Set up the color-ls environment variables # ----------------------------------------- if [ "$SHELL" = "/bin/bash" -o \ "$SHELL" = "/bin/sh" ]; then eval `dircolors -b` elif [ "$SHELL" = "/bin/zsh" ]; then eval `dircolors -z` elif [ "$SHELL" = "/bin/ash" ]; then eval `dircolors -s` elif [ "$SHELL" = "/bin/ksh" -o \ "$SHELL" = "/bin/pdksh" ]; then eval `dircolors -k` elif [ "$SHELL" = "/bin/csh" -o \ "$SHELL" = "/bin/tcsh" ]; then eval `dircolors -c` else eval `dircolors -b` fi Se o seu shell � o csh ou tcsh, acrescente a seguinte linha ao arquivo /etc/csh.login ou ~/.login: alias ls 'ls --color' 6.1.10. LyX Para aqueles que acham trabalhoso escrever documentos para o LaTeX usando um simples editor de texto (e realmente �) LyX � uma excelente op��o. Este programa cria uma interface gr�fica atrav�s da qual editamos os documentos que ser�o depois formatados pelo LaTeX. O ambiente � quase-WYSIWYG (What You See Is What You Get - O que tu v�s � o que tu obt�ns). LyX n�o roda apenas em Linux, mas em qualquer Unix. Maiores informa��es podem ser obtidas em <http://www.lyx.org> A partir da vers�o 1.0.1 do LyX j� tem a interface com o usu�rio em Portugu�s, traduzida por Pedro Kr�ger, que tamb�m est� traduzindo os manuais, junto com Roberto Mello. Estas tradu��es j� fazem parte da distribui��o oficial do LyX. Tendo o LyX instalado, � muito f�cil criar documentos com acentua��o em Portugu�s. Seguindo as seguintes regras: � Se o teclado foi configurado para ter dead keys usando um dos mapas aqui fornecidos, n�o � necess�rio fazer mais nada. Basta digitar o texto normalmente usando as seq��ncias de acentua��o. A �nica exce��o � o c-cedilha que n�o pode ser gerado usando a seq��ncia 'c, pois o LyX gera um c com acento. Temos que usar a seq��ncia Compose-v�rgula-c. � Se o teclado n�o foi configurado para ter dead keys ainda assim � poss�vel acentuar no LyX. Selecione o menu Options/Keyboard. Na caixa de di�logo ``Key Mappings'', selecione no �tem Language/Primary a op��o ``American''. Com isto o LyX far� a composi��o dos caracteres acentuados usando regras semelhantes �s das dead keys. � A v�rgula ser� tratada como cedilha. Para obter um `�'digite ,C e para obter uma v�rgula digite ,,. Cuidado! A seq��ncia ,<espa�o> gerar� uma cedilha isolada e n�o uma v�rgula! � ~ ^ ' e ` ser�o tratados como acentos. Vale a mesma regra anterior: para obter apenas o acento, pressione a tecla duas vezes consecutivas. � : ; . / ? e - tamb�m ser�o tratados como acentos. ?a gerar� um `�' e assim por diante. Para o LyX imprimir corretamente, � necess�rio que, ao criar um novo documento, sejam selecionados a l�ngua e a codifica��o de caracteres adequadas. Crie um documento selecionando o menu File/New. Depois selecione o menu Layout/Document. Na caixa de di�logo ``Document Layout'' selecione no �tem Language a op��o ``brazil'' ou ``portuges'' (sem o u mesmo); no �tem Encoding selecione ``latin1''. Veja a observa��o sobre o pacote algorithm na se��o ``TeX e LaTeX'' Uma observa��o final sobre o LyX: a vers�o atual (1.0.x) utiliza a biblioteca XForms para construir a interface com o usu�rio. Como essa biblioteca n�o tem suporte para acentua��o, n�o � poss�vel digitar letras acentuadas nas caixas de di�logo, somente no corpo do documento editado. Segundo os desenvolvedores, nas novas vers�es do LyX ser� poss�vel escolher o tipo de interface ao compilar o programa, o que permitir� o uso de toolkits mais flex�veis. J� existe uma vers�o de LyX portada para o toolkit Qt, usado no KDE, chamada KLyX. Os autores s�o Matthias Ettrich -- autor original do LyX -- e Kalle Dalheimer. Para maiores informa��es, consulte via WWW: <http://www- pu.informatik.uni-tuebingen.de/users/ettrich/>. 6.1.11. Man, groff, troff Pode-se usar a op��o de linha de comando -Tlatin1 para o groff, mas � mais simples colocar uma linha no seu arquivo /etc/profile contendo GROFF_TYPESETTER="latin1" export GROFF_TYPESETTER Para maiores informa��es leia o manual do groff com o comando man groff No Linux, o comando man usa o groff para formatar os manuais e deve ser configurado para usar o conjunto Latin 1, ou n�o ser� poss�vel formatar satisfatoriamente manuais que contenham caracteres n�o pertencentes ao conjunto ASCII, como � o caso do ``man iso_8859_1''. Na distribui��o Slackware, � preciso editar o arquivo /usr/lib/man.config e alterar as defini��es NROFF e NEQN, trocando a op��o ``-Tascii'' para ``-Tlatin1'': NROFF /usr/bin/groff -Tlatin1 -mandoc NEQN /usr/bin/geqn -Tlatin1 ou, se usarmos a vari�vel de ambiente GROFF_TYPESETTER, podemos sim� plesmente eliminar a op��o -Tascii. Na distribui��o Debian n�o � necess�rio fazer nenhuma configura��o para o man, bastando configurar GROFF_TYPESETTER e na Red Hat (incluindo Conectiva) o arquivo � /etc/man.config Groff tamb�m pode ser configurado para fazer a separa��o sil�bica em portugu�s, o que � muito �til se tivermos p�ginas de manual em Portugu�s. Isto � bastante simples, porque quando James Clarck p�s suporte a hifeniza��o no groff ele usou o mesmo algoritmo de hifeniza��o do TeX. Para ter hifeniza��o em portugu�s, basta copiar o arquivo de regras do TeX e fazer o groff us�-lo. O arquivo hyphen.pt pode ser obtido junto com os demais na p�gina do HOWTO. Trata-se do arquivo pt8hyph.tex (ver se��o ``TeX e LaTeX'') ao qual foi adicionado apenas um coment�rio. Ele deve ser copiado para o diret�rio /usr/share/groff/tmac/ ou /usr/lib/groff/tmac/, dependendo da distribui��o. � conveniente criar um ``link'' simb�lico para hyphen.br. Para usar esse arquivo, basta colocar no in�cio do seu documento troff/groff as linhas a seguir: .if \n(.g \{\ .hla pt .hpf hyphen.pt .\} O .if n�o � necess�rio para a acentua��o, mas ele testa se o proces� sador usado � o groff. Deste modo pode-se usar o mesmo documento em outros UNIX nos quais se use o troff normal sem que ele gere mensagens de erro sobre comandos desconhecidos. 6.1.12. Midnight Comander (mc) No menu Options sub-menu Display bits... ligue a op��o ``Full 8 bits'' ou ``ISO 8859-1''. Na vers�o 3.2.11 isso permite que sejam mostrados nomes de arquivos contendo caracteres acentuados, mas n�o foi poss�vel digitar tais caracteres na linha de comando ou nas caixas de di�logo. 6.1.13. Minicom Coloque uma linha no seu arquivo /etc/profile contendo MINICOM="-m -c on" export MINICOM Isso permitir� usar a tecla Alt para ativar os comandos (exatamente como o Telix) e tamb�m usar cores. Para maiores informa��es, leia o manual do Minicom usando o comando man minicom Mais uma dica sobre o Minicom: para faz�-lo usar usar corretamante a tecla Meta para ativa��o dos comandos rodando dentro de um xterm, deve-se invoc�-lo com a op��o ``-m'' e passar a op��o ``-xrm "*eight� BitInput: false"'' para o xterm. Se usarmos o rxvt ent�o o minicom deve ser chamado com a op��o ``-m'' e a tecla de ativa��o dos comandos ser� Alt. Fiz uma adapta��o no script xminicom que pode ser obtido via WWW na p�gina do Portuguese HOWTO. Segundo Arnaldo Carvalho de Melo, as vers�es mais recentes do Minicom suportam internacionaliza��o. Suporte para o Portugu�s foi acrescentado pelo pessoal da Conectiva. O c�digo fonte pode ser obtido na p�gina do Jukka (atual mantenedor do Minicom) em <http://www.clinet.fi/~walker/minicom.html> 6.1.14. Netscape Communicator O Communicator, assim como muitas aplica��es que utilizam toolkits baseados no X Toolkit (Xt), permite que se modifiquem muitas de suas caracter�sticas por meio de arquivos de configura��o (X Resources). No caso espec�fico do Communicator, pode-se criar um arquivo chamado Netscape no diret�rio /usr/X11R6/lib/X11/app-defaults contendo estas op��es. Na distribui��o brasileira Conectiva, o pacote do Communicator vem com um arquivo /usr/lib/netscape/i18n/Netscape.ad.pt_BR e um script /usr/bin/netscape que executa o Communicator fazendo-o ler este arquivo. Uma c�pia do Netscape.ad.pt_BR pode ser obtida na p�gina oficial do Portuguese-HOWTO. Para us�-lo, simplesmente copie-o para /usr/X11R6/lib/X11/app-defaults/Netscape, se sua distribui��o n�o o possuir, mas fique atento que seu uso pode criar problemas com novas vers�es do programa. Maiores informa��es sobre ``X Resources'' podem ser obtidas em [GET94], [McC94] e no manual do programa xrdb, com o comando man xrdb 6.1.15. nn Al�, al�, algu�m usa nn? Informa��o mais atualizada ser� bem recebida. Acrescente a seguinte linha ao arquivo ~/.nn/init: set data-bits 8 6.1.16. Pine e Pico Para o Pine utilizar o conjunto de caracteres Latin 1, coloque uma linha no arquivo .pinerc, no diret�rio do usu�rio, contendo character-set=ISO-8859-1 ou crie um arquivo geral de configura��o contendo tal linha. Esse arquivo normalmente � /usr/local/lib/pine.conf ou /usr/lib/pine.conf A configura��o tamb�m pode ser feita usando o pr�prio programa. No menu de entrada selecione as op��es Setup/Configuration. V� at� o �tem ``character-set'' e preencha-o com ``ISO-8859-1''. Para maiores informa��es leia o manual do pine com o comando man pine 6.1.17. tcsh Nenhuma medida especial � necess�ria se for feita a correta configura��o das vari�veis de ambiente ``LANG'' e ``LC_ALL'', conforme mostrado mostrado na se��o ``Biblioteca libc''. Tcsh tem suporte a internacionaliza��o e na distribui��o Debian h� um pacote chamado tcsh-i18n com suporte para French, German, Greek and Spanish. 6.1.18. TeX e LaTeX Esta se��o foi escrita com ajuda de Klaus Steding-Jessen. 6.1.18.1. O pacote Babel O pacote Babel, criado por Johannes Braams prov� suporte a um grande n�mero de idiomas para o LaTeX. De acordo com o idioma selecionado ele define muitas coisa como, por exemplo, os t�tulos dos cap�tulos (Chapter, Cap�tulo, Kapitel) e o t�tulo das tabelas (Tabela, Table, Tabelle). Para usar o pacote, basta incluir no pre�mbulo de seu documento LaTeX o comando \usepackage[portuges]{babel} ou \usepackage[brazil]{babel} H� diferen�as sutis entre o Portugues do Brasil e o de Portugal, tais como as normas para escrita de datas e nomes de meses com a primeira letra mai�scula ou min�scula. Pode-se misturar mais de um idioma no mesmo documento. Para Alem�o e Portugu�s ficaria: \usepackage[german,brazil]{babel} Nesse caso a �ltima op��o (brazil) fica sendo o idioma corrente. Para mudar ao longo do texto, entre um e outro, use: \selectlanguage{german} [...] \selectlanguage{brazil} Isto � muito �til tamb�m quando queremos que uma palavra n�o seja separada. Basta definir um novo idioma e us�-lo nas palavras que n�o podem ser separadas. Coloque no pre�mbulo: \newlanguage\nohyphen \newcommand\nh[1]{{\language\nohyphen #1}} E use com \nh{FOO BAR}. � melhor do que usar \mbox, que impede quebra no espaco em \mbox{FOO BAR}. 6.1.18.2. Separa��o sil�bica Normalmente apenas os suportes a separa��o sil�bica para Ingl�s e Alem�o s�o carregados. Para configurar hifeniza��o no teTeX, execute o utilit�rio texconfig, que na distribui��o Slackware deve ser o programa /usr/lib/teTeX/bin/texconfig e na Debian � /usr/bin/texconfig. Digite o comando texconfig hyphen O editor usado normalmente � o vi. Se o seu editor predileto for outro, crie uma vari�vel de ambiente chamada EDITOR contendo o nome desse programa, como no exemplo a seguir: EDITOR=pico export EDITOR O editor de texto ser� carregado, para editar o arquivo language.dat. Procure uma linha que come�a por %portuges e remova o %. Grave o arquivo e saia do editor. O texconfig atualizar� diversos arquivos de configura��o (n�o se assuste com a quantidade de mensagens que aparecem na tela). Se o nome da tabela de hifeniza��o que consta no seu language.dat � pthyph.tex ent�o provavelmente trata-se da vers�o 1.0, de 1987. A vers�o 1.2, de 1996, pode ser obtida via FTP an�nimo em <ftp://ftp.tex.ac.uk/tex-archive/language/por� tuguese/pt8hyph.tex> Copie-o para o mesmo diret�rio onde se encontra o pthyph.tex, que dependendo de sua distribui��o pode ser /usr/lib/texmf/tex/generic/hyphen /usr/share/texmf/tex/generic/hyphen ou /usr/lib/teTeX/texmf/tex/generic/hyphen. Execute o comando texcon� fig~hash e na mesma linha mencionada anteriormente insira um `8' no nome do arquivo, de modo que fique pt8hyph.tex. 6.1.18.3. Uso de Font Encoding T1 Se o conjunto de caracteres (encoding) de uma fonte n�o prov� acesso direto a caracteres acentuados, (como � o caso do OT1, padr�o do LaTeX) ent�o o TeX gera estes caracteres sobrepondo o caracter base mais o acento. O algoritmo de hifeniza��o, contudo, n�o hifeniza palavras formadas dessa forma. Se uma fonte j� prov� acesso direto a caracteres acentuados, como as de codifica��o T1, estes caracteres s�o usados diretamente sem preju�zo do algoritmo de hifeniza��o. O uso de encoding T1 � fundamental para a correta hifeniza��o em Portugu�s. Note que trata-se da mesma fonte, por falta a Computer Modern, apenas o que muda � o seu encoding, isto �, a ordem/disponibilidade dos caracteres dentro da mesma. Para selecionar estas fontes, inclua no pre�mbulo do seu documento o comando \usepackage[T1]{fontenc} O antigo pacote t1enc n�o deve mais ser usado e existe hoje apenas por quest�es de compatibilidade com documentos antigos. O fontenc � mais atual, continua a ser mantido e � de uso mais geral, portanto prefer�vel. 6.1.18.4. Edi��o de documentos Normalmente a introdu��o de caracteres acentuados no texto exige o uso de seq��ncias de escape bastante trabalhosas. Para gerar um ``�'' deve-se digitar \"o. Com babel pode-se digitar apenas "o, o que n�o deixa de ser inconveniente para ler o fonte do documento. H� um pacote chamado inputenc que permite especificar a codifica��o em que est�o os caracteres de um documento. Lembre-se por�m que se o seu documento for enviado para outro usu�rio que n�o possua o inputenc ele poder� n�o conseguir process�-lo, mas esse recurso j� est� dispon�vel desde a libera��o do LaTeX2e em dezembro 1994. Todas as distribui��es de Linux atuais o incluem. Sugest�o: uma configura��o do GNU Emacs para gerar caracteres acentuados, pr�pria para o uso com o pacote inputenc: (add-hook 'LaTeX-mode-hook (lambda () (standard-display-european 1) (load-library "iso-acc") (iso-accents-mode 1) (iso-accents-customize "portuguese") (auto-fill-mode 1) )) E outra que n�o requer o inputenc. O uso da biblioteca `iso-cvt' faz a transforma��o de ISO-8859-1 (no buffer do Emacs) para o padr�o do LaTeX (no arquivo). (add-hook 'LaTeX-mode-hook (lambda () (standard-display-european 1) (load-library "iso-cvt") (load-library "iso-acc") (iso-accents-mode 1) (iso-accents-customize "portuguese") (auto-fill-mode 1) )) Muitas vezes o usuario j� possui muitos arquivos num formato de acento do LaTeX e gostaria de passar tudo para o formato ISO, pr�prio para uso do pacote inputenc. Uma boa op��o para isto � usar o programa recode. Se voc� possui arquivos .tex e deseja converte-lo para formato ISO-8859-1 pode usar: recode -d LaTeX:l1 file.tex O c�digo-fonte do GNU recode pode ser obtido via FTP an�nimo em <ftp://prep.ai.mit.edu/pub/gnu/recode/recode-3.4.tar.gz> e em muitos espelhos do GNU mundo afora. A distribui��o Debian tem um pacote pronto e outras tamb�m devem ter. 6.1.18.5. Teste da configura��o do LaTeX Para testar a nova configura��o copie o seguinte trecho para um arquivo chamado, digamos, exemplo.tex: \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[portuges]{babel} %% %% ou \usepackage[brazil]{babel} %% \begin{document} \title{Linux Portuguese-HOWTO} \author{Carlos Augusto Moreira dos Santos} \date{\today} \maketitle \section{Introdu��o} Este documento pretende ser um guia de refer�ncia de configura��o do \textbf{Linux} e seus programas, teclados e fontes de caracteres, permitindo sua internacionaliza��o/utiliza��o confort�vel por pessoas que falem a L�ngua Portuguesa. \end{document} Esse texto cont�m de prop�sito uma ``palavra'' bastante longa para for�ar a separa��o sil�bica. Ele est� dispon�vel via WWW no arquivo exemplo.tex na p�gina do Portuguese HOWTO. Para process�-lo, use o comando latex, conforme mostrado a seguir: bash$ latex exemplo.tex This is TeX, Version 3.14159 (C version 6.1) (exemplo.tex LaTeX2e <1996/06/01> Hyphenation patterns for english, german, portuges, loaded. (/usr/lib/teTeX/texmf/tex/latex/base/article.cls Document Class: article 1996/05/26 v1.3r Standard LaTeX document class (/usr/lib/teTeX/texmf/tex/latex/base/size10.clo)) (/usr/lib/teTeX/texmf/tex/latex/base/inputenc.sty beta test version (/usr/lib/teTeX/texmf/tex/latex/base/latin1.def)) (/usr/lib/teTeX/texmf/tex/latex/base/fontenc.sty (/usr/lib/teTeX/texmf/tex/latex/base/T1enc.def)) (/usr/lib/teTeX/texmf/tex/generic/babel/babel.sty (portuges.ldf (/usr/lib/teTeX/texmf/tex/generic/babel/babel.def))) (exemplo.aux) [1] (exemplo.aux) ) (see the transcript file for additional information) Output written on exemplo.dvi (1 page, 812 bytes). Transcript written on exemplo.log. A mensagem ``Hyphenation patterns for english, german, portuges, loaded.'' indica que a configura��o foi bem sucedida. Se o seu com� putador est� rodando o X o documento formatado poder� ser visto com o comando xdvi exemplo.dvi Observe que o ``\today'' gera a data corrente. No ``portugues'' seria ``17 de Julho de 1998'' mas no ``brazil'' seria ``17 de julho de 1998''. 6.1.18.6. Problemas com alguns pacotes do teTeX H� um problema com o pacote algorithm do LaTeX, que n�o � suportado pelo babel, fazendo com que a lista de algoritmos saia com o t�tulo ``List of Algorithms'' e o t�tulo de cada um deles seja impresso como ``Algorithm #''. Para evitar esse problema, coloque no pre�mbulo de seu documento LaTeX, ap�s o comando ``\usepackage{algorithm}'' o seguinte: \makeatletter \renewcommand{\ALG@name}}{Algoritmo}} \makeatother \renewcommand{\listalgorithmname}}{Lista de Algoritmos}} No teTeX 0.4 (vers�o 1.2h do portuges.ldf) o t�tulo do ambiente proof, encontrado nas classes amsbook, amsart, etc., sai como ``Proof.''. Para corrigir isso, coloque no pre�mbulo de seu documento o comando \renewcommand{\proofname}}{Demonstra\c{c}\~ao} mas o mais recomend�vel � que se atualize a vers�o do teTeX. Usu�rios do LyX podem incluir esses comandos no pre�mbulo do documento usando o menu Layout/LaTeX Preamble. Pode-se resolver o problema alterando o arquivo portuges.ldf que cont�m as defini��es necess�rias ao Portugu�s, mas esta solu��o n�o � port�vel, pois exigir� que tal arquivo seja alterado em todas os computadores em que o documento deva ser processado. A licen�a do Babel n�o me permite distribuir o portuges.ldf separado do resto do pacote, mas para os interessados, coloquei � disposi��o na p�gina do HOWTO um arquivo chamado portuges.ldf.patch que criei para o meu teTeX antigo (Slackware 3.4). Para aplicar a atualiza��o, copie-o para o diret�rio /usr/lib/teTeX/texmf/tex/generic/babel (Slackware), fa�a uma c�pia de reserva do portuges.ldf original e invoque o utilit�rio patch: cp -p portuges.ldf portuges.ldf.backup patch < portuges.ldf.patch Use o patch por sua conta e risco! Se voc� deixar o backup no diret�rio original ele ser� inclu�do no arquivo ls-R da pr�xima vez que o programa texhash for executado. Isso n�o far� mal algum, mas pode-se mover o backup para algum lugar seguro (eu uso /usr/backup). 6.1.18.7. Lista TeX-BR H� uma lista de discuss�o brasileira de usu�rios de TeX/LaTeX, chamada TeX-BR, que roda no servidor de listas da FURG. Para entrar da lista mande um mail contendo apenas a palavra ``subscribe'' no corpo para <tex-br-request@listas.furg.br>. Esta lista � administrada por Rafael Rodrigues Obelheiro. H� uma p�gina na WWW em <http://biquinho.furg.br/tex-br/> por meio da qual se pode ler o hist�rico de mensagens. Tamb�m h� refer�ncias para muitos documentos sobre LaTeX, alguns em Portugu�s e outros em Ingl�s. 6.1.18.8. LaTeX-demo Pode ser �til tamb�m um documento de exemplo para ter onde come�ar. Pensando nisso, Klaus Steding-Jessen preparou um pequeno documento em Portugu�s com o objetivo de ser um guia ``by example'' para o usu�rio de LaTeX iniciante e intermedi�rio, que pode ser obtido via WWW em <http://biquinho.furg.br/doc/LaTeX-demo/>. Klaus ecreveu tamb�m uma s�rie tr�s artigos destinados a ``descrever o sistema LaTeX como uma alternativa mais eficiente aos processadores de texto WYSIWYG'' que podem ser lidos via WWW em <http://biquinho.furg.br/tex-br/doc/artigo-1-jessen/>. 6.1.19. WordPerfect O Corel Wordperfect para Linux vers�o 8 suporta a acentua��o por teclas mortas. N�o � necess�rio nenhum procedimento especial. Como um entusiasta de software livre, entretanto, recomendo enfaticamente que se use o LyX, que j� foi inclusive traduzido para nossa l�ngua, conforme mencionado na se��o ``LyX''. 6.1.20. Xemacs (antigo lucid emacs) Agrade�o a colabora��o de Judson Santos Santiago e Goedson Teixeira Paix�o que ajudaram a identificar os problemas com o Xemacs. O Xemacs j� tem suporte � acentua��o direta no teclado usando ``dead keys'', mas h� um erro na configura��o original que o impede de reconhecer o acento circunflexo. Este problema n�o ocorre se for usada a biblioteca Xlib aterada por Thomas Quinot, mencionada na se��o ``Contornando os limites do X'', mas mesmo que n�o a usemos, basta colocar os seguintes comandos no seu arquivo de configura��o .emacs: ;; Ajuste para fazer o acento circunflexo funcionar ;; Contribui��o de Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br> (require 'x-compose) (define-key global-map 'dead-circumflex compose-circumflex-map) Na distribui��o Debian 2.0 o Xemacs 20.4 executa todos os scripts contidos no diret�rio /etc/xemacs20/site-start.d ao ser carregado. Tudo que se tem a fazer � colocar esses comandos em um arquivo chamado, por exemplo, 01portugues-xemacs.el. N�o � necess�rio instalar o xemacs20-mule, que possui extens�es para l�nguas que n�o usam o alfabeto romano. Os pacotes a instalar s�o os seguintes: � xemacs20-bin � xemacs20-nomule � xemacs20-support � xemacs20-supportel Se voc� instalou o Xemacs no Slackware ou outro Unix, � moda antiga (dowload, compila��o, insta��o), ent�o o arquivo a alterar � o site- start.el, que deve estar no diret�rio /usr/lib/xemacs/site-lisp ou /usr/local/lib/xemacs/site-lisp, dependendo de sua instala��o. Observe que a partir da vers�o 20.3 o Xemacs usa uma vari�vel especial para controlar o comportamento da tecla ``Delete'', n�o existente nos outros emacs chamada delete-key-deletes-forward. Para ativar este comportamento coloque no seu arquivo .emacs uma linha contendo (setq delete-key-deletes-forward t) Arquivos de configura��o prontos podem ser obtidos via WWW na p�gina do Portuguese HOWTO. Para Slackware, h� um site-start-xemacs.el, que deve ser copiado para o diret�rio correto com o nome de site-start.el. Para Debian, h� um 01portugues-xemacs.el que deve ser copiado para o diret�rio /etc/xemacs20/site-start.d. Certifique-se de estar usando a vers�o 24-out-1998 ou mais recente do arquivo de ``mapa de teclado'' para o X, pois ela possui uma corre��o no tratamento das teclas modificadoras Alt e Meta, que s�o muito usadas pelo Xemacs. 6.2. Rede local e Internet 6.2.1. FTP (File Transfer Protocol) Existem dois modos de transfer�ncia de arquivos: binary e ASCII, sendo este utilizado para textos. Deve-se tomar cuidado ao transferir um arquivo, pois o modo de transf�rencia ASCII remove o oitavo bit de cada caracter transmitido, o que ter� como conseq��ncia a perda de todos os caracteres acentuados. Desta forma � aconselhado o envio de documenta��o em modo binary de forma a manter a integridade da mesma. Cuidado! Algumas vers�es mais antigas do pacote net-tools do Linux t�m um cliente FTP que n�o reconhece corretamente quando o servidor remoto roda Unix. Deste modo ele n�o comutar� o modo de transfer�ncia para bin�rio automaticamente. Al�m disso, alguns servidores FTP tamb�m n�o fornecem a informa��o corretamente. Certifique-se de digitar o comando bin antes de um get quando quiser que a transfer�ncia seja bin�ria! 6.2.2. Correio eletr�nico O mesmo tipo de restri��es do FTP se aplica ao envio de documentos contendo caracteres acentuados atrav�s de correio eletr�nico. Embora isto n�o aconte�a em todos os sistemas em uso na internet, bastar� que o correio enviado passe no seu trajecto por um sistema que n�o suporte 8 bits de informa��o para que o nosso documento seja deturpado. Para que n�o hajam problemas, deve-se utilizar um programa de emeil, que suporte o formato MIME (Multipurpose Internet Mail Extensions), formato este que permite o envio de documenta��o em modo 8 bits. Exemplos de programas de correio eletr�nico com suporte para MIME, s�o o Eudora e o Pine. Se o destinat�rio da mensagem n�o usa um agente com suporte para MIME, existe a op��o de codificar os documentos com o utilit�rio UUENCODE. Para maiores informa��es a esse respeito, leia a documenta��o usando os comandos man uuencode man uudecode 7. Ficheiros necess�rios Aten��o! Os mapas de teclado para o X fornecidos mapeiam a fun��o das teclas segundo a lista a seguir: � Alt esquerdo: Alt � Alt direito: AltGr � Control esquerdo: Control � Control direito: Control � ScrollLock: ScrollLock � Janela esquerda: Meta � Janela direita: Compose � Menu: Menu Se o seu teclado n�o possuir as teclas para Windows 95 ent�o pode ser melhor restabelecer a distribui��o padr�o: edite o mapa e coloque um ponto de exclama��o no in�cio das linhas que definem os keycodes 64, 113, 115, 116 e 117. Foram elaborados mapas com suporte � acentua��o para seis modelos de teclado, tanto para uso no console quanto para o X. Eles podem ser obtidos via WWW em um dos reposit�rios da p�gina do Portuguese HOWTO: � <http://linusp.usp.br/~casantos/> Ao instalar um dos mapas fornecidos, lembre-se de ler os coment�rios contidos neles, pois h� informa��es importantes sobre op��es de configura��o e aproveitamento das teclas adicionais dos teclados padr�o Windows 95. As instru��es para instala��o est�o nas se��es ``Configura��o do console'' e ``Configura��o do X''. O mapa US+ (us+.map e Xmodmap.us+) Mapas para os teclados que seguem o padr�o americano. Como n�o existem teclas especiais para gerar o c-cedilhado nem o trema, foi usado um pequeno truque: o c-cedilhado � gerado pela seq��ncia 'C. No console pode-se faz�-lo com a seq��ncia AltGR- C. O trema � gerado pela tecla ". Para gerar as aspas duplas � necess�rio digitar a seq��ncia "<espa�o> e no console pode-se usar ""; opcionalmente pode-se usar AltGR-", o que n�o � uma solu��o muito confort�vel, mas funciona... Testados com teclados de v�rias marcas (e alguns sem marca :-). O mapa Portugal (pt.map e Xmodmap.pt) Mapas para teclados com desenho portugu�s. Esses teclados s�o os que possuem uma tecla com os caracteres � e �. N�o s�o muito confort�veis, porque para gerar o s�mbolos @ [ ] { } e o trema � necess�rio usar a tecla Alt-GR. Testado com um teclado da marca Key Tronic. O mapa ABNT-2 (abnt-2.map e Xmodmap.abnt2) Os computadores vendidos no Brasil fabricados pela IBM, Compaq e Itautec, entre outros, v�m com esses teclados. Eles tamb�m pode ser adquiridos avulsos e s�o fabricados pela UIS e Keytec (n�o confundir com Key Tronic). Este desenho � o mais confort�vel de todos, pois tem a mesma distribui��o dos acentos encontrada nas m�quinas de escrever. Testado com teclados das marcas UIS e IBM. Sun Type 4 e Type 5 (Xmodmap.Sun4+ e Xmodmap.Sun5c+) Encontrados nas m�quinas fabricadas pela Sun. Estes mapas foram testados em SPARCstations modelos 1, 4, IPC e Classic rodando SunOS 4.1, Solaris 2.5.1 e Linux 2.0.33 (Red Hat 4.2). Como esses teclados n�o possuem o c-cedilhado, foi usado o mesmo truque do mapa US+. Apenas o mapa para o X � fornecido. NCD+ (Xmodmap.NCD+) Este mapa � para o teclado modelo N107 e foi testado em terminais X modelo 16r fabricados pela Network Computing Devices Inc. (NCD). Embora a distribui��o de teclas seja id�ntica � do Sun Type 4, os keycodes das teclas s�o diferentes. Esses teclados tamb�m n�o possuem o c-cedilhado, por isso foi usado o mesmo truque do mapa US+. Apenas o mapa para o X � fornecido. A gera��o dos caracteres acentuados � feita de acordo com a tabela a seguir: Para gerar Digitar ------------------------------------------------- � 'c ou compose-,-c � � � � � 'a 'e 'i 'o 'u � � � � � `a `e `i `o `u � � ~a ~o � � � � � ^a ^e ^i ^o ^u � � � � � "a "e "i "o "u " (aspas) "" ou AltGR-" no mapa US+ � (trema) "-espa�o ' (ap�strofo) '' ou AltGR-' no mapa US+ ` (grave) `` ou AltGR-` no mapa US+ � compose-O-R � compose-O-C ------------------------------------------------- 8. Informa��es Adicionais 8.1. Fontes de informa��o sobre Linux em Portugu�s Grupo de Investiga��o Linux Grupo de usu�rios de linux da Universidade do Minho, em Portugal que pode ser visitado em <http://gil.di.uminho.pt>. Grupo de Utilizadores de Linux do ISCTE Pode ser visitado em <http://www.students.iscte.pt/~a12593/gul.html>. Linux Brasil Servidor da Universidade Estadual de Campinas, Brasil, contendo informa��es sobre Linux no Brasil, que absorveu o antigo projeto LDP-br. Pode ser visitado em <http://linux.unicamp.br>. Projeto LinUSP Desenvolvido na Universidade de S�o Paulo, Brasil, coordenado por Jorge L. deLyra. Pode ser visitado em <http://linusp.usp.br/>. 8.2. Free Translation Project Programadores que quiserem desenvolver aplica��es com suporte a mais de uma l�ngua devem usar algum m�todo de definir mensagens em tempo de execu��o, possivelmente usando uma biblioteca de fun��es para este fim. O projeto GNU criou o ``Free Translation Project'', com esta finalidade. Muitos aplicativos GNU j� permitem que se troquem as mensagens bastando criar um cat�logo que � lido pelo programa ao iniciar. H� equipes de tradu��o respons�veis por cada l�ngua. H� uma lista de discuss�o via emeil para cada equipe de tradu��o, rodando em um servidor provido pela <Linux International>. Para fazer contato com a equipe de tradu��o para Portugu�s, envie um emeil para <pt@li.org> e para assinar a lista envie emeil para <pt- request@li.org> contendo apenas a palavra ``subscribe''. Assine a lista somente se voc� quiser fazer parte da equipe de tradutores, pois ela n�o se destina ao esclarecimento de d�vidas de usu�rios! Mais informa��es podem ser encontradas na documenta��o do pacote gettext dispon�vel via FTP an�nimo em qualquer reposit�rio de software do GNU. Provavelmente sua distribui��o j� tem um pacote pronto para ser instalado, mas se voc� desejar, os fontes da vers�o mais recentes podem ser encontrados em <ftp://ftp.gnu.org/pub/gnu/> e o nome do arquivo a copiar � ``gettext-<vers�o>.tar.gz''. 8.3. LIE-BR A informa��o a seguir � baseada no conte�do da p�gina de apresenta��o da lie-br, escrita por Jorge Godoy. A lie-br foi criada com o intuito de auxiliar a comunidade Linux brasileira a obter softwares e documenta��o em sua l�ngua nativa: o portugu�s. Essa lista � uma ramifica��o de outra maior, a LIE que visa a internacionaliza��o do Linux e sua posterior tradu��o para todos os idiomas (portugu�s incluso). Resumo dos objetivos da lie-br: � contribuir para o projeto de internacionaliza��o do Linux fazendo a parte relativa ao portugu�s para o Brasil; � internacionalizar programas, de modo a poderem ser usados nas l�nguas nativas de cada pa�s, e n�o ficar preso ao idioma original ou ao ingl�s; � disponibilizar (sic) material em portugu�s para consulta e documenta��o; � aumentar o acervo de documenta��o dispon�vel e, indiretamente, auxiliar no desenvolvimento iniciado pelo projeto LDP-BR. Mais informa��es podem ser encontradas na p�gina WWW da lie-br, no endere�o <http://lie-br.conectiva.com.br/> Ainda h� uma quantidade enorme de documentos por traduzir. Se voc� tem bom dom�nio do Ingl�s e deseja colaborar, ent�o primeiro leia as instru��es na p�gina mencionada e assine a lista ``lie-br'', enviando um emeil para <lie-br-subscribe@bazar.conectiva.com.br>. N�o � preciso especificar o assunto (subject) nem colocar nada no corpo da mensagem. 8.4. Vers�es de software testadas Todas as informa��es presentes neste documento foram testadas nas seguintes vers�es de software: � Distribui��es Slackware 3.2 (muito modificada), Debian 2.0, Red Hat 5.2, Conectiva 3.0 (Guarani) e S.u.S.E. 5.6 � XFree86 vers�es 3.3 a 3.3.3.1 � Fvwm 2.0.46 � Rxvt vers�o 2.4.5 � Kernel vers�es 2.0.33 a 2.0.36 � Kbd vers�es 0.92 a 0.96 � GNU emacs vers�es 19.34 a 20.3 � Less vers�es 321 e 332 � GNU Bash vers�es 1.14.7 a 2.01.1 � tcsh vers�es 6.07.02 e 6.07.06 � LyX 0.12.0 a 1.0.0pre6 � XForms 0.88 � Joe 2.8 � Pine 3.96 e 4.0 � Pico 2.9 � teTeX vers�es 0.4 e 0.9-9 � XEmacs vers�es 20.3 e 20.4 9. Observa��es finais 9.1. Futuras adi��es a este documento As pr�ximas vers�es do HOWTO dever�o conter, entre outros assuntos, os seguintes: � suporte � distribui��o Caldera; � informa��es sobre compartilhamento de arquivos em rede usando NFS, SAMBA e Mars-NWE; � configura��o de toolkits de interface gr�fica: Qt, GTK, XForms, Tk (Tcl) e os baseados em Xt, como Motif, Lesstif, Xaw (*international ainda n�o est� funcionando); � uma se��o sobre desenvolvimento de programas; � refer�ncias ao Ispell (us�-lo para corrigir o pr�prio HOWTO :-); � informa��es sobre X/Open, XPG4 e POSIX, ou pelo menos ponteiros para elas. Aceitam-se volunt�rios para qualquer uma destas tarefas. Parece cada vez mais claro que as informa��es sobre configura��o de aplicativos devem ser movidas para outro documento, independente do HOWTO. Na forma como ele est� hoje j� chega a quase quarenta p�ginas impressas e com a adi��o de outras distribui��es e aplica��es em breve chegar� �s 50. Um documento t�o grande foge ao esp�rito de um HOWTO, que deve ser sucinto e concentrado em um assunto espec�fico. 9.2. Nota de Direitos de Autor Este HOWTO teve como autor Jo�o Carlos Rodrigues Pereira, baseado em documenta��o escrita por Jos� Bandeira al�m dos restantes HOWTO's do Linux. Atualmente ele � mantido por Carlos Augusto Moreira dos Santos, com a colabora��o de muitos outros. Os documentos HOWTO do Linux podem ser reproduzidos e distribu�dos em todo ou em parte, segundo qualquer meio f�sico ou electr�nico, desde que esta Nota de Direitos de Autor se mantenha intacta em todas as c�pias dos mesmos. A distribui��o comercial � autorizada e encorajada, no entanto, o autor gostaria de ser notificado de tais ocorr�ncias. Todas as tradu��es, trabalhos derivados, ou trabalhos agregando qualquer dos documentos HOWTO do Linux dever�o estar abrangidos por esta Nota de Direitos de Autor, ou seja, n�o poder� ser imposta qualquer restri��o adicional a trabalhos efectuados a partir de um dos documentos HOWTO do Linux nomeadamente no que diz respeito � sua distribui��o. Exce��es a estas regras poderam ser obtidas. Para tal, dever-se-� contactar o coordenador dos documentos HOWTO do Linux no endere�o <linux-howto@metalab.unc.edu>. 9.3. Garantia (inexist�ncia de) e nota de responsabilidade Apesar de ter sido feito o m�ximo esfor�o poss�vel para que o conte�do deste documento esteja correto, n�o h� nenhuma garantia de que ele n�o possua erros, nem de que tenha algum tipo de utilidade ou aplica��o comercial, t�cnica, educacional ou medicinal. O autor n�o se responsabiliza por preju�zos decorrentes do seu uso. Em resumo: se a informa��o aqui contida quebrar seu computador em mil pedacinhos, junte tudo e cole, mas n�o reclame para mim! Documentos escritos por terceiros s�o de responsabilidade exclusiva deles e sua refer�ncia neste HOWTO n�o representa nenhum tipo de recomenda��o, abono ou garantia de suporte. 9.4. Agradecimentos Deixo aqui os meus agradecimentos a todos os que de alguma forma me ajudaram quer atrav�s das suas sugest�es quer atrav�s de contribui��es de outro tipo, em especial a Jo�o Carlos Rodrigues Pereira Autor original deste documento que agora mantenho. Nunca tive contato com ele, nem sei por onde andar�. Sua p�gina no Departamento de Inform�tica da Faculdade de Ci�ncias da Universidade de Lisboa (http://caravela.di.fc.ul.pt/~jcrp/) n�o existe mais. Lembro-me de t�-la visto, anos atr�s. Greg Hankins Ex-coordenador dos Linux HOWTO, por me permitir assumir a manuten��o deste documento e fornecer as primeiras dicas sobre autoria de documentos SGML. As pessoas listadas a seguir enviaram mensagens diretamente para mim ou para as listas Linux-BR da UNICAMP e TeX-BR com informa��es, sugest�es ou coment�rios que foram inclu�das neste texto. Se algu�m foi esquecido, por favor desculpe a falha. Andre Gerhard <andre@lme.usp.br> Arnaldo Carvalho de Melo <acme@conectiva.com.br> Bruno Barberi Gnecco <brunobg@geocities.com> Cees de Groot <cg@pobox.com> Francisco Semeraro <semeraro@sti.com.br> Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br> Joao Carvalho <foxfire@fe.up.pt> Jorge Carvalho Pinto <jmcpinto@yahoo.com> Judson S Santiago <judson@costeira.dimap.ufrn.br> Ken MacLeod <ken@bitsko.slc.ut.us> Klaus Steding-Jessen <jessen@acm.org> Lamarque Vieira Souza <lamarque@dcc.ufmg.br> Marcelo Malheiros <malheiro@dca.fee.unicamp.br> Marcos Vinicius Lannes dos Santos <lannes@cnpgl.embrapa.br> Pedro Kr�ger <kroger@e-net.com.br> Rafael Caetano dos Santos <rcaetano@linux.ime.usp.br> Rafael Rodrigues Obelheiro <obelix@biquinho.furg.br> Ramiro Morales <morales@siscard.com.ar> Raul Carvalho <rmpc@ip.pt> Ricardo Y. Igarashi <iga@originet.com.br> Roberto Mello <mello@internext.com.br> Wanderlei Antonio Cavassin <cavassin@conectiva.com.br> Os seguintes agradecimentos s�o do primeiro autor: Carlos Ferreira Pela luta que trava pela defesa da lingua portuguesa, bem patente na sua P�gina Portuguesa dispon�vel no URL: http://lila.dei.uc.pt/~cjrf/po/ [Nota do mantenedor atual: esta p�gina n�o existe] Jo�o C. Silva Pelo apoio e incentivo e criticas (bem como por me deixar testar os meus conhecimentos no SEU computador). Jos� Bandeira Autor dos ficheiros port.map e xmodmap. Pelo seu apoio e por ter escrito alguma da documenta��o mais elucidativa que eu j� li sobre o assunto. 10. Bibliografia comentada Esta se��o ainda est� incompleta e deve ser melhorada nas pr�ximas vers�es. Os HOWTOs mencionados aqui geralmente s�o distribu�dos nos CDs de instala��o e todas as distribui��es possuem pelo menos alguns deles em pacotes prontos para instalar. Na Slackwre esses pacotes s�o os da s�rie F e os documentos ficam instalados no diret�rio /usr/doc/faq/howto e na Debian o diret�rio � /usr/doc/HOWTO. Eles tamb�m podem ser obtidos via WWW em <http://metalab.unc.edu/LDP/HOWTO/>. [BAL97] BALSA, Andr� D. Linux and X11 internationalization Dispon�vel via WWW em <http://wauug.erols.com/~balsa/linux/deadkeys/> Uma discuss�o sobre o problema da acentua��o no X. Tamb�m cont�m refer�ncias para outros documentos que tratam de internacionaliza��o. [BRO98] Brower Andries. The Linux Keyboard and Console HOWTO Dispon�vel via WWW em <http://metalab.unc.edu/LDP/HOWTO/Keyboard-and-Console- HOWTO.html>. Descreve o tratamento teclado e console no Linux (kernel vers�o 2.0) e tem v�rias refer�ncias ao X. Leitura obrigat�ria para quem quer entender a base do assunto. [GET94] Gettys, James et al. Xlib - C Language X Interface Cambridge, X Consortium, Inc., 1994. 473p. Refer�ncia definitiva sobre programa��o com Xlib. [JON89] Jones, Oliver. Introduction to the X Window System Englewood Cliffs, Prentice Hall, 1990. Um livro bastante antigo, mas contendo uma excelente e did�tica introdu��o ao X e � programa��o com Xlib. [McC94] McCormack, Joel et al.X Toolkit Intrinsics - C Language Interface Digital Equipment Corporation/X Consortium, 1994. A refer�ncia b�sica para programadores interessados em usar Xt. [OSS92] Ossana, Joseph & Kernighan, Brian. Troff user's manual Computer Science Technical Report No. 54. Murray Hill, AT&T Bell Laboratories, 1992. Descri��o detalhada de como usar o Troff para formata��o de documentos. [KER82] Kernighan, Brian. A Typesetter-independent TROFF Murray Hill, AT&T Bell Laboratories, 1982. O artigo de um dos pais do UNIX sobre o Troff. [QUI98] Quinot, Thomas. Dead keys under X11 Dispon�vel via WWW em <http://www.fdn.fr/~tquinot/index.en.html> A vers�o em ingl�s do artigo sobre a modifica��o da Xlib para dar suporte � acentua��o independente da aplica��o. [RAY98] Raymond, Eric S. The Linux XFree86 HOWTO Dispon�vel via WWW em <http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html>. Descreve como obter, instalar e configurar o XFree86. Todas as distribui��es de Linux j� v�m com pacotes do XFree86 prontos para instalar, mas as informa��es sobre configura��o podem ser muito �teis. [SCH86] Scheifler, Robert; Gettys, James. The X Window System ACM Transactions on Graphics, New York, ACM, 5 (2): 79-109, april, 1986. O artigo seminal de Scheifler e Gettys descrevendo o X Window System. [SUN90a] Sun Microsystems. Using NROFF & TROFF. Sun Microsystems, 1990. Parte da documenta��o que acompanhava as esta��es de trabalho Sun� e o sistema SunOS�, no tempo em que os fabricantes de computadores distribuiam documenta��o de verdade. [SUN90b] Sun Microsystems. Formatting documents Sun Microsystems, 1990. Veja o �tem anterior. Arquivos cuja leitura pode ser �til: /usr/src/linux/Documentation/unicode.txt Explica como ativar os diversos tipos de fontes no console. Tamb�m explica onde obter fontes para o alfabeto Klingon, o que pode ser muito �til se o leitor for um habitante daquele Imp�rio ou admirador de Jornada nas Estrelas. Depois das recentes aventuras espaciais do Linux, n�o duvido de mais nada... A respeito deste assunto � de fundamental import�ncia saber que, segundo nosso consultor interestrelar Klaus Steding-Jessen, ``Klingon � o nome da ra�a e do seu idioma. Kling � o nome do planeta. Mas note que o Imp�rio Klingon � formado n�o apenas por esse planeta, mas por v�rias col�nias, teoricamente todas falando Klingon''. Tenho certeza de que sua vida nunca mais ser� a mesma depois de saber disto. /usr/src/linux/include/linux/keyboard.h Cont�m as defini��es de constantes, fun��es e macros utilizadas por programas que fazem tratamento de teclado sob Linux. Normalmente esse arquivo � instalado com o pacote que cont�m o c�digo fonte do kernel. As distribui��es geralmente possuem um pacote apenas com os arquivos include e outros com o resto dos programas-fonte do kernel. /usr/X11R6/include/X11/keysymdef.h Cont�m as defini��es de constantes, fun��es e macros utilizadas por programas que fazem tratamento de teclado sob o X Window System. Normalmente esse arquivo � instalado com o pacote que cont�m as bibliotecas de desenvolvimento de aplica��es para X.