home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Portuguese-HOWTO < prev    next >
Text File  |  1999-05-23  |  117KB  |  3,235 lines

  1.   Linux Portuguese-HOWTO
  2.   Configuraτ⌡es do Linux para a Lφngua Portuguesa
  3.   Carlos A. M. dos Santos <casantos@cpmet.ufpel.tche.br>
  4.   CPMet/UFPEL -- Pelotas, RS, Brasil
  5.   v3.2, 24 May 1999
  6.  
  7.   Este documento pretende ser um guia de referΩncia de configuraτπo do
  8.   Linux e seus programas, teclados e fontes de caracteres, permitindo
  9.   sua utilizaτπo mais confortßvel por pessoas que falem a Lφngua Por¡
  10.   tuguesa.
  11.   ______________________________________________________________________
  12.  
  13.   ═ndice geral
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduτπo
  68.  
  69.      1.1 Finalidades deste HOWTO
  70.      1.2 Onde encontrar a versπo mais atual
  71.      1.3 Pßgina oficial na WWW
  72.      1.4 Como enviar colaboraτ⌡es
  73.  
  74.   2. Informaτ⌡es gerais
  75.  
  76.      2.1 Conjuntos de caracteres
  77.      2.2 Modo texto versus Sistema de Janelas X
  78.  
  79.   3. Configuraτπo do console (modo texto)
  80.  
  81.      3.1 Mapas de teclado
  82.      3.2 Mapas de traduτπo de tela
  83.      3.3 Comandos do pacote KBD
  84.      3.4 Carregamento de uma fonte de caracteres
  85.         3.4.1 Slackware
  86.         3.4.2 Debian
  87.         3.4.3 Red Hat
  88.         3.4.4 Conectiva Red Hat Linux
  89.         3.4.5 S.u.S.E.
  90.         3.4.6 Testando a fonte
  91.      3.5 Carregando um mapa de teclado
  92.         3.5.1 Slackware.
  93.         3.5.2 Debian.
  94.         3.5.3 Red Hat.
  95.         3.5.4 Conectiva Red Hat Linux.
  96.         3.5.5 S.u.S.E..
  97.         3.5.6 Testando o teclado
  98.      3.6 Verificando erros
  99.  
  100.   4. Biblioteca de funτ⌡es libc e aplicativos GNU
  101.  
  102.      4.1 Configurando o suporte internacional
  103.      4.2 Problemas com a libc 5
  104.  
  105.   5. Configuraτπo do X
  106.  
  107.      5.1 Configuraτπo do xinit
  108.      5.2 Configuraτπo do XDM
  109.      5.3 Compose
  110.      5.4 Locale
  111.      5.5 Geraτπo de mapas com o XKeyCaps
  112.      5.6 Contornando os limites do X
  113.         5.6.1 Alteraτπo da biblioteca Xlib
  114.         5.6.2 Alteraτπo no kernel do Linux
  115.         5.6.3 Comparaτπo entre as duas soluτ⌡es
  116.  
  117.   6. Configuraτπo dos vßrios programas
  118.  
  119.      6.1 Aplicativos
  120.         6.1.1 Bash (biblioteca GNU readline)
  121.         6.1.2 Emacs
  122.         6.1.3 flex
  123.         6.1.4 Fortune
  124.         6.1.5 Ispell
  125.         6.1.6 JDK (inclui ICQJava)
  126.         6.1.7 Joe
  127.         6.1.8 Less
  128.         6.1.9 ls
  129.         6.1.10 LyX
  130.         6.1.11 Man, groff, troff
  131.         6.1.12 Midnight Comander (mc)
  132.         6.1.13 Minicom
  133.         6.1.14 Netscape Communicator
  134.         6.1.15 nn
  135.         6.1.16 Pine e Pico
  136.         6.1.17 tcsh
  137.         6.1.18 TeX e LaTeX
  138.            6.1.18.1 O pacote Babel
  139.            6.1.18.2 Separaτπo silßbica
  140.            6.1.18.3 Uso de Font Encoding T1
  141.            6.1.18.4 Ediτπo de documentos
  142.            6.1.18.5 Teste da configuraτπo do LaTeX
  143.            6.1.18.6 Problemas com alguns pacotes do teTeX
  144.            6.1.18.7 Lista TeX-BR
  145.            6.1.18.8 LaTeX-demo
  146.         6.1.19 WordPerfect
  147.         6.1.20 Xemacs (antigo lucid emacs)
  148.      6.2 Rede local e Internet
  149.         6.2.1 FTP (File Transfer Protocol)
  150.         6.2.2 Correio eletr⌠nico
  151.  
  152.   7. Ficheiros necessßrios
  153.  
  154.   8. Informaτ⌡es Adicionais
  155.  
  156.      8.1 Fontes de informaτπo sobre Linux em PortuguΩs
  157.      8.2 Free Translation Project
  158.      8.3 LIE-BR
  159.      8.4 Vers⌡es de software testadas
  160.  
  161.   9. Observaτ⌡es finais
  162.  
  163.      9.1 Futuras adiτ⌡es a este documento
  164.      9.2 Nota de Direitos de Autor
  165.      9.3 Garantia (inexistΩncia de) e nota de responsabilidade
  166.      9.4 Agradecimentos
  167.  
  168.   10. Bibliografia comentada
  169.  
  170.  
  171.  
  172.   ______________________________________________________________________
  173.  
  174.   1.  Introduτπo
  175.  
  176.   └ semelhanτa de outras lφnguas faladas na Europa, a Lφngua Portuguesa
  177.   tem caracterφsticas especiais, como a utilizaτπo de caracteres
  178.   acentuados, que tornam o seu suporte difφcil, pouco intuitivo ou atΘ
  179.   mesmo impossφvel, por parte do software utilizado nos nossos
  180.   computadores.
  181.  
  182.   Nossa lφngua assume particularidades em cada um dos paφses em que Θ
  183.   falada e mesmo dentro de um ·nico paφs como o Brasil, de dimens⌡es
  184.   continentais e com influΩncias culturais de muitos outros povos. Este
  185.   documento foi originalmente escrito por um portuguΩs, mas agora Θ
  186.   mantido por um brasileiro. Hß uma mistura de sotaques que deve se
  187.   manter por um bom tempo, pois nπo hß razπo para alterar o texto
  188.   original senπo para fazer de adiτ⌡es e correτ⌡es, atΘ por respeito ao
  189.   primeiro autor. Termos ``estrangeiros'' desnecessßrios foram
  190.   substituφdos por correspondentes da Lφngua Portuguesa, preservando-se
  191.   apenas os que jß fazem parte do jargπo da informßtica.
  192.  
  193.  
  194.   1.1.  Finalidades deste HOWTO
  195.  
  196.   Este HOWTO Θ um guia de referΩncia de configuraτπo do sistema
  197.   operativo Linux e seus programas, teclados e fontes de caracteres,
  198.   permitindo sua utilizaτπo mais confortßvel por pessoas que falem a
  199.   Lφngua Portuguesa. Como os programas mais antigos nπo foram desenhados
  200.   com suporte a caracteres acentuados ou internacionalizaτπo, αs vezes Θ
  201.   preciso usar algum artifφcio que permita contornar o problema, mas o
  202.   resultado nem sempre Θ totalmente satisfat≤rio e em alguns casos chega
  203.   ser frustrante. As dificuldades encontradas centram-se essencialmente
  204.   em torno de quatro pontos:
  205.  
  206.  
  207.   ╖  a introduτπo de caracteres acentuados atravΘs do teclado, como seja
  208.      a escrita de jo~ao em vez da sua forma correcta: joπo;
  209.  
  210.   ╖  a exibiτπo dos mesmos na tela do computador. O suporte resume-se
  211.      normalmente α correcta localizaτπo das teclas, nada mais;
  212.  
  213.   ╖  o correto tratamento de convenτ⌡es nacionais de formato de datas,
  214.      horas e valores monetßrios;
  215.  
  216.   ╖  a exibiτπo de mensagens, tφtulos e demais informaτ⌡es dos programas
  217.      em outra lφngua que nπo o InglΩs, que Θ a lφngua original da
  218.      maioria desses programas.
  219.  
  220.   Vers⌡es anteriores do Portuguese HOWTO concentravam-se em contornar as
  221.   duas primeiras dificuldades mencionadas, de forma a fazer que, dentro
  222.   do possφvel, tanto o sistema operativo como os programas nele
  223.   utilizados aceitassem os caracteres acentuados e usassem os teclados
  224.   com suporte para o PortuguΩs.  Embora esse objetivo ainda seja
  225.   perseguido, os problemas de teclado e caracteres jß tΩm soluτ⌡es
  226.   satisfat≤rias, pelo menos para as aplicaτ⌡es mais usadas. As pr≤ximas
  227.   vers⌡es deverπo se dedicar mais aos dois ·ltimos problemas.
  228.  
  229.   O texto contΘm uma jß nπo tπo breve discussπo sobre o tratamento do
  230.   teclado e das fontes de caracteres do console pelo Linux, bem como do
  231.   suporte a vßrias lφnguas nacionais. O Sistema de Janelas X tambΘm Θ
  232.   discutido, fazendo-se uma comparaτπo entre ele e o modo de texto. Por
  233.   fim, sπo fornecidas instruτ⌡es para a configuraτπo do sistema
  234.   operativo e de diversos aplicativos importantes.
  235.  
  236.   O documento tem se tornado menos slackwariano, incluindo cada vez mais
  237.   informaτ⌡es relativas a outras distribuiτ⌡es. Slackware e Caldera
  238.   ainda se baseiam na versπo 5 da biblioteca de funτ⌡es do sistema para
  239.   Linux (libc), enquanto Debian, Red Hat, TurboLinux, S.u.S.E e Stampede
  240.   jß suportam a versπo 6 (que na verdade Θ a glibc versπo 2). Esta nova
  241.   versπo da biblioteca estß um passo adiante no suporte a
  242.   internacionalizaτπo e localizaτπo.  A partir da versπo 3.2 do
  243.   Portuguese-HOWTO as particularidades de cada distribuiτπo serπo
  244.   destacadas quando houver necessidade. A tentativa de tornar Debian uma
  245.   distribuiτπo ``de referΩncia'' a partir da versπo 3.0 do HOWTO
  246.   fracassou miseravelmente porque o n·mero de diferenτas entre as
  247.   distribuiτ⌡es Θ muito grande.
  248.  
  249.   A intenτπo original de nπo tentar concentrar toda a informaτπo em um
  250.   ·nico texto, tratando apenas de alguns temas essenciais e fornecendo
  251.   referΩncias para outras fontes, tambΘm fracassou. O HOWTO em sua
  252.   versπo 3.1 jß alcanτava 38 pßginas impressas em formato A4, o que estß
  253.   longe de poder ser chamado de sucinto. As principais raz⌡es para tal
  254.   gigantismo sπo a necessidade de discutir diferenτas entre as
  255.   distribuiτ⌡es e a necessidade de fornecer informaτ⌡es mais detalhadas
  256.   sobre aplicativos.
  257.  
  258.   Excetuando-se aspectos muito especφficos do Linux, como a configuraτπo
  259.   do modo texto e do kernel, a maioria das informaτ⌡es contidas neste
  260.   documento pode ser aplicada a outros sistemas Unix. Exemplos sπo as
  261.   configuraτ⌡es do Sistema de Janelas X e de vßrios aplicativos, que
  262.   foram aplicadas em Solaris 2.{5,6,7} e Digital UNIX 3.2. Os mapas de
  263.   teclado para terminais X e estaτ⌡es de trabalho Sun foram criados e
  264.   sπo usados em mßquinas que rodam Solaris. O documento poderß um dia se
  265.   tornar o ``Unix Portuguese HOWTO'', embora no momento nπo se tenha
  266.   intenτπo ou meios de fazΩ-lo.
  267.  
  268.  
  269.   1.2.  Onde encontrar a versπo mais atual
  270.  
  271.   Os Linux HOWTO fazem parte do Projeto de Documentaτπo Linux (Linux
  272.   Documentation Project -- LDP). Os documentos do LDP sπo mantidos em
  273.   servidores da Universidade da Carolina do Norte (UNC) e do Instituto
  274.   de Tecnologia de Massachusetts (MIT), nos Estados Unidos da AmΘrica, e
  275.   podem ser obtidos via FTP an⌠nimo nos seguintes endereτos:
  276.  
  277.   ╖  <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO> (conhecida
  278.      anteriormente como sunsite.unc.edu).
  279.  
  280.   ╖  <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO>
  281.  
  282.   Pode-se tambΘm folhear os documentos HOWTO em formato HTML no endereτo
  283.  
  284.   ╖  <http://metalab.unc.edu/LDP/HOWTO>
  285.  
  286.   Muitas localidades mantΩm c≤pias desses documentos. Deve-se dar
  287.   preferΩncia ao acesso α c≤pia mais pr≤xima, para economizar o precioso
  288.   trßfego internacional na Internet e tambΘm evitar a sobrecarga da
  289.   mßquina metalab.unc.edu. Uma lista completa dessas localidades pode
  290.   ser obtida em
  291.  
  292.   ╖  <http://metalab.unc.edu/LDP/mirrors.html>
  293.  
  294.   Eis uma lista dos endereτos recomendados:
  295.  
  296.   Brasil
  297.  
  298.   ╖  <http://linusp.usp.br/LDP/>
  299.  
  300.   ╖  <http://www.conectiva.com.br/LDP/>
  301.  
  302.   ╖  <http://www.opensite.com.br/linux/>
  303.  
  304.   ╖  <http://taubate.valley-bbs.com.br/LDP/>
  305.  
  306.   ╖  <http://linux.unicamp.br/docs/>
  307.  
  308.   Portugal
  309.  
  310.   ╖  <http://gil.di.uminho.pt/mirrors/LDP/>
  311.  
  312.   ╖  <http://deneb.cec.pt/LDP/>
  313.  
  314.   ╖  <http://ftp.dei.uc.pt/LDP/>
  315.  
  316.   ╖  <http://www.sc.uevora.pt/LDP/>
  317.  
  318.   ╖  <http://lwp.ualg.pt/docs/LDP/>
  319.  
  320.   ╖  <http://linux.global-one.pt/LDP/>
  321.  
  322.   ╖  <http://linux.ispgaya.pt/LDP/>
  323.  
  324.   ╖  <http://ae.fe.up.pt/LDP/>
  325.  
  326.   Os Linux HOWTO estπo disponφveis em diversos formatos: texto simples,
  327.   PostScript, DVI, HTML, RTF e Lyx. O formato original Θ SGML e os
  328.   demais sπo gerados usando o SGMLtools (maiores informaτ⌡es em
  329.   <http://www.sgmltools.org/>).
  330.  
  331.   1.3.  Pßgina oficial na WWW
  332.  
  333.   A pßgina oficial do Linux Portuguese-HOWTO, assim como os diversos
  334.   arquivos de configuraτπo do sistema e programas aplicativos
  335.   mencionados no texto, podem ser encontrados nos seguintes endereτos:
  336.  
  337.  
  338.   ╖  Brasil:  <http://linusp.usp.br/~casantos/>
  339.  
  340.   ╖  Portugal:  <http://linux.fe.up.pt/howto/>
  341.  
  342.  
  343.   1.4.  Como enviar colaboraτ⌡es
  344.  
  345.   Toda a formataτπo deste HOWTO, incluindo a numeraτπo das seτ⌡es Θ
  346.   feita pelo SGMLtools. Por isso, ao enviar sugest⌡es ou correτ⌡es,
  347.   mencione os tφtulos das seτ⌡es onde as alteraτ⌡es sugeridas devem
  348.   ocorrer e nπo os n·meros. Nunca refira-se a um parßgrafo como sendo
  349.   ``o terceiro da seτπo 3.1''; cite as palavras inicias do trecho a ser
  350.   modificado.
  351.  
  352.   Envie sugest⌡es e correτ⌡es via correio eletr⌠nico em texto simples,
  353.   opcionalmente com acentuaτπo no c≤digo ISO-8859-1.  Se o texto nπo for
  354.   composto em um sistema *NIX, certifique-se de usar a codificaτπo
  355.   correta.  Todas as mensagens recebidas serπo lidas, mas nem todas
  356.   receberπo resposta direta, devido α falta de tempo para tanto.
  357.  
  358.   Nπo envie documentos no formato proprietßrio de processadores de texto
  359.   nem em formato HTML (o que infelizmente parece ser o comportamento
  360.   normal do Netscape Communicator e do Microsoft Outlook).
  361.  
  362.   Mensagens perguntando como configurar seu modem, placa de vφdeo ou
  363.   rede nπo serπo respondidas. Para esse tipo de consulta Θ aconselhßvel
  364.   procurar uma lista de discussπo sobre Linux em PortuguΩs ou acompanhar
  365.   os grupos de discussπo de Linux na USENET comp.os.linux.*.
  366.  
  367.   ``Flames'' terπo o destino costumeiro: /dev/null.
  368.  
  369.  
  370.   2.  Informaτ⌡es gerais
  371.  
  372.   2.1.  Conjuntos de caracteres
  373.  
  374.   Um conjunto de caracteres Θ definido de acordo com os sφmbolos
  375.   constantes no alfabeto utilizado para escrita em uma ou mais lφnguas.
  376.   A Organizaτπo Internacional de Normas (International Standards
  377.   Organization - ISO) padronizou atravΘs da norma ISO-8859 vßrios desses
  378.   conjuntos, identificados por ISO-8859-x onde o x corresponde a um
  379.   determinado alfabeto. O conjunto ISO-8859 utiliza 8 bits para
  380.   representar cada caracter, o que permite uma gama de 256 sinais
  381.   (valores de zero a 255). Em cada um dos conjuntos, os c≤digos zero a
  382.   127 correspondem ao conjunto ASCII (American Standard Code for
  383.   Information Interchange) e os c≤digos 160 a 255 sπo usados para
  384.   caracteres nacionais.
  385.  
  386.   Para a lφngua portuguesa, recomenda-se o uso do conjunto ISO-8859-1,
  387.   que compreende o alfabeto latino e letras acentuadas usadas pelas
  388.   lφnguas do oeste da Europa e AmΘrica. Este conjunto de caracteres
  389.   tambΘm Θ frequentemente chamado de Latin-1 ou ISO Latin-1.
  390.  
  391.   Um padrπo mais recente Θ o Unicode, definido pela norma ISO-10646, que
  392.   permite definir caracteres cuja representaτπo interna no computador
  393.   utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as
  394.   vers⌡es mais recentes de sistemas Unix suportam Unicode (ou pelo menos
  395.   seus fabricantes alegam suportar).
  396.  
  397.   AlΘm dos caracteres alfanumΘricos e sinais de acentuaτπo, Θ possφvel
  398.   tambΘm gerar sinais semigrßficos para desenho de linhas e bordas.
  399.   Esses sinais podem aproveitar c≤digos nπo utilizados pelo conjunto
  400.   oficial, tornando-os nπo portßveis.
  401.  
  402.   O Linux foi desenhado internamente de modo a facilitar a sua fßcil
  403.   configuraτπo e extensπo em tempo de execuτπo, nπo constituindo o
  404.   tratamento do teclado e fontes de caracteres excepτπo. Ele possui uma
  405.   implementaτπo ``nφvel 1'' do padrπo Unicode. Maiores detalhes podem
  406.   ser encontrados nos manuais do Linux, que podem ser lido com os
  407.   comandos
  408.  
  409.       man unicode
  410.       man utf-8
  411.       man iso_8859_1
  412.       man ascii
  413.  
  414.  
  415.   mas antes disso certifique-se de que o man estß configurado correta¡
  416.   mente, conforme mostrado na seτπo ``Man, groff, troff''.
  417.  
  418.  
  419.   2.2.  Modo texto versus Sistema de Janelas X
  420.  
  421.   Alguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT,
  422.   possuem interfaces grßficas pr≤prias. No Linux, assim como na maioria
  423.   dos sistemas compatφveis com Unix, Θ de uso corrente um ambiente
  424.   grßfico criado para ser ``multiplataforma'': o X Window System, que
  425.   tambΘm foi projetado para suportar diversos conjuntos de caracteres,
  426.   idiomas e formatos de teclado, mas ainda nπo suporta totalmente o
  427.   padrπo Unicode e sim uma extensπo do ISO-8859.
  428.  
  429.  
  430.        A rigor o X Window System nπo Θ uma interface grßfica com o
  431.        usußrio, mas a combinaτπo de um protocolo de comunicaτπo com
  432.        uma interface com programas aplicativos (API) sobre a qual
  433.        se construφram vßrias interfaces grßficas.  Tanto o proto¡
  434.        colo quanto o Sistema de Janelas definem um conjunto de
  435.        mecanismos e nπo polφticas (elementos caracterφsticos da
  436.        polφtica de uma Interface Grßfica com o Usußrio sπo menus,
  437.        bot⌡es e caixas de dißlogo).  O uso do termo ``XWindows'' Θ
  438.        incorreto e deve ser evitado, dando-se preferΩncia ao nome
  439.        genΘrico ``X''.
  440.  
  441.  
  442.   Existem muitas semelhanτas entre os dois ambientes.  Ambos se baseiam
  443.   em padr⌡es internacionais para definiτπo de conjuntos de caracteres.
  444.   Tanto no X quanto no console do Linux pode-se definir uma tecla
  445.   chamada Compose cujo pressionamento seguido de duas outras gerarß o
  446.   caracter correspondente.  Assim sendo, o pressionamento da seqⁿΩncia
  447.   compose-,-c gerarß um c cedilhado.
  448.  
  449.   O tratamento do console Θ feito diretamente pelo sistema operativo e
  450.   aplicaτ⌡es comuns nπo se envolvem com o processamento dos c≤digos de
  451.   varredura do teclado, recebendo um caracter ou uma seqⁿΩncia deles ao
  452.   ser pressionada cada tecla, de tal sorte que tendo sido corretamente
  453.   configurados o teclado e a fonte de caracteres pouco mais se tem a
  454.   fazer.
  455.  
  456.   O X possui uma arquitetura muito diferente: tanto o teclado quanto
  457.   a(s) tela(s) -- pode haver mais de uma tela -- sπo controlados por uma
  458.   aplicaτπo especial chamada servidor X. O pressionamento de uma tecla
  459.   gera uma mensagem (chamada de evento) que Θ passada pelo servidor X α
  460.   aplicaτπo cliente. Hß um programa muito ·til chamado xev que permite
  461.   observar cada evento a ele transmitido. Cliente e servidor se
  462.   comunicam via rede usando um conjunto de regras chamado protocolo X e
  463.   podem rodar em mßquinas diferentes. A mßquina onde roda o servidor Θ
  464.   chamada estaτπo de trabalho ou terminal X e a mßquina onde roda a
  465.   aplicaτπo (programa cliente) tambΘm Θ chamada de cliente.
  466.  
  467.   Foge ao escopo deste texto a discussπo mais profunda do tratamento de
  468.   eventos no X. Para maiores informaτ⌡es, sugere-se a consulta aos
  469.   documentos mencionados na seτπo ``Leituras recomendadas'', mas Θ
  470.   importante esclarecer que o evento enviado pelo servidor ao cliente
  471.   nπo contΘm o c≤digo numΘrico da tecla, chamado keycode na terminologia
  472.   do X.  Ao invΘs disso, Θ enviado um sφmbolo, chamado keysymbol ou
  473.   keysym, obtido pela consulta a uma tabela de conversπo mantida na
  474.   mem≤ria do servidor.  Esta tabela pode ser modificada total ou
  475.   parcialmente a qualquer momento por meio de requisiτ⌡es definidas no
  476.   protocolo X.
  477.  
  478.   Existe um programa chamado xmodmap capaz de ler um arquivo contendo
  479.   uma tabela de conversπo keycode-->keysym e enviß-la, tambΘm na forma
  480.   de mensagens no protocolo X, ao servidor. ╔ responsabilidade do
  481.   cliente e nπo do servidor interpretar o keysym, o que significa que a
  482.   aplicaτπo deve saber esperar mais um caracter ao receber uma ``tecla
  483.   morta'' para compor uma letra acentuada.
  484.  
  485.   Desde a revisπo 5 do X existe na bibliotaca de funτ⌡es (Xlib) um
  486.   mecanismo sofisticado de suporte α geraτπo de caracteres em diversos
  487.   c≤digos.  A funτπo de tratamento de entrada de texto que jß existia
  488.   nas vers⌡es anteriores, chamada XLookupString, entretanto,  nπo
  489.   processa as seqⁿΩncias de acentos e letras de modo transparente αs
  490.   aplicaτ⌡es. Ao invΘs disso foi incluφdo um mΘtodo de composiτπo usando
  491.   contextos de entrada (input contexts) por meio das funτ⌡es
  492.   XmbLookupString e XwcLookupString, cujo uso Θ responsabilidade da
  493.   aplicaτπo -- ou do seu programador, melhor dizendo -- mesmo no caso da
  494.   tecla Compose.  Isto deve-se so fato de o X Consortium ter chegado α
  495.   conclusπo de que o sistema de mapeamento de teclas nπo tratava de
  496.   forma satisfat≤ria toda a imensa variedade de lφnguas escritas nas
  497.   vßrias partes do mundo. Deste modo, decidiu-se que o ``peso'' relativo
  498.   α gestπo do teclado fosse transferido para as aplicaτ⌡es X, o que cria
  499.   uma dificuldade quando usamos aquelas mais antigas, que nπo usam o
  500.   novo mΘtodo de tratar a entrada.
  501.  
  502.   Por essas raz⌡es Θ normalmente mais difφcil conseguir acrescentar
  503.   suporte α geraτπo de caracteres acentuados em aplicativos que rodam
  504.   sob o X, principalmente quando nπo se possui o c≤digo fonte.
  505.   Aplicativos feitos para rodar apenas em modo texto, tais como vi e
  506.   minicom dependerπo totalmente dos recursos do emulador de terminal em
  507.   uso quando rodando em uma janela do X. Se for usada uma versπo atual
  508.   do xterm ou rxvt o emulador farß o tratamento correto dos acentos.
  509.  
  510.   O francΩs Thomas Quinot, cansado de esperar uma soluτπo melhor para o
  511.   problema da acentuaτπo no X, resolveu implementar uma modificaτπo para
  512.   a Xlib proposta por AndrΘ D. Balsa, que adiciona suporte α acentuaτπo
  513.   direta conforme mostrado na seτπo ``Contornando os limites do X''.
  514.   Isso permite usar aplicaτ⌡es como xfig ou xedit sem que seja
  515.   necessßrio alterß-las. O truque parece funcionar apenas para
  516.   caracteres do c≤digo ISO-8859-1 mas Θ suficiente para o PortuguΩs e
  517.   outras lφnguas. Como bem observa Balsa, a longo prazo todos os
  518.   programas deverπo ser modificados para usar os novos recursos do X,
  519.   mas como a longo prazo estaremos todos mortos a soluτπo de curto prazo
  520.   de Quinot torna-se bastante atraente...
  521.  
  522.  
  523.   3.  Configuraτπo do console (modo texto)
  524.  
  525.   O documento de referΩncia sobre a configuraτπo do console do Linux Θ o
  526.   Keyboard and Console HOWTO, de Andries Brouwer, que pode ser
  527.   encontrado nos reposit≤rios do LDP. Conforme lß descrito, a
  528.   configuraτπo da fonte de caracteres e mapa de teclado Θ feita usando o
  529.   pacote KBD, encontrado em todas as distribuiτ⌡es de Linux.
  530.  
  531.  
  532.   3.1.  Mapas de teclado
  533.  
  534.   Cada tecla do PC possui um c≤digo numΘrico. Ao pressionarmos uma delas
  535.   o processador controlador do teclado envia ao computador esse c≤digo
  536.   de varredura, tambΘm conhecido como scancode, junto com um sinal de
  537.   que a tecla foi pressionada ou solta. As seqⁿΩncias de eventos sπo
  538.   entπo processadas pelo driver de teclado e armazenadas em uma fila de
  539.   caracteres que Θ lida pelas aplicaτ⌡es por meio da chamada de funτ⌡es
  540.   do sistema operativo.
  541.  
  542.   Um mapa de teclado Θ um arquivo de texto que estabelace as
  543.   correspondΩncias entre o scancode de tecla e o caracter (ou seqⁿΩncia
  544.   de caracteres) a gerar quando ela for pressionada, chamado keycode.
  545.   Por exemplo:
  546.  
  547.       # atribuiτπo da tecla '-' do teclado numΘrico α tecla com c≤digo 74
  548.       keycode  74 = KP_Subtract
  549.  
  550.       # atribuiτπo da tecla '4' do teclado numΘrico α tecla com c≤digo 75
  551.       keycode  75 = KP_4
  552.  
  553.       # etc...
  554.  
  555.       keycode  76 = KP_5            # tecla 5
  556.       keycode  77 = KP_6            # tecla 6
  557.       keycode  78 = KP_Add          # soma
  558.       keycode  79 = KP_1            # tecla 1
  559.       keycode  80 = KP_2            # tecla 2
  560.  
  561.  
  562.  
  563.   AlΘm das teclas alfabΘticas, numΘricas e de sφmbolos, existem outras
  564.   chamadas modificadoras que permitem gerar c≤digos que nπo correspondem
  565.   a nenhum sinal grßfico: Shift Control Alt e Meta. Esta ·ltima
  566.   normalmente nπo Θ encontrada em teclados de PCs, apenas em estaτ⌡es de
  567.   trabalho de fabricantes como Sun, SGI, HP e Digital (eles nπo gostam
  568.   de ser chamados de ``DEC''). O editor de texto Emacs usa muito a tecla
  569.   Meta.
  570.  
  571.   O arquivo de mapa permite tambΘm especificar teclas especiais chamadas
  572.   ``teclas mortas'' (deadkeys). Quando pressionadas elas nπo resultam no
  573.   aparecimento de um caracter na tela, limitando-se a alterar o
  574.   comportamento da tecla pressionada a seguir para que, por exemplo, ao
  575.   se digitar um ~ seguida de um a, seja gerado um `π'.
  576.  
  577.  
  578.   3.2.  Mapas de traduτπo de tela
  579.  
  580.   Um mapa de traduτπo de tela permite especificar qual o caracter X a
  581.   ser exibido na tela, quando um programa deseja exibir um caracter Y.
  582.   Desta forma, poderφamos fazer com que ao escrever o caracter com o
  583.   c≤digo do c-cedilhado na tela, fosse na realidade exibido um outro
  584.   caracter de c≤digo diferente mas cuja imagem na nossa fonte de
  585.   caracteres correspondesse α imagem de um c-cedilhado.
  586.  
  587.   Este mapeamento Θ necessßrio apenas quando queremos usar uma fonte
  588.   cujos caracteres nπo possuem c≤digos diretamente correspondentes aos
  589.   do conjunto usado no mapa de teclado.
  590.  
  591.  
  592.  
  593.  
  594.  
  595.   3.3.  Comandos do pacote KBD
  596.  
  597.  
  598.      Loadkeys
  599.         Permite carregar um mapa de teclado. Por exemplo, o comando a
  600.         seguir carrega o mapa armazenado no arquivo portugal.map.
  601.  
  602.             loadkeys /usr/lib/kbd/keytables/portugal.map
  603.  
  604.  
  605.  
  606.      Setfont
  607.         Permite o carregamento de uma fonte de caracteres de tela,
  608.         possibilitando a alteraτπo das fontes utilizadas em modo de
  609.         texto. O comando a seguir, por exemplo, irß carregar uma fonte
  610.         com o conjunto Latin-1:
  611.  
  612.             setfont lat1u-16.psf
  613.  
  614.  
  615.  
  616.      Showfont
  617.         mostra todos os caracteres existentes na fonte que estß
  618.         atualmente em uso no console. O X tambΘm tem um comanto chamado
  619.         showfont, que serve para mostrar as caracterφsticas de uma
  620.         determinada fonte, mas nπo os caracteres em si. Para esta ·ltima
  621.         finalidade se usa o comando xfd. Se o programa showfont do
  622.         pacote KBD for invocado em um emulador de terminal X, como
  623.         xterm, ele gerarß um erro ``GIO_SCRNMAP: Invalid argument'', mas
  624.         nπo provocarß nenhum dano.
  625.  
  626.      Mapscr
  627.         Permite carregar um mapa de traduτπo de tela. Suponhamos que
  628.         exista o arquivo /etc/portugal.trad. Se executarmos o comando
  629.  
  630.             mapscrn /etc/portugal.trad
  631.  
  632.  
  633.      entπo a partir deste momento as traduτ⌡es lß definidas serπo
  634.      usadas.
  635.  
  636.      Loadunimap
  637.         Carrega um mapa de traduτπo de Unicode para a fonte de tela. O
  638.         mapa padrπo, chamado ``def.uni'' considera que estamos usando a
  639.         fonte normal do IBM-PC.  Este comando nπo Θ necessßrio quando
  640.         usamos uma fonte com caracteres definidos no padrπo Unicode,
  641.         pois o programa setfont carrega automaticamente a tabela de
  642.         mapeamento adequada. O comando a seguir carregarß o mapa de
  643.         traduτπo para as fontes latin-1:
  644.  
  645.             loadunimap lat1
  646.  
  647.  
  648.  
  649.  
  650.  
  651.   3.4.  Carregamento de uma fonte de caracteres
  652.  
  653.   O pacote KBD contΘm dois tipos de fontes com codificaτπo latin-1:
  654.  
  655.   ╖  as que jß possuem uma tabela de mapeamento unicode, carregada
  656.      automaticamente pelo programa setfont. Estas fontes tΩm nomes
  657.      lat1u-*.psf;
  658.  
  659.   ╖  as que nπo possuem tabela de mapeamento. Neste caso Θ preciso
  660.      carregar uma com o programa loadunimap. Estas tΩm nomes lat1-*.psf
  661.      (o ``u'' indica Unicode).
  662.  
  663.   Nas vers⌡es mais novas do KBD os arquivos sπo comprimidos com gzip.  ╔
  664.   preciso carregar uma fonte que tenha os caractres latinos acentuados
  665.   no padrπo ISO 8859-1 e tambΘm os sφmbolos semigrßficos. As fontes de
  666.   nome iso01.* nπo possuem esses sφmbolos. A fonte mais recomendada Θ a
  667.   lat1u-16.psf.
  668.  
  669.   As vers⌡es mais antigas do pacote KBD mantinham essas fontes no
  670.   diret≤rio /usr/lib/kbd/consolefonts, que foi trocado depois da versπo
  671.   0.92 por /usr/share/consolefonts. Dependendo da sua distribuiτπo e do
  672.   quanto ela esteja atualizada o diret≤rio poderß ser um ou outro.
  673.  
  674.  
  675.   3.4.1.  Slackware
  676.  
  677.   Foi criado o script /etc/rc.d/rc.font, contendo o seguinte:
  678.  
  679.  
  680.       #!/bin/sh
  681.       #
  682.       # /etc/rc.d/rc.font
  683.       #
  684.       # Seleciona uma das fontes de caracteres disponiveis em
  685.       # /usr/lib/kbd/consolefonts.
  686.       #
  687.       setfont lat1u-16.psf
  688.  
  689.       # O comando a seguir Θ totalmente desnecessßrio
  690.       # com a fonte lat1u-16.psf.
  691.       # loadunimap lat1u
  692.  
  693.       # Remova o comentßrio da linha abaixo se estiver usando uma fonte sem
  694.       # tabela de mapeamento de Unicode para tela:
  695.       # loadunimap lat1
  696.  
  697.  
  698.  
  699.  
  700.   3.4.2.  Debian
  701.  
  702.   Edite o arquivo /etc/kbd/config e coloque uma linha contendo
  703.  
  704.       CONSOLE_FONT=lat1u-16.psf
  705.  
  706.  
  707.   esse arquivo Θ processado pelo script /etc/rc.boot/kbd. Execute-o para
  708.   ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre:
  709.   Linux nπo Θ Windows!
  710.  
  711.  
  712.   3.4.3.  Red Hat
  713.  
  714.   Edite o arquivo /etc/sysconfig/i18n e veja se contΘm o seguinte:
  715.  
  716.       LANG=pt_BR
  717.       LINGUAS=pt_BR
  718.       LC_CTYPE=ISO-8859-1
  719.       LC_ALL=pt_BR
  720.       SYSFONT=lat1u-16
  721.       SYSTERM=linux-lat
  722.  
  723.  
  724.  
  725.  
  726.  
  727.   3.4.4.  Conectiva Red Hat Linux
  728.  
  729.   Se vocΩ selecionar a lφngua correta durante a instalaτπo nπo hß nada
  730.   mais a fazer. A configuraτπo Θ feita extatamente como do Red Hat.
  731.  
  732.  
  733.   3.4.5.  S.u.S.E.
  734.  
  735.   Edite o arquivo /etc/rc.config e procure uma linha que comeτa com
  736.   ``FONT='' (linha 64, em minha mßquina com S.u.S.E. verπo 5.6) e
  737.   coloque
  738.  
  739.       FONT=lat1u-16.psf
  740.  
  741.  
  742.  
  743.   Edite os scripts boot.setup e single contidos no diret≤rio /etc/rc.d.
  744.   Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou
  745.   ponha no seu inφcio um ``#'' para deixß-la como comentßrio. Veja
  746.   comentßrios sobre este comando na seτπo ``Carregamento de uma fonte de
  747.   caracteres''.
  748.  
  749.  
  750.   3.4.6.  Testando a fonte
  751.  
  752.   Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o
  753.   comando showfont para mostrar a fonte em uso.
  754.  
  755.  
  756.   3.5.  Carregando um mapa de teclado
  757.  
  758.   A seguir Θ necessßrio carregar o mapa de teclado adequado. AtΘ a
  759.   versπo 0.92 do pacote KBD esses mapas ficavam no diret≤rio
  760.   /usr/lib/kbd/keytables passando mais tarde para /usr/share/keytables.
  761.   Dependendo da distribuiτπo vocΩ terß um diret≤rio ou outro. Os mapas
  762.   para diversos tipos de teclados sπo apresentados mais adiante.
  763.  
  764.  
  765.   3.5.1.  Slackware.
  766.  
  767.   Foi criado o script /etc/rc.d/rc.keyboard, contendo o seguinte:
  768.  
  769.       #!/bin/sh
  770.       #
  771.       # /etc/rc.d/rc.keyboard
  772.       #
  773.       # Seleciona um dos mapas de teclado disponφveis no diret≤rio
  774.       # /usr/lib/kbd/keytables
  775.       #
  776.       loadkeys abnt2
  777.  
  778.  
  779.   e acrescentei as seguintes linhas ao /etc/rc.d/rc.S, imediatamente
  780.   antes do tratamento do /etc/rc.d/rc.keyboard:
  781.  
  782.       # Carrega uma fonte de caracteres se existe um script rc.font.
  783.       if [ -x /etc/rc.d/rc.font ]; then
  784.         /etc/rc.d/rc.font start
  785.       fi
  786.  
  787.       # Carrega um mapa de teclado se existe um script rc.keyboard.
  788.       if [ -x /etc/rc.d/rc.keyboard ]; then
  789.         /etc/rc.d/rc.keyboard start
  790.       fi
  791.  
  792.  
  793.   3.5.2.  Debian.
  794.  
  795.   Certifique-se de ter instalado o pacote kbd e depois faτa o seguinte:
  796.  
  797.   ╖  copie os arquivos com os mapas de teclado fornecidos (veja a seτπo
  798.      ``Ficheiros necessßrios'') para o diret≤rio /usr/share/keytables/.
  799.      Nπo Θ necessßrio descomprimi-los;
  800.  
  801.   ╖  copie o mapa correspondente ao seu teclado para o arquivo
  802.      /etc/kbd/default.map.gz.
  803.  
  804.   ╖  rode o script /etc/init.d/keymaps.sh.
  805.  
  806.  
  807.   3.5.3.  Red Hat.
  808.  
  809.   Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os
  810.   mapas de teclado fornecidos (veja a seτπo ``Ficheiros necessßrios'')
  811.   para o diret≤rio /usr/lib/kbd/keytables/ (ou
  812.   /usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2). Nπo Θ
  813.   necessßrio descomprimi-los.
  814.  
  815.   Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a
  816.   usar na varißvel KEYTABLE, como por exemplo
  817.  
  818.       KEYTABLE="abnt2"
  819.  
  820.  
  821.  
  822.  
  823.   3.5.4.  Conectiva Red Hat Linux.
  824.  
  825.   O CRHL jß vem com os mapas de teclado para PortuguΩs. Se vocΩ
  826.   selecionou o teclado correto durante a instalaτπo, nπo hß mais nada a
  827.   fazer. Caso contrßrio, edite o arquivo /etc/sysconfig/keyboard e
  828.   coloque
  829.  
  830.       KEYTABLE="nome"
  831.  
  832.  
  833.   Onde ``nome'' Θ br-abnt2, pt ou us-acentos caso o desenho do seu
  834.   teclado seja ABNT-2, portuguΩs ou americano.
  835.  
  836.  
  837.  
  838.   3.5.5.  S.u.S.E..
  839.  
  840.   Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os
  841.   mapas de teclado fornecidos (veja a seτπo ``Ficheiros necessßrios'')
  842.   para o diret≤rio /usr/lib/kbd/keytables/. Nπo Θ necessßrio
  843.   descomprimi-los.
  844.  
  845.   Descomprima o mapa de teclado adequado, copiando para o arquivo
  846.   /etc/default.keytab, usando por exemplo um comando como
  847.  
  848.       zcat /usr/lib/kbd/keytables/pt.map.gz > /etc/default.keytab
  849.  
  850.  
  851.  
  852.  
  853.   3.5.6.  Testando o teclado
  854.  
  855.   Experimente pressionar a tecla c-cedilhado (se o teclado nπo tem esta
  856.   tecla, digite 'c). Verifique se todas as letras acentuadas, mai·sculas
  857.   e min·sculas sπo geradas corretamente e aparecem na tela. Se aparecer
  858.   algum caracter estranho verifique se carregou o mapa de teclado e a
  859.   fonte de caracteres corretos, pois provavelmente uma dessas operaτ⌡es
  860.   foi mal sucedida.
  861.  
  862.   Se ao invΘs de c-cedilha min·sculo aparecer um mai·sculo Θ provßvel
  863.   que uma tabela de mapeamento Unicode incorreta esteja a ser carregada.
  864.   Este problema ocorrerß na distribuiτπo S.u.S.E. se nπo se fizerem as
  865.   alteraτ⌡es nos scripts do sistema mencionadas anteriormente.
  866.  
  867.   3.6.  Verificando erros
  868.  
  869.   Mas, e se alguns dos caracteres continuarem a nπo aparecer? Bem, antes
  870.   de mais nada verifique se a fonte e o mapa de teclado adequados foram
  871.   carregados. Um caso especial Θ quando queremos usar uma fonte que nπo
  872.   segue a codificaτπo ISO Latin-1 (Θ o caso da fonte padrπo do console
  873.   do PC). Terφamos entπo de convencer a tela a mostrar os caracteres
  874.   certos em cada caso.
  875.  
  876.   Poderφamos recorrer ao comando mapscrn.  O arquivo com a tabela de
  877.   traduτπo teria no entanto de ser criado por n≤s, seguindo um processo
  878.   moroso de tentativa e erro atΘ encontrar o caracter cuja imagem
  879.   desejßvamos. Ou, de uma forma mais fßcil, poderφamos usar o comando
  880.   showfont.
  881.  
  882.   Se usarmos a fonte de caracteres correta, o uso deste ·ltimo comando
  883.   serß desnecessßrio. ╔ atΘ recomendßvel que nπo se use tal recurso,
  884.   pois embora ele permita criar uma tabela de caracteres
  885.   ``personalizada'' em um computador, serß difφcil que um documento
  886.   acentuado produzido nessa mßquina possa ser lido em outra que nπo
  887.   tenha a mesma configuraτπo.
  888.  
  889.  
  890.   4.  Biblioteca de funτ⌡es libc e aplicativos GNU
  891.  
  892.   A biblioteca padrπo de funτ⌡es do Linux suporta Internacionalizaτπo e
  893.   Localizaτπo segundo o padrπo POSIX (Portable Operating System
  894.   Interface).  Trata-se de uma norma estabelecida pelo IEEE (Institute
  895.   of Electrical and Electronics Engineers) para intercomunicaτπo entre
  896.   diferentes sistemas operativos. Existe tambΘm um padrπo estabelecido
  897.   pelo ANSI (American National Standards Institute) para a linguagem de
  898.   programaτπo C que permite escrever programas com suporte
  899.   internacional.
  900.  
  901.  
  902.   4.1.  Configurando o suporte internacional
  903.  
  904.   Resumidamente, podemos dizer que as funτ⌡es que tratam informaτ⌡es
  905.   dependentes da lφngua ou do paφs podem ter seu comportamento
  906.   modificado, bastando para tanto estabelecer algumas varißveis de
  907.   ambiente. E que funτ⌡es sπo essas?  Podemos citar as de formataτπo de
  908.   datas, valores monetßrios e mensagens de erro do sistema. Se vocΩ nπo
  909.   sabe o que Θ uma varißvel de ambiente, sugiro que leia o manual com o
  910.   comando
  911.  
  912.       man environ
  913.  
  914.  
  915.  
  916.   O padrπo POSIX permite usar diversas varißveis de configuraτπo, cada
  917.   uma delas definindo o tratamento dado a um tipo de informaτπo, a saber
  918.  
  919.      LC_COLLATE
  920.         Define regras para comparaτπo entre caracteres no alfabeto
  921.         local. Por exemplo, a letra `π' deve ser tratada como idΩntica
  922.         ao `a' no PortuguΩs quando ordenamos alfabeticamente.
  923.  
  924.  
  925.      LC_CTYPE
  926.         Define regras para comparaτπo entre caracteres mai·sculos e
  927.         min·sculos. Se estivermos trabalhando com o c≤digo ASCII,
  928.         sabemos que o c≤digo numΘrico de uma letra min·scula Θ 32 a mais
  929.         do que a mai·scula correspondente, mas para uma letra acentuada
  930.         esta regra nπo Θ vßlida!
  931.  
  932.  
  933.      LC_MONETARY
  934.         Muda o comportamento das funτ⌡es de formataτπo de valores
  935.         monetßrios e permite descobrir, por exemplo, o sφmbolo da moeda
  936.         local, ou se usa ponto ou vφrgula como separador de milhares e
  937.         de casas decimais.
  938.  
  939.  
  940.      LC_MESSAGES
  941.         Estabelece a lφngua em que as mensagens serπo apresentadas e
  942.         como Θ uma resposta afirmativa ou negativa (S/N).
  943.  
  944.  
  945.      LC_NUMERIC
  946.         Estabelece o comportamento das funτ⌡es de leitura/escrita de
  947.         valores numΘricos permitindo, por exemplo que usemos a vφrgula
  948.         decimal.
  949.  
  950.  
  951.      LC_TIME
  952.         Define a formataτπo de datas e horas.
  953.  
  954.  
  955.      LC_ALL
  956.         Define de uma s≤ vez todas as categorias. Se usarmos LC_ALL, nπo
  957.         precisaremos definir nenhuma das outras, a nπo ser que queiramos
  958.         um comportamento diferente para aquele φtem especφfico.
  959.  
  960.  
  961.      LANG
  962.         Define de uma s≤ vez todas as categorias, se LC_ALL nπo estiver
  963.         definida.  TambΘm Θ usada pelo comando man para compor os
  964.         caminhos pelos quais ele procurarß as pßginas do manual. Veja as
  965.         observaτ⌡es a respeito desta varißvel nas seτ⌡es ``Locale'',
  966.         ``Locale'' e ``Locale''.
  967.  
  968.   Maiores informaτ⌡es podem ser obtidas no manual do sistema com o
  969.   comando
  970.  
  971.       man 7 locale
  972.  
  973.  
  974.   O `7' no comando anterior Θ necessßrio para evitar confusπo com uma
  975.   funτπo hom⌠nima da linguagem Perl. Note que as configuraτ⌡es acima
  976.   afetam, em princφpio, apenas as funτ⌡es disponφveis na biblioteca de
  977.   funτ⌡es da linguagem C. Na prßtica, todos os programas que rodam em
  978.   Linux usam aquela biblioteca, mas o sistema operativo nπo provΩ,
  979.   catßlogos de mensagens em diversas lφnguas para todos os programas.
  980.  
  981.   A identificaτπo da lφngua e do local Θ feita por dois c≤digos de duas
  982.   letras, separados por um sinal ``_''. Se omitirmos o c≤digo de paφs,
  983.   assume-se o paφs padrπo para a lφngua informada, mas deve haver um
  984.   catßlogo correspondente.  Deste modo, o c≤digo ``pt_PT'' significa
  985.   PortuguΩs de Portugal, enquanto ``pt_BR'' significa PortuguΩs do
  986.   Brasil. Escolher uma combinaτπo lφngua/local basta entπo colocar em
  987.   seu arquivo /etc/profile uma linha contendo
  988.  
  989.  
  990.  
  991.       LC_ALL="pt_PT"
  992.       export LC_ALL
  993.  
  994.  
  995.   Usußrios brasileiros devem usar ``pt_BR'' ao invΘs de ``pt_PT''. Teste
  996.   o resultado com os comandos a seguir (/inexistente Θ o nome de um
  997.   arquivo que nπo existe):
  998.  
  999.       echo ┴╔═╙┌ | tr '[:upper:]' '[:lower:]'
  1000.       tar tf /inexistente
  1001.       ls -l /
  1002.       date
  1003.       cal 1 1999
  1004.  
  1005.  
  1006.   O resultado do primeiro deverß ser ``ßΘφ≤·''. Os comandos tar e ls
  1007.   devem retornar mensagens em PortuguΩs e cal deve mostrar um calendßrio
  1008.   de janeiro de 1999, com do se te qu qu se sß no cabeτalho dos dias da
  1009.   semana.
  1010.  
  1011.   Na distribuiτπo Debian, certifique-se de ter instalado o pacote
  1012.   ``locales'', que pertence ao grupo ``admin''. O nome do arquivo que
  1013.   contΘm o pacote (na versπo 2.0 da distribuiτπo) Θ locales_2.0.7t-1.deb
  1014.   e em meu CD estß no diret≤rio debian/main/binary-i386/admin.
  1015.  
  1016.   4.2.  Problemas com a libc 5
  1017.  
  1018.   AtΘ meados de 1997 todas as distribuiτ⌡es de Linux usavam a mesma
  1019.   biblioteca libc, que estava na versπo 5, desenvolvida a partir de uma
  1020.   versπo mais antiga da libc do projeto GNU. Esta biblioteca possuia
  1021.   suporte muito limitado α internacionalizaτπo e normalmente nenhum dos
  1022.   catßlogos de locais era incluφdo na distribuiτπo, ficando o inglΩs
  1023.   como lφngua padrπo.
  1024.  
  1025.   A versπo 6 da libc do Linux baseia-se na versπo 2 da libc do projeto
  1026.   GNU. O suporte α internacionalizaτπo foi muito melhorado, alΘm de
  1027.   incluir outros atributos que nπo interessam para os fins deste HOWTO.
  1028.   Se sua distribuiτπo for a Debian versπo 2, Red Hat versπo 5 ou
  1029.   qualquer outra que use a nova libc, entπo nπo hß mais nada a fazer
  1030.   alΘm do descrito na seτπo anterior.
  1031.  
  1032.   Mas se vocΩ usa uma distribuiτπo ainda baseada na libc 5 (Slackware,
  1033.   Caldera 1.x ou uma versπo mais antiga de Debian ou Red Hat) Θ preciso
  1034.   instalar a coleτπo de locais. Nπo tente copiar a coleτπo de uma
  1035.   distribuiτπo mais recente, pois os formatos dos arquivos sπo
  1036.   incompatφveis. Pegue na pßgina do Portuguese HOWTO o arquivo locales-
  1037.   pt.tgz. Para instalß-lo na distribuiτπo Slackware, basta (como usußrio
  1038.   root) usar o comando
  1039.  
  1040.       installpkg locales-pt.tgz
  1041.  
  1042.  
  1043.   e para outras distribuiτ⌡es use o comando
  1044.  
  1045.       tar xzf locales-pt.tgz -C /
  1046.  
  1047.  
  1048.  
  1049.   Verifique se hß dois subdiret≤rios do /usr/share/locale chamados pt_BR
  1050.   e pt_PT. Basta entπo configurar a varißvel de ambiente LC_ALL, como jß
  1051.   descrito.
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   5.  Configuraτπo do X
  1058.  
  1059.   Quando o servidor X estß ativo, ele coloca o teclado do computador em
  1060.   um modo de operaτπo chamado raw (cru), em oposiτπo ao modo normal,
  1061.   chamado cooked (isto mesmo: cozido). No modo raw o sistema operativo
  1062.   nπo processa seqⁿΩncias acento-letra. O servidor X Θ uma daquelas
  1063.   raras aplicaτ⌡es que, por dever de ofφcio, tem que tratar o teclado
  1064.   ``em baixo nφvel''.
  1065.  
  1066.   O X vem equipado com um utilitßrio destinado α configuraτπo do
  1067.   teclado, chamado xmodmap, que cumpre uma funτπo correspondente α do
  1068.   comando loadkeys, ou seja, lΩ um arquivo de mapa de teclado do X,
  1069.   expecificando as equivalΩncias entre os keycodes e respectivos
  1070.   keysymbols.
  1071.  
  1072.   Eis um excerto deste arquivo:
  1073.  
  1074.       keycode 47 = ccedilla Ccedilla dead_acute dead_doubleacute
  1075.       keycode 48 = masculine ordfeminine dead_circumflex dead_caron
  1076.       keycode 49 = backslash bar notsign
  1077.       keycode 50 = Shift_L
  1078.       keycode 51 = dead_tilde dead_circumflex dead_grave dead_breve
  1079.  
  1080.  
  1081.   Observem que, ao contrßrio do loadkeys, o xmodmap nπo possui um
  1082.   diret≤rio padrπo onde o arquivo Θ procurado.
  1083.  
  1084.   A configuraτπo do X nπo interfere de forma alguma com a configuraτπo
  1085.   do modo de texto.  De facto, Θ possφvel ter o seu X bem configurado, e
  1086.   no entanto nπo ter realizado qualquer tipo de configuraτπo ao modo de
  1087.   texto, e vice-versa.  Outro ponto importante de se observar Θ que os
  1088.   c≤digos numΘricos das teclas no X nπo correspondem aos do console. A
  1089.   tecla Backspace, por exemplo, tem o n·mero 14 no console, e 22 no X
  1090.   (em um computador do tipo IBM-PC).
  1091.  
  1092.   As vers⌡es 3.2 e posteriores do XFree86 permitam definir dead-keys,
  1093.   mas o seu tratamento Θ responsabilidade da aplicaτπo, conforme visto
  1094.   na seτπo ``Modo texto versus Sistema de Janelas X''. Hß modos de
  1095.   contornar esta limitaτπo e tornar o tratamento de dead-keys
  1096.   transparente αs aplicaτ⌡es, conforme mostrado na seτπo ``Contornando
  1097.   os limites do X''.
  1098.  
  1099.   Dividimos a configuraτπo em duas partes: Uma que deve ser feita antes
  1100.   do login do usußrio e outra depois.
  1101.  
  1102.  
  1103.   5.1.  Configuraτπo do xinit
  1104.  
  1105.   Junto com este documento sπo fornecidos vßrios mapas de teclado para
  1106.   uso no X. Para automatizar o processo de configuraτπo do teclado basta
  1107.   copiar o arquivo adequado para o diret≤rio /usr/X11R6/lib/X11/xinit,
  1108.   onde normalmente ficam os arquivos de inφcio da seτπo de trabalho no
  1109.   X. Na distribuiτπo Slackware esse diret≤rio Θ um link simb≤lico para
  1110.   /var/X11R6/lib/xinit e na Debian e na Red Hat para /etc/X11/xinit.
  1111.  
  1112.   Nas distribuiτ⌡es Slackware e Red Hat, verifique se no referido
  1113.   diret≤rio existe um arquivo chamado .Xmodmap. Se existir, copie o
  1114.   Xmodmap.<alguma-coisa>  para ele, ou faτa um link.  Normalmente o
  1115.   arquivo de configuraτπo xinitrc possui os comandos para carregß-lo
  1116.   automaticamente. Veja o seguinte trecho:
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.       #!/bin/sh
  1124.       # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
  1125.  
  1126.       userresources=$HOME/.Xresources
  1127.       usermodmap=$HOME/.Xmodmap
  1128.       sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
  1129.       sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
  1130.  
  1131.       # merge in defaults and keymaps
  1132.  
  1133.       if [ -f $sysresources ]; then
  1134.           xrdb -merge $sysresources
  1135.       fi
  1136.  
  1137.       if [ -f $sysmodmap ]; then
  1138.           xmodmap $sysmodmap
  1139.       fi
  1140.  
  1141.  
  1142.  
  1143.   Na distribuiτπo Debian o mapa de teclado padrπo do X Θ
  1144.   /etc/X11/Xmodmap, basta copiar o mapa desejado para aquele arquivo.
  1145.   Ele serß carregado pelo xinitrc, que por sua vez Θ um link simb≤lico
  1146.   para /etc/X11/Xsession, sempre que iniciar a seτπo de trabalho do
  1147.   usußrio.
  1148.  
  1149.  
  1150.   5.2.  Configuraτπo do XDM
  1151.  
  1152.   Existe ainda um pequeno problema: no meu computador, por exemplo, o
  1153.   sistema carrega diretamente o X ao dar boot e o login Θ feito pelo X
  1154.   Display Manager (xdm). Como o xdm faz o login antes de iniciar a seτπo
  1155.   de trabalho, o mapa de teclado nπo serß carregado, o que pode criar
  1156.   problemas se o usußrio usa caracteres como ``['' ou ``]'' em sua
  1157.   senha, pois nos teclados ABNT-2 e portuguΩs esses sφmbolos sπo gerados
  1158.   por teclas cujos c≤digos numΘricos nπo sπo os mesmos do teclado
  1159.   americano.
  1160.  
  1161.   ╔ preciso fazer uma pequena alteraτπo no arquivo de configuraτπo
  1162.   Xsetup_0.  Esse arquivo deve estar no diret≤rio
  1163.   /usr/X11R6/lib/X11/xdm, que na Slackware Θ um link simb≤lico para
  1164.   /var/X11R6/lib/xdm e /etc/X11/xdm na Debian e -- sujeito a confirmaτπo
  1165.   -- RedHat. Eis o conte·do completo desse arquivo:
  1166.  
  1167.       #!/bin/sh
  1168.       #
  1169.       # /usr/X11R6/lib/X11/xdm/Xsetup_0
  1170.       #
  1171.  
  1172.       sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
  1173.       sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
  1174.  
  1175.       # merge in defaults and keymaps
  1176.  
  1177.       if [ -r $sysresources ]; then
  1178.           xrdb -merge $sysresources
  1179.       fi
  1180.  
  1181.       if [ -r $sysmodmap ]; then
  1182.           xmodmap $sysmodmap
  1183.       fi
  1184.  
  1185.       xconsole -geometry 480x130-0-0 -daemon -notify -verbose -exitOnFail
  1186.  
  1187.  
  1188.  
  1189.   A distribuiτπo Debian tem um Xsetup_0 um pouco diferente, em
  1190.   /etc/X11/xdm/Xsetup_0, mas basta acrescentar-lhe o seguinte:
  1191.  
  1192.  
  1193.       sysmodmap=/etc/X11/Xmodmap
  1194.       sysresources=/etc/X11/Xresources
  1195.  
  1196.       if [ -f $sysresources ]; then
  1197.         xrdb -merge $sysresources
  1198.       fi
  1199.  
  1200.       if [ -f $sysmodmap ]; then
  1201.         xmodmap $sysmodmap
  1202.       fi
  1203.  
  1204.  
  1205.  
  1206.   Se no seu computador o login do usußrio tambΘm for feito sempre via
  1207.   xdm, nπo Θ necessßrio mexer no xinitrc, como mostrado na seτπo
  1208.   anterior, jß que o mapa de teclado serß carregado antes do inφcio na
  1209.   seτπo do usußrio.
  1210.  
  1211.  
  1212.   5.3.  Compose
  1213.  
  1214.   Uma das coisas mais importantes a definir quando vamos utilizar
  1215.   acentuaτπo por meio de dead-keys Θ o conjunto de regras de composiτπo.
  1216.   Essas regras determinam, por exemplo que a composiτπo do caracter
  1217.   ' com a letra e gerarß um Θ.
  1218.  
  1219.   Ao contrßrio do console, no qual podemos definir as regras de
  1220.   composiτπo no pr≤prio mapa de teclado, no X essas regras sπo colocadas
  1221.   no arquivo /usr/X11R6/lib/X11/locale/???/Compose, onde ??? Θ a
  1222.   codificaτπo em uso (no nosso caso, iso8859-1).
  1223.  
  1224.   Para facilitar o uso dos mapas para teclados que nπo tΩm o c-
  1225.   cedilhado, como o US+ (veja adiante) Θ conveniente definirmos uma nova
  1226.   regra de composiτπo, permitindo que o ╟ seja gerado pela seqⁿΩncia 'C.
  1227.   Se nπo fizermos isso, seremos obrigados a digitar <dead_cedilla-C>,
  1228.   sedo o dead_cedilla produzido pela combinaτπo AltGR-=, o que nπo Θ
  1229.   nada confortßvel. AlΘm disso, no teclado americano somos obrigados a
  1230.   usar as aspas duplas para gerar o trema.
  1231.  
  1232.   O arquivo Compose fornecido foi feito procurando imitar ao mßximo o
  1233.   comportamento do console e possui as seguintes facilidades para
  1234.   geraτπo de caracteres:
  1235.  
  1236.   ╖  C-cedilha: tecla ╟ ou seqⁿΩncia <acento-agudo>-C
  1237.  
  1238.   ╖  Ap≤strofo: tecla ' ou seqⁿΩncias <acento-agudo>-<acento-agudo> e
  1239.      <acento-agudo>-<espaτo>
  1240.  
  1241.   ╖  Acento grave: seqⁿΩncias <acento-grave>-<acento-grave> e <acento-
  1242.      grave>-<espaτo>
  1243.  
  1244.   ╖  Aspas: tecla " ou seqⁿΩncia <trema>-<trema>
  1245.  
  1246.   ╖  Trema: seqⁿΩncia <trema>-<espaτo>
  1247.  
  1248.   ╖  Til: seqⁿΩncias <til>-<espaτo> e <til>-<til>
  1249.  
  1250.   ╖  Circumflexo: seqⁿΩncias <circumflexo>-<espaτo> e
  1251.      <circumflexo>-<circumflexo>
  1252.  
  1253.   Para incluirmos as novas regras, basta aplicar uma alteraτπo α
  1254.   definiτπo original. O arquivo Compose.patch pode ser obtido via WWW na
  1255.   pßgina do Portuguese HOWTO. Para aplicar a atualizaτπo, copie-o para o
  1256.   diret≤rio /usr/X11R6/lib/X11/locale/iso8859-1/, faτa uma c≤pia de
  1257.   reserva do Compose original e invoque o utilitßrio patch:
  1258.  
  1259.       cp -p Compose Compose.backup
  1260.       patch < Compose.patch
  1261.  
  1262.  
  1263.  
  1264.   Caso vocΩ prefira nπo aplicar o ``patch'', um arquivo Compose pronto
  1265.   tambΘm Θ fornecido. Lembre-se de fazer c≤pia do original antes de
  1266.   substituφ-lo!
  1267.  
  1268.   5.4.  Locale
  1269.  
  1270.   Para os usußrios brasileiros, pode haver mais uma alteraτπo a fazer no
  1271.   X.  Conforme vimos na seτπo ``Biblioteca libc'', uma varißvel de
  1272.   ambiente (LANG ou LC_ALL) configura o suporte internacional existente
  1273.   na biblioteca de funτ⌡es padrπo do sistema (libc). A biblioteca de
  1274.   funτ⌡es do X (Xlib) usa a varißvel LANG para identificar a lφngua em
  1275.   uso mas atΘ a revisπo 6.3, na qual Θ baseado o XFree86, nπo era
  1276.   incluφda a combinaτπo ``pt_BR'', correspondente a PortuguΩs/Brasil.
  1277.   Como resultado, cada vez que executarmos um aplicativo X com LC_ALL
  1278.   definido como ``pt_BR'' ele emitirß a mensagem ``Warning: locale not
  1279.   supported by Xlib, locale set to C''.
  1280.  
  1281.   Para incluir o local pt_BR no X11R6.3 basta alterar trΩs arquivos
  1282.   existentes no diret≤rio /usr/X11R6/lib/X11/locale. Pegue o arquivo
  1283.   Xlocale.patch via WWW na pßgina do Portuguese HOWTO. Para aplicar a
  1284.   atualizaτπo, copie-o para o diret≤rio /usr/X11R6/lib/X11/locale, faτa
  1285.   uma c≤pia de reserva dos arquivos a serem alterados e invoque o
  1286.   utilitßrio patch:
  1287.  
  1288.       cp -p compose.dir compose.dir.backup
  1289.       cp -p locale.alias locale.alias.backup
  1290.       cp -p locale.dir locale.dir.backup
  1291.       patch < Xlocale.patch
  1292.  
  1293.  
  1294.  
  1295.   Caso vocΩ prefira nπo aplicar o ``patch'', arquivos prontos tambΘm sπo
  1296.   fornecidos. Lembre-se de fazer c≤pias dos originais antes de
  1297.   substituφ-los!
  1298.  
  1299.   Em setembro de 1998 o fix-2 da revisπo 6.4 do X Window System incluiu
  1300.   oficialmente o suporte ao local pt_BR. Infelizmente neste mesmo fix-2
  1301.   foi introduzida uma falha em uma das funτ⌡es de tratamento de input
  1302.   contexts da Xlib que provoca violaτ⌡es de acesso α mem≤ria. Uma das
  1303.   aplicaτ⌡es afetadas Θ o processador de textos LyX. Uma correτπo
  1304.   provavelmente serß incluφda no fix-4. O X11R6.4 deverß ser a base para
  1305.   a versπo 4 do XFree86.
  1306.  
  1307.  
  1308.   5.5.  Geraτπo de mapas com o XKeyCaps
  1309.  
  1310.   O programa XKeyCaps, criado por Jamie Zawinski Θ uma interface grßfica
  1311.   para o xmodmap, que mostra na tela o desenho de um teclado e permite
  1312.   modificar interativamente os sφmbolos gerados por cada tecla e gerar
  1313.   automaticamente o arquivo .Xmodmap correspondente.
  1314.  
  1315.   Ele pode ser obtido via WWW em  <http://www.jwz.org/xkeycaps/> e, a
  1316.   partir da versπo 2.43, jß incoropra tambΘm suporte para o desenho
  1317.   brasileiro (ABNT2), uma contribuiτπo de Andre Gerhard.
  1318.  
  1319.  
  1320.  
  1321.   5.6.  Contornando os limites do X
  1322.  
  1323.   Conforme foi explicado na seτπo ``Modo texto versus Sistema de Janelas
  1324.   X'', o tratamento de acentos deve ser feito pela aplicaτπo, mas ainda
  1325.   hß muitos programas que nπo levam isto em consideraτπo, tais como
  1326.   Netscape Navigator/Communicator e Nedit. Como nπo Θ possφvel modificar
  1327.   muitos deles, Θ preciso encontrar outro tipo de soluτπo.
  1328.  
  1329.  
  1330.   5.6.1.  Alteraτπo da biblioteca Xlib
  1331.  
  1332.   Linux, assim como a maioria dos sistemas operacionais modernos, usa um
  1333.   sistema de vφnculo de programas a bibliotecas de funτ⌡es chamado
  1334.   ``ligaτπo dinΓmica'' (dynamic binding). Deste modo, podemos modificar
  1335.   o comportamento de um programa alterando uma dessas bibliotecas.
  1336.   Maiores informaτ⌡es sobre este tema pode ser obtida nos manuais do
  1337.   Linux com os comandos
  1338.  
  1339.       man ld.so
  1340.       man ldconfig
  1341.       man ldd
  1342.       man dlopen
  1343.  
  1344.  
  1345.   Thomas Quinot criou uma alteraτπo para a biblioteca de funτ⌡es do X
  1346.   (Xlib) introduzindo o tratamento de acentos na funτπo XLookupString,
  1347.   Tudo que se tem a fazer Θ substituir o arquivo contendo esta bib¡
  1348.   lioteca por outro, que pode ser obtido via internet no endereτo
  1349.  
  1350.  
  1351.        <http://web.fdn.fr/~tquinot/dead-keys.en.html>
  1352.  
  1353.  
  1354.   Existem duas vers⌡es do arquivo, uma para sistemas onde as bibliotecas
  1355.   do X suportam o uso seguro de threads (Debian 2.x, Red Hat 5.x, etc.)
  1356.   e outra para os sistemas que nπo possuem tal atributo (Slackware,
  1357.   Caldera 1.x). Se vocΩ nπo sabe o que sπo threads nπo se preocupe com
  1358.   isso, mas saiba que eles permitem criar um programa capaz de se
  1359.   dividir em sub-processos que rodam concorrentemente em um computador.
  1360.   Para analisar sua Xlib rode o seguinte comando:
  1361.  
  1362.  
  1363.        nm --dynamic /usr/X11R6/lib/libXext.so.6|grep _Xglobal_lock
  1364.  
  1365.  
  1366.   Se aparecer ``U _Xglobal_lock'' seu sistema suporta threads e o
  1367.   arquivo a obter Θ libX11-XF3.3.1-TS.tar.gz. Se nπo aparecer, seu
  1368.   sistema nπo suporta threads e o arquivo a obter Θ
  1369.   libX11-XF3.3.1.tar.gz. Tendo obtido o arquivo, copie-o para um
  1370.   diret≤rio temporßrio e extraia seu conte·do.  Mova o arquivo
  1371.   /usr/X11R6/libX11.so.6.1 para outro diret≤rio, para preservß-lo. Nπo Θ
  1372.   suficiente renomeß-lo! Remova-o para um diret≤rio cujo nome nπo esteja
  1373.   contido no arquivo /etc/ld.so.conf. Depois, mova o novo arquivo para o
  1374.   lugar do antigo e rode o programa ldconfig (isto deve ser feito pelo
  1375.   usußrio root):
  1376.  
  1377.       cp libX11-XF3.3.1-TS.tar.gz /tmp
  1378.       cd /tmp
  1379.       tar xzf libX11-XF3.3.1-TS.tar.gz
  1380.       mkdir /usr/X11R6/oldlib
  1381.       mv /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/oldlib
  1382.       mv libX11.so.6.1 /usr/X11R6/lib
  1383.       chown root:root /usr/X11R6/lib/libX11.so.6.1
  1384.       chmod 755 /usr/X11R6/lib/libX11.so.6.1
  1385.       /sbin/ldconfig
  1386.  
  1387.   ╔ aconselhßvel que a operaτπo seja realizada quando nenhuma aplicaτπo
  1388.   X estiver rodando. A seguir, edite o arquivo de configuraτπo do
  1389.   servidor X, chamado XF86Config. Este arquivo fica no diret≤rio /etc
  1390.   (Slackware) ou /etc/X11 (Debian, Red Hat). Procure a seτπo
  1391.   ``Keyboard'' e inclua a opτπo ``XkbDisable'', conforme mostrado a
  1392.   seguir:
  1393.  
  1394.       Section "Keyboard"
  1395.          Protocol        "Standard"
  1396.          XkbDisable
  1397.       EndSection
  1398.  
  1399.  
  1400.  
  1401.   A opτπo XkbDisable inabilita a extensπo XKEYBOARD do servidor X, o que
  1402.   neste caso serve para sinalizar α funτπo XLookupString que ela deve
  1403.   tratar os acentos. Se quisermos voltar ao comportamento normal, basta
  1404.   retirar a opτπo do XF86Config.
  1405.  
  1406.   Configure o mapa de teclado do X conforme explicado nas seτ⌡es
  1407.   anteriores deste documento. Para testar o resultado, rode o programa
  1408.   xedit e digite alguns caracteres acentuados.
  1409.  
  1410.  
  1411.   5.6.2.  Alteraτπo no kernel do Linux
  1412.  
  1413.  
  1414.        Esta seτπo Θ baseada em contribuiτπo enviada por Bruno Bar¡
  1415.        beri Gnecco e na documentaτπo do diacrd. Podem haver ainda
  1416.        alguns erros e se alguΘm os detectar, por favor avise-me.
  1417.  
  1418.  
  1419.   Seguindo a regra geral do mundo *nix, existe sempre mais de um modo se
  1420.   resolver o mesmo problema. Conforme vimos anteriormente, existem dois
  1421.   modos de operaτπo do teclado, chamados raw e cooked. Estes modos de
  1422.   operaτπo podem ser mudados com o programa kbd_mode, integrante do
  1423.   pacote kbd, o que nπo Θ recomendßvel fazer a nπo ser para restaurar o
  1424.   estado do console ap≤s um desastre com o servidor X, por exemplo. No
  1425.   modo raw o kernel nπo processa os diacrφticos (acentos).
  1426.  
  1427.   Cedric Adjih criou uma alteraτπo para o kernel que permitia tratar os
  1428.   acentos mesmo em modo raw, inicialmente voltada para o teclado de
  1429.   desenho francΩs.  EnΘas Queiroz, AndrΘ D. Balsa e Claudemir Todo Bom
  1430.   fizeram melhorias e o adaptaram para os teclados internacional,
  1431.   portuguΩs e ABNT. O tratemanto de acentos Θ feito parte pelo kernel,
  1432.   parte por um processo que roda em retaguarda (daemon) chamado diacrd,
  1433.   conforme descrito a seguir:
  1434.  
  1435.   ╖  Uma modificaτπo no kernel faz que todos os dados lidos do teclado
  1436.      sejam redirecionados para um dispositivo especial do sistema
  1437.      chamado /dev/rawkbd quando o teclado estiver em modo raw.
  1438.  
  1439.   ╖  Os dados que o kernel grava no /dev/rawkbd sπo lidos pelo programa
  1440.      diacrd, que processa as seqⁿΩncias acento-letra e reescreve no
  1441.      /dev/rawkbd os caracteres acentuados na forma de c≤digos de
  1442.      varredura (scancodes) que normalmente nπo existem no teclado.
  1443.  
  1444.   ╖  O kernel lΩ no /dev/rawkbd os c≤digos gravados pelo diacrd e os
  1445.      passa α aplicaτπo, que no caso Θ o servidor X.
  1446.  
  1447.   ╖  O servidor X mapeia os c≤digos de varredura para caracteres. Um
  1448.      mapa de teclado especial permite entπo gerar as letras acentuadas.
  1449.  
  1450.   O diacrd pode ser obtido via FTP an⌠nimo no endereτo
  1451.  
  1452.  
  1453.   <ftp://metalab.unc.edu/pub/Linux/system/keyboards>
  1454.  
  1455.  
  1456.   Hß vers⌡es diferentes, de acordo com o tipo de teclado e, pelo menos
  1457.   por enquanto, nπo se pode reconfigurß-lo sem recompilar. Para fazer a
  1458.   instalaτπo, de acordo com o arquivo ``README'', deve-se fazer o
  1459.   seguinte (pelo usußrio root):
  1460.  
  1461.   ╖  Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia
  1462.      seu conte·do, o que deverß criar um diret≤rio chamado
  1463.      diacrd-<versπo>.
  1464.  
  1465.   ╖  Edite o arquivo diacrd.c e remova os comentßrios desejados, de
  1466.      acordo com suas preferΩncias. Pode-se incluir capacidade de rodar o
  1467.      programa xmodmap e ejetar o CD-ROM sob controle do pressionamento
  1468.      de uma combinaτπo de teclas.
  1469.  
  1470.   ╖  Aplique a modificaτπo no kernel. Para isto, execute o comando
  1471.      ``make patch-usr-src''.
  1472.  
  1473.   ╖  Crie o dispositivo /dev/rawkbd executando o comando
  1474.      ``make rawkbd''.
  1475.  
  1476.   ╖  Compile o diacrd e instale-o executando os comandos ``make'' e
  1477.      ``make install''.
  1478.  
  1479.   ╖  Compile e instale o kernel, com os comandos
  1480.  
  1481.          cd /usr/src/linux
  1482.          make config
  1483.          make zlilo
  1484.  
  1485.  
  1486.   Para maiores informaτ⌡es sobre compilaτπo/instalaτπo do kernel, leia o
  1487.   Kernel-HOWTO, disponφvel via Internet nos reposit≤rios do LDP men¡
  1488.   cionados na seτπo ``Onde encontrar a versπo mais atual''.
  1489.  
  1490.   ╖  DΩ um ``reboot'' no computador. Verifique se o suporte ao
  1491.      dispositivo rawkbd foi instalado com sucesso com o comando
  1492.  
  1493.          dmesg | grep RAWKBD
  1494.  
  1495.  
  1496.   Deve aparecer
  1497.  
  1498.       RAWKBD interface for diacriticals translation enabled...
  1499.  
  1500.  
  1501.   e teste o dispositivo /dev/rawkbd com o comando
  1502.  
  1503.       printf "### TESTANDO ###" >> /dev/rawkbd
  1504.  
  1505.  
  1506.   Veja na seτπo ``Configuraτπo do console'' como carregar um mapa com
  1507.   suporte α acentuaτπo. O pacote diacrd vem com um arquivo chamada
  1508.   usintl.map, que corresponde ao nosso us+.map. Se seu teclado nπo for
  1509.   do tipo americano, use o pt.map ou abnt-2.map.
  1510.  
  1511.   ╖  Substitua o arquivo /usr/X11R6/lib/X11/xkb/keycodes/xfree86 pelo
  1512.      arquivo fornecido junto com o diacrd.
  1513.  
  1514.   ╖  Se tudo correr bem, rode o programa diacrd. Depois ative o X e use
  1515.      o xmodmap para carregar o mapa xmodmap.diacrd.
  1516.  
  1517.   Se a geraτπo de acentos funcionar, Θ preciso tornar permanentes as
  1518.   alteraτ⌡es necessßrias. Pode-se fazΩ-lo incluindo a carga do diacrd no
  1519.   arquivo /etc/rc.d/rc.local (Slackware).
  1520.  
  1521.        Se algum dos leitores tiver criado um script de ativaτπo do
  1522.        diacrd para a distribuiτπo Debian ou Red Hat, por favor
  1523.        envie-o para que seja incluφdo aqui.
  1524.  
  1525.  
  1526.   Mais informaτ⌡es sobre o diacrd podem ser encontradas no ``Dead keys
  1527.   Mini-HOWTO'' de Claudemir Todo Bom, disponφvel em  <http://linux.uni¡
  1528.   camp.br/docs/diversos/deadkeys.html>.
  1529.  
  1530.  
  1531.   5.6.3.  Comparaτπo entre as duas soluτ⌡es
  1532.  
  1533.   Em termos de resultados prßticos, a Xlib modificada e o diacrd sπo
  1534.   equivalentes. Hß porΘm algumas diferenτas entre as duas soluτ⌡es que
  1535.   merecem atenτπo.
  1536.  
  1537.   Diacrd exige uma alteraτπo no kernel do Linux para resolver um
  1538.   problema que o kernel jß resolve, o que nπo deixa de parecer um tanto
  1539.   redundante. A dependΩncia de um processo de usußrio (o daemon kerneld)
  1540.   Θ uma desvantagem, pois se esse programa deixar de funcionar perde-se
  1541.   o suporte α acentuaτπo no X. Trata-se de uma soluτπo ainda em
  1542.   desenvolvimento e, segundo o conte·do da documentaτπo que o acompanha,
  1543.   o ideal seria que todo o tratamento fosse feito pelo kernel, sem
  1544.   depender de outro programa.
  1545.  
  1546.   AtΘ o momento da publicaτπo deste HOWTO, o diacrd ainda nπo era
  1547.   compatφvel com a versπo 2.2 do kernel do Linux.
  1548.  
  1549.   A soluτπo via Xlib Θ, pelo menos em teoria, totalmente transparente αs
  1550.   aplicaτ⌡es e permite reconfiguraτπo em tempo de execuτπo, bastando
  1551.   alterar o mapa de teclado do X e as regras de composiτπo. Jß o diacrd
  1552.   precisa ser recompilado se quisermos trocar o tipo de teclado, mas Θ
  1553.   possφvel que novas vers⌡es incorporem algum recurso de reconfiguraτπo.
  1554.  
  1555.   O diacrd s≤ funciona no teclado do pr≤prio computador. Se quisermos
  1556.   usar um display remoto, seja um terminal X, seja um outro computador,
  1557.   nπo teremos suporte α acentuaτπo. A troca da Xlib, por outro lado,
  1558.   enquadra-se plenamente na filosofia do X de que o servidor provΩ
  1559.   mecanismo, deixando a cargo da aplicaτπo a definiτπo de polφticas.
  1560.   Exemplo da vantagem deste paradigma Θ poder usar as tΘcnicas descritas
  1561.   na seτπo ``Configuraτπo do X'' em outros sistemas operativos e com
  1562.   terminais X.
  1563.  
  1564.   A soluτπo via Xlib parece-me mais ``limpa'' e Θ minha predileta, mas,
  1565.   como sempre, fica a critΘrio do usußrio ou do administrador do sistema
  1566.   qual alternativa escolher. De qualquer modo, sempre Θ bom lembrar qua
  1567.   ambas as soluτ⌡es sπo remendos. Considerando-se a rßpida evoluτπo que
  1568.   estß a ocorrer no campo do software livre, com o desenvolvimendo de
  1569.   ambientes de trabalho como KDE, GNOME e GNUStep, podemos supor que em
  1570.   breve nenhum desses remendos serß mais necessßrio.
  1571.  
  1572.  
  1573.   6.  Configuraτπo dos vßrios programas
  1574.  
  1575.  
  1576.   6.1.  Aplicativos
  1577.  
  1578.   A maioria das aplicaτ⌡es que rodam no Unix usa algum tipo de arquivo
  1579.   de configuraτπo que o usußrio coloca em seu diret≤rio de trabalho
  1580.   (home) e cujo nome normalmente Θ .alguma-coisarc. Tanto quanto
  1581.   possφvel, tentei evitar que isso fosse necessßrio, pois alΘm de dar
  1582.   mais trabalho ao usußrio (e ao administrador da rede ;-) pode
  1583.   dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o
  1584.   diret≤rio home compartilhado entre um servidor Alpha rodando DEC UNIX
  1585.   com os PCs rodando Linux via NFS (atΘ a maior parte do Linux estß
  1586.   instalada no Alpha, os PCs s≤ tΩm a partiτπo raiz e uma ßrea de swap).
  1587.   Os arquivos podem necessitar algum ajuste dependendo da plataforma e
  1588.   nem todos os programas possuem flexibilidade bastante para isso.
  1589.  
  1590.   Uma opτπo que muitos programas tambΘm oferecem Θ especificar em uma
  1591.   varißvel de ambiente o nome do arquivo de configuraτπo ou o uso de
  1592.   arquivos padrπo que normalmente ficam em um diret≤rio /usr/lib/alguma-
  1593.   coisa ou /etc/alguma-coisa.
  1594.  
  1595.  
  1596.   6.1.1.  Bash (biblioteca GNU readline)
  1597.  
  1598.   Os programas que utilizam a biblioteca GNU readline para ler a linha
  1599.   de comando procuram por um arquivo chamado .inputrc no diret≤rio
  1600.   ``HOME'' do usußrio caso nπo exista uma varißvel de ambiente INPUTRC
  1601.   contendo o caminho para um arquivo de configuraτπo.
  1602.  
  1603.   Coloque uma linha no seu arquivo /etc/profile contendo
  1604.  
  1605.       INPUTRC="/etc/inputrc"
  1606.       export INPUTRC
  1607.  
  1608.  
  1609.   e crie um arquivo /etc/inputrc contendo
  1610.  
  1611.       set meta-flag on
  1612.       set convert-meta off
  1613.       set output-meta on
  1614.  
  1615.  
  1616.   Outra alternativa Θ criar um arquivo .inputrc no diret≤rio home do
  1617.   usußrio com o conte·do acima, mas Θ muito difφcil manter atualizados
  1618.   os arquivos de todos os usußrios, principalmente quando eles sπo
  1619.   muitos.  Um inputrc mais completo pode ser obtido via WWW na pßgina do
  1620.   Portuguese HOWTO. Ele contΘm opτ⌡es para vßrios tipos de terminal e
  1621.   permite usar as teclas de movimento de cursor para percorrer o
  1622.   hist≤rico de comandos (setas para cima e para baixo); ir para o
  1623.   primeiro e para o ·ltimo comandos do hist≤rico (teclas PageUp e Page¡
  1624.   Down); posicionar o cursor na linha (setas para a esquerda e direita)
  1625.   e posicionar o cursor no inφcio e no fim da linha (teclas Home e End).
  1626.  
  1627.   Para maiores informaτ⌡es leia os manuais do bash e da biblioteca
  1628.   readline com os comandos
  1629.  
  1630.       man bash
  1631.       man readline
  1632.  
  1633.  
  1634.  
  1635.  
  1636.   6.1.2.  Emacs
  1637.  
  1638.   O pai de todos os editores pode ser configurado criando-se um arquivo
  1639.   chamado .emacs no diret≤rio do usußrio, contendo as seguintes linhas:
  1640.  
  1641.       (set-input-mode nil nil 1)
  1642.       (standard-display-european t)
  1643.       (require 'iso-syntax)
  1644.  
  1645.  
  1646.  
  1647.   Para tornar esta configuraτπo global, na distribuiτπo Slackware
  1648.   coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el.
  1649.   Na distribuiτπo Debian o emacs executa todos os scripts contidos no
  1650.   diret≤rio /etc/emacs/site-start.d ao ser carregado. Tudo que se tem a
  1651.   fazer Θ colocar esses comandos em um arquivo chamado, por exemplo,
  1652.   01portugues-emacs.el.
  1653.  
  1654.   Se o estimado leitor, assim como eu, nπo se agrada do tratamento dado
  1655.   pelo Emacs αs teclas de Delete, Home e End, aproveite a oportunidade e
  1656.   acrescente ao mesmo arquivo o seguinte:
  1657.  
  1658.       (global-unset-key [backspace] )
  1659.       (global-set-key [backspace] 'delete-backward-char)
  1660.       (global-unset-key [delete] )
  1661.       (global-set-key [delete] 'delete-char)
  1662.       (define-key global-map [home] 'beginning-of-line)
  1663.       (define-key global-map [C-home] 'beginning-of-buffer)
  1664.       (define-key global-map [end] 'end-of-line)
  1665.       (define-key global-map [C-end] 'end-of-buffer)
  1666.  
  1667.  
  1668.  
  1669.   Arquivos de configuraτπo prontos podem ser obtidos via WWW na pßgina
  1670.   do Portuguese HOWTO. Para Slackware, hß um site-start-emacs.el, que
  1671.   deve ser copiado para o diret≤rio /usr/lib/emacs/site-lisp com o nome
  1672.   de site-start.el. Para Debian, hß um 01portugues-emacs.el que deve ser
  1673.   copiado para o diret≤rio /etc/emacs/site-start.d.
  1674.  
  1675.   Certifique-se de estar usando a versπo 24-out-1998 ou mais recente do
  1676.   arquivo de mapa de teclado para o X, pois ela possui uma correτπo no
  1677.   tratamento das teclas modificadoras Alt e Meta, que sπo muito usadas
  1678.   pelo Emacs.
  1679.  
  1680.  
  1681.   6.1.3.  flex
  1682.  
  1683.   Especifique a opτπo -8 se o parser a gerar necessitar de ler dados de
  1684.   8 bit.
  1685.  
  1686.  
  1687.   6.1.4.  Fortune
  1688.  
  1689.   Fortune Θ aquele programa que toda vez que Θ invocado apresenta uma
  1690.   pequena mensagem, geralmente bem humorada. Ele Θ inspirado nos
  1691.   biscoitos da fortuna chineses (em inglΩs fortune cookies, daφ o nome).
  1692.   Eis algumas mensagens tφpicas:
  1693.  
  1694.       dROGA!!oNDE ESTA O cAPSLOCK??
  1695.  
  1696.       Mouse nπo encontrado, bater no gato? (S/N)
  1697.  
  1698.       Que fio Θ ess<=V++088.../NO CARRIER
  1699.  
  1700.       Quem ri por ·ltimo estß conectado a 2400Bit/s.
  1701.  
  1702.  
  1703.   Tudo que o programa faz Θ escolher aleatoriamente uma mensagem em um
  1704.   reposit≤rio mantido no diret≤rio /usr/games/fortunes (Slackware) ou
  1705.   /usr/share/games/fortunes (Debian). Neste diret≤rio existem diversos
  1706.   arquivos com as ``fortunas'' e um arquivo φndice para cada um deles,
  1707.   que possui a extensπo .dat. O formato dos arquivos Θ muito simples:
  1708.   cada fortuna Θ composta de uma sΘrie de linhas de texto. As fortunas
  1709.   sπo separadas umas das outras por linhas contendo apenas um caracter
  1710.   %. Veja o trecho a seguir:
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.       O que sπo quatro pontos na parede? Four migas. Ugh!
  1718.       %
  1719.       Errar Θ humano, botar a culpa no computador Θ mais humano ainda.
  1720.       %
  1721.       Aφ ela me disse: Ou eu ou o modem! Sinto muitas saudades dela...
  1722.  
  1723.  
  1724.   Tudo que temos a fazer Θ criar um arquivo com as fortunas chamado,
  1725.   digamos fortunes com o formato descrito acima. Depois basta usar o
  1726.   programa strfile para gerar o φndice:
  1727.  
  1728.       strfile fortunes
  1729.  
  1730.  
  1731.   e um arquivo chamado fortunes.dat serß criado. Claro que se quisermos
  1732.   que o fortune mostre apenas mensagens em PortuguΩs, teremos que
  1733.   remover os arquivos existentes no diret≤rio original. Sugiro simples¡
  1734.   mente renomeß-lo para fortunes-en (de English) e criar outro vazio.
  1735.   Eu coletei algumas fortunas e as coloquei no arquivo fortunes-
  1736.   pt.tar.gz que pode ser obtido via WWW na pßgina do Portuguese HOWTO.
  1737.   Nπo esqueτa de colocar no seu /etc/profile algumas linhas contendo uma
  1738.   chamada ao fortune, por exemplo
  1739.  
  1740.       if [ -x /usr/games/fortune -a ! -e $HOME/.hushlogin ]; then
  1741.          echo
  1742.          /usr/games/fortune
  1743.          echo
  1744.       fi
  1745.  
  1746.  
  1747.   Uma ·ltima informaτπo: se o nome de um arquivo termina com o sufixo -o
  1748.   o fortune s≤ o consulta se for chamado com a opτπo -o. Esses arquivos
  1749.   sπo os que contΘm mensagens cujo conte·do pode ser considerado ofen¡
  1750.   sivo por algumas pessoas, tais como
  1751.  
  1752.       S≤ nπo mando a sogra pro inferno, com pena do Diabo.
  1753.  
  1754.  
  1755.   Claro que existem coisas muito mais ofensivas por aφ, mas este Θ um
  1756.   Linux HOWTO e nπo queremos realmente ofender ninguΘm, certo?
  1757.  
  1758.  
  1759.   6.1.5.  Ispell
  1760.  
  1761.   Dicionßrios para o PortuguΩs de Portugal podem ser obtidos via WWW na
  1762.   pßgina do Projecto Natura em
  1763.   <http://www.di.uminho.pt/~jj/pln/pln.html>. Para o Brasil, hß uma
  1764.   versπo compilada pelo Ueda: <http://www.ime.usp.br/~ueda/>.
  1765.  
  1766.  
  1767.        Eu gostaria de poder colocar maiores informaτ⌡es, mas ainda
  1768.        nπo tenho conhecimento suficiente sobre o Ispell e nπo posso
  1769.        ensinar o que nπo sei. Preciso de ajuda aqui.
  1770.  
  1771.  
  1772.  
  1773.   6.1.6.  JDK (inclui ICQJava)
  1774.  
  1775.  
  1776.        Esta informaτπo Θ baseada em uma mensagem da qual guardei o
  1777.        conte·do mas nπo o remetente. Peτo desculpas e espero que
  1778.        perdoe a falha. Nπo testei pessoalmente a informaτπo e peτo
  1779.        que me escrevam confirmando tanto a correτπo quanto, se
  1780.        possφvel, a identidade do autor.
  1781.  
  1782.  
  1783.   O JDK utiliza fontes padrπo que nπo suportam acentos. Isto quer dizer
  1784.   que letras com acentos sπo ignoradas e, geralmente, confundem o resto
  1785.   do texto.  Resolver isto Θ extremamente fßcil:
  1786.  
  1787.   ╖  entre no diret≤rio jdk1.1.5/lib (no meu caso, /jdk1.1.5/lib);
  1788.  
  1789.   ╖  copie o arquivo font.properties.hu sobrescrevendo o font.properties
  1790.      atual (lembre-se de fazer backups!);
  1791.  
  1792.   ╖  entre no jdk e divirta-se! Fazendo isto, seu ICQ e todos os
  1793.      aplicativos que usem o jdk estarπo aptos a lerem acentos! (fßcil,
  1794.      nπo?)
  1795.  
  1796.  
  1797.   6.1.7.  Joe
  1798.  
  1799.   Invoque o joe com a opτπo -asis na linha de comando ou altere os
  1800.   arquivos de configuraτπo para ativar tal opτπo. Na Slackware eles
  1801.   estπo no diret≤rio /usr/lib/joe. Tudo que se tem a fazer Θ remover o
  1802.   espaτo em branco existente no inφcio de cada linha. Outra alternativa
  1803.   Θ acrescentar a seguinte linha ao arquivo /etc/profile:
  1804.  
  1805.       alias joe='joe -asis'
  1806.  
  1807.  
  1808.  
  1809.   Joe pode emular os editores Pico, emacs e WordStar. Um arquivo joerc
  1810.   estß disponφvel via WWW na pßgina do Portuguese HOWTO, contendo
  1811.   configuraτ⌡es que permitem usar as teclas Home e End para movimentar o
  1812.   cursor para o inφcio e fim da linha.
  1813.  
  1814.  
  1815.   6.1.8.  Less
  1816.  
  1817.   Coloque as seguintes linhas no seu arquivo /etc/profile:
  1818.  
  1819.       LESS="-MM -i"
  1820.       LESSCHARSET="latin1"
  1821.       LESSKEY="/etc/lesskey"
  1822.       LESSOPEN='|lesspipe.sh "%s"'
  1823.       export LESS LESSCHARSET LESSKEY LESSOPEN
  1824.  
  1825.  
  1826.   LESSKEY informa o nome de um arquivo contendo uma tabela de seqⁿΩncias
  1827.   de caracteres geradas por cada tecla e as aτ⌡es a serem tomadas pelo
  1828.   less.  Para criar o arquivo /etc/lesskey, crie primeiro o arquivo
  1829.   /etc/lesskey.in contendo as seguintes linhas:
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.       # Termianl ANSI (console do Linux, XTerm, etc)
  1850.       \e[1~      goto-line
  1851.       \e[4~      goto-end
  1852.       \e[5~      back-screen
  1853.       \e[6~      forw-screen
  1854.       \e[7~      goto-line
  1855.       \e[8~      goto-end
  1856.       \e[A       back-line
  1857.       \e[B       forw-line
  1858.       # XTerm
  1859.       \eOH       goto-line
  1860.       \eOF       goto-end
  1861.       \e[H       goto-line
  1862.       \e[F       goto-end
  1863.       # Console Sun (testado com teclados Type 4/5)
  1864.       \e[214z    goto-line
  1865.       \e[220z    goto-end
  1866.       \e[216z    back-screen
  1867.       \e[222z    forw-screen
  1868.       # Arquivo seguinte/anterior
  1869.       :n  next-file
  1870.       :N  next-file
  1871.       :p  prev-file
  1872.  
  1873.  
  1874.   Depois ``compile-o'' usando o comando
  1875.  
  1876.       # lesskey -o /etc/lesskey /etc/lesskey.in
  1877.  
  1878.  
  1879.   Crie o arquivo /usr/bin/lesspipe.sh contendo
  1880.  
  1881.       #!/bin/sh
  1882.       # This is a preprocessor for 'less'.  It is used when this environment
  1883.       # variable is set:   LESSOPEN="|lesspipe.sh %s"
  1884.  
  1885.       case "$1" in
  1886.         *.rpm) rpm -qilp "$1" 2>/dev/null ;;
  1887.         *.tar) tar tvvf "$1" 2>/dev/null ;;
  1888.         *.tgz | *.tar.gz | *.taz | *.tar.Z | *.tar.z)
  1889.           tar tzvvf "$1" 2>/dev/null ;;
  1890.         *.tbz2 | *.tar.bz2)
  1891.           bzip2 -dc "$1" | tar tvvf - 2>/dev/null ;;
  1892.         *.Z) gzip -dc "$1"  2>/dev/null ;;
  1893.         *.z) gzip -dc "$1"  2>/dev/null ;;
  1894.         *.[1-9].gz | *.n.gz | *.man.gz)
  1895.           FILE=`file -Lz "$1" | cut -d ' ' -f 2`
  1896.           if [ "$FILE" = "troff" ]; then
  1897.             gzip -dc "$1" | groff -s -p -t -e -Tlatin1 -mandoc
  1898.           fi ;;
  1899.         *.gz) gzip -dc "$1"  2>/dev/null ;;
  1900.         *.zip) unzip -l "$1" 2>/dev/null ;;
  1901.         *.[1-9] | *.n | *.man)
  1902.           FILE=`file -L "$1" | cut -d ' ' -f 2`
  1903.           if [ "$FILE" = "troff" ]; then
  1904.             groff -s -p -t -e -Tlatin1 -mandoc "$1"
  1905.           fi ;;
  1906.       esac
  1907.  
  1908.  
  1909.   Nπo esqueτa de tornß-lo executßvel:
  1910.  
  1911.       chmod 755 /usr/bin/lesspipe.sh
  1912.  
  1913.  
  1914.  
  1915.   Na distribuiτπo Debian jß existe um script /usr/bin/lesspipe (note a
  1916.   ausΩncia da extensπo .sh). Para os curiosos a respeito da referΩncia a
  1917.   ``*.rpm'', embora na mßquina em questπo se use Slackware, Θ possφvel
  1918.   ter o utilitßrio RPM instalado tambΘm, o que facilita tomar
  1919.   ``emprestados'' pacotes do Red Hat, Caldera e S.u.S.E.. Existe um
  1920.   RPM+Slackware Mini-HOWTO que explica como fazer isso.
  1921.  
  1922.  
  1923.   6.1.9.  ls
  1924.  
  1925.   Acrescente a seguinte linha ao arquivo /etc/profile :
  1926.  
  1927.       alias ls="ls -N"
  1928.  
  1929.  
  1930.   ou
  1931.  
  1932.       alias ls="ls -b"
  1933.  
  1934.  
  1935.   Se a sua distribuiτπo de Linux usa o GNU ls (todas as que eu conheτo
  1936.   usam) basta acrescentar ao arquivo /etc/profile ou .profile as
  1937.   seguintes linhas:
  1938.  
  1939.       # -----------------------------------------
  1940.       # Set up the color-ls environment variables
  1941.       # -----------------------------------------
  1942.       if [   "$SHELL" = "/bin/bash" -o \
  1943.              "$SHELL" = "/bin/sh" ]; then
  1944.          eval `dircolors -b`
  1945.       elif [ "$SHELL" = "/bin/zsh" ]; then
  1946.          eval `dircolors -z`
  1947.       elif [ "$SHELL" = "/bin/ash" ]; then
  1948.          eval `dircolors -s`
  1949.       elif [ "$SHELL" = "/bin/ksh" -o \
  1950.              "$SHELL" = "/bin/pdksh" ]; then
  1951.          eval `dircolors -k`
  1952.       elif [ "$SHELL" = "/bin/csh" -o \
  1953.              "$SHELL" = "/bin/tcsh" ]; then
  1954.          eval `dircolors -c`
  1955.       else
  1956.          eval `dircolors -b`
  1957.       fi
  1958.  
  1959.  
  1960.   Se o seu shell Θ o csh ou tcsh, acrescente a seguinte linha ao arquivo
  1961.   /etc/csh.login ou ~/.login:
  1962.  
  1963.       alias ls 'ls --color'
  1964.  
  1965.  
  1966.  
  1967.  
  1968.   6.1.10.  LyX
  1969.  
  1970.   Para aqueles que acham trabalhoso escrever documentos para o LaTeX
  1971.   usando um simples editor de texto (e realmente Θ) LyX Θ uma excelente
  1972.   opτπo.  Este programa cria uma interface grßfica atravΘs da qual
  1973.   editamos os documentos que serπo depois formatados pelo LaTeX. O
  1974.   ambiente Θ quase-WYSIWYG (What You See Is What You Get - O que tu vΩs
  1975.   Θ o que tu obtΘns). LyX nπo roda apenas em Linux, mas em qualquer
  1976.   Unix. Maiores informaτ⌡es podem ser obtidas em
  1977.  
  1978.  
  1979.        <http://www.lyx.org>
  1980.  
  1981.   A partir da versπo 1.0.1 do LyX jß tem a interface com o usußrio em
  1982.   PortuguΩs, traduzida por Pedro Kr÷ger, que tambΘm estß traduzindo os
  1983.   manuais, junto com Roberto Mello. Estas traduτ⌡es jß fazem parte da
  1984.   distribuiτπo oficial do LyX.
  1985.  
  1986.   Tendo o LyX instalado, Θ muito fßcil criar documentos com acentuaτπo
  1987.   em PortuguΩs. Seguindo as seguintes regras:
  1988.  
  1989.  
  1990.   ╖  Se o teclado foi configurado para ter dead keys usando um dos mapas
  1991.      aqui fornecidos, nπo Θ necessßrio fazer mais nada. Basta digitar o
  1992.      texto normalmente usando as seqⁿΩncias de acentuaτπo. A ·nica
  1993.      exceτπo Θ o c-cedilha que nπo pode ser gerado usando a seqⁿΩncia
  1994.      'c, pois o LyX gera um c com acento. Temos que usar a seqⁿΩncia
  1995.      Compose-vφrgula-c.
  1996.  
  1997.   ╖  Se o teclado nπo foi configurado para ter dead keys ainda assim Θ
  1998.      possφvel acentuar no LyX. Selecione o menu Options/Keyboard. Na
  1999.      caixa de dißlogo ``Key Mappings'', selecione no φtem
  2000.      Language/Primary a opτπo ``American''.  Com isto o LyX farß a
  2001.      composiτπo dos caracteres acentuados usando regras semelhantes αs
  2002.      das dead keys.
  2003.  
  2004.   ╖  A vφrgula serß tratada como cedilha. Para obter um `╟'digite ,C e
  2005.      para obter uma vφrgula digite ,,. Cuidado! A seqⁿΩncia ,<espaτo>
  2006.      gerarß uma cedilha isolada e nπo uma vφrgula!
  2007.  
  2008.   ╖  ~ ^ ' e ` serπo tratados como acentos. Vale a mesma regra anterior:
  2009.      para obter apenas o acento, pressione a tecla duas vezes
  2010.      consecutivas.
  2011.  
  2012.   ╖  : ; . / ? e - tambΘm serπo tratados como acentos. ?a gerarß um `σ'
  2013.      e assim por diante.
  2014.  
  2015.   Para o LyX imprimir corretamente, Θ necessßrio que, ao criar um novo
  2016.   documento, sejam selecionados a lφngua e a codificaτπo de caracteres
  2017.   adequadas. Crie um documento selecionando o menu File/New.  Depois
  2018.   selecione o menu Layout/Document. Na caixa de dißlogo ``Document
  2019.   Layout'' selecione no φtem Language a opτπo ``brazil'' ou ``portuges''
  2020.   (sem o u mesmo); no φtem Encoding selecione ``latin1''.
  2021.  
  2022.   Veja a observaτπo sobre o pacote algorithm na seτπo ``TeX e LaTeX''
  2023.  
  2024.   Uma observaτπo final sobre o LyX: a versπo atual (1.0.x) utiliza a
  2025.   biblioteca XForms para construir a interface com o usußrio. Como essa
  2026.   biblioteca nπo tem suporte para acentuaτπo, nπo Θ possφvel digitar
  2027.   letras acentuadas nas caixas de dißlogo, somente no corpo do documento
  2028.   editado. Segundo os desenvolvedores, nas novas vers⌡es do LyX serß
  2029.   possφvel escolher o tipo de interface ao compilar o programa, o que
  2030.   permitirß o uso de toolkits mais flexφveis. Jß existe uma versπo de
  2031.   LyX portada para o toolkit Qt, usado no KDE, chamada KLyX. Os autores
  2032.   sπo Matthias Ettrich -- autor original do LyX -- e Kalle Dalheimer.
  2033.   Para maiores informaτ⌡es, consulte via WWW:  <http://www-
  2034.   pu.informatik.uni-tuebingen.de/users/ettrich/>.
  2035.  
  2036.  
  2037.   6.1.11.  Man, groff, troff
  2038.  
  2039.   Pode-se usar a opτπo de linha de comando -Tlatin1 para o groff, mas Θ
  2040.   mais simples colocar uma linha no seu arquivo /etc/profile contendo
  2041.  
  2042.       GROFF_TYPESETTER="latin1"
  2043.       export GROFF_TYPESETTER
  2044.  
  2045.  
  2046.  
  2047.   Para maiores informaτ⌡es leia o manual do groff com o comando
  2048.  
  2049.       man groff
  2050.  
  2051.  
  2052.  
  2053.   No Linux, o comando man usa o groff para formatar os manuais e deve
  2054.   ser configurado para usar o conjunto Latin 1, ou nπo serß possφvel
  2055.   formatar satisfatoriamente manuais que contenham caracteres nπo
  2056.   pertencentes ao conjunto ASCII, como Θ o caso do ``man iso_8859_1''.
  2057.   Na distribuiτπo Slackware, Θ preciso editar o arquivo
  2058.   /usr/lib/man.config e alterar as definiτ⌡es NROFF e NEQN, trocando a
  2059.   opτπo ``-Tascii'' para ``-Tlatin1'':
  2060.  
  2061.       NROFF           /usr/bin/groff -Tlatin1 -mandoc
  2062.       NEQN            /usr/bin/geqn -Tlatin1
  2063.  
  2064.  
  2065.   ou, se usarmos a varißvel de ambiente GROFF_TYPESETTER, podemos sim¡
  2066.   plesmente eliminar a opτπo -Tascii. Na distribuiτπo Debian nπo Θ
  2067.   necessßrio fazer nenhuma configuraτπo para o man, bastando configurar
  2068.   GROFF_TYPESETTER e na Red Hat (incluindo Conectiva) o arquivo Θ
  2069.   /etc/man.config
  2070.  
  2071.   Groff tambΘm pode ser configurado para fazer a separaτπo silßbica em
  2072.   portuguΩs, o que Θ muito ·til se tivermos pßginas de manual em
  2073.   PortuguΩs. Isto Θ bastante simples, porque quando James Clarck p⌠s
  2074.   suporte a hifenizaτπo no groff ele usou o mesmo algoritmo de
  2075.   hifenizaτπo do TeX. Para ter hifenizaτπo em portuguΩs, basta copiar o
  2076.   arquivo de regras do TeX e fazer o groff usß-lo. O arquivo hyphen.pt
  2077.   pode ser obtido junto com os demais na pßgina do HOWTO. Trata-se do
  2078.   arquivo pt8hyph.tex (ver seτπo ``TeX e LaTeX'') ao qual foi adicionado
  2079.   apenas um comentßrio.
  2080.  
  2081.   Ele deve ser copiado para o diret≤rio /usr/share/groff/tmac/ ou
  2082.   /usr/lib/groff/tmac/, dependendo da distribuiτπo. ╔ conveniente criar
  2083.   um ``link'' simb≤lico para hyphen.br. Para usar esse arquivo, basta
  2084.   colocar no inφcio do seu documento troff/groff as linhas a seguir:
  2085.  
  2086.       .if \n(.g \{\
  2087.       .hla pt
  2088.       .hpf hyphen.pt
  2089.       .\}
  2090.  
  2091.  
  2092.   O .if nπo Θ necessßrio para a acentuaτπo, mas ele testa se o proces¡
  2093.   sador usado Θ o groff. Deste modo pode-se usar o mesmo documento em
  2094.   outros UNIX nos quais se use o troff normal sem que ele gere mensagens
  2095.   de erro sobre comandos desconhecidos.
  2096.  
  2097.  
  2098.   6.1.12.  Midnight Comander (mc)
  2099.  
  2100.   No menu Options sub-menu Display bits... ligue a opτπo ``Full 8 bits''
  2101.   ou ``ISO 8859-1''. Na versπo 3.2.11 isso permite que sejam mostrados
  2102.   nomes de arquivos contendo caracteres acentuados, mas nπo foi possφvel
  2103.   digitar tais caracteres na linha de comando ou nas caixas de dißlogo.
  2104.  
  2105.  
  2106.   6.1.13.  Minicom
  2107.  
  2108.   Coloque uma linha no seu arquivo /etc/profile contendo
  2109.  
  2110.       MINICOM="-m -c on"
  2111.       export MINICOM
  2112.  
  2113.   Isso permitirß usar a tecla Alt para ativar os comandos (exatamente
  2114.   como o Telix) e tambΘm usar cores. Para maiores informaτ⌡es, leia o
  2115.   manual do Minicom usando o comando
  2116.  
  2117.       man minicom
  2118.  
  2119.  
  2120.   Mais uma dica sobre o Minicom: para fazΩ-lo usar usar corretamante a
  2121.   tecla Meta para ativaτπo dos comandos rodando dentro de um xterm,
  2122.   deve-se invocß-lo com a opτπo ``-m'' e passar a opτπo ``-xrm "*eight¡
  2123.   BitInput: false"'' para o xterm. Se usarmos o rxvt entπo o minicom
  2124.   deve ser chamado com a opτπo ``-m'' e a tecla de ativaτπo dos comandos
  2125.   serß Alt. Fiz uma adaptaτπo no script xminicom que pode ser obtido via
  2126.   WWW na pßgina do Portuguese HOWTO.
  2127.  
  2128.   Segundo Arnaldo Carvalho de Melo, as vers⌡es mais recentes do Minicom
  2129.   suportam internacionalizaτπo. Suporte para o PortuguΩs foi
  2130.   acrescentado pelo pessoal da Conectiva. O c≤digo fonte pode ser obtido
  2131.   na pßgina do Jukka (atual mantenedor do Minicom) em
  2132.  
  2133.        <http://www.clinet.fi/~walker/minicom.html>
  2134.  
  2135.  
  2136.  
  2137.   6.1.14.  Netscape Communicator
  2138.  
  2139.   O Communicator, assim como muitas aplicaτ⌡es que utilizam toolkits
  2140.   baseados no X Toolkit (Xt), permite que se modifiquem muitas de suas
  2141.   caracterφsticas por meio de arquivos de configuraτπo (X Resources). No
  2142.   caso especφfico do Communicator, pode-se criar um arquivo chamado
  2143.   Netscape no diret≤rio /usr/X11R6/lib/X11/app-defaults contendo estas
  2144.   opτ⌡es.
  2145.  
  2146.   Na distribuiτπo brasileira Conectiva, o pacote do Communicator vem com
  2147.   um arquivo /usr/lib/netscape/i18n/Netscape.ad.pt_BR e um script
  2148.   /usr/bin/netscape que executa o Communicator fazendo-o ler este
  2149.   arquivo. Uma c≤pia do Netscape.ad.pt_BR pode ser obtida na pßgina
  2150.   oficial do Portuguese-HOWTO. Para usß-lo, simplesmente copie-o para
  2151.   /usr/X11R6/lib/X11/app-defaults/Netscape, se sua distribuiτπo nπo o
  2152.   possuir, mas fique atento que seu uso pode criar problemas com novas
  2153.   vers⌡es do programa.
  2154.  
  2155.   Maiores informaτ⌡es sobre ``X Resources'' podem ser obtidas em
  2156.   [GET94], [McC94] e no manual do programa xrdb, com o comando
  2157.  
  2158.  
  2159.       man xrdb
  2160.  
  2161.  
  2162.  
  2163.  
  2164.   6.1.15.  nn
  2165.  
  2166.  
  2167.        Al⌠, al⌠, alguΘm usa nn? Informaτπo mais atualizada serß bem
  2168.        recebida.
  2169.  
  2170.  
  2171.   Acrescente a seguinte linha ao arquivo ~/.nn/init:
  2172.  
  2173.       set data-bits 8
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.   6.1.16.  Pine e Pico
  2180.  
  2181.   Para o Pine utilizar o conjunto de caracteres Latin 1, coloque uma
  2182.   linha no arquivo .pinerc, no diret≤rio do usußrio, contendo
  2183.  
  2184.       character-set=ISO-8859-1
  2185.  
  2186.  
  2187.   ou crie um arquivo geral de configuraτπo contendo tal linha. Esse
  2188.   arquivo normalmente Θ /usr/local/lib/pine.conf ou /usr/lib/pine.conf
  2189.  
  2190.   A configuraτπo tambΘm pode ser feita usando o pr≤prio programa. No
  2191.   menu de entrada selecione as opτ⌡es Setup/Configuration. Vß atΘ o φtem
  2192.   ``character-set'' e preencha-o com ``ISO-8859-1''. Para maiores
  2193.   informaτ⌡es leia o manual do pine com o comando
  2194.  
  2195.       man pine
  2196.  
  2197.  
  2198.  
  2199.  
  2200.   6.1.17.  tcsh
  2201.  
  2202.   Nenhuma medida especial Θ necessßria se for feita a correta
  2203.   configuraτπo das varißveis de ambiente ``LANG'' e ``LC_ALL'', conforme
  2204.   mostrado mostrado na seτπo ``Biblioteca libc''.
  2205.  
  2206.   Tcsh tem suporte a internacionalizaτπo e na distribuiτπo Debian hß um
  2207.   pacote chamado tcsh-i18n com suporte para French, German, Greek and
  2208.   Spanish.
  2209.  
  2210.  
  2211.   6.1.18.  TeX e LaTeX
  2212.  
  2213.  
  2214.        Esta seτπo foi escrita com ajuda de Klaus Steding-Jessen.
  2215.  
  2216.  
  2217.  
  2218.   6.1.18.1.  O pacote Babel
  2219.  
  2220.   O pacote Babel, criado por Johannes Braams provΩ suporte a um grande
  2221.   n·mero de idiomas para o LaTeX. De acordo com o idioma selecionado ele
  2222.   define muitas coisa como, por exemplo, os tφtulos dos capφtulos
  2223.   (Chapter, Capφtulo, Kapitel) e o tφtulo das tabelas (Tabela, Table,
  2224.   Tabelle). Para usar o pacote, basta incluir no preΓmbulo de seu
  2225.   documento LaTeX o comando
  2226.  
  2227.  
  2228.       \usepackage[portuges]{babel}
  2229.  
  2230.       ou
  2231.  
  2232.       \usepackage[brazil]{babel}
  2233.  
  2234.  
  2235.  
  2236.   Hß diferenτas sutis entre o Portugues do Brasil e o de Portugal, tais
  2237.   como as normas para escrita de datas e nomes de meses com a primeira
  2238.   letra mai·scula ou min·scula.
  2239.  
  2240.   Pode-se misturar mais de um idioma no mesmo documento. Para Alemπo e
  2241.   PortuguΩs ficaria:
  2242.  
  2243.  
  2244.  
  2245.       \usepackage[german,brazil]{babel}
  2246.  
  2247.  
  2248.  
  2249.   Nesse caso a ·ltima opτπo (brazil) fica sendo o idioma corrente. Para
  2250.   mudar ao longo do texto, entre um e outro, use:
  2251.  
  2252.  
  2253.       \selectlanguage{german}
  2254.  
  2255.       [...]
  2256.  
  2257.       \selectlanguage{brazil}
  2258.  
  2259.  
  2260.  
  2261.   Isto Θ muito ·til tambΘm quando queremos que uma palavra nπo seja
  2262.   separada.  Basta definir um novo idioma e usß-lo nas palavras que nπo
  2263.   podem ser separadas. Coloque no preΓmbulo:
  2264.  
  2265.  
  2266.       \newlanguage\nohyphen
  2267.       \newcommand\nh[1]{{\language\nohyphen #1}}
  2268.  
  2269.  
  2270.  
  2271.   E use com \nh{FOO BAR}. ╔ melhor do que usar \mbox, que impede quebra
  2272.   no espaco em \mbox{FOO BAR}.
  2273.  
  2274.  
  2275.   6.1.18.2.  Separaτπo silßbica
  2276.  
  2277.   Normalmente apenas os suportes a separaτπo silßbica para InglΩs e
  2278.   Alemπo sπo carregados.  Para configurar hifenizaτπo no teTeX, execute
  2279.   o utilitßrio texconfig, que na distribuiτπo Slackware deve ser o
  2280.   programa /usr/lib/teTeX/bin/texconfig e na Debian Θ
  2281.   /usr/bin/texconfig.  Digite o comando
  2282.  
  2283.  
  2284.       texconfig hyphen
  2285.  
  2286.  
  2287.  
  2288.   O editor usado normalmente Θ o vi. Se o seu editor predileto for
  2289.   outro, crie uma varißvel de ambiente chamada EDITOR contendo o nome
  2290.   desse programa, como no exemplo a seguir:
  2291.  
  2292.  
  2293.       EDITOR=pico
  2294.       export EDITOR
  2295.  
  2296.  
  2297.  
  2298.   O editor de texto serß carregado, para editar o arquivo language.dat.
  2299.   Procure uma linha que comeτa por %portuges e remova o %. Grave o
  2300.   arquivo e saia do editor. O texconfig atualizarß diversos arquivos de
  2301.   configuraτπo (nπo se assuste com a quantidade de mensagens que
  2302.   aparecem na tela).
  2303.  
  2304.   Se o nome da tabela de hifenizaτπo que consta no seu language.dat Θ
  2305.   pthyph.tex entπo provavelmente trata-se da versπo 1.0, de 1987. A
  2306.   versπo 1.2, de 1996, pode ser obtida via FTP an⌠nimo em
  2307.  
  2308.        <ftp://ftp.tex.ac.uk/tex-archive/language/por¡
  2309.        tuguese/pt8hyph.tex>
  2310.  
  2311.   Copie-o para o mesmo diret≤rio onde se encontra o pthyph.tex, que
  2312.   dependendo de sua distribuiτπo pode ser
  2313.   /usr/lib/texmf/tex/generic/hyphen /usr/share/texmf/tex/generic/hyphen
  2314.   ou /usr/lib/teTeX/texmf/tex/generic/hyphen. Execute o comando texcon¡
  2315.   fig~hash e na mesma linha mencionada anteriormente insira um `8' no
  2316.   nome do arquivo, de modo que fique pt8hyph.tex.
  2317.  
  2318.  
  2319.   6.1.18.3.  Uso de Font Encoding T1
  2320.  
  2321.   Se o conjunto de caracteres (encoding) de uma fonte nπo provΩ acesso
  2322.   direto a caracteres acentuados, (como Θ o caso do OT1, padrπo do
  2323.   LaTeX) entπo o TeX gera estes caracteres sobrepondo o caracter base
  2324.   mais o acento. O algoritmo de hifenizaτπo, contudo, nπo hifeniza
  2325.   palavras formadas dessa forma.
  2326.  
  2327.   Se uma fonte jß provΩ acesso direto a caracteres acentuados, como as
  2328.   de codificaτπo T1, estes caracteres sπo usados diretamente sem
  2329.   prejuφzo do algoritmo de hifenizaτπo.  O uso de encoding T1 Θ
  2330.   fundamental para a correta hifenizaτπo em PortuguΩs.
  2331.  
  2332.   Note que trata-se da mesma fonte, por falta a Computer Modern, apenas
  2333.   o que muda Θ o seu encoding, isto Θ, a ordem/disponibilidade dos
  2334.   caracteres dentro da mesma. Para selecionar estas fontes, inclua no
  2335.   preΓmbulo do seu documento o comando
  2336.  
  2337.  
  2338.       \usepackage[T1]{fontenc}
  2339.  
  2340.  
  2341.  
  2342.   O antigo pacote t1enc nπo deve mais ser usado e existe hoje apenas por
  2343.   quest⌡es de compatibilidade com documentos antigos. O fontenc Θ mais
  2344.   atual, continua a ser mantido e Θ de uso mais geral, portanto
  2345.   preferφvel.
  2346.  
  2347.  
  2348.   6.1.18.4.  Ediτπo de documentos
  2349.  
  2350.   Normalmente a introduτπo de caracteres acentuados no texto exige o uso
  2351.   de seqⁿΩncias de escape bastante trabalhosas. Para gerar um ``÷''
  2352.   deve-se digitar \"o. Com babel pode-se digitar apenas "o, o que nπo
  2353.   deixa de ser inconveniente para ler o fonte do documento. Hß um pacote
  2354.   chamado inputenc que permite especificar a codificaτπo em que estπo os
  2355.   caracteres de um documento. Lembre-se porΘm que se o seu documento for
  2356.   enviado para outro usußrio que nπo possua o inputenc ele poderß nπo
  2357.   conseguir processß-lo, mas esse recurso jß estß disponφvel desde a
  2358.   liberaτπo do LaTeX2e em dezembro 1994. Todas as distribuiτ⌡es de Linux
  2359.   atuais o incluem.
  2360.  
  2361.   Sugestπo: uma configuraτπo do GNU Emacs para gerar caracteres
  2362.   acentuados, pr≤pria para o uso com o pacote inputenc:
  2363.  
  2364.  
  2365.       (add-hook 'LaTeX-mode-hook
  2366.                 (lambda ()
  2367.                   (standard-display-european 1)
  2368.                   (load-library "iso-acc")
  2369.                   (iso-accents-mode 1)
  2370.                   (iso-accents-customize "portuguese")
  2371.                   (auto-fill-mode 1)
  2372.                   ))
  2373.  
  2374.  
  2375.  
  2376.  
  2377.   E outra que nπo requer o inputenc.  O uso da biblioteca `iso-cvt' faz
  2378.   a transformaτπo de ISO-8859-1 (no buffer do Emacs) para o padrπo do
  2379.   LaTeX (no arquivo).
  2380.  
  2381.  
  2382.       (add-hook 'LaTeX-mode-hook
  2383.                 (lambda ()
  2384.                   (standard-display-european 1)
  2385.                   (load-library "iso-cvt")
  2386.                   (load-library "iso-acc")
  2387.                   (iso-accents-mode 1)
  2388.                   (iso-accents-customize "portuguese")
  2389.                   (auto-fill-mode 1)
  2390.                   ))
  2391.  
  2392.  
  2393.  
  2394.   Muitas vezes o usuario jß possui muitos arquivos num formato de acento
  2395.   do LaTeX e gostaria de passar tudo para o formato ISO, pr≤prio para
  2396.   uso do pacote inputenc. Uma boa opτπo para isto Θ usar o programa
  2397.   recode. Se vocΩ possui arquivos .tex e deseja converte-lo para formato
  2398.   ISO-8859-1 pode usar:
  2399.  
  2400.  
  2401.       recode -d LaTeX:l1 file.tex
  2402.  
  2403.  
  2404.  
  2405.   O c≤digo-fonte do GNU recode pode ser obtido via FTP an⌠nimo em
  2406.   <ftp://prep.ai.mit.edu/pub/gnu/recode/recode-3.4.tar.gz> e em muitos
  2407.   espelhos do GNU mundo afora. A distribuiτπo Debian tem um pacote
  2408.   pronto e outras tambΘm devem ter.
  2409.  
  2410.  
  2411.   6.1.18.5.  Teste da configuraτπo do LaTeX
  2412.  
  2413.   Para testar a nova configuraτπo copie o seguinte trecho para um
  2414.   arquivo chamado, digamos, exemplo.tex:
  2415.  
  2416.  
  2417.       \documentclass[a4paper]{article}
  2418.       \usepackage[latin1]{inputenc}
  2419.       \usepackage[T1]{fontenc}
  2420.       \usepackage[portuges]{babel}
  2421.       %%
  2422.       %% ou \usepackage[brazil]{babel}
  2423.       %%
  2424.  
  2425.       \begin{document}
  2426.       \title{Linux Portuguese-HOWTO}
  2427.       \author{Carlos Augusto Moreira dos Santos}
  2428.       \date{\today}
  2429.  
  2430.       \maketitle
  2431.  
  2432.       \section{Introduτπo}
  2433.  
  2434.       Este documento pretende ser um guia de referΩncia de configuraτπo
  2435.       do \textbf{Linux} e seus programas, teclados e fontes de
  2436.       caracteres, permitindo sua internacionalizaτπo/utilizaτπo confortßvel
  2437.       por pessoas que falem a Lφngua Portuguesa.
  2438.  
  2439.       \end{document}
  2440.  
  2441.  
  2442.  
  2443.   Esse texto contΘm de prop≤sito uma ``palavra'' bastante longa para
  2444.   forτar a separaτπo silßbica. Ele estß disponφvel via WWW no arquivo
  2445.   exemplo.tex na pßgina do Portuguese HOWTO. Para processß-lo, use o
  2446.   comando latex, conforme mostrado a seguir:
  2447.  
  2448.       bash$ latex exemplo.tex
  2449.       This is TeX, Version 3.14159 (C version 6.1)
  2450.       (exemplo.tex
  2451.       LaTeX2e <1996/06/01>
  2452.       Hyphenation patterns for english, german, portuges, loaded.
  2453.       (/usr/lib/teTeX/texmf/tex/latex/base/article.cls
  2454.       Document Class: article 1996/05/26 v1.3r Standard LaTeX document class
  2455.       (/usr/lib/teTeX/texmf/tex/latex/base/size10.clo))
  2456.       (/usr/lib/teTeX/texmf/tex/latex/base/inputenc.sty beta test version
  2457.       (/usr/lib/teTeX/texmf/tex/latex/base/latin1.def))
  2458.       (/usr/lib/teTeX/texmf/tex/latex/base/fontenc.sty
  2459.       (/usr/lib/teTeX/texmf/tex/latex/base/T1enc.def))
  2460.       (/usr/lib/teTeX/texmf/tex/generic/babel/babel.sty (portuges.ldf
  2461.       (/usr/lib/teTeX/texmf/tex/generic/babel/babel.def))) (exemplo.aux) [1]
  2462.       (exemplo.aux) )
  2463.       (see the transcript file for additional information)
  2464.       Output written on exemplo.dvi (1 page, 812 bytes).
  2465.       Transcript written on exemplo.log.
  2466.  
  2467.  
  2468.   A mensagem ``Hyphenation patterns for english, german, portuges,
  2469.   loaded.'' indica que a configuraτπo foi bem sucedida. Se o seu com¡
  2470.   putador estß rodando o X o documento formatado poderß ser visto com o
  2471.   comando
  2472.  
  2473.       xdvi exemplo.dvi
  2474.  
  2475.  
  2476.  
  2477.   Observe que o ``\today'' gera a data corrente. No ``portugues'' seria
  2478.   ``17 de Julho de 1998'' mas no ``brazil'' seria ``17 de julho de
  2479.   1998''.
  2480.  
  2481.  
  2482.   6.1.18.6.  Problemas com alguns pacotes do teTeX
  2483.  
  2484.   Hß um problema com o pacote algorithm do LaTeX, que nπo Θ suportado
  2485.   pelo babel, fazendo com que a lista de algoritmos saia com o tφtulo
  2486.   ``List of Algorithms'' e o tφtulo de cada um deles seja impresso como
  2487.   ``Algorithm #''.  Para evitar esse problema, coloque no preΓmbulo de
  2488.   seu documento LaTeX, ap≤s o comando ``\usepackage{algorithm}'' o
  2489.   seguinte:
  2490.  
  2491.  
  2492.       \makeatletter
  2493.       \renewcommand{\ALG@name}}{Algoritmo}}
  2494.       \makeatother
  2495.       \renewcommand{\listalgorithmname}}{Lista de Algoritmos}}
  2496.  
  2497.  
  2498.  
  2499.   No teTeX 0.4 (versπo 1.2h do portuges.ldf) o tφtulo do ambiente proof,
  2500.   encontrado nas classes amsbook, amsart, etc., sai como ``Proof.''.
  2501.   Para corrigir isso, coloque no preΓmbulo de seu documento o comando
  2502.  
  2503.  
  2504.       \renewcommand{\proofname}}{Demonstra\c{c}\~ao}
  2505.  
  2506.  
  2507.  
  2508.  
  2509.   mas o mais recomendßvel Θ que se atualize a versπo do teTeX.
  2510.  
  2511.   Usußrios do LyX podem incluir esses comandos no preΓmbulo do documento
  2512.   usando o menu Layout/LaTeX Preamble. Pode-se resolver o problema
  2513.   alterando o arquivo portuges.ldf que contΘm as definiτ⌡es necessßrias
  2514.   ao PortuguΩs, mas esta soluτπo nπo Θ portßvel, pois exigirß que tal
  2515.   arquivo seja alterado em todas os computadores em que o documento deva
  2516.   ser processado.
  2517.  
  2518.   A licenτa do Babel nπo me permite distribuir o portuges.ldf separado
  2519.   do resto do pacote, mas para os interessados, coloquei α disposiτπo na
  2520.   pßgina do HOWTO um arquivo chamado portuges.ldf.patch que criei para o
  2521.   meu teTeX antigo (Slackware 3.4).  Para aplicar a atualizaτπo, copie-o
  2522.   para o diret≤rio /usr/lib/teTeX/texmf/tex/generic/babel (Slackware),
  2523.   faτa uma c≤pia de reserva do portuges.ldf original e invoque o
  2524.   utilitßrio patch:
  2525.  
  2526.  
  2527.       cp -p portuges.ldf portuges.ldf.backup
  2528.       patch < portuges.ldf.patch
  2529.  
  2530.  
  2531.  
  2532.   Use o patch por sua conta e risco! Se vocΩ deixar o backup no
  2533.   diret≤rio original ele serß incluφdo no arquivo ls-R da pr≤xima vez
  2534.   que o programa texhash for executado.  Isso nπo farß mal algum, mas
  2535.   pode-se mover o backup para algum lugar seguro (eu uso /usr/backup).
  2536.  
  2537.  
  2538.   6.1.18.7.  Lista TeX-BR
  2539.  
  2540.   Hß uma lista de discussπo brasileira de usußrios de TeX/LaTeX, chamada
  2541.   TeX-BR, que roda no servidor de listas da FURG. Para entrar da lista
  2542.   mande um mail contendo apenas a palavra ``subscribe'' no corpo para
  2543.   <tex-br-request@listas.furg.br>. Esta lista Θ administrada por Rafael
  2544.   Rodrigues Obelheiro.
  2545.  
  2546.   Hß uma pßgina na WWW em  <http://biquinho.furg.br/tex-br/> por meio da
  2547.   qual se pode ler o hist≤rico de mensagens. TambΘm hß referΩncias para
  2548.   muitos documentos sobre LaTeX, alguns em PortuguΩs e outros em InglΩs.
  2549.  
  2550.  
  2551.   6.1.18.8.  LaTeX-demo
  2552.  
  2553.   Pode ser ·til tambΘm um documento de exemplo para ter onde comeτar.
  2554.   Pensando nisso, Klaus Steding-Jessen preparou um pequeno documento em
  2555.   PortuguΩs com o objetivo de ser um guia ``by example'' para o usußrio
  2556.   de LaTeX iniciante e intermedißrio, que pode ser obtido via WWW em
  2557.   <http://biquinho.furg.br/doc/LaTeX-demo/>.
  2558.  
  2559.   Klaus ecreveu tambΘm uma sΘrie trΩs artigos destinados a ``descrever o
  2560.   sistema LaTeX como uma alternativa mais eficiente aos processadores de
  2561.   texto WYSIWYG'' que podem ser lidos via WWW em
  2562.   <http://biquinho.furg.br/tex-br/doc/artigo-1-jessen/>.
  2563.  
  2564.  
  2565.  
  2566.   6.1.19.  WordPerfect
  2567.  
  2568.   O Corel Wordperfect para Linux versπo 8 suporta a acentuaτπo por
  2569.   teclas mortas. Nπo Θ necessßrio nenhum procedimento especial. Como um
  2570.   entusiasta de software livre, entretanto, recomendo enfaticamente que
  2571.   se use o LyX, que jß foi inclusive traduzido para nossa lφngua,
  2572.   conforme mencionado na seτπo ``LyX''.
  2573.  
  2574.  
  2575.   6.1.20.  Xemacs (antigo lucid emacs)
  2576.  
  2577.  
  2578.        Agradeτo a colaboraτπo de Judson Santos Santiago e Goedson
  2579.        Teixeira Paixπo que ajudaram a identificar os problemas com
  2580.        o Xemacs.
  2581.  
  2582.  
  2583.   O Xemacs jß tem suporte α acentuaτπo direta no teclado usando ``dead
  2584.   keys'', mas hß um erro na configuraτπo original que o impede de
  2585.   reconhecer o acento circunflexo.  Este problema nπo ocorre se for
  2586.   usada a biblioteca Xlib aterada por Thomas Quinot, mencionada na
  2587.   seτπo ``Contornando os limites do X'', mas mesmo que nπo a usemos,
  2588.   basta colocar os seguintes comandos no seu arquivo de configuraτπo
  2589.   .emacs:
  2590.  
  2591.       ;; Ajuste para fazer o acento circunflexo funcionar
  2592.       ;; Contribuiτπo de Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br>
  2593.       (require 'x-compose)
  2594.       (define-key global-map 'dead-circumflex compose-circumflex-map)
  2595.  
  2596.  
  2597.  
  2598.   Na distribuiτπo Debian 2.0 o Xemacs 20.4 executa todos os scripts
  2599.   contidos no diret≤rio /etc/xemacs20/site-start.d ao ser carregado.
  2600.   Tudo que se tem a fazer Θ colocar esses comandos em um arquivo
  2601.   chamado, por exemplo, 01portugues-xemacs.el. Nπo Θ necessßrio instalar
  2602.   o xemacs20-mule, que possui extens⌡es para lφnguas que nπo usam o
  2603.   alfabeto romano. Os pacotes a instalar sπo os seguintes:
  2604.  
  2605.  
  2606.   ╖  xemacs20-bin
  2607.  
  2608.   ╖  xemacs20-nomule
  2609.  
  2610.   ╖  xemacs20-support
  2611.  
  2612.   ╖  xemacs20-supportel
  2613.  
  2614.   Se vocΩ instalou o Xemacs no Slackware ou outro Unix, α moda antiga
  2615.   (dowload, compilaτπo, instaτπo), entπo o arquivo a alterar Θ o site-
  2616.   start.el, que deve estar no diret≤rio /usr/lib/xemacs/site-lisp ou
  2617.   /usr/local/lib/xemacs/site-lisp, dependendo de sua instalaτπo.
  2618.  
  2619.   Observe que a partir da versπo 20.3 o Xemacs usa uma varißvel especial
  2620.   para controlar o comportamento da tecla ``Delete'', nπo existente nos
  2621.   outros emacs chamada delete-key-deletes-forward. Para ativar este
  2622.   comportamento coloque no seu arquivo .emacs uma linha contendo
  2623.  
  2624.  
  2625.       (setq delete-key-deletes-forward t)
  2626.  
  2627.  
  2628.  
  2629.   Arquivos de configuraτπo prontos podem ser obtidos via WWW na pßgina
  2630.   do Portuguese HOWTO. Para Slackware, hß um site-start-xemacs.el, que
  2631.   deve ser copiado para o diret≤rio correto com o nome de site-start.el.
  2632.   Para Debian, hß um 01portugues-xemacs.el que deve ser copiado para o
  2633.   diret≤rio /etc/xemacs20/site-start.d.
  2634.  
  2635.   Certifique-se de estar usando a versπo 24-out-1998 ou mais recente do
  2636.   arquivo de ``mapa de teclado'' para o X, pois ela possui uma correτπo
  2637.   no tratamento das teclas modificadoras Alt e Meta, que sπo muito
  2638.   usadas pelo Xemacs.
  2639.  
  2640.  
  2641.   6.2.  Rede local e Internet
  2642.  
  2643.  
  2644.   6.2.1.  FTP (File Transfer Protocol)
  2645.  
  2646.   Existem dois modos de transferΩncia de arquivos: binary e ASCII, sendo
  2647.   este  utilizado para textos.  Deve-se tomar cuidado ao transferir um
  2648.   arquivo, pois o modo de transfΩrencia ASCII remove o oitavo bit de
  2649.   cada caracter transmitido, o que terß como conseqⁿΩncia a perda de
  2650.   todos os caracteres acentuados. Desta forma Θ aconselhado o envio de
  2651.   documentaτπo em modo binary de forma a manter a integridade da mesma.
  2652.  
  2653.   Cuidado! Algumas vers⌡es mais antigas do pacote net-tools do Linux tΩm
  2654.   um cliente FTP que nπo reconhece corretamente quando o servidor remoto
  2655.   roda Unix. Deste modo ele nπo comutarß o modo de transferΩncia para
  2656.   binßrio automaticamente. AlΘm disso, alguns servidores FTP tambΘm nπo
  2657.   fornecem a informaτπo corretamente.  Certifique-se de digitar o
  2658.   comando bin antes de um get quando quiser que a transferΩncia seja
  2659.   binßria!
  2660.  
  2661.  
  2662.   6.2.2.  Correio eletr⌠nico
  2663.  
  2664.   O mesmo tipo de restriτ⌡es do FTP se aplica ao envio de documentos
  2665.   contendo caracteres acentuados atravΘs de correio eletr⌠nico. Embora
  2666.   isto nπo aconteτa em todos os sistemas em uso na internet, bastarß que
  2667.   o correio enviado passe no seu trajecto por um sistema que nπo suporte
  2668.   8 bits de informaτπo para que o nosso documento seja deturpado.
  2669.  
  2670.   Para que nπo hajam problemas, deve-se utilizar um programa de emeil,
  2671.   que suporte o formato MIME (Multipurpose Internet Mail Extensions),
  2672.   formato este que permite o envio de documentaτπo em modo 8 bits.
  2673.   Exemplos de programas de correio eletr⌠nico com suporte para MIME, sπo
  2674.   o Eudora e o Pine.
  2675.  
  2676.   Se o destinatßrio da mensagem nπo usa um agente com suporte para MIME,
  2677.   existe a opτπo de codificar os documentos com o utilitßrio UUENCODE.
  2678.   Para maiores informaτ⌡es a esse respeito, leia a documentaτπo usando
  2679.   os comandos
  2680.  
  2681.  
  2682.       man uuencode
  2683.       man uudecode
  2684.  
  2685.  
  2686.  
  2687.  
  2688.   7.  Ficheiros necessßrios
  2689.  
  2690.   Atenτπo! Os mapas de teclado para o X fornecidos mapeiam a funτπo das
  2691.   teclas segundo a lista a seguir:
  2692.  
  2693.   ╖  Alt esquerdo: Alt
  2694.  
  2695.   ╖  Alt direito: AltGr
  2696.  
  2697.   ╖  Control esquerdo: Control
  2698.  
  2699.   ╖  Control direito: Control
  2700.  
  2701.   ╖  ScrollLock: ScrollLock
  2702.  
  2703.   ╖  Janela esquerda: Meta
  2704.  
  2705.   ╖  Janela direita: Compose
  2706.  
  2707.   ╖  Menu: Menu
  2708.  
  2709.   Se o seu teclado nπo possuir as teclas para Windows 95 entπo pode ser
  2710.   melhor restabelecer a distribuiτπo padrπo: edite o mapa e coloque um
  2711.   ponto de exclamaτπo no inφcio das linhas que definem os keycodes 64,
  2712.   113, 115, 116 e 117.
  2713.  
  2714.   Foram elaborados mapas com suporte α acentuaτπo para seis modelos de
  2715.   teclado, tanto para uso no console quanto para o X. Eles podem ser
  2716.   obtidos via WWW em um dos reposit≤rios da pßgina do Portuguese HOWTO:
  2717.  
  2718.  
  2719.   ╖  <http://linusp.usp.br/~casantos/>
  2720.  
  2721.   Ao instalar um dos mapas fornecidos, lembre-se de ler os comentßrios
  2722.   contidos neles, pois hß informaτ⌡es importantes sobre opτ⌡es de
  2723.   configuraτπo e aproveitamento das teclas adicionais dos teclados
  2724.   padrπo Windows 95.  As instruτ⌡es para instalaτπo estπo nas seτ⌡es
  2725.   ``Configuraτπo do console'' e ``Configuraτπo do X''.
  2726.  
  2727.  
  2728.  
  2729.      O mapa US+ (us+.map e Xmodmap.us+)
  2730.         Mapas para os teclados que seguem o padrπo americano. Como nπo
  2731.         existem teclas especiais para gerar o c-cedilhado nem o trema,
  2732.         foi usado um pequeno truque: o c-cedilhado Θ gerado pela
  2733.         seqⁿΩncia 'C.  No console pode-se fazΩ-lo com a seqⁿΩncia AltGR-
  2734.         C.  O trema Θ gerado pela tecla ". Para gerar as aspas duplas Θ
  2735.         necessßrio digitar a seqⁿΩncia "<espaτo> e no console pode-se
  2736.         usar ""; opcionalmente pode-se usar AltGR-", o que nπo Θ uma
  2737.         soluτπo muito confortßvel, mas funciona...
  2738.  
  2739.         Testados com teclados de vßrias marcas (e alguns sem marca :-).
  2740.  
  2741.  
  2742.      O mapa Portugal (pt.map e Xmodmap.pt)
  2743.         Mapas para teclados com desenho portuguΩs. Esses teclados sπo os
  2744.         que possuem uma tecla com os caracteres ½ e ╗. Nπo sπo muito
  2745.         confortßveis, porque para gerar o sφmbolos @ [ ] { } e o trema Θ
  2746.         necessßrio usar a tecla Alt-GR.
  2747.  
  2748.         Testado com um teclado da marca Key Tronic.
  2749.  
  2750.  
  2751.      O mapa ABNT-2 (abnt-2.map e Xmodmap.abnt2)
  2752.         Os computadores vendidos no Brasil fabricados pela IBM, Compaq e
  2753.         Itautec, entre outros, vΩm com esses teclados. Eles tambΘm pode
  2754.         ser adquiridos avulsos e sπo fabricados pela UIS e Keytec (nπo
  2755.         confundir com Key Tronic).  Este desenho Θ o mais confortßvel de
  2756.         todos, pois tem a mesma distribuiτπo dos acentos encontrada nas
  2757.         mßquinas de escrever.
  2758.  
  2759.         Testado com teclados das marcas UIS e IBM.
  2760.  
  2761.  
  2762.      Sun Type 4 e Type 5 (Xmodmap.Sun4+ e Xmodmap.Sun5c+)
  2763.         Encontrados nas mßquinas fabricadas pela Sun.  Estes mapas foram
  2764.         testados em SPARCstations modelos 1, 4, IPC e Classic rodando
  2765.         SunOS 4.1, Solaris 2.5.1 e Linux 2.0.33 (Red Hat 4.2). Como
  2766.         esses teclados nπo possuem o c-cedilhado, foi usado o mesmo
  2767.         truque do mapa US+. Apenas o mapa para o X Θ fornecido.
  2768.  
  2769.  
  2770.      NCD+ (Xmodmap.NCD+)
  2771.         Este mapa Θ para o teclado modelo N107 e foi testado em
  2772.         terminais X modelo 16r fabricados pela Network Computing Devices
  2773.         Inc. (NCD).  Embora a distribuiτπo de teclas seja idΩntica α do
  2774.         Sun Type 4, os keycodes das teclas sπo diferentes. Esses
  2775.         teclados tambΘm nπo possuem o c-cedilhado, por isso foi usado o
  2776.         mesmo truque do mapa US+.  Apenas o mapa para o X Θ fornecido.
  2777.  
  2778.   A geraτπo dos caracteres acentuados Θ feita de acordo com a tabela a
  2779.   seguir:
  2780.  
  2781.  
  2782.       Para gerar              Digitar
  2783.       -------------------------------------------------
  2784.       τ                       'c ou compose-,-c
  2785.       ß Θ φ ≤ ·               'a 'e 'i 'o 'u
  2786.       α Φ ∞ ≥ ∙               `a `e `i `o `u
  2787.       π ⌡                     ~a ~o
  2788.       Γ Ω ε ⌠ √               ^a ^e ^i ^o ^u
  2789.       Σ δ ∩ ÷ ⁿ               "a "e "i "o "u
  2790.       " (aspas)               "" ou AltGR-" no mapa US+
  2791.       ¿ (trema)               "-espaτo
  2792.       ' (ap≤strofo)           '' ou AltGR-' no mapa US+
  2793.       ` (grave)               `` ou AltGR-` no mapa US+
  2794.       «                       compose-O-R
  2795.       ⌐                       compose-O-C
  2796.       -------------------------------------------------
  2797.  
  2798.  
  2799.  
  2800.  
  2801.   8.  Informaτ⌡es Adicionais
  2802.  
  2803.   8.1.  Fontes de informaτπo sobre Linux em PortuguΩs
  2804.  
  2805.  
  2806.      Grupo de Investigaτπo Linux
  2807.         Grupo de usußrios de linux da Universidade do Minho, em Portugal
  2808.         que pode ser visitado em  <http://gil.di.uminho.pt>.
  2809.  
  2810.      Grupo de Utilizadores de Linux do ISCTE
  2811.         Pode ser visitado em
  2812.         <http://www.students.iscte.pt/~a12593/gul.html>.
  2813.  
  2814.      Linux Brasil
  2815.         Servidor da Universidade Estadual de Campinas, Brasil, contendo
  2816.         informaτ⌡es sobre Linux no Brasil, que absorveu o antigo projeto
  2817.         LDP-br.  Pode ser visitado em  <http://linux.unicamp.br>.
  2818.  
  2819.      Projeto LinUSP
  2820.         Desenvolvido na Universidade de Sπo Paulo, Brasil, coordenado
  2821.         por Jorge L.  deLyra. Pode ser visitado em
  2822.         <http://linusp.usp.br/>.
  2823.  
  2824.  
  2825.   8.2.  Free Translation Project
  2826.  
  2827.   Programadores que quiserem desenvolver aplicaτ⌡es com suporte a mais
  2828.   de uma lφngua devem usar algum mΘtodo de definir mensagens em tempo de
  2829.   execuτπo, possivelmente usando uma biblioteca de funτ⌡es para este
  2830.   fim. O projeto GNU criou o ``Free Translation Project'', com esta
  2831.   finalidade. Muitos aplicativos GNU jß permitem que se troquem as
  2832.   mensagens bastando criar um catßlogo que Θ lido pelo programa ao
  2833.   iniciar. Hß equipes de traduτπo responsßveis por cada lφngua.
  2834.  
  2835.   Hß uma lista de discussπo via emeil para cada equipe de traduτπo,
  2836.   rodando em um servidor provido pela <Linux International>. Para fazer
  2837.   contato com a equipe de traduτπo para PortuguΩs, envie um emeil para
  2838.   <pt@li.org> e para assinar a lista envie emeil para <pt-
  2839.   request@li.org> contendo apenas a palavra ``subscribe''. Assine a
  2840.   lista somente se vocΩ quiser fazer parte da equipe de tradutores, pois
  2841.   ela nπo se destina ao esclarecimento de d·vidas de usußrios!
  2842.  
  2843.   Mais informaτ⌡es podem ser encontradas na documentaτπo do pacote
  2844.   gettext disponφvel via FTP an⌠nimo em qualquer reposit≤rio de software
  2845.   do GNU.  Provavelmente sua distribuiτπo jß tem um pacote pronto para
  2846.   ser instalado, mas se vocΩ desejar, os fontes da versπo mais recentes
  2847.   podem ser encontrados em
  2848.  
  2849.        <ftp://ftp.gnu.org/pub/gnu/>
  2850.  
  2851.  
  2852.   e o nome do arquivo a copiar Θ ``gettext-<versπo>.tar.gz''.
  2853.  
  2854.  
  2855.   8.3.  LIE-BR
  2856.  
  2857.  
  2858.        A informaτπo a seguir Θ baseada no conte·do da pßgina de
  2859.        apresentaτπo da lie-br, escrita por Jorge Godoy.
  2860.  
  2861.  
  2862.   A lie-br foi criada com o intuito de auxiliar a comunidade Linux
  2863.   brasileira a obter softwares e documentaτπo em sua lφngua nativa: o
  2864.   portuguΩs.  Essa lista Θ uma ramificaτπo de outra maior, a LIE que
  2865.   visa a internacionalizaτπo do Linux e sua posterior traduτπo para
  2866.   todos os idiomas (portuguΩs incluso).
  2867.  
  2868.   Resumo dos objetivos da lie-br:
  2869.  
  2870.   ╖  contribuir para o projeto de internacionalizaτπo do Linux fazendo a
  2871.      parte relativa ao portuguΩs para o Brasil;
  2872.  
  2873.   ╖  internacionalizar programas, de modo a poderem ser usados nas
  2874.      lφnguas nativas de cada paφs, e nπo ficar preso ao idioma original
  2875.      ou ao inglΩs;
  2876.  
  2877.   ╖  disponibilizar (sic) material em portuguΩs para consulta e
  2878.      documentaτπo;
  2879.  
  2880.   ╖  aumentar o acervo de documentaτπo disponφvel e, indiretamente,
  2881.      auxiliar no desenvolvimento iniciado pelo projeto LDP-BR.
  2882.  
  2883.   Mais informaτ⌡es podem ser encontradas na pßgina WWW da lie-br, no
  2884.   endereτo
  2885.  
  2886.        <http://lie-br.conectiva.com.br/>
  2887.  
  2888.  
  2889.   Ainda hß uma quantidade enorme de documentos por traduzir. Se vocΩ tem
  2890.   bom domφnio do InglΩs e deseja colaborar, entπo primeiro leia as
  2891.   instruτ⌡es na pßgina mencionada e assine a lista ``lie-br'', enviando
  2892.   um emeil para <lie-br-subscribe@bazar.conectiva.com.br>. Nπo Θ preciso
  2893.   especificar o assunto (subject) nem colocar nada no corpo da mensagem.
  2894.  
  2895.  
  2896.   8.4.  Vers⌡es de software testadas
  2897.  
  2898.   Todas as informaτ⌡es presentes neste documento foram testadas nas
  2899.   seguintes vers⌡es de software:
  2900.  
  2901.  
  2902.   ╖  Distribuiτ⌡es Slackware 3.2 (muito modificada), Debian 2.0, Red Hat
  2903.      5.2, Conectiva 3.0 (Guarani) e S.u.S.E. 5.6
  2904.  
  2905.   ╖  XFree86 vers⌡es 3.3 a 3.3.3.1
  2906.  
  2907.   ╖  Fvwm 2.0.46
  2908.  
  2909.   ╖  Rxvt versπo 2.4.5
  2910.  
  2911.   ╖  Kernel vers⌡es 2.0.33 a 2.0.36
  2912.  
  2913.   ╖  Kbd vers⌡es 0.92 a 0.96
  2914.  
  2915.   ╖  GNU emacs vers⌡es 19.34 a 20.3
  2916.  
  2917.   ╖  Less vers⌡es 321 e 332
  2918.  
  2919.   ╖  GNU Bash vers⌡es 1.14.7 a 2.01.1
  2920.  
  2921.   ╖  tcsh vers⌡es 6.07.02 e 6.07.06
  2922.  
  2923.   ╖  LyX 0.12.0 a 1.0.0pre6
  2924.  
  2925.   ╖  XForms 0.88
  2926.  
  2927.   ╖  Joe 2.8
  2928.  
  2929.   ╖  Pine 3.96 e 4.0
  2930.  
  2931.   ╖  Pico 2.9
  2932.  
  2933.   ╖  teTeX vers⌡es 0.4 e 0.9-9
  2934.  
  2935.   ╖  XEmacs vers⌡es 20.3 e 20.4
  2936.  
  2937.  
  2938.  
  2939.  
  2940.   9.  Observaτ⌡es finais
  2941.  
  2942.   9.1.  Futuras adiτ⌡es a este documento
  2943.  
  2944.   As pr≤ximas vers⌡es do HOWTO deverπo conter, entre outros assuntos, os
  2945.   seguintes:
  2946.  
  2947.   ╖  suporte α distribuiτπo Caldera;
  2948.  
  2949.   ╖  informaτ⌡es sobre compartilhamento de arquivos em rede usando NFS,
  2950.      SAMBA e Mars-NWE;
  2951.  
  2952.   ╖  configuraτπo de toolkits de interface grßfica: Qt, GTK, XForms, Tk
  2953.      (Tcl) e os baseados em Xt, como Motif, Lesstif, Xaw (*international
  2954.      ainda nπo estß funcionando);
  2955.  
  2956.   ╖  uma seτπo sobre desenvolvimento de programas;
  2957.  
  2958.   ╖  referΩncias ao Ispell (usß-lo para corrigir o pr≤prio HOWTO :-);
  2959.  
  2960.   ╖  informaτ⌡es sobre X/Open, XPG4 e POSIX, ou pelo menos ponteiros
  2961.      para elas.
  2962.  
  2963.      Aceitam-se voluntßrios para qualquer uma destas tarefas.
  2964.  
  2965.   Parece cada vez mais claro que as informaτ⌡es sobre configuraτπo de
  2966.   aplicativos devem ser movidas para outro documento, independente do
  2967.   HOWTO. Na forma como ele estß hoje jß chega a quase quarenta pßginas
  2968.   impressas e com a adiτπo de outras distribuiτ⌡es e aplicaτ⌡es em breve
  2969.   chegarß αs 50. Um documento tπo grande foge ao espφrito de um HOWTO,
  2970.   que deve ser sucinto e concentrado em um assunto especφfico.
  2971.   9.2.  Nota de Direitos de Autor
  2972.  
  2973.   Este HOWTO teve como autor Joπo Carlos Rodrigues Pereira, baseado em
  2974.   documentaτπo escrita por JosΘ Bandeira alΘm dos restantes HOWTO's do
  2975.   Linux.  Atualmente ele Θ mantido por Carlos Augusto Moreira dos
  2976.   Santos, com a colaboraτπo de muitos outros.
  2977.  
  2978.   Os documentos HOWTO do Linux podem ser reproduzidos e distribuφdos em
  2979.   todo ou em parte, segundo qualquer meio fφsico ou electr≤nico, desde
  2980.   que esta Nota de Direitos de Autor se mantenha intacta em todas as
  2981.   c≤pias dos mesmos.  A distribuiτπo comercial Θ autorizada e
  2982.   encorajada, no entanto, o autor gostaria de ser notificado de tais
  2983.   ocorrΩncias.
  2984.  
  2985.   Todas as traduτ⌡es, trabalhos derivados, ou trabalhos agregando
  2986.   qualquer dos documentos HOWTO do Linux deverπo estar abrangidos por
  2987.   esta Nota de Direitos de Autor, ou seja, nπo poderß ser imposta
  2988.   qualquer restriτπo adicional a trabalhos efectuados a partir de um dos
  2989.   documentos HOWTO do Linux nomeadamente no que diz respeito α sua
  2990.   distribuiτπo.
  2991.  
  2992.   Exceτ⌡es a estas regras poderam ser obtidas. Para tal, dever-se-ß
  2993.   contactar o coordenador dos documentos HOWTO do Linux no endereτo
  2994.   <linux-howto@metalab.unc.edu>.
  2995.  
  2996.  
  2997.   9.3.  Garantia (inexistΩncia de) e nota de responsabilidade
  2998.  
  2999.   Apesar de ter sido feito o mßximo esforτo possφvel para que o conte·do
  3000.   deste documento esteja correto, nπo hß nenhuma garantia de que ele nπo
  3001.   possua erros, nem de que tenha algum tipo de utilidade ou aplicaτπo
  3002.   comercial, tΘcnica, educacional ou medicinal.  O autor nπo se
  3003.   responsabiliza por prejuφzos decorrentes do seu uso. Em resumo: se a
  3004.   informaτπo aqui contida quebrar seu computador em mil pedacinhos,
  3005.   junte tudo e cole, mas nπo reclame para mim!
  3006.  
  3007.   Documentos escritos por terceiros sπo de responsabilidade exclusiva
  3008.   deles e sua referΩncia neste HOWTO nπo representa nenhum tipo de
  3009.   recomendaτπo, abono ou garantia de suporte.
  3010.  
  3011.  
  3012.   9.4.  Agradecimentos
  3013.  
  3014.   Deixo aqui os meus agradecimentos a todos os que de alguma forma me
  3015.   ajudaram quer atravΘs das suas sugest⌡es quer atravΘs de contribuiτ⌡es
  3016.   de outro tipo, em especial a
  3017.  
  3018.  
  3019.      Joπo Carlos Rodrigues Pereira
  3020.         Autor original deste documento que agora mantenho. Nunca tive
  3021.         contato com ele, nem sei por onde andarß.  Sua pßgina no
  3022.         Departamento de Informßtica da Faculdade de CiΩncias da
  3023.         Universidade de Lisboa (http://caravela.di.fc.ul.pt/~jcrp/) nπo
  3024.         existe mais. Lembro-me de tΩ-la visto, anos atrßs.
  3025.  
  3026.      Greg Hankins
  3027.         Ex-coordenador dos Linux HOWTO, por me permitir assumir a
  3028.         manutenτπo deste documento e fornecer as primeiras dicas sobre
  3029.         autoria de documentos SGML.
  3030.  
  3031.   As pessoas listadas a seguir enviaram mensagens diretamente para mim
  3032.   ou para as listas Linux-BR da UNICAMP e TeX-BR com informaτ⌡es,
  3033.   sugest⌡es ou comentßrios que foram incluφdas neste texto. Se alguΘm
  3034.   foi esquecido, por favor desculpe a falha.
  3035.  
  3036.  
  3037.        Andre Gerhard <andre@lme.usp.br>
  3038.        Arnaldo Carvalho de Melo <acme@conectiva.com.br>
  3039.        Bruno Barberi Gnecco <brunobg@geocities.com>
  3040.        Cees de Groot <cg@pobox.com>
  3041.        Francisco Semeraro <semeraro@sti.com.br>
  3042.        Goedson Teixeira Paixao <gopaixao@dcc.ufmg.br>
  3043.        Joao Carvalho <foxfire@fe.up.pt>
  3044.        Jorge Carvalho Pinto <jmcpinto@yahoo.com>
  3045.        Judson S Santiago <judson@costeira.dimap.ufrn.br>
  3046.        Ken MacLeod <ken@bitsko.slc.ut.us>
  3047.        Klaus Steding-Jessen <jessen@acm.org>
  3048.        Lamarque Vieira Souza <lamarque@dcc.ufmg.br>
  3049.        Marcelo Malheiros <malheiro@dca.fee.unicamp.br>
  3050.        Marcos Vinicius Lannes dos Santos <lannes@cnpgl.embrapa.br>
  3051.        Pedro Kr÷ger <kroger@e-net.com.br>
  3052.        Rafael Caetano dos Santos <rcaetano@linux.ime.usp.br>
  3053.        Rafael Rodrigues Obelheiro <obelix@biquinho.furg.br>
  3054.        Ramiro Morales <morales@siscard.com.ar>
  3055.        Raul Carvalho <rmpc@ip.pt>
  3056.        Ricardo Y. Igarashi <iga@originet.com.br>
  3057.        Roberto Mello <mello@internext.com.br>
  3058.        Wanderlei Antonio Cavassin <cavassin@conectiva.com.br>
  3059.  
  3060.  
  3061.   Os seguintes agradecimentos sπo do primeiro autor:
  3062.  
  3063.      Carlos Ferreira
  3064.         Pela luta que trava pela defesa da lingua portuguesa, bem
  3065.         patente na sua Pßgina Portuguesa disponφvel no URL:
  3066.         http://lila.dei.uc.pt/~cjrf/po/ [Nota do mantenedor atual: esta
  3067.         pßgina nπo existe]
  3068.  
  3069.      Joπo C. Silva
  3070.         Pelo apoio e incentivo e criticas (bem como por me deixar testar
  3071.         os meus conhecimentos no SEU computador).
  3072.  
  3073.      JosΘ Bandeira
  3074.         Autor dos ficheiros port.map e xmodmap.  Pelo seu apoio e por
  3075.         ter escrito alguma da documentaτπo mais elucidativa que eu jß li
  3076.         sobre o assunto.
  3077.  
  3078.  
  3079.   10.  Bibliografia comentada
  3080.  
  3081.   Esta seτπo ainda estß incompleta e deve ser melhorada nas pr≤ximas
  3082.   vers⌡es.  Os HOWTOs mencionados aqui geralmente sπo distribuφdos nos
  3083.   CDs de instalaτπo e todas as distribuiτ⌡es possuem pelo menos alguns
  3084.   deles em pacotes prontos para instalar.  Na Slackwre esses pacotes sπo
  3085.   os da sΘrie F e os documentos ficam instalados no diret≤rio
  3086.   /usr/doc/faq/howto e na Debian o diret≤rio Θ /usr/doc/HOWTO. Eles
  3087.   tambΘm podem ser obtidos via WWW em
  3088.   <http://metalab.unc.edu/LDP/HOWTO/>.
  3089.  
  3090.  
  3091.      [BAL97] BALSA, AndrΘ D. Linux and X11 internationalization
  3092.         Disponφvel via WWW em
  3093.         <http://wauug.erols.com/~balsa/linux/deadkeys/>
  3094.  
  3095.         Uma discussπo sobre o problema da acentuaτπo no X. TambΘm contΘm
  3096.         referΩncias para outros documentos que tratam de
  3097.         internacionalizaτπo.
  3098.  
  3099.      [BRO98] Brower Andries. The Linux Keyboard and Console HOWTO
  3100.         Disponφvel via WWW em
  3101.         <http://metalab.unc.edu/LDP/HOWTO/Keyboard-and-Console-
  3102.         HOWTO.html>.
  3103.         Descreve o tratamento teclado e console no Linux (kernel versπo
  3104.         2.0) e tem vßrias referΩncias ao X. Leitura obrigat≤ria para
  3105.         quem quer entender a base do assunto.
  3106.  
  3107.      [GET94] Gettys, James et al. Xlib - C Language X Interface
  3108.         Cambridge, X Consortium, Inc., 1994. 473p.
  3109.  
  3110.         ReferΩncia definitiva sobre programaτπo com Xlib.
  3111.  
  3112.      [JON89] Jones, Oliver. Introduction to the X Window System
  3113.         Englewood Cliffs, Prentice Hall, 1990.
  3114.  
  3115.         Um livro bastante antigo, mas contendo uma excelente e didßtica
  3116.         introduτπo ao X e α programaτπo com Xlib.
  3117.  
  3118.      [McC94] McCormack, Joel et al.X Toolkit Intrinsics - C Language
  3119.         Interface
  3120.         Digital Equipment Corporation/X Consortium, 1994.
  3121.  
  3122.         A referΩncia bßsica para programadores interessados em usar Xt.
  3123.  
  3124.      [OSS92] Ossana, Joseph & Kernighan, Brian. Troff user's manual
  3125.         Computer Science Technical Report No. 54. Murray Hill, AT&T Bell
  3126.         Laboratories, 1992.
  3127.  
  3128.         Descriτπo detalhada de como usar o Troff para formataτπo de
  3129.         documentos.
  3130.  
  3131.      [KER82] Kernighan, Brian. A Typesetter-independent TROFF
  3132.         Murray Hill, AT&T Bell Laboratories, 1982.
  3133.  
  3134.         O artigo de um dos pais do UNIX sobre o Troff.
  3135.  
  3136.      [QUI98] Quinot, Thomas. Dead keys under X11
  3137.         Disponφvel via WWW em
  3138.         <http://www.fdn.fr/~tquinot/index.en.html>
  3139.  
  3140.         A versπo em inglΩs do artigo sobre a modificaτπo da Xlib para
  3141.         dar suporte α acentuaτπo independente da aplicaτπo.
  3142.  
  3143.      [RAY98] Raymond, Eric S. The Linux XFree86 HOWTO
  3144.         Disponφvel via WWW em
  3145.         <http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html>.
  3146.  
  3147.         Descreve como obter, instalar e configurar o XFree86. Todas as
  3148.         distribuiτ⌡es de Linux jß vΩm com pacotes do XFree86 prontos
  3149.         para instalar, mas as informaτ⌡es sobre configuraτπo podem ser
  3150.         muito ·teis.
  3151.  
  3152.      [SCH86] Scheifler, Robert; Gettys, James. The X Window System
  3153.         ACM Transactions on Graphics, New York, ACM, 5 (2): 79-109,
  3154.         april, 1986.
  3155.  
  3156.         O artigo seminal de Scheifler e Gettys descrevendo o X Window
  3157.         System.
  3158.  
  3159.      [SUN90a] Sun Microsystems. Using NROFF & TROFF.
  3160.         Sun Microsystems, 1990.
  3161.  
  3162.         Parte da documentaτπo que acompanhava as estaτ⌡es de trabalho
  3163.         Sun« e o sistema SunOS«, no tempo em que os fabricantes de
  3164.         computadores distribuiam documentaτπo de verdade.
  3165.  
  3166.      [SUN90b] Sun Microsystems. Formatting documents
  3167.         Sun Microsystems, 1990.
  3168.  
  3169.         Veja o φtem anterior.
  3170.  
  3171.   Arquivos cuja leitura pode ser ·til:
  3172.  
  3173.  
  3174.      /usr/src/linux/Documentation/unicode.txt
  3175.         Explica como ativar os diversos tipos de fontes no console.
  3176.         TambΘm explica onde obter fontes para o alfabeto Klingon, o que
  3177.         pode ser muito ·til se o leitor for um habitante daquele ImpΘrio
  3178.         ou admirador de Jornada nas Estrelas.  Depois das recentes
  3179.         aventuras espaciais do Linux, nπo duvido de mais nada...
  3180.  
  3181.         A respeito deste assunto Θ de fundamental importΓncia saber que,
  3182.         segundo nosso consultor interestrelar Klaus Steding-Jessen,
  3183.         ``Klingon Θ o nome da raτa e do seu idioma.  Kling Θ o nome do
  3184.         planeta.  Mas note que o ImpΘrio Klingon Θ formado nπo apenas
  3185.         por esse planeta, mas por vßrias col⌠nias, teoricamente todas
  3186.         falando Klingon''. Tenho certeza de que sua vida nunca mais serß
  3187.         a mesma depois de saber disto.
  3188.  
  3189.      /usr/src/linux/include/linux/keyboard.h
  3190.         ContΘm as definiτ⌡es de constantes, funτ⌡es e macros utilizadas
  3191.         por programas que fazem tratamento de teclado sob Linux.
  3192.         Normalmente esse arquivo Θ instalado com o pacote que contΘm o
  3193.         c≤digo fonte do kernel. As distribuiτ⌡es geralmente possuem um
  3194.         pacote apenas com os arquivos include e outros com o resto dos
  3195.         programas-fonte do kernel.
  3196.  
  3197.      /usr/X11R6/include/X11/keysymdef.h
  3198.         ContΘm as definiτ⌡es de constantes, funτ⌡es e macros utilizadas
  3199.         por programas que fazem tratamento de teclado sob o X Window
  3200.         System.  Normalmente esse arquivo Θ instalado com o pacote que
  3201.         contΘm as bibliotecas de desenvolvimento de aplicaτ⌡es para X.
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.