Tex
TeX är ett typsättningssystem skrivet av Donald Knuth. TeX är populärt i den akademiska världen, särskilt inom ämnesområdena matematik, fysik och datavetenskap. Det har i stort sett helt ersatt troff, det andra vanliga typsättningsprogrammet i Unix-installationer, utom ifråga om manualsidorna. TeX anses generellt vara det bästa sättet att typsätta matematiska formler, men det används också för många andra typsättningsuppgifter, särskilt i form av LaTeX och andra mallpaket.
Historia
Knuth började utveckla TeX eftersom han hade blivit irriterad på den allt sämre typsättningskvaliteten i volymerna I-III av hans bokverk "The Art of Computer Programming". I en praktisk uppvisning av hackerns tendens att vilja lösa problem en gång för alla började han att designa ett eget typsättningsspråk. Han trodde att han skulle bli klar med det under sitt sabbatsår (1978), men han tog fel på ungefär 8 år. Språkdefinitionen blev slutligen fastställd runt 1985.
Den första versionen av TeX skrevs i programspråket SAIL för en PDP-10-dator som körde operativsystemet WAITS. För senare versioner av TeX uppfann Knuth konceptet literate programming, en metod att producera kompilerbar källkod och korslänkad dokumentation med högkvalitativ typsättning (gjord i TeX) från samma originalfil. Det språk som används heter WEB, och det producerar program skrivna i Pascal.
TeX har ett excentriskt system för versionsnumrering. Sedan version 3 har uppdateringar indikerats genom att lägga en extra siffra på slutet, så att versionsnumret närmar sig talet pi mer och mer. Nuvarande version är 3.141592 (november 2006). Detta avspeglar det faktum att TeX numera är väldigt stabilt, och endast mindre uppdateringar förväntas ske.
Knuth erbjuder hittelön till den som hittar och rapporterar in en bugg i TeX. Priset per bugg sattes till en början till en cent, och det fördubblades varje år tills det stoppades vid sitt nuvarande värde 327 dollar och 68 cent. Detta system har inte gjort Knuth fattig, eftersom det har hittats väldigt få buggar och ännu färre checker har lösts in. De checker som bevisar att dess ägare har funnit en bugg i TeX brukar i stället ramas in och hängas upp på väggen.
Typsättningssystemet
TeX är ett exempel på ett märkspråk, där alla kommandon börjar med ett omvänt snedstreck ("\"). TeX är ett makrobaserat språk: alla kommandon expanderas till andra kommandon eller text (möjligen med sidoeffekter), och dessa andra kommandon expanderas sedan i sin tur tills allt är expanderat till fullo. Användaren kan definiera sina egna makron. Loopar och if-then-else-konstruktioner finns tillgängliga, vilket gör TeX till ett Turingkomplett språk.
TeX-systemet har precis kunskap om storleken på alla tecken och symboler, och med hjälp av denna information räknar systemet ut den optimala uppställningen av tecken per rad och rader per sida. Sedan producerar systemet en enhetsoberoende .dvi-fil, som innehåller alla teckens slutliga positioner. Denna .dvi-fil kan skrivas ut direkt med en lämplig skrivardrivrutin, och den kan dessutom konverteras till andra format.
De främsta referensverken för TeX är de första två volymerna av Knuths "Computers and Typesetting", "The TeXbook" och "TeX: The Program" (som innehåller TeX:s kompletta dokumenterade källkod).
Trots att TeX är välskrivet är programmet så stort (och så fullt av nyskapande tekniker) att det sägs ha tagit fram åtminstone en bugg i varje Pascal-system som det har kompilerats i. TeX går att köra på nästan alla operativsystem.
TeX är ett exempel på högkvalitativ fri programvara.
Licens
TeX-programmets licens tillåter fri distribution och modifikation, men kräver att modifierade versioner inte kallas TEX, TeX, eller något annat som kan förväxlas med namnet TeX, annat än om de fullt ut klarar vissa testsviter.
Namnet
Det är meningen att namnet TeX ska uttalas "tech", där "ch" motsvarar ljudet i slutet av tyskans "ach" (bostäverna skall vara de grekiska versala Τ, Ε och Χ). Namnet ska typsättas med epsilon något under raden; system som inte stöder detta använder sig av approximationen "TeX". TeX-fans tycker om att komma på namn som anspelar på programnamnet, exempelvis TeXnician (en TeX-användare), TeXhacker (en TeX-programmerare), TeXmaster (en kompetent TeX-programmerare), TeXhax och TeXnique.
System som bygger på TeX
Ett flertal dokumentationssystem är baserade på TeX. Några som bör nämnas är LaTeX, jadeTeX och Texinfo. LaTeX (Lamport TeX) inkluderar dokumentstilar för böcker, brev, diabilder m m samt support för referenser och automatisk numrering av sektioner och ekvationer. jadeTeX använder TeX för att skriva ut från James' DSSSL Engine. Texinfo är GNU-projektets dokumentationssystem.
Ett antal utvidgningar av TeX finns tillgängliga, bland dem BibTeX för bibliografier (distribueras med LaTeX), PDFTeX som kringgår .dvi-formatet och producerar utdata i Adobe Systems Portable Document Format (PDF), och Omega som tillåter TeX att använda Unicode-teckenuppsättningen och 16 bits-system. Alla TeX-utvidgningar finns att ladda ner gratis från CTAN (the Comprehensive TeX Archive Network).
Exempel
Låt oss ta ett enkelt TeX-exempel. Skapa textfilen minfil.tex med följande innehåll:
hej \bye
Starta sedan en kommandoradstolk och skriv:
tex minfil.tex
TeX skapar då filen minfil.dvi (dvi står för device independent, alltså enhetsoberoende). Använd ett DVI-visningsprogram för att titta på .dvi-filen. MikTeX, för att ta ett exempel, innehåller ett DVI-visningsprogram som heter yap:
yap minfil.dvi
DVI-visningsprogrammet visar texten hej på en sida. \bye är ett TeX-kommando som markerar slutet på filen, och det visas inte i .dvi-versionen.
.dvi-filen kan antingen skrivas ut direkt från DVI-visningsprogrammen, eller den kan konverteras till vanliga format som PostScript med dvips-programmet.
Handledning för TeX i Wikipedia
Se även
Externa länkar
- The TEX Users Group: http://www.tug.org/
- Comprehensive TEX Archive Network: http://www.ctan.org/ . Arkiverar TEX-källkoden samt hundratals tillägg och stilfiler.
- Donald E. Knuth, The TEXbook, Reading, Massachusetts: Addison-Wesley, 1984
- Norman Walsh, Making TeX Work, http://makingtexwork.sourceforge.net/mtw/index.html Bok med öppet innehåll
- Omega (16-bitsversion av TeX; kör lambda och inte omega på kommandoraden!)
Denna artikel (eller en tidigare version av den) innehåller material från FOLDOCs TeX-artikel, som används med deras tillstånd.