TeX

Da Wikipédia, a enciclopédia livre
Ir para a navegação Saltar para pesquisar

TeX
O logotipo TeX
Desenvolvedor(es)Donald Knuth
lançamento inicial1978 ; 44 anos atrás (1978)
Versão estável
3.141592653 / fevereiro de 2021 ; 1 ano atrás (2021-02)
Repositório
Escrito emWEB / Pascal
Sistema operacionalMultiplataforma
ModeloComposição
LicençaSoftware livre permissivo
Local na rede Internettug .org
TeX
Extensão de nome de arquivo
.tex
Tipo de mídia da Internet
application/x-tex [a]
lançamento inicial1978 ; 44 anos atrás (1978)
Tipo de formatoFormato de arquivo de documento

TeX ( / t ɛ x / , veja abaixo ), estilizado dentro do sistema como T e X , é um sistema de composição que foi projetado e escrito por Donald Knuth [1] e lançado pela primeira vez em 1978. TeX é um meio popular de composição tipográfica complexa fórmulas matemáticas ; tem sido apontado como um dos sistemas tipográficos digitais mais sofisticados. [2]

TeX é amplamente utilizado na academia , especialmente em matemática , ciência da computação , economia , ciência política , engenharia , linguística , física , estatística e psicologia quantitativa . Ele há muito deslocou o Unix troff , [b] o sistema de formatação anteriormente favorecido, na maioria das instalações do Unix . Ele também é usado para muitas outras tarefas de composição, especialmente na forma de LaTeX , ConTeXt e outros pacotes de macros.

O TeX foi projetado com dois objetivos principais em mente: permitir que qualquer pessoa produza livros de alta qualidade com o mínimo de esforço e fornecer um sistema que dê exatamente os mesmos resultados em todos os computadores, a qualquer momento (junto com a linguagem Metafont para descrição da fonte e a família de tipos de letra Computer Modern ). [3] O TeX é um software livre , o que o tornou acessível a uma ampla gama de usuários.

História

Quando o primeiro volume em papel de The Art of Computer Programming , de Donald Knuth , foi publicado em 1968, [4] foi composto usando a composição de metal quente definida por uma máquina Monotype . Este método, que remonta ao século 19, produziu um "estilo clássico" apreciado por Knuth. [5] Quando a segunda edição foi publicada, em 1976, todo o livro teve que ser tipografado novamente porque a tecnologia Monotype havia sido amplamente substituída pela fotocomposição , e as fontes originais não estavam mais disponíveis. Quando Knuth recebeu as provas do novo livro em 30 de março de 1977, ele as achou inferiores.

Desapontado com as provas de galé da segunda edição do segundo volume, ele foi motivado a projetar seu próprio sistema de composição. Knuth viu pela primeira vez a saída de um sistema de composição digital de alta qualidade e se interessou pela tipografia digital. Em 13 de maio de 1977, ele escreveu um memorando para si mesmo descrevendo os recursos básicos do TeX. [6]

Ele planejava terminá-lo em seu ano sabático em 1978, mas como aconteceu, o idioma não estava " congelado " (pronto para uso) até 1989, mais de dez anos depois. Guy Steele estava em Stanford durante o verão de 1978, quando Knuth estava desenvolvendo sua primeira versão do TeX. Quando Steele retornou ao Massachusetts Institute of Technology naquele outono, ele reescreveu a entrada/saída ( I/O ) do TeX para rodar sob o sistema operacional Incompatible Timesharing System (ITS). A primeira versão do TeX, chamada TeX78, foi escrita na linguagem de programação SAIL para rodar em um PDP-10 sob o Stanford's WAITSsistema operacional.

WEB e programação alfabetizada

Para versões posteriores do TeX, Knuth inventou o conceito de programação alfabetizada , uma maneira de produzir código-fonte compilável e documentação reticulada em TeX a partir do mesmo arquivo original. A linguagem utilizada chama-se WEB e produz programas em DEC PDP-10 Pascal .

TeX82

TeX82, uma nova versão do TeX reescrita do zero, foi publicada 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 de computador, [7] e inclui uma linguagem de programação real, Turing-completa , seguindo intenso lobby de Guy Steele. [8] Em 1989, Donald Knuth lançou novas versões do TeX e Metafont . [9]Apesar de seu desejo de manter o programa estável, Knuth percebeu que 128 caracteres diferentes para a entrada de texto não eram suficientes para acomodar idiomas estrangeiros; a principal mudança na versão 3.0 do TeX (também chamada de TeX90) é assim a capacidade de trabalhar com entradas de 8 bits , permitindo 256 caracteres diferentes na entrada de texto.

Desde a versão 3, o TeX tem usado um sistema de numeração de versão idiossincrático , onde as atualizações são indicadas pela adição de um dígito extra no final do decimal, de modo que o número da versão se aproxime assintoticamente de π . Isso é um reflexo do fato de que o TeX agora é muito estável e apenas pequenas atualizações são antecipadas. A versão atual do TeX é 3.141592653; foi atualizado pela última vez em 2021. [10] O design foi congelado após a versão 3.0 e nenhum novo recurso ou alteração fundamental será adicionado, portanto, todas as versões mais recentes conterão apenas correções de bugs. [11]Embora o próprio Donald Knuth tenha sugerido algumas áreas nas quais o TeX poderia ter sido melhorado, ele indicou que acredita firmemente que ter um sistema inalterado que produzirá a mesma saída agora e no futuro é mais importante do que introduzir novos recursos. Por esse motivo, ele afirmou que a "mudança absolutamente final (a ser feita após minha morte)" será alterar o número da versão para π , momento em que todos os bugs restantes se tornarão recursos. [12] Da mesma forma, as versões do Metafont após 2.0 se aproximam assintoticamente de e (atualmente em 2,7182818), e uma mudança semelhante será aplicada após a morte de Knuth. [11]

Domínio público

Como o código-fonte do TeX é essencialmente de domínio público (veja abaixo), outros programadores podem (e explicitamente encorajados) a melhorar o sistema, mas são obrigados a usar outro nome para distribuir o TeX modificado, o que significa que o código-fonte pode ainda evoluir. Por exemplo, o projeto Omega foi desenvolvido após 1991, principalmente para aprimorar as habilidades de composição multilíngue do TeX. [13] Knuth criou versões modificadas "não oficiais", como TeX-XeT , que permite ao usuário misturar textos escritos em sistemas de escrita da esquerda para a direita e da direita para a esquerda no mesmo documento. [14]

Uso do TeX

Em vários campos técnicos, como ciência da computação, matemática, engenharia e física, o TeX se tornou um padrão de fato . Muitos milhares de livros foram publicados usando o TeX, incluindo livros publicados pela Addison-Wesley , Cambridge University Press , Elsevier , Oxford University Press e Springer . Numerosos periódicos nessas áreas são produzidos usando TeX ou LaTeX, permitindo que os autores enviem seus manuscritos brutos escritos em TeX. [15]Embora muitas publicações em outros campos, incluindo dicionários e publicações jurídicas, tenham sido produzidas usando o TeX, ele não teve tanto sucesso quanto nos campos mais técnicos, pois o TeX foi projetado principalmente para escrever matemática.

Quando projetou o TeX, Donald Knuth não acreditava que um único sistema tipográfico atenderia às necessidades de todos; em vez disso, ele projetou muitos ganchos dentro do programa para que fosse possível escrever extensões e liberou o código-fonte, esperando que os editores projetassem versões sob medida para suas próprias necessidades. Embora tais extensões tenham sido criadas (incluindo algumas pelo próprio Knuth), [14] a maioria das pessoas estendeu o TeX usando apenas macros e ele permaneceu um sistema associado à composição técnica. [16] [17]

Sistema de composição

Os comandos do TeX geralmente começam com uma barra invertida e são agrupados com chaves . Quase todas as propriedades sintáticas do TeX podem ser alteradas em tempo real, o que torna a entrada do TeX difícil de analisar por qualquer coisa que não seja o próprio TeX. TeX é uma linguagem baseada em macros e tokens : muitos comandos, incluindo a maioria dos definidos pelo usuário, são expandidos dinamicamente até que restem 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 ocupa memória e as construções if-then-else estão disponíveis. Isso torna o TeX uma linguagem Turing-completa mesmo no nível de expansão. [18]O sistema pode ser dividido em quatro níveis: no primeiro, os caracteres são lidos do arquivo de entrada e atribuídos a um código de categoria (às vezes chamado de "catcode", abreviado). Combinações de uma barra invertida (na verdade, qualquer caractere da categoria zero) seguida por letras (caracteres da categoria 11) ou um único outro caractere são substituídos por um token de sequência de controle. Nesse sentido, essa etapa é como a análise lexical, embora não forme números a partir de dígitos. Na próxima etapa, as sequências de controle expansíveis (como condicionais ou macros definidas) são substituídas por seu texto de substituição. A entrada para o terceiro estágio é então um fluxo de caracteres (incluindo aqueles com significado especial) e sequências de controle não expansíveis (geralmente atribuições e comandos visuais). Aqui, os caracteres são reunidos em um parágrafo, e o TeX' O algoritmo de quebra de parágrafo funciona otimizando os pontos de interrupção em todo o parágrafo. O quarto estágio divide a lista vertical de linhas e outros materiais em páginas.

O sistema TeX tem conhecimento preciso dos tamanhos de todos os caracteres e símbolos e, usando essas informações, calcula o arranjo ideal de letras por linha e linhas por página. Em seguida, ele produz um arquivo DVI ("DeVice Independent") contendo as localizações finais de todos os caracteres. Este arquivo DVI pode ser impresso diretamente com um driver de impressora apropriado ou pode ser convertido para outros formatos. Hoje em dia, o pdfTeX é frequentemente usado, o que ignora completamente a geração DVI. [19] O sistema TeX básico compreende cerca de 300 comandos, chamados primitivos . [20]Esses comandos de baixo nível raramente são usados ​​diretamente pelos usuários, e a maioria das funcionalidades é fornecida por arquivos de formato (imagens de memória pré-despejadas do TeX após o carregamento de grandes coleções de macros). O formato padrão original de Knuth, que adiciona cerca de 600 comandos, é Plain TeX. [21] O formato mais utilizado é o LaTeX , originalmente desenvolvido por Leslie Lamport , que incorpora estilos de documentos para livros, cartas, slides, etc., 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 Societye fornece muito mais comandos amigáveis, que podem ser alterados pelos diários para se adequarem ao estilo da casa. A maioria dos recursos do AMS-TeX pode ser usada no LaTeX usando os "pacotes AMS" (por exemplo, amsmath, amssymb) e as "classes de documentos AMS" (por exemplo, amsart, amsbook). Isso é então referido como AMS-LaTeX . [22] Outros formatos incluem o ConTeXt , usado principalmente para editoração eletrônica e escrito principalmente por Hans Hagen na Pragma .

Como é executado

Uma página de amostra produzida usando o TeX com as macros do LaTeX

Um exemplo de programa Hello world em TeX simples é:

Olá, World
 \bye           % marca o fim do arquivo; não mostrado na saída final

Isso pode estar em um arquivo myfile.tex , pois .tex é uma extensão de arquivo comum para arquivos TeX simples. Por padrão, tudo o que segue um sinal de porcentagem em uma linha é um comentário, ignorado pelo TeX. A execução do TeX neste arquivo (por exemplo, digitando tex myfile.texum interpretador de linha de comando ou chamando-o de uma interface gráfica de usuário ) criará um arquivo de saída chamado myfile.dvi , representando o conteúdo da página em um dispositivo euformato independente (DVI). Um arquivo DVI pode ser visualizado 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 do sistema operacional no momento em que o TeX foi criado). Knuth disse que não há nada inerente ao TeX que exija DVI como formato de saída, e versões posteriores do TeX, notadamente pdfTeX, XeTeX e LuaTeX, suportam saída diretamente para PDF .

Exemplo matemático

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 quadrática é $ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $ \bye    

A fórmula é impressa de uma forma que uma pessoa escreveria à mão ou comporia a equação. Em um documento, a entrada no modo matemático é feita começando com um símbolo $, depois inserindo uma fórmula na sintaxe do TeX e fechando novamente com outra do mesmo símbolo. Knuth explicou em tom de brincadeira que ele escolheu o cifrão para indicar o início e o fim do modo matemático em TeX simples porque a matemática tipográfica era tradicionalmente considerada cara. [23] A matemática de exibição (matemática apresentada centrada em uma nova linha) é semelhante, mas usa $$ em vez de um único símbolo $. Por exemplo, o acima com a fórmula quadrática em matemática de exibição:

Marcação Renderiza como
A fórmula quadrática é $$ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $$ \bye    

(Os exemplos aqui não são realmente renderizados com TeX; espaçamento, tamanhos de caracteres e tudo mais podem ser diferentes.)

Aspectos

O software TeX incorpora vários aspectos que não estavam disponíveis, ou eram de qualidade inferior, em outros programas de composição na época em que o TeX foi lançado. Algumas das inovações são baseadas em algoritmos interessantes e levaram a várias teses para os alunos de Knuth. Embora algumas dessas descobertas já tenham sido incorporadas a outros programas de composição, outras, como as regras de espaçamento matemático, ainda são únicas.

Espaçamento matemático

Composição de texto matemático usando TeX e a fonte AMS Euler

Como o objetivo principal da linguagem TeX é a composição tipográfica de alta qualidade para editores de livros, Knuth deu muita atenção às regras de espaçamento para fórmulas matemáticas. [24] [25] Ele tomou três corpos de trabalho que ele considerava padrões de excelência para a tipografia matemática: os livros compostos pela Addison-Wesley Publishing House (a editora de The Art of Computer Programming ) sob a supervisão de Hans Wolf ; edições da revista matemática Acta Mathematica datadas por volta de 1910; e uma cópia de Indagationes Mathematicae , um holandêsrevista matemática. Knuth olhou atentamente para esses papéis impressos para separar e procurar um conjunto de regras para espaçamento. [26] Embora o TeX forneça algumas regras básicas e as ferramentas necessárias para especificar o espaçamento adequado, os parâmetros exatos dependem da fonte usada para compor a fórmula. Por exemplo, o espaçamento para as fontes Computer Modern de Knuth foi precisamente ajustado ao longo dos anos e agora está definido; mas quando outras fontes, como AMS Euler , foram usadas por Knuth pela primeira vez, novos parâmetros de espaçamento tiveram que ser definidos. [27]

A composição da matemática no TeX não é isenta de críticas, principalmente no que diz respeito aos detalhes técnicos das métricas de fonte, que foram projetadas em uma época em que uma atenção significativa foi dada aos requisitos de armazenamento. Isso resultou em alguns "hacks" sobrecarregando alguns campos, que por sua vez exigiram outros "hacks". Em um nível estético, a renderização de radicais também foi criticada. [28] A especificação de fonte matemática OpenType em grande parte empresta do TeX, mas tem alguns novos recursos/aprimoramentos. [29] [30] [31]

Hifenização e justificação

Em comparação com a tipografia manual, o problema da justificação é fácil de resolver com um sistema digital como o TeX, que, desde que tenham sido definidos bons pontos de quebra de linha, pode espalhar automaticamente os espaços entre as palavras para preencher a linha. O problema é, portanto, encontrar o conjunto de pontos de interrupção que dará o resultado visualmente mais agradável. Muitos algoritmos de quebra de linha usam uma abordagem de primeiro ajuste , onde os pontos de interrupção para cada linha são determinados um após o outro, e nenhum ponto de interrupção é alterado após ter sido escolhido. [32] Tal sistema não é capaz de definir um breakpoint dependendo do efeito que terá nas linhas seguintes. Em comparação, o ajuste totalalgoritmo de quebra de linha usado pelo TeX e desenvolvido por Donald Knuth e Michael Plass considera todos os pontos de quebra possíveis em um parágrafo e encontra a combinação de quebras de linha que produzirá o arranjo mais globalmente agradável.

Formalmente, o algoritmo define um valor chamado badness associado a cada possível quebra de linha; a maldade é aumentada se os espaços na linha devem esticar ou encolher muito para tornar a linha da largura correta. As penalidades são adicionadas se um ponto de interrupção for particularmente indesejável: por exemplo, se uma palavra precisar ser hifenizada , se duas linhas seguidas forem hifenizadas ou se uma linha muito solta for imediatamente seguida por uma linha muito apertada. O algoritmo encontrará então os pontos de interrupção que minimizarão a soma dos quadrados da maldade (incluindo penalidades) das linhas resultantes. Se o parágrafo contémpossíveis pontos de interrupção, o número de situações que devem ser avaliadas ingenuamente é. No entanto, usando o método de programação dinâmica , a complexidade do algoritmo pode ser reduzida a(veja a notação Big O ). Simplificações adicionais (por exemplo, não testar pontos de interrupção extremamente improváveis, como uma hifenização na primeira palavra de um parágrafo ou linhas muito cheias) levam a um algoritmo eficiente cujo tempo de execução é, Ondeé a largura de uma linha. Um algoritmo semelhante é usado para determinar a melhor maneira de quebrar parágrafos em duas páginas, a fim de evitar viúvas ou órfãs (linhas que aparecem sozinhas em uma página enquanto o restante do parágrafo está na página seguinte ou anterior). No entanto, em geral, uma tese de Michael Plass mostra como o problema de quebra de página pode ser NP-completo devido à complicação adicional de colocar figuras. [33] O algoritmo de quebra de linha do TeX foi adotado por vários outros programas, como o Adobe InDesign (um aplicativo de editoração eletrônica ) [34] e o GNU fmt Unix utilitário de linha de comando. [35]

Se nenhuma quebra de linha adequada for encontrada para uma linha, o sistema tentará hifenizar uma palavra. A versão original do TeX usava um algoritmo de hifenização baseado em um conjunto de regras para a remoção de prefixos e sufixos de palavras, e para decidir se deveria inserir uma quebra entre as duas consoantes em um padrão da forma vogalconsoanteconsoantevogal (o que é possível na maioria das vezes). [36] TeX82 introduziu um novo algoritmo de hifenização, projetado por Frank Liangem 1983, para atribuir prioridades aos pontos de interrupção em grupos de letras. Uma lista de padrões de hifenização é gerada automaticamente a partir de um corpus de palavras hifenizadas (uma lista de 50.000 palavras). Se o TeX precisar encontrar as posições de hifenização aceitáveis ​​na palavra enciclopédia , por exemplo, ele considerará todas as subpalavras da palavra estendida .enciclopédia. , onde . é um marcador especial para indicar o início ou o fim da palavra. A lista de subpalavras inclui todas as subpalavras de comprimento 1 ( . , e , n , c , y , etc.), de comprimento 2 ( .e , en , nc, etc.), etc., até a subpalavra de comprimento 14, que é a própria palavra, incluindo os marcadores. O TeX então examinará sua lista de padrões de hifenização e encontrará subpalavras para as quais calculou a conveniência da hifenização em cada posição. No caso da nossa palavra, 11 desses padrões podem ser combinados, a saber, 1 c 4 l 4 , 1 cy, 1 d 4 i 3 a, 4 edi, e 3 dia, 2 i 1 a, ope 5 d, 2 p 2 ed, 3 pedi, pedia 4 , y 1c. Para cada posição na palavra, o TeX calculará o valor máximo obtido entre todos os padrões correspondentes, resultando em en 1 cy 1 c 4 l 4 o 3 p 4 e 5 d 4 i 3 a 4 . Finalmente, as posições aceitáveis ​​são aquelas indicadas por um número ímpar , resultando nas hifenizações aceitáveis en-cy-clo-pe-di-a . Este sistema baseado em subpalavras permite a definição de padrões muito gerais (como 2 i 1a), com números indicativos baixos (seja ímpar ou par), que podem ser substituídos por padrões mais específicos (como 1 d 4 i 3 a) se necessário. Esses padrões encontram cerca de 90% dos hífens no dicionário original; mais importante, eles não inserem nenhum hífen falso. Além disso, uma lista de exceções (palavras para as quais os padrões não prevêem a hifenização correta) está incluída no formato Plain TeX; os adicionais podem ser especificados pelo usuário. [37] [ página necessária ] [38]

Metafonte

Metafont, não estritamente parte do TeX, é um sistema de descrição de fontes que permite ao designer descrever caracteres de forma algorítmica. Ele usa curvas de Bézier de uma maneira bastante padrão para gerar os caracteres reais a serem exibidos, mas Knuth dedica atenção substancial ao problema de rasterização em exibições de bitmap . Outra tese, de John Hobby, explora ainda mais esse problema de digitalizar "trajetórias de pincel". Este termo deriva do fato de que Metafont descreve os personagens como tendo sido desenhados por pincéis abstratos (e borrachas). Acredita-se comumente que o TeX é baseado em fontes bitmap, mas, na verdade, esses programas "não sabem" nada sobre as fontes que estão usando além de suas dimensões. É responsabilidade do driver de dispositivo manipular adequadamente fontes de outros tipos, incluindo PostScript Type 1 e TrueType. Computer Modern (comumente conhecido como "a fonte TeX") está disponível gratuitamente no formato Tipo 1, assim como as fontes matemáticas AMS. Usuários de sistemas TeX que produzem diretamente para PDF, como pdfTeX, XeTeX ou LuaTeX, geralmente nunca usam a saída Metafont.

Linguagem da macro

Os documentos TeX são escritos e programados usando uma linguagem de macro incomum. Em linhas gerais, a execução dessa macrolinguagem envolve etapas de expansão e execução que não interagem diretamente. A expansão inclui tanto a expansão literal das definições de macro quanto a ramificação condicional, e a execução envolve tarefas como definir variáveis/registros e o processo de composição de texto real de adicionar glifos a caixas.

A definição de uma macro não inclui apenas uma lista de comandos, mas também a sintaxe da chamada. Ele difere dos pré- processadores léxicos mais usados como M4 , pois o corpo de uma macro é tokenizado no momento da definição.

A linguagem macro TeX tem sido usada para escrever sistemas de produção de documentos maiores, principalmente incluindo LaTeX e ConTeXt.

Desenvolvimento

O código fonte original do software TeX atual está escrito em WEB , uma mistura de documentação escrita em TeX e um subconjunto Pascal para garantir legibilidade e portabilidade. Por exemplo, o TeX faz toda sua alocação dinâmica a partir de arrays de tamanho fixo e usa apenas aritmética de ponto fixo para seus cálculos internos. Como resultado, o TeX foi portado para quase todos os sistemas operacionais , geralmente usando o programa web2c para converter o código-fonte em C em vez de compilar diretamente o código Pascal. Knuth manteve um registro muito detalhado de todos os bugs que corrigiu e das mudanças que fez no programa desde 1982; a partir de 2021, a lista contém 440 entradas, sem incluir a modificação de versão que deve ser feita após sua morte como a alteração final no TeX. [39] [40] Knuth oferece prêmios monetários para pessoas que encontram e relatam um bug no TeX. O prêmio por bug começou em US$ 2,56 (um "dólar hexadecimal" [41] ) e dobrou a cada ano até ser congelado em seu valor atual de US$ 327,68. Knuth perdeu relativamente pouco dinheiro, pois houve muito poucos bugs reivindicados. Além disso, sabe-se que os destinatários enquadram seu cheque como prova de que encontraram um bug no TeX em vez de descontá-lo. [42] [43]

Devido aos golpistas encontrarem cópias digitalizadas de seus cheques na internet e usá-las para tentar drenar sua conta bancária, Knuth não envia mais cheques reais, mas aqueles que enviam relatórios de bugs podem obter crédito no The Bank of San Serriffe . [44]

Distribuições e extensões

O TeX geralmente é fornecido na forma de um pacote fácil de instalar do próprio TeX junto com o Metafont e todas as fontes, formatos de documentos e utilitários necessários para usar o sistema de composição. Em sistemas compatíveis com UNIX, incluindo Linux e Apple macOS , o TeX é distribuído como parte da distribuição maior do TeX Live . (Antes do TeX Live, a distribuição teTeX era o padrão de fato em sistemas compatíveis com UNIX.) No Microsoft Windows , existe a distribuição MiKTeX (aprimorada pelo proTeXt ) e a versão Microsoft Windows do TeX Live.

Vários sistemas de processamento de documentos são baseados em TeX, notadamente jadeTeX , que usa TeX como backend para impressão do James Clark 's DSSSL Engine , o sistema de publicação Arbortext , e Texinfo , o sistema de processamento de documentação GNU. TeX tem sido o pacote de composição oficial para o sistema operacional GNU desde 1984.

Existem inúmeras extensões e programas complementares para TeX, entre eles BibTeX para bibliografias (distribuído com LaTeX), pdfTeX, um mecanismo compatível com TeX que pode produzir diretamente saída PDF (além de continuar a suportar a saída DVI original), XeTeX , um TeX compatível com Unicode e OpenType , e LuaTeX , uma extensão do TeX com reconhecimento de Unicode que inclui um tempo de execução Lua com extensos ganchos nas rotinas e algoritmos subjacentes do TeX. A maioria das extensões do TeX está disponível gratuitamente na CTAN , a Comprehensive TeX Archive Network.

Editores

Há uma variedade de editores projetados para trabalhar com o TeX :

  1. O editor de texto TeXmacs é um editor de texto científico WYSIWYG - WYSIWYM , inspirado no TeX e no Emacs . Ele usa as fontes de Knuth e pode gerar saída TeX.
  2. O Overleaf é um editor online parcial WYSIWYG que fornece uma solução baseada em nuvem para o TeX, juntamente com recursos adicionais na edição colaborativa em tempo real.
  3. LyX é um processador de documentos WYSIWYM que roda em uma variedade de plataformas, incluindo:
    1. Linux ,
    2. Microsoft Windows (versões mais recentes requerem Windows 2000 ou posterior)
    3. Apple Mac OS X (usando um front-end Qt não nativo ).
  4. TeXShop (para Mac OS X), TeXworks (para Linux, Mac OS X e Windows) e WinShell (para Windows) são ferramentas semelhantes e fornecem um ambiente de desenvolvimento integrado (IDE) para trabalhar com LaTeX ou TeX. Para o KDE /Qt, o Kile fornece tal IDE.
  5. Texmaker é o equivalente Pure Qt do Kile, com uma interface de usuário que é quase a mesma do Kile.
  6. TeXstudio é um fork de código aberto (2009) do Texmaker que oferece uma abordagem diferente para configurabilidade e recursos. Binários para download gratuito são fornecidos para Windows, Linux, Mac OS X, OS/2 e FreeBSD.
  7. O GNU Emacs possui vários pacotes internos e de terceiros com suporte para TeX, sendo o principal o AUCTeX .
  8. Código do Visual Studio . Uma extensão notável é o LaTeX Workshop
  9. Para o Vim , possíveis plugins incluem Vim-LaTeX Suite, [45] Automatic TeX [46] e TeX-9. [47]
  10. Para Apache OpenOffice e LibreOffice , as extensões iMath e TexMaths podem fornecer composição matemática TeX. [48] [49]
  11. Para MediaWiki , a extensão Math fornece composição matemática TeX, mas o código precisa ser cercado por <math>tag.

Licença

Donald Knuth indicou várias vezes [50] [51] [52] que o código fonte do TeX foi colocado em " domínio público ", e ele encoraja fortemente modificações ou experimentações com este código fonte. Em particular, uma vez que Knuth valoriza muito a reprodutibilidade da saída de todas as versões do TeX, qualquer versão alterada não deve ser chamada de TeX, ou qualquer coisa semelhante. Para impor esta regra, qualquer implementação do sistema deve passar por um conjunto de testes chamado teste TRIP [53] antes de poder ser chamado de TeX. A questão da licença é um pouco confusa pelas declarações incluídas no início do código fonte do TeX, [54]que indicam que "todos os direitos são reservados. A cópia deste arquivo é autorizada somente se ... você não fizer absolutamente nenhuma alteração em sua cópia". Esta restrição deve ser interpretada como uma proibição de alterar o código fonte desde que o arquivo seja chamado tex.web . A nota de direitos autorais no início de tex.web (e mf.web) foi alterada em 2021 para declarar isso explicitamente. Essa interpretação é confirmada posteriormente no código-fonte quando o teste TRIP é mencionado ("Se este programa for alterado, o sistema resultante não deve ser chamado de 'TeX ' "). [55] A American Mathematical Society tentou no início de 1980 reivindicar uma marca registrada para o TeX. Isso foi rejeitado porque na época "TEX"Honeywell para o sistema de processamento de texto " Text EXEcutive ". [ citação necessária ]

Publicação XML

É possível usar o TeX para geração automática de layout sofisticado para dados XML. As diferenças de sintaxe entre as duas linguagens de descrição podem ser superadas com a ajuda do TeXML . No contexto da publicação XML, o TeX pode assim ser considerado uma alternativa ao XSL-FO . O TeX permitiu que artigos científicos em disciplinas matemáticas fossem reduzidos a arquivos relativamente pequenos que pudessem ser renderizados do lado do cliente, permitindo que artigos científicos totalmente impressos fossem trocados pela Internet inicial e pela World Wide Web emergente, mesmo quando o envio de arquivos grandes era difícil. Isso abriu caminho para a criação de repositórios de artigos científicos como o arXiv , através dos quais os artigos poderiam ser 'publicados' sem um editor intermediário. [56]

Pronúncia e ortografia

O nome TeX é pretendido pelo seu desenvolvedor como / t ɛ x / , com a consoante final de loch ou Bach. [57] As letras do nome são destinadas a representar as letras maiúsculas gregas tau , epsilon e chi , já que TeX é uma abreviação de τέχνη ( ΤΕΧΝΗ technē ), grego para "arte" e "artesanato", que também é a palavra raiz de técnico . Os falantes de inglês muitas vezes pronunciam / t ɛ k / , como a primeira sílaba de técnica. Knuth instrui que seja digitado com o "E" abaixo da linha de base e espaçamento reduzido entre as letras. Isso é feito, como Knuth menciona em seu TeXbook , para distinguir o TeX de outros nomes de sistema, como TEX, o processador Text EXecutive (desenvolvido pela Honeywell Information Systems). [58] Os fãs gostam de proliferar nomes da palavra "TeX" - como TeXnician (usuário do software TeX), TeXhacker (programador TeX), TeXmaster (programador TeX competente), TeXhax e TeXnique . [59]

Comunidade

Logo do Grupo de Usuários TeX

Entidades notáveis ​​na comunidade TeX incluem o TeX Users Group (TUG), que publica o TUGboat e o The PracTeX Journal , cobrindo uma ampla gama de tópicos em tipografia digital relevantes para o TeX. O Deutschsprachige Anwendervereinigung TeX (DANTE) é um grande grupo de usuários na Alemanha. O TeX Users Group foi 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 composição TeX inventado por Knuth. O Grupo de Usuários do TeX representa os interesses dos usuários do TeX em todo o mundo. O TeX Users Group publica a revista TUGboat três vezes por ano; [60]DANTE publica Die TeXnische Komödie  [ de ] quatro vezes por ano. Outros grupos de usuários incluem DK-TUG na Dinamarca , GUTenberg  [ fr ] na França , GuIT na Itália , NTG na Holanda e UK-TUG no Reino Unido ; os grupos de usuários mantêm conjuntamente uma lista completa. [61]

Extensões

Veja também

Notas

  1. ^ Tipo de mídia não registrado
  2. ^ Embora troff ainda permaneça como o formatador padrão da documentação do UNIX.

Referências

  1. ^ "Per Bothner (participante das reuniões do Projeto TeX) discute autoria" . Knuth definitivamente escreveu a maior parte do código, pelo menos para a reescrita do Metafont, para o qual tenho conhecimento pessoal. No entanto, alguns de seus alunos (como Michael Plass e John Hobby) trabalharam nos algoritmos usados ​​no TeX e no Metafont.
  2. ^ Yannis Haralambous. Fontes e Codificações (Traduzido por P. Scott Horne) . Pequim; Sebastopol, Califórnia: O'Reilly Media, 2007, pp. 235.
  3. Gaudeul, Alexia (27 de março de 2006). "Os desenvolvedores de código aberto respondem à concorrência?: O estudo de caso (La)TeX". SSRN 908946 .  {{cite journal}}: Cite journal requires |journal= (help)
  4. ^ Knuth, Donald E. "Biografia menos breve" . Home Page de Don Knuth . Recuperado em 9 de janeiro de 2017 .
  5. ^ Knuth, Donald E. "Palestra comemorativa do Prêmio Kyoto, 1996" (PDF) . Prêmio Quioto . Arquivado a partir do original (PDF) em 27 de janeiro de 2018 . Recuperado em 18 de agosto de 2018 .
  6. Knuth, Donald Ervin, TEXDR.AFT , arquivado a partir do original em 12 de janeiro de 2015
  7. ^ Knuth & Plass 1981 , p. 144.
  8. ^ Knuth, Donald E. Knuth encontra membros do NTG, NTG: MAPS. 16 (1996), 38-49. Reimpresso como Perguntas e Respostas, III , capítulo 33 de Tipografia Digital , p. 648.
  9. ^ Knuth, Donald E. As novas versões de TeX e METAFONT, TUGboat 10 (1989), 325–328; 11 (1990), 12. Reimpresso como capítulo 29 de Digital Typography .
  10. ^ "lançamento do TeX 21" . Recuperado em 5 de janeiro de 2022 .
  11. ^ a b "Qual é o futuro do TeX?" . As perguntas frequentes do TeX . 27 de maio de 2018. Arquivado a partir do original em 28 de abril de 2019 . Recuperado em 21 de julho de 2019 .
  12. ^ Knuth, Donald E. The future of TeX and METAFONT , revista NTG MAPS (1990), 489. Reimpresso como capítulo 30 de Digital Typography , p. 571.
  13. ^ "Desenvolvimento do TeX Engine" . As perguntas frequentes do TeX . 24 de maio de 2018. Arquivado a partir do original em 28 de abril de 2019 . Recuperado em 21 de julho de 2019 .
  14. ^ a b Knuth, Donald E; MacKay, Pierre (1987), "Misturando textos da direita para a esquerda com textos da esquerda para a direita" (PDF) , TUGboat , 8 : 14–25 . Reimpresso como Bigelow, Charles; Dia, Donald (1983). "Capítulo 4". Tipografia Digital . Científico Americano . Vol. 249. pág. 106. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  15. ^ Beebe 2004 , p. 10.
  16. Knuth, Donald E (1996), "Perguntas e Respostas I", TUGboat , 17 : 7–22. Reimpresso como Bigelow, Charles; Dia, Donald (1983). "Capítulo 31". Tipografia Digital . Científico Americano . Vol. 249. pág. 598. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  17. Knuth, Donald E (1996), "Perguntas e Respostas II", TUGboat , 17 : 355–367. Reimpresso como Bigelow, Charles; Dia, Donald (1983). "Capítulo 32". Tipografia Digital . Científico Americano . Vol. 249. pp. 616-617. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  18. Jeffrey, Alan (1990), "Lists in TeX's Mouth" (PDF) , TUGboat , 11 (2): 237–45
  19. ^ "CTAN: Pacote pdftex" . ctan.org . Recuperado em 21 de julho de 2019 .
  20. ^ Knuth 1984 , p. 9.
  21. ^ Plain TeX (código fonte), CTAN
  22. ^ "Quais são os pacotes AMS (amsmath, etc.)?" . As perguntas frequentes do TeX . 27 de maio de 2018. Arquivado a partir do original em 28 de abril de 2019 . Recuperado em 21 de julho de 2019 .
  23. ^ Knuth 1984 , p. 127, cap. 16: Digitando Fórmulas Matemáticas.
  24. ^ Slater, Robert (1989), Portraits in Silicon , MIT Press, p. 349, ISBN 9780262691314
  25. ^ Syropoulos, Apóstolos; Tsolomitis, Antonis; Sofroniou, Nick (2003), Digital Typography Using LaTeX , Springer, p. 93, ISBN 9780387952178
  26. Knuth, Donald E (1996), "Perguntas e Respostas II", TUGboat , 17 : 355–367. Reimpresso como Bigelow, Charles; Dia, Donald (1983). "Capítulo 32". Tipografia Digital . Científico Americano . Vol. 249. pp. 620-624. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  27. ^ Knuth, Donald E. Typesetting Concrete Mathematics , TUGboat 10 (1989), pp. 31-36, 342. Reimpresso como capítulo 18 de Digital Typography , pp. 367-378.
  28. ^ Ulrik Vieth (2001) Composição matemática em TEX: O bom, o mau, o feio
  29. ^ "Edição de alta qualidade e exibição de texto matemático no Office 2007" .
  30. ^ "Serviços de Linha" .
  31. ^ "Mapa" (PDF) . ntg.nl .
  32. Barnett, Michael P (1965), Computer Typesetting: Experiments and Prospects , Cambridge , MA : MIT Press
  33. ^ Knuth & Plass 1981 .
  34. "Donald E. Knuth" , TUGboat (entrevista), Advogato , 21 : 103–10, 2000, arquivado do original em 22 de janeiro de 2009 , recuperado em 26 de dezembro de 2005
  35. ^ "4.1 fmt: Reformat parágrafo texto" , Core GNU utilitários (GNU coreutils) manual , GNU Project, 2016
  36. ^ Liang 1983 , p. 3.
  37. ^ Liang 1983 .
  38. ^ "Apêndice H: Hifenização", The TeXbook , pp. 449–55
  39. Knuth, Donald E. Lista de atualizações da listagem do TeX82 publicada em setembro de 1982 , disponível no CTAN .
  40. Knuth, Donald E. Apêndice ao artigo Erros do TeX , disponível no CTAN, modificado pela última vez em janeiro de 2003.
  41. ^ Knuth, Donald E. "Knuth: Perguntas frequentes" . www-cs-faculty.stanford.edu/~knuth/ . Arquivado a partir do original em 6 de março de 2008 . Recuperado em 28 de novembro de 2019 .
  42. Kara Platoni (maio-junho de 2006). "Amor ao primeiro byte" . Revista Stanford . Arquivado a partir do original em 4 de junho de 2006.
  43. ^ Grupo de usuários de TeX. "História do TeX" . tug.org . Recuperado em 28 de novembro de 2019 .
  44. ^ Knuth, Donald E (2008). "Knuth: Notícias Recentes – Fiasco Financeiro" . www-cs-faculty.stanford.edu/~knuth/ .
  45. ^ Vim-LaTex , SourceForge
  46. ^ Plug- in automático do TeX , Launch pad[ link morto permanente ]
  47. ^ TeX-9 , Vim.org
  48. ^ Página inicial do TexMaths , free.fr
  49. ^ iMath , SourceForge
  50. ^ Bigelow, Charles; Dia, Donald (1983). "O futuro do TeX e METAFONT". Tipografia Digital . Científico Americano . Vol. 249. pág. 572. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  51. Knuth, Donald E (1986), "Computers and Typesettings" (PDF) , TUGboat , 7 : 95–98
  52. ^ Bigelow, Charles; Dia, Donald (1983). "Capítulo 28" (PDF) . Tipografia Digital . Científico Americano . Vol. 249. pág. 560. Bibcode : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
  53. ^ "Trip", CTAN (TeX) (código fonte)
  54. ^ Knuth, Donald E (1986), TeX: The Program , Computers and Typesetting, vol. B, Reading, MA: Addison-Wesley, ISBN 0-201-13437-3
  55. ^ Open Source: Technology and Policy por Fadi P. Deek, James AM McHugh "Domínio público", página 227 (2008)
  56. ^ O'Connell, Heath (2002). "Físicos prosperando com a publicação sem papel". Hep Lib.web . 6 : 3. arXiv : física/0007040 .
  57. ^ Knuth, Donald E. The TeXbook , Ch. 1: O Nome do Jogo, p. 1.
  58. ^ Knuth, Donald E. The TeX Logo in Various Fonts , TUGboat 7 (1986), 101. Reimpresso como capítulo 6 de Digital Typography .
  59. ^ "O arquivo de jargão - TeX" . Recuperado em 23 de julho de 2016 .
  60. ^ "As Comunicações do Grupo de Usuários TeX" . tug.org . Grupo de usuários do TeX . Recuperado em 15 de março de 2019 .
  61. ^ "Todos os grupos de usuários do TeX" . tug.org . Grupo de usuários do TeX . Recuperado em 17 de novembro de 2019 .

Fontes

Links externos