> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/artigos-aprofundados/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md).

# A árvore genealógica do TeX: LaTeX, pdfTeX, XeTeX, LuaTeX e ConTeXt

A história do LaTeX remonta a 1977, quando Donald Knuth percebeu pela primeira vez a necessidade de um programa de composição tipográfica de alta qualidade. É um testemunho notável da qualidade do LaTeX o facto de o sistema que ele concebeu nessa altura ainda ser hoje a melhor ferramenta para a tarefa, embora muitas adições úteis tenham sido feitas nas décadas que se seguiram. Na verdade, o LaTeX é uma destas adições ao sistema original que Donald Knuth desenvolveu, que se chamava [TeX](http://www.tug.org/).

Para manteres a tua credibilidade no mundo do LaTeX, tens de o escrever com um T e um X maiúsculos, e pronunciá-lo como Lay-Tech. Isto porque o X em TeX é, na verdade, um Chi maiúsculo (χ) do grego. Látex, com a capitalização e pronúncia normais, é um tipo de borracha!

## O TeX original

Existe uma grande família de ferramentas que agora derivam do TeX, e à primeira vista pode parecer uma lista de palavras sem sentido: LaTeX, pdfTeX, XeLaTeX, LuaTeX, ConTeXt, e por aí fora. O antepassado de todas estas é, claro, o programa TeX original de Knuth. Este pega num documento em texto simples e transforma-o num documento lindamente composto. Knuth era bastante rigoroso com a composição tipográfica e a atenção ao detalhe no TeX é evidente. Um exemplo de documento TeX poderia parecer-se com algo deste género:

```latex
\TeX{} é bom a compor palavras como `fjord', `efficiency',
e `fiasco'. Também é bom a compor matemática como,
$a^2 + b^2 = c^2$.
\bye
```

O resultado disto, depois de o passar pelo programa TeX, é:

![Texsample.png](/files/5cf8d064b9efab8877818af1caad140fe09097a1)

Repara em como as combinações de letras 'fi', 'fj' e 'ff' nas palavras de exemplo se unem de uma forma agradável, e em como os símbolos matemáticos estão bem espaçados. A uma escala maior, o TeX faz um trabalho muito bom a quebrar linhas nos sítios apropriados para criar texto bem justificado, com hifenização onde adequado.

Não só compõe texto de forma elegante, como também tem um conjunto de comandos, como `\bye` e `\TeX` no exemplo acima. Estes podem fazer coisas simples como alterar o tamanho da fonte, ou alterar a forma como o texto é apresentado, bem como coisas muito mais poderosas, como manter uma contagem de secções para referenciar cruzadamente as tuas páginas, ou construir automaticamente um índice. O programa TeX tem cerca de 300 comandos incorporados, mas outros comandos podem ser definidos dentro dele. Donald Knuth escreveu mais cerca de 600 comandos úteis dentro do TeX, num pacote chamado Plain TeX, que facilita algumas tarefas comuns de composição tipográfica.

## LaTeX

Os comandos em TeX e Plain TeX ainda são bastante básicos e não é fácil fazer coisas complicadas com eles. Para ajudar com isso, Leslie Lamport criou [LaTeX](http://www.latex-project.org/) no início da década de 1980, para fornecer uma linguagem de nível mais elevado para trabalhar do que o TeX. O LaTeX é um conjunto de comandos definidos em termos dos comandos TeX subjacentes, muitas vezes em camadas e camadas de abstração. Todos os comandos que usas num documento LaTeX são, na verdade, apenas conjuntos complicados de comandos TeX por baixo, a menos que uses diretamente um comando TeX, claro! Conceitos como pacotes (`\usepackage{...}`), ambientes (`\begin{environment} ... \end{environment}`), e classes de documento (`\documentclass{...}`) foram todos introduzidos por Leslie Lamport no LaTeX.

Ao criar um sistema de pacotes padronizado para o LaTeX, Leslie Lamport permitiu que a comunidade crescesse imenso. Existem agora milhares e milhares de pacotes LaTeX disponíveis para te permitir compor tipograficamente qualquer coisa, desde subfiguras a padrões de tricô. Também existem muitas classes de documento disponíveis para diferentes tipos de documentos, quer estejas a escrever um livro, um relatório de laboratório ou um CV. Muitos editores e revistas têm as suas próprias classes de documento personalizadas que formatam os seus documentos da forma que pretendem.

## pdfTeX

O programa TeX é notavelmente estável para uma peça de software com mais de 20 anos; Knuth declarou que estava completo em termos de funcionalidades em 1989, e desde então apenas foram feitas correções de erros. Claro que isto não travou o desenvolvimento significativo e contínuo do LaTeX, porque este é escrito no próprio TeX. Na verdade, a estabilidade do TeX permitiu que pacotes como o LaTeX, que foram construídos por cima dele, prosperassem.

Isto não quer dizer que o programa TeX subjacente não tenha visto avanços nos últimos 20 anos. Longe disso, de facto; é apenas que as melhorias foram feitas em paralelo com o TeX, mantendo o TeX original estável. A melhoria mais importante da década de 1990 foi a criação de [pdfTeX](http://www.tug.org/applications/pdftex/) por Hàn Thế Thành para a sua tese de doutoramento. O programa TeX original produz o documento composto num formato personalizado chamado DVI (formato independente de dispositivo), que mais tarde pode ser convertido num ficheiro PostScript para impressão. No entanto, o formato PDF apareceu em 1993 e hoje podemos ver que claramente venceu como o melhor formato em relação ao PostScript. Há muitas funcionalidades que tornam o PDF melhor, como hiperligações entre secções, uma secção de metadados que te permite ver um índice no lado esquerdo do teu visualizador de PDF, e suporte para uma gama mais ampla e moderna de formatos de imagem. O pdfTeX é uma modificação do TeX que lhe permite produzir PDF diretamente e, assim, aproveitar estas funcionalidades extra.

Quando instalas hoje uma distribuição LaTeX no teu sistema, ela vem na verdade com dois programas diferentes: `pasta tex`, e `pdftex`. Também vem com mais dois programas além destes: `latex` e `pdflatex`, mas estes são na verdade apenas invólucros em torno de `pasta tex` e `pdftex` respetivamente. Estes carregam primeiro os pacotes LaTeX antes de processarem o teu documento, mas ainda são TeX por baixo. Se executares `latex` ou `pasta tex` então obterás um ficheiro DVI que podes converter num ficheiro PostScript ou num PDF, mas se executares `pdflatex` obterás um PDF diretamente.

Na maior parte, `pdftex` e `pdflatex` são melhorias em relação a `pasta tex` e `latex`, mas há uma desvantagem. O TeX original e o formato DVI têm suporte para ficheiros Encapsulated PostScript (`.eps`) porque estes podem ser facilmente incluídos em ficheiros PostScript (produzidos pela conversão de `.dvi`  para PostScript através de [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)). No entanto, `pdftex` não consegue incluir ficheiros EPS, e deves antes usar PDFs (que podem ser produzidos a partir de ficheiros EPS com o comando `epstopdf` que geralmente vem com as distribuições LaTeX). Em troca desta desvantagem, porém, o pdfTeX adiciona suporte para `.png`, `.jpg` e `.pdf` imagens, enquanto o TeX original apenas suporta .eps (via [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)).

## XeLaTeX e LuaTeX

Até agora vimos que o TeX evoluiu de duas maneiras diferentes desde o seu início: com a adição de comandos mais fáceis de usar por cima do sistema original (LaTeX), e com atualizações ao programa subjacente para suportar saída em PDF (pdfTeX). No entanto, a história não termina aqui e têm havido esforços contínuos para modernizar o TeX. Em 2004, Jonathon Kew criou [XeTeX](http://tug.org/xetex/), que é outra modificação do motor TeX subjacente, desta vez para suportar uma gama mais vasta de caracteres para além dos simples números e letras em inglês, e para incluir suporte para formatos modernos de fontes. Isto torna escrever em línguas estrangeiras muito mais fácil, e também te permite usar fontes dentro do LaTeX que tradicionalmente só estavam disponíveis no teu processador de texto.

[LuaTeX](http://www.luatex.org/) é uma tentativa de estender o programa TeX original com uma linguagem de programação mais sensata. Embora, em princípio, possas fazer absolutamente tudo dentro do TeX, na prática é uma linguagem de programação muito desajeitada com que trabalhar, se é que pode sequer ser chamada uma linguagem de programação. Grande parte da estrutura interna do LaTeX é complicada e difícil de entender para pessoas de fora devido ao facto de ter de funcionar apenas em TeX. O LuaTeX é estendido com a linguagem de scripting homónima, Lua, que é uma linguagem simples e estável, ideal para escrever macros complicadas. Em 2012, ainda estava em desenvolvimento ativo e a sua API pode mudar, mas continua a ser muito utilizável.

## ConTeXt

Já mencionámos o LaTeX como uma extensão dos comandos disponíveis no TeX, mas não é o único pacote que estendeu o TeX de forma significativa. [ConTeXt](http://wiki.contextgarden.net/What_is_ConTeXt) é outro sistema que foi criado em 1990 por Hans Hagen. O LaTeX procura separar o utilizador da necessidade de tomar decisões sobre tipografia e disposição (escreves `\section` e `\emph` mas não te preocupas com o que estes fazem - isso fica a cargo da classe do documento ou da disposição). Por outro lado, o ConTeXt procura fornecer uma interface fácil para funcionalidades avançadas de tipografia. Infelizmente, não sei tanto sobre o ConTeXt como gostaria, por isso não posso desenvolver muito mais, mas se algum dia me dedicar a experimentá-lo mais, certamente escreverei as minhas conclusões.

Como nota histórica final, devo mencionar [AMSTeX](http://en.wikipedia.org/wiki/AMS-LaTeX) que foi uma extensão das macros do Plain TeX e foi usado pela American Mathematical Society (AMS) de 1982 a 1985. O seu legado sobrevive nos pacotes AMS-LaTeX, que são um elemento básico de muitos documentos LaTeX: `\usepackage{amsmath}`.

## O Futuro

O que trará o futuro para o TeX e o LaTeX? Ainda não sei, mas como Alan Kay disse uma vez:

> A melhor forma de prever o futuro é inventá-lo.

Com o ShareLaTeX esperamos melhorar o TeX e o LaTeX numa terceira direção, trazendo melhorias significativas ao fluxo de trabalho do LaTeX. Apesar de ter mais de 20 anos, o LaTeX continua a ser, em grande parte, um programa de linha de comandos que tem de ser usado num ciclo complicado de escrever, compilar e verificar a saída. Os métodos de colaboração tendem a envolver mensagens de correio eletrónico complicadas em vez dos processos simplificados disponíveis para processamento de texto, como o Google Docs.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/artigos-aprofundados/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
