TeX
O TeX é um sistema de tipográfico produzido (desenhado e escrito) principalmente por Donald Knuth[1] e lançado em 1978, junto com a linguagem computacional para a descrição de fontes Metafont e a família de tipos de letras "Computer Modern"; o TeX foi projetado tendo em vista dois objetivos principais: permitir que qualquer pessoa produza livros de alta qualidade com o mínimo esforço e fornecer um sistema que produza exatamente os mesmos resultados em todos os computadores em qualquer momento.[2] O TeX é um software livre, o que o torna mais acessível a um número maior de pessoas.
O TeX é uma alternativa conhecida para se digitar fórmulas matemáticas complexas, apontada como um dos sistemas de tipografia mais sofisticados do mundo.[3] O TeX é popular na academia, especialmente em matemática, ciências da computação, economia, engenharia, física, estatística e psicologia quantitativa. O TeX tem desbancado o Unix Troff, outro sistema de formatação usado em muitas instalações Unix. O TeX também é usado para muitas outras tarefas de tipografia, especialmente na forma de LaTeX, ConTeXt, entre outros pacotes. O MIME Type amplamente usado para TeX is application/x-tex
. No sistema de tipografia, seu nome é sintetizado como TeX.
História
[editar | editar código-fonte]Quando o primeiro volume de The Art of Computer Programming de Donald Knuth foi publicado em 1968,[4] o livro tinha sido tipografado com uma composição de metal quente da Monotype Corporation. Este método datado do século XIX tinha um bom estilo clássico, que agradava Knuth. Quando a segunda edição foi publicada em 1976, todo o trabalho precisou ser tipografado novamente porque a tecnologia da Monotype Corporation tinha sido substituída pela fotocomposição e as fontes originais não estavam mais disponíveis.[5] Quando Knuth recebeu as provas da nova versão em 30 de março de 1977, ele as achou terríveis.[6] Naquela época, Knuth viu pela primeira vez a saída de um sistema de tipografia digital de alta qualidade e se interessou pela tipografia digital. O desapontamento com as provas deram a Knuth a motivação final para resolver o problema de uma vez por todas, com o desenvolvimento do seu próprio sistema de tipografia. Em 13 de maio de 1977, ele escreveu um memorando para si mesmo descrevendo as características básicas do TeX.[7]
Knuth planejou terminar o memorando em seu sabático em 1978, mas a linguagem ficou pronta em 1989, mais de dez anos depois. Guy Steele estava em Stanford durante o verão norte-americano de 1978, quando Knuth estava desenvolvendo a primeira versão do TeX. Quando Steele retornou para Massachusetts Institute of Technology no outono do mesmo ano, ele reescreveu a entrada / saída do TeX para ser executado no sistema operacional Incompatible Timesharing System (ITS). A primeira versão do TeX foi escrita na linguagem de programação SAIL para ser executado em um PDP-10, no sistema operacional de Stanford WAITS. Para as últimas versões do TeX, Knuth inventou o conceito de literate programming, uma forma de produzir código-fonte compilável e documentação tipografada em TeX a partir do mesmo arquivo original. A linguagem utilizada é denominada WEB e produz programas em DEC PDP-10 Pascal.
Uma nova versão do TeX, reescrita a partir do zero e chamada de TeX82, foi lançada em 1982. Entre outras mudanças, o algoritmo de hifenização original foi substituído por um novo algoritmo escrito por Frank Liang. O TeX82 também usa aritmética de ponto fixo em vez de ponto flutuante para garantir a reprodutibilidade dos resultados em diferentes hardwares[8] e inclui um programa de linguagem Turing completo depois do lobby intenso de Steele.[9] Em 1989, Knuth lançou novas versões do TeX e do METAFONT.[10] Apesar do desejo de manter estável o TeX, Knuth percebeu que 128 diferentes caracteres para a entrada de texto não eram suficientes para acomodar línguas estrangeiras. Então, a principal mudança na versão 3.0 do TeX é a capacidade de trabalhar com entradas 8-bit, permitindo 256 diferentes caracteres na entrada de texto.
Desde a versão 3.0, o TeX tem usado uma versão idiossincrática de um sistema numérico, em que atualizações têm sido indicadas pela adição de um dígito extra no final do decimal. Então, o número da versão se aproxima assintoticamente de . Isto é reflexo do fato que o TeX agora é muito estável (apenas pequenas atualizações são antecipadas). A versão atual do TeX é 3.14159265, tendo sido atualizada pela última vez em 12 de janeiro de 2014.[11] O design foi congelado depois da versão 3.0, sem a adição de novos recursos ou alterações fundamentais. Portanto, as versões mais recentes conterão somente correções de bugs.[12] Da mesma forma, versões de METAFONT depois da versão 2,0 abordam assintoticamente (mudanças similares serão aplicadas após o falecimento de Knuth).
Uma vez que o código-fonte do TeX está em domínio público, outros programas podem e são explicitamente encorajados a melhorar o sistema. Entretanto, os programas são obrigados a usar outro nome para distribuir o TeX modificado, o que significa que o código-fonte pode evoluir continuadamente. Por exemplo, o projeto Omega foi desenvolvido depois de 1991 principalmente para melhorar a capacidade tipográfica multilíngua do TeX. Knuth criou versões modificadas não oficiais como TeX-XeT, que permite o usuário misturar textos escritos em sistemas de escrita da esquerda para a direita ou da direita para a esquerda no mesmo documento.[13]
Sistema de tipografia
[editar | editar código-fonte]Os comandos do TeX comumente começam com uma barra inversa e são agrupados com colchetes. Praticamente todas as propriedades sintáticas do TeX podem ser modificadas rapidamente, o que torna a entrada do TeX difícil de ser analisada. O TeX é uma linguagem baseada em macros e tokens: muitos comandos, incluindo a maioria dos definidos pelo usuário, são expandidos rapidamente até que permaneçam apenas tokens não expansíveis, que são então executados. A expansão em si é praticamente livre de efeitos colaterais. A recursão de cauda de macros não tem memória e as construções if-then-else estão disponíveis. Isto faz do TeX uma linguagem Turing completa mesmo em nível de expansão.[14] O sistema pode ser dividido em quatro estágios.
No primeiro estágio, os caracteres são lidos a partir de um arquivo de entrada e atribuídos a um código de categoria (às vezes chamado de catcode, para abreviar). As combinações de barras invertidas (caractere de categoria zero) seguidas por letras (caracteres de categoria 11) ou um único outro caractere são substituídos por um token de sequência de controle. Este estágio é como uma análise lexical, embora não forme números a partir de dígito. No segundo estágio, as sequências de controle expansíveis (como condicionais de macros) são substituídas por seu texto de substituição. No terceiro estágio, há o fluxo de caracteres (incluindo caracteres com significado especial) e sequências de controle não expansíveis (normalmente comandos de atribuição ou comandos visuais). Neste estágio os caracteres são montados em um parágrafo. O algoritmo de quebra de parágrafo do TeX funciona otimizando pontos de interrupção em todo o parágrafo. No quarto estágio, a lista vertical de linhas e e outros materiais em páginas são quebrados.
O TeX tem conhecimento preciso do tamanho de todos os caracteres e símbolos. Usando esta informação, calcula a disposição ideal de letras por linha e linhas por página. Então, produz um arquivo DeVice Independent (DVI) com as localizações finais de todos os caracteres. O sistema base do TeX compreende cerca de 300 comandos, chamados de primitives.[15] Estes comandos de baixo nível são raramente usados diretamente pelos usuários e a maioria das funcionalidades é fornecida por formatos de arquivos (imagens de memória predispostas do TeX depois do carregamento de grandes coleções de macro). O formato padrão original de Knuth, que adiciona cerca de 600 comandos, é o Plain TeX.[16] O formato mais usado é o LaTeX, desenvolvido originalmente por Leslie Lamport, que incorpora estilos de documentos para livros, cartas, slides, entre outros, e adiciona suporte para referência e numeração automática de seções e equações. Outro formato amplamente utilizado AMS-TeX é produzido pela American Mathematical Society e fornece muitos comandos mais fáceis de usar, que podem ser alterados por diários para se adequarem ao estilo de diferentes publicações. A maioria dos recursos do AMS-TeX pode ser usada no LaTeX por meio de pacotes AMS. Isto é então referido como AMS-LaTeX. Outros formatos incluem ConTeXt, usado principalmente para editoração e redação eletrônica, sobretudo por Hans Hagen na Pragma.
Funcionamento
[editar | editar código-fonte]Um exemplo de Programa Olá Mundo em TeX é:
Hello, World
\bye % marks the end of the file; not shown in the final output
Isto pode estar em um arquivo myfile.tex, na medida em que .tex é uma extensão de arquivo comum em arquivos TeX. Por padrão, tudo que segue um sinal de porcentagem em uma linha é um comentário, ignorado pelo TeX. Executar TeX neste arquivo (por exemplo, digitando tex myfile.tex em um interpretador de linha de comando ou chamando-o a partir de uma interface gráfica de usuário) criará um arquivo de saída chamado de myfile.dvi, representando o conteúdo da página em um formato DVI. Então, um arquivo DVI pode ser visto na tela ou convertido em um formato adequado para qualquer uma das várias impressoras para as quais existia um driver de dispositivo (o suporte à impressora geralmente não era um recurso dos sistemas operacionais no momento em que o TeX foi criado). Knuth disse que não há nada inerente no TeX que exija DVI como formato de saída. Todas as versões posteriores do TeX, nomeadamente pdfTeX, XeTeX e LuaTeX, tinham suporte de saída diretamente para PDF.
Exemplo matemático
[editar | editar código-fonte]
O TeX fornece uma sintaxe de texto diferente, especificamente para fórmulas matemáticas. Por exemplo, a fórmula quadrática (que é a solução da equação quadrática) aparece como:
Marcação | Renderiza como |
---|---|
|
|
A fórmula é impressa de maneira que uma pessoa possa escrever à mão ou tipografar a equação. Em um documento, a entrada no modo de matemática é feita começando com um símbolo $, depois inserindo uma fórmula na sintaxe TeX e encerrando novamente com outro símbolo $. Em tom de brincadeira, Knuth explicou que ele escolheu o cifrão para indicar o início e fim do modo matemático no TeX, porque tipografar matemática deveria ser tradicionalmente caro. Display mathematics (matemática apresentada centrada em uma nova linha) é semelhante, mas usa dois símbolos ($$) em vez de um único símbolo ($). Por exemplo, o caso acima com a fórmula quadrática:
Marcação | Renderiza como |
---|---|
|
|
Uso do TeX
[editar | editar código-fonte]Em várias áreas técnicas, em particular nas ciências da computação, na matemática, na engenharia e na física, o TeX se tornou fundamental. Milhares de livros são publicados usando TeX, incluindo livros de editoras como Addison-Wesley, Cambridge University Press, Elsevier, Oxford University Press e Springer. Várias publicações também são produzidas utilizando TeX ou LaTeX, permitindo que os autores submetam seus manuscritos em TeX (embora publicações de outras áreas como dicionários ou conteúdos jurídicos tenham sido produzidas utilizando o TeX, elas não fizeram tanto sucesso quanto as publicação das áreas mais técnicas porque o TeX foi desenhado primeiramente para a matemática).[17] Quando projetou o TeX, Knuth não acreditava que um único sistema de tipografia poderia atender a todas as necessidades. Em vez disto, ele inseriu vários ganchos dentro do programa para que fosse possível produzir extensões e divulgar o código-fonte, esperando que editores criassem versões adaptadas às suas necessidades. Emboras algumas extensões tenham sido desenvolvidas (inclusive, algumas pelo próprio Knuth[18]), a maioria das pessoas estendeu o TeX apenas usando macros e o TeX continuou a ser um sistema associado a uma tipografia técnica.[19][20]
É possível usar o TeX para gerar automaticamente layout sofisticado para dados XML. As diferenças de sintaxe entre as duas linguagens podem ser superadas com a ajuda do TeXML. No contexto de publicações XML, o TeX então pode ser considerado uma alternativa ao XSL-FO. O TeX permitiu que artigos científicos em disciplinas matemáticas fossem reduzidos a arquivos relativamente pequenos e trocados no início da Internet e da World Wide Web mesmo quando o envio de arquivos grandes era difícil. Isto abriu caminho para a criação de repositórios de artigos científicos como arXiv, por meio dos quais os trabalhos podiam ser publicados com um editor intermediário.[21] As fórmulas em TeX podem ser inseridas em páginas MediaWiki usando a tag <math>
.
Pronúncia e ortografia
[editar | editar código-fonte]O nome TeX corresponde a /tɛx/, com consoante final de Bach.[22] As letras do nome representam as letras gregas maiúsculas tau, epsilon e chi, uma vez que TeX é uma abreviatura de τέχνη (ΤΕΧΝΗ - technē), que significa arte e ofício em grego e também é raiz da palavra technical. Os falantes de inglês muitas vezes pronunciam /tɛk/, como a primeira sílaba de technical. Knuth instrui que a letra E ficasse abaixo da linha de base com espaçamento reduzido entre as letras. Isto é feito, como menciona Knuth em seu TeXbook, para distinguir o TeX de outros sistemas como TEX, o processador Text EXecutive (desenvolvido pela Honeywell Information Systems).[23] Os fãs gostam de criar nomes a partir da palavra TeX como TeXnician (usuário do software TeX), TeXhacker (programador TeX), TeXmaster (programador TeX competente), TeXhax e TeXnique.[24]
Comunidade
[editar | editar código-fonte]As entidades notáveis na comunidade TeX incluem o TeX Users Group, que publica TUGboat e The PracTeX Journal, cobrindo uma ampla variedade de tópicos de tipografia digital relevantes para TeX. O Deutschsprachige Anwendervereinigung TeX é um grande grupo de usuários na Alemanha. O grupo de usuários de TeX fundado em 1980 para fins educacionais e científicos fornece uma organização para aqueles que têm interesse em tipografia e design de fontes e são usuários do sistema de tipografia inventado por Knuth. O TeX Users Group representa os interesses dos usuários TeX em todo o mundo. O TeX Users Group publica a revista TUGboat três vezes por ano. Tex.stackexchange.com é um site de perguntas e respostas para usuários TeX novos e experientes.
Ver também
[editar | editar código-fonte]Referências
- ↑ «Per Bothner (assistant of Knuth) discusses authorship».
Knuth definitely wrote most of the code himself, at least for the Metafont re-write, for which I have pe[r]sonal knowledge. However, some of his students (such as Michael Plass and John Hobby) did work on the algorithms used in TeX and Metafont.
- ↑ Gaudeul, Alexia (27 de março de 2006). «Do Open Source Developers Respond to Competition?: The (La)TeX Case Study». SSRN 908946
- ↑ Yannis Haralambous. Fonts & Encodings (Translated by P. Scott Horne). Beijing; Sebastopol, Calif: O’Reilly Media, 2007, pp. 235.
- ↑ Knuth, Donald E. «Less brief biography». Don Knuth's Home Page. Consultado em 9 de janeiro de 2017
- ↑ Knuth, Donald Ervin, «1. Commemorative lecture for the Kyoto Prize, Kyoto, 1996», Digital Typography
- ↑ Digital Typography, p. 5. "I had spent 15 years writing those books, but if they were going to look awful I didn't want to write any more."
- ↑ Knuth, Donald Ervin, TEXDR.AFT[ligação inativa]
- ↑ Knuth and Plass, p. 144
- ↑ Donald E. Knuth, Knuth meets NTG members, NTG: MAPS. 16 (1996), 38–49. Reprinted as Questions and Answers, III, chapter 33 of Digital Typography, p. 648.
- ↑ Donald E. Knuth. The New Versions of TeX and METAFONT, TUGboat 10 (1989), 325–328; 11 (1990), 12. Reprinted as chapter 29 of Digital Typography.
- ↑ «TeX 14 release». Consultado em 20 de janeiro de 2014
- ↑ Donald E. Knuth. The future of TeX and METAFONT, NTG journal MAPS (1990), 489. Reprinted as chapter 30 of Digital Typography, p. 571.
- ↑ Donald E. Knuth and Pierre MacKay. Mixing Right-to-Left Texts with Left-to-Right Texts, TUGboat 8 (1987), 14–25. Reprinted as chapter 4 of Digital Typography.
- ↑ Jeffrey, Alan (1990), «Lists in TeX's Mouth» (PDF), TUGboat, 11 (2): 237–45
- ↑ Knuth 1984, p. 9.
- ↑ Plain TeX (source code), CTAN.
- ↑ Beebe, p. 10.
- ↑ Knuth, Donald Ervin; MacKay, Pierre (1987), «Mixing Right-to-Left Texts with Left-to-Right Texts» (PDF), TUGboat, 8: 14–25. Reprinted as «Chapter 4», Digital Typography
- ↑ Knuth, Donald Ervin (1996), «Questions and Answers I», TUGboat, 17: 7–22. Reprinted as «Chapter 31», Digital Typography, p. 598
- ↑ Knuth, Donald Ervin (1996), «Questions and Answers II», TUGboat, 17: 355–67. Reprinted as «Chapter 32», Digital Typography, pp. 616–17
- ↑ O'Connell, Heath (2000). «Physicists Thriving with Paperless Publishing». arXiv:physics/0007040
- ↑ Donald E. Knuth, The TeXbook, Ch. 1: The Name of the Game, p. 1.
- ↑ Donald E. Knuth. The TeX Logo in Various Fonts, TUGboat 7 (1986), 101. Reprinted as chapter 6 of Digital Typography.
- ↑ «The Jargon File—TeX». Consultado em 23 de julho de 2016
Notas
[editar | editar código-fonte]- Este artigo foi originalmente baseado em material do Free On-line Dictionary of Computing que é licenciado sob a GFDL.
- Beebe, Nelson HF (2004), «25 Years of TeX and METAFONT: Looking Back and Looking Forward» (PDF), TUGboat, 25: 7–30.
- Knuth, Donald Ervin (1984), The TeXbook, ISBN 0-201-13448-9, Computers and Typesetting, A, Reading, MA: Addison-Wesley. The source code of the book in TeX (and a needed set of macros [1]) is available online on CTAN. It is provided only as an example and its use to prepare a book like The TeXbook is not allowed.
- ——— (1986), TeX: The Program, ISBN 0-201-13437-3, Computers and Typesetting, B, Reading, MA: Addison-Wesley. The full source code of TeX; also available on CTAN. Being written using literate programming, it contains plenty of human-readable documentation.
- ——— (1999), Digital Typography, ISBN 1-57586-010-4, Lecture notes (78), Center for the Study of Language and Information.
- ———; Plass, Michael F (1981), «Breaking Paragraphs Into Lines», Software: Practice and Experience, 11: 1119–84, doi:10.1002/spe.4380111102. Reprinted as «Chapter 3», Digital Typography, pp. 67–155.
- ———, Cópia arquivada (WEB) (source code), consultado em 18 de julho de 2017, cópia arquivada em
|arquivourl=
requer|arquivodata=
(ajuda) 🔗 contains extensive documentation about the algorithms used in TeX. - Lamport, Leslie (1994), LaTeX: A Document Preparation System, ISBN 0-201-52983-1 2nd ed. , Reading, MA: Addison-Wesley.
- Liang, Franklin Mark (agosto de 1983), Word Hy-phen-a-tion by Com-put-er (PhD thesis), Department of Computer Science, Stanford University.
- Salomon, David (1995), The Advanced TeXbook, ISBN 0-387-94556-3, Springer.
- Spivak, MD (1990), The Joy of TeX, ISBN 0-8218-2997-1 (reference) 2nd ed. , American Mathematical Society on AMS-TeX.
- Vulis, Michael (1992), Modern TeX and Its Applications, ISBN 0-8493-4431-X, CRC Press.
Ligações externas
[editar | editar código-fonte]- TeX Users' Group.
- TeX Users' Group, UK
- Knuth, Donald Ervin (1982), TeX82 (PDF) (documentation), Tug.
- Plain TeX Quick Reference (PDF), NMT.
- TeX (questions and answers), StackExchange.
- Welcome to the UK List of TeX Frequently Asked Questions on the Web, UK: List of TeX, consultado em 18 de julho de 2017, cópia arquivada em 5 de abril de 2004
- Eveson, Simon, An Introduction to Mathematical Document Production Using AmSLaTeX (PDF), ENG, UK: York.
- Knuth, Donald E, Oral history (interview), Minneapolis: Charles Babbage Institute, University of Minnesota. Knuth discusses software patenting, structured programming, collaboration and his development of TeX. The oral history discusses the writing of The Art of Computer Programming.
- Eijkhout, Victor. TeX by Topic
- TeX for the Impatient
- Walsh, Norman. Making TeX Work
- TeX Reference Manual via Google Book Search
- Knuth tells the story of TeX's creation link to the first clip in the series.
- Knuth lectures on TeX – Filmed in the 1980s, Stanford university.
- Knuth declares TeX obsolete, unveils successor at TUG 2010
- What’s new since TEX?
- A (La)TeX encyclopaedia
- TeX Resources on the Web
- Plain TeX
- What is TeX?
- Introdução ao LaTeX2e
- Curso de LaTeX
- Tutorial de Xy-pic (para exibir diagramas matemáticos em documentos TeX)
- Tutorial de Beamer (para criar apresentações dinâmicas usando TeX)