Linux Portuguese-HOWTO Configurações do Linux para a Língua Portuguesa Carlos A. M. dos Santos CPMet/UFPEL -- Pelotas, RS, Brasil Versão 3.3 -- 3 de agosto de 1999 Este é um guia de referência de configuração dos sistemas operativos baseados no kernel LLiinnuuxx e dos programas que rodam neles, permitindo sua utilização mais confortável por pessoas que falem a Língua Portuguesa. ______________________________________________________________________ Índice geral 1. Comunicado 2. Introdução 2.1 Finalidades deste HOWTO 2.2 Onde encontrar a versão mais recente 3. Informações gerais 3.1 Conjuntos de caracteres 3.2 Modo texto versus Sistema de Janelas X 3.3 Biblioteca de funções libc e aplicativos GNU 3.4 O pacote KBD 3.4.1 Mapas de teclado 3.4.2 Mapas de tradução de tela 3.4.3 Comandos disponíveis 4. Configuração básica (console e libc) 4.1 Problemas com a libc 5 4.2 Carregamento de uma fonte de caracteres 4.2.1 Slackware 4.2.2 Debian 4.2.3 Red Hat 4.2.4 Conectiva Linux 4.2.5 S.u.S.E. 4.2.6 Teste da fonte 4.3 Carregando um mapa de teclado 4.3.1 Slackware 4.3.2 Debian 4.3.3 Red Hat 4.3.4 Conectiva Linux 4.3.5 S.u.S.E. 4.3.6 Teste do teclado 4.4 Verifição de erros 5. Configuração do X 5.1 Xinit 5.2 X display manager (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 Correção da libXaw 5.6.3 Análise das 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 Joe 6.1.7 Less 6.1.8 ls 6.1.9 LyX 6.1.10 Man, groff, troff 6.1.11 Midnight Comander (mc) 6.1.12 Minicom 6.1.13 Nedit 6.1.14 Netscape Communicator 6.1.15 nn 6.1.16 Perl 6.1.17 Pine e Pico 6.1.18 tcsh 6.1.19 TeX e LaTeX 6.1.19.1 O pacote Babel 6.1.19.2 Separação silábica 6.1.19.3 Uso de Font Encoding T1 6.1.19.4 Edição de documentos 6.1.19.5 Teste da configuração do LaTeX 6.1.19.6 Problemas com alguns pacotes do teTeX 6.1.19.7 Lista TeX-BR 6.1.19.8 LaTeX-demo 6.1.20 WordPerfect 6.1.21 Xemacs 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 Futuro deste documento 9.2 Nota de Direitos de Autor 9.3 Garantia (inexistência de) e nota de responsabilidade 9.4 Agradecimentos 10. Bibliografia comentada ______________________________________________________________________ 11.. CCoommuunniiccaaddoo Este é o comunicado oficial de minha decisão de não mais manter o Linux Portuguese-HOWTO. A partir da presente data (3 de agosto de 1999) o documento deve ser considerado ``órfão'' e os possíveis interessados em assumir a responsabilidade por ele devem entrar em contato com o coordenador dos Linux HOWTO -- E NÃO COMIGO -- via email, no endereço linux-howto@metalab.unc.edu. Um arquivo contendo o código fonte estará disponível via WWW até o dia 31 de outubro de 1999 em http://linusp.usp.br/~casantos/Portuguese-HOWTO.tar.gz O conteúdo daquele sítio será totalmente removido à zero hora (GMT) de primeiro de novembro. A cópia existente no servidor WWW da UFRGS também será eliminada. Cópias existentes em outros sítios não são de minha responsabilidade, mas os administradores do espelho oficial em Portugal (www.poli.org) serão notificados de minha decisão. Tomei o cuidado de incluir notas de autoria e referências à licença (GPL) em todos os arquivos (espero não ter esquecido de nenhum). O novo mantenedor tem a obrigação de preservá-las! Agradeço a todos que colaboraram comigo desde o final de 1997 e cujos nomes estão listados no final deste documento. Peço perdão se involuntariamente omiti algum. A todos um forte abraço. Casantos 22.. IInnttrroodduuççããoo 22..11.. FFiinnaalliiddaaddeess ddeessttee HHOOWWTTOO Este é um guia de referência de configuração dos sistemas operativos baseados no kernel LLiinnuuxx e dos programas que rodam neles, permitindo sua utilização mais confortável por pessoas que falem a Língua Portuguesa. Este HOWTO é bastante extenso por causa da complexidade do tema abordado e pela necessidade de tratar as diferenças entre as diversas distribuições de Linux existentes. O texto tem uma sequência lógica que deve ser seguida para sua perfeita compreensão. Certifique-se de ter lido atentamente aanntteess de me enviar um email perguntando algo. O texto contém uma descrição do tratamento do teclado e das fontes de caracteres do console, 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. 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. 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 deles. Excetuando-se aspectos específicos do Linux, como a configuração do modo texto e do _k_e_r_n_e_l, 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 usadas em Solaris e Digital UNIX. 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. 22..22.. OOnnddee eennccoonnttrraarr aa vveerrssããoo mmaaiiss rreecceennttee 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: · · Pode-se também folhear os documentos HOWTO em formato HTML no endereço · 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 · Eis uma lista dos endereços recomendados: Brasil · · · · · Portugal · · · · · · Os HOWTO estão disponíveis em diversos formatos, gerados a partir de um mesmo documento fonte usando-se o software SGMLtools (maiores informações em ). 33.. IInnffoorrmmaaççõõeess ggeerraaiiss 33..11.. CCoonnjjuunnttooss ddee ccaarraacctteerreess 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 para Padronização (_I_n_t_e_r_n_a_t_i_o_n_a_l _O_r_g_a_n_i_z_a_t_i_o_n _f_o_r _S_t_a_n_d_a_r_d_i_z_a_t_i_o_n - ISO) padronizou através da norma ISO-8859 vários desses conjuntos, identificados como 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 (_A_m_e_r_i_c_a_n _S_t_a_n_d_a_r_d _C_o_d_e _f_o_r _I_n_f_o_r_m_a_t_i_o_n _I_n_t_e_r_c_h_a_n_g_e) e os códigos 160 a 255 são usados para caracteres nacionais. Para o Português 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 _o_c_t_e_t_o 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 ter sinais _s_e_m_i_g_r_á_f_i_c_o_s para desenho de linhas e bordas. Esses sinais podem aproveitar códigos não utilizados pelo conjunto oficial, o que os torna não-portáveis. O LLiinnuuxx 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 lidos com os comandos man unicode man utf-8 man iso_8859_1 man ascii mas antes disso certifique-se de que o _m_a_n está configurado corretamente, conforme mostrado na seção ``Man, groff, troff''. 33..22.. MMooddoo tteexxttoo vveerrssuuss SSiisstteemmaa ddee JJaanneellaass XX 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. 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 _C_o_m_p_o_s_e cujo pressionamento seguido de duas outras gerará o caracter correspondente. Assim sendo, o pressionamento da seqüência ccoommppoossee--,,--cc 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 _s_e_r_v_i_d_o_r _X. O pressionamento de uma tecla gera uma mensagem (chamada de _e_v_e_n_t_o) que é passada pelo servidor à aplicação _c_l_i_e_n_t_e. Há um programa muito útil chamado _x_e_v que permite observar cada evento a ele transmitido. Cliente e servidor se comunicam via rede usando um conjunto de regras chamado _p_r_o_t_o_c_o_l_o _X e podem rodar em máquinas diferentes. A máquina onde roda o servidor é chamada _e_s_t_a_ç_ã_o _d_e _t_r_a_b_a_l_h_o ou _t_e_r_m_i_n_a_l _X e a máquina onde roda a aplicação (programa cliente) também é chamada de _c_l_i_e_n_t_e. 33..33.. BBiibblliiootteeccaa ddee ffuunnççõõeess lliibbcc ee aapplliiccaattiivvooss GGNNUU 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. 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. 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 LLCC__CCOOLLLLAATTEE 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. LLCC__CCTTYYPPEE 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! LLCC__MMOONNEETTAARRYY 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. LLCC__MMEESSSSAAGGEESS Estabelece a língua em que as mensagens serão apresentadas e como é uma resposta afirmativa ou negativa (S/N). LLCC__NNUUMMEERRIICC Estabelece o comportamento das funções de leitura/escrita de valores numéricos permitindo, por exemplo que usemos a vírgula decimal. LLCC__TTIIMMEE Define a formatação de datas e horas. LLCC__AALLLL 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. LLAANNGG 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ção ``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 do interpretador 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 Unix usam aquela biblioteca, mas o sistema operativo não provê catálogos de mensagens em todas as línguas para todos os programas. Os códigos da língua e do local possuem duas letras e são 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 nnããoo 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 _d_o _s_e _t_e _q_u _q_u _s_e _s_á no cabeçalho dos dias da semana. Veja na seção ``Configuração básica'' como configurar a libc, de acordo com sua distribuição. 33..44.. OO ppaaccoottee KKBBDD O pacote KBD contém os programas necessários à configuração do console no Linux. Além das fontes de caracteres, ele permite também controlar mapas de teclado e de tradução de tela, conforme descrito a seguir.. 33..44..11.. MMaappaass ddee tteeccllaaddoo 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 _d_e _v_a_r_r_e_d_u_r_a, também conhecido como _s_c_a_n_c_o_d_e, junto com um sinal de que a tecla foi pressionada ou solta. As seqüências de eventos são então processadas pelo _d_r_i_v_e_r 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 _s_c_a_n_c_o_d_e de tecla e o caracter (ou seqüência de caracteres) a gerar quando ela for pressionada, chamado _k_e_y_c_o_d_e. 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 _m_o_d_i_f_i_c_a_d_o_r_a_s que permitem gerar códigos que não correspondem a nenhum sinal gráfico: _S_h_i_f_t _C_o_n_t_r_o_l _A_l_t e _M_e_t_a. 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 _M_e_t_a. O arquivo de mapa permite também especificar teclas especiais chamadas ``teclas mortas'' (_d_e_a_d_k_e_y_s). 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 aa, seja gerado um `ã'. 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. 33..44..22.. MMaappaass ddee ttrraadduuççããoo ddee tteellaa 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 _i_m_a_g_e_m 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. 33..44..33.. CCoommaannddooss ddiissppoonníívveeiiss LLooaaddkkeeyyss 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 SSeettffoonntt 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 SShhoowwffoonntt 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 _x_f_d. Se o programa showfont do pacote KBD for invocado em um emulador de terminal X, como _x_t_e_r_m, ele gerará um erro ``GIO_SCRNMAP: Invalid argument'', mas não provocará nenhum dano. MMaappssccrr 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. LLooaadduunniimmaapp 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. O comando a seguir carregará o mapa de tradução para as fontes latin-1: loadunimap lat1 Este comando nnããoo é necessário quando usamos uma fonte com caracteres definidos no padrão Unicode, pois o programa setfont carrega automaticamente a tabela de mapeamento adequada. 44.. CCoonnffiigguurraaççããoo bbáássiiccaa ((ccoonnssoollee ee lliibbcc)) 44..11.. PPrroobblleemmaass ccoomm aa lliibbcc 55 Até meados de 1997 todas as distribuições de Linux usavam a versão 5 da biblioteca _l_i_b_c, desenvolvida a partir de uma versão mais antiga da libc do projeto GNU. Esta biblioteca possuía 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 nas seções seguintes. Mas se o seu sistema ainda é baseado na libc 5 é preciso instalar a coleção de locais. Não tente copiar a coleção de uma distribuição baseada em libc 6, 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 rroooott) usar o comando installpkg locales-pt.tgz e para outras distribuições use o comando tar xzf locales-pt.tgz -C / Isto deve criar dois subdiretórios do /usr/share/locale chamados pt_BR e pt_PT. 44..22.. CCaarrrreeggaammeennttoo ddee uummaa ffoonnttee ddee ccaarraacctteerreess 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 (o ``u'' indica Unicode); · as que não possuem tabela de mapeamento. Neste caso é preciso carregar uma com o programa loadunimap. Estas têm nomes lat1-*.psf. 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 _t_a_m_b_é_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. 44..22..11.. SSllaacckkwwaarree 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 Para testá-lo basta executar o comando /etc/rc.d/rc.font 44..22..22.. DDeebbiiaann Na distribuição Debian, certifique-se de ter instalado o pacote ``locales'', que pertence ao grupo ``admin''. 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 nnããoo é Windows! 44..22..33.. RReedd HHaatt 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 Execute o programa /sbin/setsysfont para carregar a fonte. Fui informado pos Roberto Mello que na versão 6 do Red Hat comando setfont não funciona. Deve ser usado, por exemplo, consolechars~-f~lat1u-16.psf. 44..22..44.. CCoonneeccttiivvaa LLiinnuuxx Se você selecionar a língua correta durante a instalação não há nada mais a fazer. A configuração é feita extatamente como no Red Hat. 44..22..55.. SS..uu..SS..EE.. 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''. 44..22..66.. TTeessttee ddaa ffoonnttee Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o comando showfont para mostrar a fonte em uso. 44..33.. CCaarrrreeggaannddoo uumm mmaappaa ddee tteeccllaaddoo Os mapas existentes para diversos tipos de teclados são apresentados mais adiante (veja a seção ``Ficheiros necessários''). 44..33..11.. SSllaacckkwwaarree 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 no final do /etc/rc.d/rc.S: # 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 Deste modo a fonte e o mapa de teclado serão carregados automaticamente durante o _b_o_o_t. 44..33..22.. DDeebbiiaann Certifique-se de ter instalado o pacote _k_b_d 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/; · copie o mapa correspondente ao seu teclado para o arquivo /etc/kbd/default.map.gz. · rode o script /etc/init.d/keymaps.sh. 44..33..33.. RReedd HHaatt Certifique-se de ter instalado o pacote _k_b_d. 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). Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na variável KEYTABLE, como por exemplo KEYTABLE="abnt2" 44..33..44.. CCoonneeccttiivvaa LLiinnuuxx O CL 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'' é _b_r_-_a_b_n_t_2, _p_t ou _u_s_-_a_c_e_n_t_o_s caso o desenho do seu teclado seja ABNT-2, português ou americano. 44..33..55.. SS..uu..SS..EE.. Certifique-se de ter instalado o pacote _k_b_d. Copie os arquivos com os mapas de teclado fornecidos (veja a seção ``Ficheiros necessários'') para o diretório /usr/lib/kbd/keytables/. 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 44..33..66.. TTeessttee ddoo tteeccllaaddoo Experimente pressionar a tecla cc--cceeddiillhhaaddoo (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. 44..44.. VVeerriiffiiççããoo ddee eerrrrooss 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 _c_o_n_v_e_n_c_e_r a tela a mostrar os caracteres certos em cada caso. Poderíamos recorrer ao comando _m_a_p_s_c_r_n. 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 _s_h_o_w_f_o_n_t. 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. 55.. CCoonnffiigguurraaççããoo ddoo XX Foge ao escopo deste texto a discussão detalhada do tratamento de eventos no X. Para maiores informações consulte os documentos mencionados na seção ``Bibliografia comentada'', mas é importante esclarecer que o evento enviado pelo servidor ao cliente não contém o código numérico da tecla, chamado _k_e_y_c_o_d_e na terminologia do X. Ao invés disso, é enviado um símbolo, chamado _k_e_y_s_y_m_b_o_l ou _k_e_y_s_y_m, 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. É responsabilidade do cliente e não do servidor interpretar o _k_e_y_s_y_m, o que significa que a aplicação deve saber esperar por 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 do X (_X_l_i_b) um mecanismo sofisticado de suporte à acentuação por meio das funções XXmmbbLLooookkuuppSSttrriinngg e XXwwccLLooookkuuppSSttrriinngg, mas seu uso é responsabilidade da aplicação, mesmo no caso da tecla _C_o_m_p_o_s_e. Isto deve-se so fato de o _X _C_o_n_s_o_r_t_i_u_m 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 problemas com as mais antigas, que continuam tratando a entrada de texto com a função XXLLooookkuuppSSttrriinngg, que existia nas versões anteriores do X. Esta função não processa as seqüências de acentos e letras de modo transparente às aplicações. Por essas razões é normalmente mais difícil conseguir acrescentar suporte à geração de caracteres acentuados a aplicativos que rodam sob o X, principalmente quando não se possui o código fonte. Existem duas soluções, descritas adiante na seção ``Contornando os limites do X''. Quando o servidor X está ativo, ele coloca o teclado do computador em um modo de operação chamado _r_a_w (cru), em oposição ao modo normal, chamado _c_o_o_k_e_d (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''. Existe um programa chamado _x_m_o_d_m_a_p capaz de ler um arquivo contendo uma tabela de conversão _k_e_y_c_o_d_e-->_k_e_y_s_y_m e enviá-la, na forma de mensagens no protocolo X, ao servidor. Ele cumpre uma função correspondente à do comando _l_o_a_d_k_e_y_s. 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 BBaacckkssppaaccee, por exemplo, tem o número 14 no console, e 22 no X (em um computador do tipo IBM-PC). Dividimos a configuração em duas partes: Uma que deve ser feita antes do _l_o_g_i_n do usuário e outra depois. 55..11.. XXiinniitt 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. 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. 55..22.. XX ddiissppllaayy mmaannaaggeerr ((XXDDMM)) O X Display Manager (xdm) é o programa padrão de _l_o_g_i_n do X Window System. Ele não reconhece teclas mortas, mas pode ser modificado para isto, conforme mostrado na sação ``Correção da libXaw''. Se o sistema executa diretamente o X ao dar boot é preciso carregar o mapa de teclado antes que o XDM apresente a tela de o login, porque nos teclados ABNT-2 e português alguns símbolos são gerados por teclas cujos códigos numéricos não são os mesmos do teclado americano. O usuário pode ter problemas se usar caracteres como ``['' ou ``]'' em sua senha. É 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 nas outras distribuições. 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. 55..33.. CCoommppoossee Uma das coisas mais importantes a definir quando vamos utilizar acentuação por meio de _d_e_a_d_-_k_e_y_s é o conjunto de _r_e_g_r_a_s _d_e _c_o_m_p_o_s_i_ç_ã_o. Essas regras determinam, por exemplo que a composição do caracter '' com a letra ee 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 , sendo o _d_e_a_d___c_e_d_i_l_l_a 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 procura imitar ao máximo o comportamento do console e possui as seguintes facilidades para geração de caracteres: · C-cedilha: tecla Ç ou seqüência -C · Apóstrofo: tecla ' ou seqüências - e - · Acento grave: seqüências - e - · Aspas: tecla " ou seqüência - · Trema: seqüência - · Til: seqüências - e - · Circumflexo: seqüências - e - 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 _p_a_t_c_h: 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 aanntteess de substituí-lo! 55..44.. LLooccaallee 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 (_l_i_b_c). A biblioteca de funções do X (_X_l_i_b) 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 _p_a_t_c_h: 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 aanntteess de substituí-los! 55..55.. GGeerraaççããoo ddee mmaappaass ccoomm oo XXKKeeyyCCaappss 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 e, a partir da versão 2.43, já incoropra também suporte para o desenho brasileiro (ABNT2), uma contribuição de Andre Gerhard. 55..66.. CCoonnttoorrnnaannddoo ooss lliimmiitteess ddoo XX 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. Como não é possível modificar muitos deles, é preciso encontrar outro tipo de solução. Felizmente o Linux, assim como a maioria dos sistemas operativos modernos, usa um sistema de vínculo de programas a bibliotecas de funções chamado ``ligação dinâmica'' (_d_y_n_a_m_i_c _b_i_n_d_i_n_g). 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 Existem duas alternativas, conforme descrito a seguir. 55..66..11.. AAlltteerraaççããoo ddaa bbiibblliiootteeccaa XXlliibb O francês Thomas Quinot implementou uma modificação para a biblioteca de funções do X introduzindo o tratamento de acentos na função XXLLooookkuuppSSttrriinngg, mencionada anteriormente. Tudo que se tem a fazer é substituir o arquivo contendo esta biblioteca por outro, que pode ser obtido via internet no endereço Existem duas versões do arquivo, uma para sistemas onde as bibliotecas do X suportam o uso seguro de _t_h_r_e_a_d_s (Debian 2.x, Red Hat 5.x, etc.) e outra para os sistemas que não possuem tal atributo. 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 _X_l_i_b 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 nnããoo esteja contido no arquivo /etc/ld.so.conf. Depois, mova o novo arquivo para o lugar do antigo e rode o programa _l_d_c_o_n_f_i_g (isto deve ser feito pelo usuário rroooott): 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 XXLLooookkuuppSSttrriinngg 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 _x_e_d_i_t e digite alguns caracteres acentuados. 55..66..22.. CCoorrrreeççããoo ddaa lliibbXXaaww O X Window System vem com uma bibliotaca simples de interface com o usuário chamada X Athena Widgets, usada por programas como Xedit, XFig e muitos outros. Xaw incorpora um mecanismo de composição por teclas mortas. O único problema é que é preciso ligar o _r_e_s_o_u_r_c_e ``international'' das caixas de texto, colocando algo como *Text*international: True no arquivo .Xdefaults e estabelecer uma variável de ambiente LANG contendo ``pt'', por exemplo. A maioria das aplicações Xaw não configura o ``international'' e, pior ainda, sempre que eu tentei usá-lo tudo que obtive foi um feio `@' no lugar dos caracteres acentuados. Há uma correção para a libXaw, da autoria deste vosso humilde servo, disponível via WWW em http://linusp.usp.br/ casantos/Xaw-dead-keys/ 55..66..33.. AAnnáálliissee ddaass dduuaass ssoolluuççõõeess A abordagem de Quinot resolve o problema de muitas aplicações que lêem texto sem usar as funções da Xaw. XFig e XPaint são bons exemplos. Eu estou trabalhando neles, mas por enquanto pode-se ``resolver'' o problema do XFig digitando o texto na área de desenho sem acentos e depois usando o recurso ``edit''. Para o XPaint ainda não há solução, lamento. Por outro lado, há duas vantagens da minha solução: ela segue o princípio do X de ``mecanismo e não política'' e a libXaw é mais fácil de recompilar separada do resto do X do que a Xlib. Além disso ela fará seus dentes mais brancos, sua grama mais verde, sua água mais pura e seus cabelos muito mais macios. 66.. CCoonnffiigguurraaççããoo ddooss vváárriiooss pprrooggrraammaass 66..11.. AApplliiccaattiivvooss A maioria das aplicações que rodam no Unix usa algum tipo de arquivo de configuração geral, ou então um arquivo pessoal que o usuário coloca em seu diretório de trabalho (_h_o_m_e) e cujo nome normalmente é .alguma-coisarc. 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. Aplicativos feitos para rodar apenas em modo texto, tais como vvii e mmiinniiccoomm 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 _x_t_e_r_m ou _r_x_v_t o emulador fará o tratamento correto dos acentos. 66..11..11.. BBaasshh ((bbiibblliiootteeccaa GGNNUU rreeaaddlliinnee)) 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 _h_o_m_e 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 PageDown); 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 bbaasshh e da biblioteca rreeaaddlliinnee com os comandos man bash man readline 66..11..22.. EEmmaaccss 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 _D_e_l_e_t_e, _H_o_m_e e _E_n_d, 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. 66..11..33.. fflleexx Especifique a opção --88 se o _p_a_r_s_e_r a gerar necessitar de ler dados de 8 bit. 66..11..44.. FFoorrttuunnee 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 _f_o_r_t_u_n_e _c_o_o_k_i_e_s, 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 simplesmente renomeá-lo para fortunes-en (de _E_nglish) 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 ofensivo 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? 66..11..55.. IIssppeellll Dicionários para o Português de Portugal podem ser obtidos via WWW na página do _P_r_o_j_e_c_t_o _N_a_t_u_r_a em . Para o Brasil, há uma versão compilada por Ricardo Ueda Karpischek: . Veja nas páginas mencionadas e nos pacotes as instruções sobre como instalar cada um deles. As distribuições Debian e Conectiva possuem pacotes com esses dicionários prontos para instalar. Uma vez instalados, deve existir um arquivo chamado br.hash ou pt.hash no diretório /usr/lib/ispell. Para corrigir um texto basta então usar o comando ispell -d pt nome-do arquivo Ispell reconhece vários formatos de arquivo (use o comando ``man~ispell'' para ver as opções disponíveis. Além disso ele pode ser usado por outros programas para corrigir textos, entre eles o LyX e o Emacs. Se durante o uso do Ispell você descobrir palavras que não fazem parte do dicionário padrão, elas podem ser incluídas em seu dicionário pessoal. É importante que você mande essas palavras para os responsáveis pelos dicionários, para que eles sejam enriquecidos com novos termos! 66..11..66.. JJooee 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 _j_o_e_r_c está disponível via WWW na página do Portuguese HOWTO, contendo configurações que permitem usar as teclas _H_o_m_e e _E_n_d para movimentar o cursor para o início e fim da linha. 66..11..77.. LLeessss 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 _R_P_M_+_S_l_a_c_k_w_a_r_e _M_i_n_i_-_H_O_W_T_O que explica como fazer isso. 66..11..88.. llss 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' 66..11..99.. LLyyXX 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 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 _d_e_a_d _k_e_y_s 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 nnããoo foi configurado para ter _d_e_a_d _k_e_y_s ainda assim é possível acentuar no LyX. Selecione o _m_e_n_u 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 _d_e_a_d _k_e_y_s. · A vírgula será tratada como cedilha. Para obter um `Ç'digite ,C e para obter uma vírgula digite ,,. Cuidado! A seqüência , 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 _m_e_n_u File/New. Depois selecione o _m_e_n_u 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 _a_l_g_o_r_i_t_h_m na seção ``TeX e LaTeX''. LyX pode usar o ispell para verificar a ortografia de um texto ele chama o ispell com o parâmetro ``-d'' e o nome do idioma definido para o documento. No caso do Portugues, isto pode ser ``brazil'' ou ``portuges''. Para satisfazer o Ispell, basta então criar _l_i_n_k_s simbólicos para os nomes esperados. Por exemplo: cd /usr/lib/ispell ln -s br.aff brazil.aff ln -s br.hash brazil.hash ln -s pt.aff portuges.aff ln -s pt.hash portuges.hash 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 _t_o_o_l_k_i_t_s 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: . 66..11..1100.. MMaann,, ggrrooffff,, ttrrooffff 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 _m_a_n usa o _g_r_o_f_f 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 simplesmente 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 processador 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. 66..11..1111.. MMiiddnniigghhtt CCoommaannddeerr ((mmcc)) No menu Options sub-menu Display bits... ligue as opções ``Full 8 bits output'' ou ``ISO 8859-1'' e ``Full 8 bits input''. 66..11..1122.. MMiinniiccoomm 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 _M_e_t_a para ativação dos comandos rodando dentro de um _x_t_e_r_m, deve-se invocá-lo com a opção ``-m'' e passar a opção ``-xrm "*eightBitInput: false"'' para o xterm. Se usarmos o _r_x_v_t então o minicom deve ser chamado com a opção ``-m'' e a tecla de ativação dos comandos será _A_l_t. 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 66..11..1133.. NNeeddiitt O Nedit é um editor de texto muito bom de ser usado por programadores, porque reconhece a sintaxe de um grande número de linguagens de programação. Nedit usa o ``toolkit'' . O uso de acentuação do Nedit depende do suporte disponível no toolkit. Na versão 5.0.2 é possível fazê-lo usar acentuação ********************* 66..11..1144.. NNeettssccaappee CCoommmmuunniiccaattoorr O Netscape Navigator/Communicator não suporta acentuação. O problema está relacionado, ao que parece, à biblioteca Motif com a qual a versão para Linux é ligada estaticamente ou com alguma opção de compilação usada pela Netscape ao gerar a versão para Linux (-- A versão para Solaris suporta acentuação rodando em estações de trabalho Sun, pelo menos quando forçada a usar as bibliotecas dinâmicas do X11R6.4 ao invés das bibliotecas do OpenWindows.--) . Pode-se fazê-lo reconhecer acentuação no Linux usando a libX11 de Thomas Quinot, mencionada na sação ``Contornando os limites do X''. Segundo informação recebida de Jose M de Aguiar, na distribuição Debian o Communicator versão 4.6 pode ser instalado através do pacote netscape4_4.0-15.deb. As mensagens e elementos da interface do Communicator podem ser traduzidas para Português sem que seja precio alterar o código-fonte. Muitas aplicações que utilizam _t_o_o_l_k_i_t_s 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 66..11..1155.. nnnn 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 66..11..1166.. PPeerrll Em sistemas com libc versão 5, se configurarmos as variáveis de ambiente LC_* e/ou LANG o interpretador Perl emitirá a seguinte mensagem: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = "pt_BR", LANG = "pt_BR" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Pars contornar o problema (ou varrê-lo para baixo do tapete, como diz a documentação do Perl) pode-se incluir o seguinte no .profile ou /etc/profile: PERL_BADLANG=0 export PERL_BADLANG Isto apenas evita que o Perl emita a mensagem de erro. Para maiores informações leia o manual do perl com o comando man perllocale 66..11..1177.. PPiinnee ee PPiiccoo 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 _m_e_n_u 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 66..11..1188.. ttccsshh 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. 66..11..1199.. TTeeXX ee LLaaTTeeXX Esta seção foi escrita com ajuda de Klaus Steding-Jessen. 66..11..1199..11.. OO ppaaccoottee BBaabbeell O pacote _B_a_b_e_l, 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}. 66..11..1199..22.. SSeeppaarraaççããoo ssiilláábbiiccaa Normalmente apenas os suportes a separação silábica para Inglês e Alemão são carregados. Para configurar hifenização no tteeTTeeXX, execute o utilitário _t_e_x_c_o_n_f_i_g, 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 Em versões mais recentes do teTeX pode ser necessário usar o comando texconfig hyphen latex. O editor usado normalmente é o vvii. Se o seu editor predileto for outro, crie uma variável de ambiente chamada EEDDIITTOORR 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 %%ppoorrttuuggeess 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 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 texconfig~hash e na mesma linha mencionada anteriormente insira um `8' no nome do arquivo, de modo que fique pt8hyph.tex. 66..11..1199..33.. UUssoo ddee FFoonntt EEnnccooddiinngg TT11 Se o conjunto de caracteres (_e_n_c_o_d_i_n_g) 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 _e_n_c_o_d_i_n_g 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 _e_n_c_o_d_i_n_g, 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. 66..11..1199..44.. EEddiiççããoo ddee ddooccuummeennttooss Normalmente a introdução de caracteres acentuados no texto exige o uso de _s_e_q_ü_ê_n_c_i_a_s _d_e _e_s_c_a_p_e bastante trabalhosas. Para gerar um ``ö'' deve-se digitar \"o. Com _b_a_b_e_l pode-se digitar apenas "o, o que não deixa de ser inconveniente para ler o fonte do documento. Há um pacote chamado iinnppuutteenncc 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 iinnppuutteenncc 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 e em muitos espelhos do GNU mundo afora. A distribuição Debian tem um pacote pronto e outras também devem ter. 66..11..1199..55.. TTeessttee ddaa ccoonnffiigguurraaççããoo ddoo LLaaTTeeXX 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, ppoorrttuuggeess, loaded.'' indica que a configuração foi bem sucedida. Se o seu computador 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''. 66..11..1199..66.. PPrroobblleemmaass ccoomm aallgguunnss ppaaccootteess ddoo tteeTTeeXX Há um problema com o pacote _a_l_g_o_r_i_t_h_m 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 _p_r_o_o_f, encontrado nas classes _a_m_s_b_o_o_k, _a_m_s_a_r_t, 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 _t_e_x_h_a_s_h for executado. Isso não fará mal algum, mas pode-se mover o backup para algum lugar seguro (eu uso /usr/backup). 66..11..1199..77.. LLiissttaa TTeeXX--BBRR 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 . Esta lista é administrada por Rafael Rodrigues Obelheiro. Há uma página na WWW em 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. 66..11..1199..88.. LLaaTTeeXX--ddeemmoo 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 . 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 . 66..11..2200.. WWoorrddPPeerrffeecctt O Corel Wordperfect para Linux versão 8 suporta a acentuação por teclas mortas. Não é necessário nenhum procedimento especial. O único problema com o XWP é que ele não reconhece a geração do `Ç' com a combinação acento-c existente no Compose, o que dificulta o uso do teclado padrão americano. Este problema pode ser contornado modificando um pouco o mapa Xmodmap.us+: keycode 54 = c C ccedilla Ccedilla Deste modo pode-se gerar o `ç' e `Ç' pressionando AltGr-C e AltGr-c, respectivamente. 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''. 66..11..2211.. XXeemmaaccss 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 _X_l_i_b 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 (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 _x_e_m_a_c_s_2_0_-_m_u_l_e, 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 ddeelleettee--kkeeyy--ddeelleetteess--ffoorrwwaarrdd. 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. 66..22.. RReeddee llooccaall ee IInntteerrnneett 66..22..11.. FFTTPP ((FFiillee TTrraannssffeerr PPrroottooccooll)) Existem dois modos de transferência de arquivos: _b_i_n_a_r_y e _A_S_C_I_I, 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! 66..22..22.. CCoorrrreeiioo eelleettrrôônniiccoo 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 77.. FFiicchheeiirrooss nneecceessssáárriiooss AAtteennççããoo!! 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 _p_a_r_a _W_i_n_d_o_w_s _9_5 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 _k_e_y_c_o_d_e_s 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: · Brasil: · Portugal: 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 _W_i_n_d_o_w_s _9_5. As instruções para instalação estão nas seções ``Configuração básica'' e ``Configuração do X''. OO mmaappaa UUSS++ ((uuss++..mmaapp ee XXmmooddmmaapp..uuss++)) 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 " 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 :-). OO mmaappaa PPoorrttuuggaall ((pptt..mmaapp ee XXmmooddmmaapp..pptt)) 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 AAlltt--GGRR. Testado com um teclado da marca Key Tronic. OO mmaappaa AABBNNTT--22 ((aabbnntt--22..mmaapp ee XXmmooddmmaapp..aabbnntt22)) 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. SSuunn TTyyppee 44 ee TTyyppee 55 ((XXmmooddmmaapp..SSuunn44++ ee XXmmooddmmaapp..SSuunn55cc++)) 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. NNCCDD++ ((XXmmooddmmaapp..NNCCDD++)) 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 _T_y_p_e _4, os _k_e_y_c_o_d_e_s 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 ------------------------------------------------- 88.. IInnffoorrmmaaççõõeess AAddiicciioonnaaiiss 88..11.. FFoonntteess ddee iinnffoorrmmaaççããoo ssoobbrree LLiinnuuxx eemm PPoorrttuugguuêêss GGrruuppoo ddee IInnvveessttiiggaaççããoo LLiinnuuxx Grupo de usuários de linux da Universidade do Minho, em Portugal que pode ser visitado em . GGrruuppoo ddee UUttiilliizzaaddoorreess ddee LLiinnuuxx ddoo IISSCCTTEE Pode ser visitado em . LLiinnuuxx BBrraassiill Servidor da Universidade Estadual de Campinas, Brasil, contendo informações sobre Linux no Brasil. Pode ser visitado em . PPrroojjeettoo LLiinnUUSSPP Desenvolvido na Universidade de São Paulo, Brasil, coordenado por Jorge L. deLyra. Pode ser visitado em . 88..22.. FFrreeee TTrraannssllaattiioonn PPrroojjeecctt 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 . Para fazer contato com a equipe de tradução para Português, envie um emeil para e para assinar a lista envie emeil para contendo apenas a palavra ``subscribe''. Assine a lista somente se você quiser fazer parte da equipe de tradutores, pois ela nnããoo se destina ao esclarecimento de dúvidas de usuários! Mais informações podem ser encontradas na documentação do pacote _g_e_t_t_e_x_t 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 e o nome do arquivo a copiar é ``gettext-.tar.gz''. 88..33.. LLIIEE--BBRR 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 Ainda há uma quantidade enorme de documentos por traduzir. Se você tem bom domínio do Inglês e deseja colaborar, então pprriimmeeiirroo leia as instruções na página mencionada e assine a lista ``lie-br'', enviando um emeil para . Não é preciso especificar o assunto (subject) nem colocar nada no corpo da mensagem. 88..44.. VVeerrssõõeess ddee ssooffttwwaarree tteessttaaddaass 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.2 a 3.3.3.1 · 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.3 · XForms 0.88 · Joe 2.8 · Pine 3.96 a 4.10 · Pico 2.9 · teTeX versões 0.4, 0.9 e 1.0.6 · XEmacs versões 20.3 e 20.4 99.. OObbsseerrvvaaççõõeess ffiinnaaiiss 99..11.. FFuuttuurroo ddeessttee ddooccuummeennttoo 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. 99..22.. NNoottaa ddee DDiirreeiittooss ddee AAuuttoorr 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. 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. 99..33.. GGaarraannttiiaa ((iinneexxiissttêênncciiaa ddee)) ee nnoottaa ddee rreessppoonnssaabbiilliiddaaddee 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 nnããoo rreeccllaammee ppaarraa mmiimm! 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. 99..44.. AAggrraaddeecciimmeennttooss 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 JJooããoo CCaarrllooss RRooddrriigguueess PPeerreeiirraa 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. GGrreegg HHaannkkiinnss Ex-coordenador dos LLiinnuuxx HHOOWWTTOO, 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 Arnaldo Carvalho de Melo Bruno Barberi Gnecco Cees de Groot Francisco Semeraro Frederic L. W. Meunier Goedson Teixeira Paixao Gustavo Torres Joao Carvalho Jorge Carvalho Pinto Judson S Santiago Ken MacLeod Klaus Steding-Jessen Lamarque Vieira Souza Marcelo Malheiros Marcos Vinicius Lannes dos Santos Pedro Kröger Rafael Caetano dos Santos Rafael Rodrigues Obelheiro Ramiro Morales Raul Carvalho Ricardo Y. Igarashi Ricardo Ueda Karpischek Roberto Mello Wanderlei Antonio Cavassin Os seguintes agradecimentos são do primeiro autor: CCaarrllooss FFeerrrreeiirraa Pela luta que trava pela defesa da lingua portuguesa, bem patente na sua _P_á_g_i_n_a _P_o_r_t_u_g_u_e_s_a disponível no URL: http://lila.dei.uc.pt/~cjrf/po/ [Nota do mantenedor atual: esta página não existe] JJooããoo CC.. SSiillvvaa Pelo apoio e incentivo e criticas (bem como por me deixar testar os meus conhecimentos no SEU computador). JJoosséé BBaannddeeiirraa 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. 1100.. BBiibblliiooggrraaffiiaa ccoommeennttaaddaa 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 . [[BBAALL9977]] BBAALLSSAA,, AAnnddrréé DD.. LLiinnuuxx aanndd XX1111 iinntteerrnnaattiioonnaalliizzaattiioonn Disponível via WWW em 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. [[BBRROO9988]] BBrroowweerr AAnnddrriieess.. TThhee LLiinnuuxx KKeeyybbooaarrdd aanndd CCoonnssoollee HHOOWWTTOO Disponível via WWW em . 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. [[GGEETT9944]] GGeettttyyss,, JJaammeess eett aall.. XXlliibb -- CC LLaanngguuaaggee XX IInntteerrffaaccee Cambridge, X Consortium, Inc., 1994. 473p. Referência definitiva sobre programação com Xlib. [[JJOONN8899]] JJoonneess,, OOlliivveerr.. IInnttrroodduuccttiioonn ttoo tthhee XX WWiinnddooww SSyysstteemm 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. [[LLEEWW9911]] LLeewwwwiinnee,, DDoonnaalldd AA.. PPOOSSIIXX pprrooggrraammmmeerr''ss gguuiiddee Sebastopol, O'Reilly & Assiciates, 1991. Um guia sobre como escrever programas portáveis seguindo o padrão POSIX. [[MMccCC9944]] MMccCCoorrmmaacckk,, JJooeell eett aall..XX TToooollkkiitt IInnttrriinnssiiccss -- CC LLaanngguuaaggee IInntteerrffaaccee Digital Equipment Corporation/X Consortium, 1994. A referência básica para programadores interessados em usar Xt. [[OOSSSS9922]] OOssssaannaa,, JJoosseepphh && KKeerrnniigghhaann,, BBrriiaann.. TTrrooffff uusseerr''ss mmaannuuaall 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. [[KKEERR8822]] KKeerrnniigghhaann,, BBrriiaann.. AA TTyyppeesseetttteerr--iinnddeeppeennddeenntt TTRROOFFFF Murray Hill, AT&T Bell Laboratories, 1982. O artigo de um dos pais do UNIX sobre o Troff. [[QQUUII9988]] QQuuiinnoott,, TThhoommaass.. DDeeaadd kkeeyyss uunnddeerr XX1111 Disponível via WWW em A versão em inglês do artigo sobre a modificação da _X_l_i_b para dar suporte à acentuação independente da aplicação. [[RRAAYY9988]] RRaayymmoonndd,, EErriicc SS.. TThhee LLiinnuuxx XXFFrreeee8866 HHOOWWTTOO Disponível via WWW em . 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. [[SSCCHH8866]] SScchheeiifflleerr,, RRoobbeerrtt;; GGeettttyyss,, JJaammeess.. TThhee XX WWiinnddooww SSyysstteemm _A_C_M _T_r_a_n_s_a_c_t_i_o_n_s _o_n _G_r_a_p_h_i_c_s, New York, ACM, _5 (2): 79-109, april, 1986. O artigo seminal de Scheifler e Gettys descrevendo o X Window System. [[SSUUNN9900aa]] SSuunn MMiiccrroossyysstteemmss.. UUssiinngg NNRROOFFFF && TTRROOFFFF.. 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. [[SSUUNN9900bb]] SSuunn MMiiccrroossyysstteemmss.. FFoorrmmaattttiinngg ddooccuummeennttss 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 _i_n_c_l_u_d_e 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.