> 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/sv/fordjupade-artiklar/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md).

# TeX-familjeträdet: LaTeX, pdfTeX, XeTeX, LuaTeX och ConTeXt

LaTeX-historien går ända tillbaka till 1977, när Donald Knuth först insåg behovet av ett högkvalitativt sättningsprogram. Det är ett anmärkningsvärt bevis på kvaliteten hos LaTeX att det system han utformade då fortfarande är det bästa verktyget för jobbet i dag, även om många användbara tillägg har gjorts under de följande decennierna. Faktum är att LaTeX är ett av dessa tillägg till det ursprungliga system som Donald Knuth utvecklade, vilket kallades [TeX](http://www.tug.org/).

För att behålla din streetcred i LaTeX-världen måste du skriva det med stort T och X, och uttala det som Lay-Tek. Det beror på att X:et i TeX faktiskt är ett stort chi (χ) från grekiskan. Latex med vanlig versalisering och uttal är en sorts gummi!

## Det ursprungliga TeX

Det finns en stor familj av verktyg som numera härstammar från TeX, och det kan se ut som en lista med nonsensord vid första anblicken: LaTeX, pdfTeX, XeLaTeX, LuaTeX, ConTeXt och så vidare. Förfadern till alla dessa är förstås Knuths ursprungliga TeX-program. Det tar ett dokument i ren text och omvandlar det till ett vackert sättat dokument. Knuth var ganska noggrann när det gällde sättning och uppmärksamheten på detaljer i TeX är tydlig. Ett exempel på ett TeX-dokument kan se ut ungefär så här:

```latex
\TeX{} är bra på att sätta ord som `fjord', `efficiency',
och `fiasco'. Det är också bra på att sätta matematik som,
$a^2 + b^2 = c^2$.
\bye
```

Utdata från detta efter att ha körts genom TeX-programmet är:

![Texsample.png](/files/b9eb68bfadd9607c644d283a84cd6e4ed3f3d287)

Lägg märke till hur kombinationerna av bokstäverna 'fi', 'fj' och 'ff' i exempelorden flyter samman på ett behagligt sätt, och hur matematiksymbolerna är väl avståndsplacerade. I större skala gör TeX ett mycket bra jobb med att radbryta på lämpliga ställen för att skapa väljusterad text, med avstavning där det är lämpligt.

Det sätter inte bara text snyggt, det har också ett urval av kommandon, som `\bye` och `\\TeX` i exemplet ovan. Dessa kan göra enkla saker som att ändra teckenstorlek eller ändra hur texten är uppställd, men också mycket kraftfullare saker som att hålla reda på avsnitt för korsreferenser i dina sidor, eller automatiskt bygga upp en innehållsförteckning. TeX-programmet har ungefär 300 inbyggda kommandon, men andra kommandon kan definieras inom det. Donald Knuth skrev ytterligare omkring 600 användbara kommandon inne i TeX, i ett paket som kallas Plain TeX, vilket gör vissa vanliga sättningsuppgifter enklare.

## LaTeX

Kommandona i TeX och Plain TeX är fortfarande ganska grundläggande och det är inte lätt att göra komplicerade saker med dem. För att hjälpa till med detta skapade Leslie Lamport [LaTeX](http://www.latex-project.org/) i början av 1980-talet för att ge ett språk på högre nivå att arbeta i än TeX. LaTeX är en uppsättning kommandon definierade i termer av de underliggande TeX-kommandona, ofta på många, många abstraktionsnivåer. Alla kommandon du använder i ett LaTeX-dokument är egentligen bara komplicerade uppsättningar av TeX-kommandon under ytan, om du förstås inte använder ett TeX-kommando direkt! Begrepp som paket (`\usepackage{...}`), miljöer (`\begin{environment} ... \end{environment}`), och dokumentklasser (`\documentclass{...}`) introducerades alla av Leslie Lamport i LaTeX.

Genom att skapa ett standardiserat paketsystem för LaTeX gjorde Leslie Lamport det möjligt för gemenskapen att växa enormt. Det finns nu tusentals och åter tusentals LaTeX-paket tillgängliga som låter dig sätta allt från delbilder till stickmönster. Det finns också många dokumentklasser för olika typer av dokument, oavsett om du skriver en bok, en laborationsrapport eller ett CV. Många förlag och tidskrifter har sina egna anpassade dokumentklasser som formger deras dokument på det sätt de vill ha dem.

## pdfTeX

TeX-programmet är anmärkningsvärt stabilt för att vara ett stycke programvara som är över 20 år gammalt; Knuth förklarade att det var funktionsmässigt komplett 1989, och sedan dess har bara buggfixar gjorts. Detta har förstås inte stoppat den betydande och pågående utvecklingen av LaTeX, eftersom det är skrivet i själva TeX. Faktum är att stabiliteten hos TeX har gjort det möjligt för paket som LaTeX, som byggts ovanpå det, att blomstra.

Detta betyder inte att det underliggande TeX-programmet inte har sett några framsteg under de senaste 20 åren. Tvärtom faktiskt, det är bara det att förbättringar har gjorts vid sidan av TeX, medan det ursprungliga TeX lämnats stabilt. Den viktigaste förbättringen under 1990-talet var skapandet av [pdfTeX](http://www.tug.org/applications/pdftex/) av Hàn Thế Thành för hans doktorandavhandling. Det ursprungliga TeX-programmet matar ut det sättade dokumentet i ett anpassat format som kallas DVI (DeVice Independent-format), som senare kan omvandlas till en PostScript-fil för utskrift. PDF-formatet kom dock 1993 och vi kan i dag se att det tydligt vann som det bättre formatet framför PostScript. Det finns många funktioner som gör PDF bättre, såsom hyperlänkar mellan avsnitt, en metadata-del som låter dig se en innehållsförteckning i vänsterkanten i din PDF-visare, och stöd för ett bredare och modernare urval av bildformat. pdfTeX är en modifiering av TeX som gör att det kan mata ut direkt till PDF och därmed dra nytta av dessa extra funktioner.

När du installerar en LaTeX-distribution på ditt system i dag följer det faktiskt med två olika program: `tex`, och `pdftex`. Det följer också med ytterligare två program utöver dessa: `latex` och `pdflatex`, men dessa är i själva verket bara omslag runt `tex` och `pdftex` respektive. Dessa läser först in LaTeX-paketen innan de bearbetar ditt dokument men är fortfarande TeX under ytan. Om du kör `latex` eller `tex` så får du en DVI-fil som du kan omvandla till en PostScript-fil eller en PDF, men om du kör `pdflatex` så får du en PDF direkt.

Mestadels, `pdftex` och `pdflatex` är förbättringar av `tex` och `latex`, men det finns en nackdel. Det ursprungliga TeX och DVI-formatet har stöd för Encapsulated PostScript-filer (`.eps`) eftersom dessa lätt kan inkluderas i PostScript-filer (skapade genom att konvertera `.dvi` filer till PostScript via [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)}). Men `pdftex` kan inte inkludera EPS-filer, och du bör i stället använda PDF-filer (som kan produceras från EPS-filer med kommandot `epstopdf` som vanligtvis följer med LaTeX-distributioner). Som utbyte mot denna nackdel lägger dock pdfTeX till stöd för `.png`, `.jpg` och `.pdf` bilder, medan det ursprungliga TeX bara stöder .eps (via [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)).

## XeLaTeX och LuaTeX

Hittills har vi sett att TeX har utvecklats på två olika sätt sedan början: genom tillägget av enklare kommandon ovanpå det ursprungliga systemet (LaTeX), och genom uppdateringar av det underliggande programmet för att stödja PDF-utmatning (pdfTeX). Historien slutar dock inte där och det har gjorts fortsatta ansträngningar för att modernisera TeX. År 2004 skapade Jonathon Kew [XeTeX](http://tug.org/xetex/), vilket är ännu en modifiering av den underliggande TeX-motorn, denna gång för att stödja ett bredare spektrum av tecken än bara enkla engelska siffror och bokstäver, och för att inkludera stöd för moderna teckenformat. Detta gör det mycket enklare att skriva på främmande språk, och låter dig också använda teckensnitt i LaTeX som traditionellt bara var tillgängliga i ditt ordbehandlingsprogram.

[LuaTeX](http://www.luatex.org/) är ett försök att utöka det ursprungliga TeX-programmet med ett mer rimligt programspråk. Även om du i princip kan göra absolut vad som helst inne i TeX, är det i praktiken ett mycket klumpigt programspråk att arbeta med, om det ens kan kallas ett programspråk alls. Mycket av interndetaljerna i LaTeX är komplicerade och svåra för utomstående att förstå eftersom man måste arbeta enbart i TeX. LuaTeX utökas med det namngivande skriptspråket Lua, som är ett enkelt och stabilt språk, idealiskt för att skriva komplicerade makron. Så sent som 2012 utvecklas det fortfarande aktivt och dess API kan komma att ändras, men det är fortfarande mycket användbart.

## ConTeXt

Vi har nämnt LaTeX som en utvidgning av de kommandon som finns i TeX, men det är inte det enda paketet som har utvidgat TeX på ett betydande sätt. [ConTeXt](http://wiki.contextgarden.net/What_is_ConTeXt) är ett annat system som skapades 1990 av Hans Hagen. LaTeX syftar till att befria användaren från att behöva fatta beslut om typografi och layout (du skriver `\section` och `\emph` men du behöver inte tänka på vad dessa gör – det lämnas åt dokumentklassen eller layouten). ConTeXt å andra sidan syftar till att ge ett enkelt gränssnitt till avancerade typografiska funktioner. Tyvärr kan jag inte så mycket om ConTeXt som jag skulle vilja, så jag kan inte utveckla det särskilt mycket mer, men om jag någonsin kommer mig för att experimentera mer med det ska jag definitivt skriva ned mina resultat.

Som en sista historisk not bör jag nämna [AMSTeX](http://en.wikipedia.org/wiki/AMS-LaTeX) vilket var en utvidgning av Plain TeX-makrona och användes av American Mathematical Society (AMS) från 1982 till 1985. Dess arv lever vidare i AMS-LaTeX-paket, som är en självklar del av många LaTeX-dokument: `\usepackage{amsmath}`.

## Framtiden

Vad kommer framtiden att föra med sig för TeX och LaTeX? Det vet jag inte än, men som Alan Kay en gång sa:

> Det bästa sättet att förutsäga framtiden är att uppfinna den.

Med ShareLaTeX hoppas vi kunna förbättra TeX och LaTeX i en tredje riktning, genom att åstadkomma betydande förbättringar av LaTeX-arbetsflödet. Trots att det är över 20 år gammalt är LaTeX fortfarande i stor utsträckning ett kommandoradsprogram som måste användas i en omständlig cykel av att skriva, kompilera och kontrollera utdata. Samarbetssätt tenderar att innebära klumpiga e-postmeddelanden snarare än de strömlinjeformade processer som finns för ordbehandling, som Google Dokument.


---

# 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/sv/fordjupade-artiklar/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.
