TeX
ТеХ (изговара се тек или тех) систем је за обраду и прелом текста на рачунару. У основи овог система лежи МЕТАФОНТ, језик за опис фонтова и словни облик Computer Modern. Његов творац је Доналд Кнут, а прва стабилна верзија је реализована 1978. године. Његова основна сврха је писање докумената, чланака и књига које лепо изгледају, структурирано и једноставно генеришу текст који у себи садржи и друге штампане садржаје сем обичног текста, а ту се првенствено мисли на научне текстове са сложеним математичким формулама и функцијама као и другим симболима. TeX је слободан софтвер, и као такав је доступан широком кругу корисника.

TeX је популаран у академској сфери, нарочито када су у питању математика, компјутерске науке, економија, инжењерство, физика, статистика, и квантитативна психологија. У великој мери је распрострањен у Unix troff, другом омиљеном систему за форматирање текста, у многим Unix инсталацијама, и користи се за различите намене. TeX је општеприхваћен као најбољи начин за слагање сложених математичких формула, нарочито када се користи у облику LaTeX, ConTeXt или неког другог пакета шаблона, а данас се такође користи и за друге словослагачке послове. Широко коришћен MIME type за TeX је application/x-tex. У оквиру припрема система, његово име је стилизовано као TeX.

Историја 
Када је 1968. године објављен први том The Art of Computer Programming аутора Доналда Кнута слагање слога је извршено hot metal typesetting, а подешено на Monotype Corporation. Ова метода, која датира из 19. века, произвела је "добар класични стил" цењен од стране Кнут-а. Када је, 1976. године, објављено друго издање другог тома цела књига морала је поново да прође слагање слога пошто је Monotype технологија увелико замењена phototypesetting, и оригинални фонтови више нису доступни. Када је Кнут видео галерију доказа његове нове књиге 30. марта 1977. године, нашао је да страшно лоше изгледају. У то време, Кнут је видео по први пут излаз дигиталне припреме система високог квалитета, и заинтересовао се за дигиталну типографију. Разочаравајућа галерија доказа дала му је финалну мотивацију да реши проблем једном за свагда и да за све дизајнира сопствени систем за слагање слога. Дана 13.03.1977. године, написао је допис самом себи у којем описује основне карактеристике TeX-а.

Он је планирао да га заврши током одмора 1978. године, али се десило да развој није замрзнут и спреман за употребу све до 1989. године, више од десет година касније. Десило се да је Guy Стил посетио Станфорд Универзитет током лета 1978. године, када је Кнут развијао своју прву верзију TeX-а. Када се те јесени Стил вратио на Масачусетски технолошки институт, преписао је TeX улаз/излаз (I/O) да ради под Incompatible Timesharing System (ITS) оперативим системом. Прва верзија TeX је написана у SAIL programming language и предвиђена да ради на PDP-10 под Stanford WAITS оперативним системом. За касније верзије TeX-а, Кнут је измислио концепт literate programming, начин да се произведе компактибилни изворни код и умрежену документацију написану у TeX-у из истог почетног фајла. Коришћен је језик који се зове WEB и производи програме у DEC PDP-10 Pascal.

Нова верзија TeX, преписана од нуле и названа TeX82, објављена је 1982. године. Међу другим променама, оригинални алгоритам за прелом речи на крају реда је замењен новим алгоритмом који је написао Франк Лианг. Такође, TeX82 користи fixed-point arithmetic уместо floating-point, како би се осигурала репродуктивност резултата у различитим рачунарима, и укључује праву Turing-complete програмског језика, након интензивног лобирања од стране Guy Steele. Године 1989. Доналд Кнут је објавио нову верзију TeX-а и МЕТАФОНТ. Упркос жељи да задржи програм стабилним, Кнут је схватио да 128 различитих карактера за унос текста није довољно да прими друге језике сем енглеског; стога је главна промена у верзији 3.0 способност TeX-a за рад са 8-битним улазом, дозвољавајући 256 различитих знакова уноса текста.

Од верзије 3, TeX се користио карактеристичним нумеричким системом за означавање верзије, где су допуне означене додавањем екстра цифре на крају децимале, тако да број верзија асимптотски тежи . То је одраз чињенице да је TeX сада веома стабилан, а само су мале исправке предвиђене. Тренутна верзија TeX-а је 3.14159265; последњи пут је ажуриран 2014-01-12. Дизајн је замрзнут након верзије 3.0, нове карактеристике или фундаменталне промене неће бити додаване, тако да ће све нове верзије садржати само bug fixes. Иако је сам Доналд Кнут предложио неколико области у којима би се TeX могао побољшати, он је навео да чврсто верује да има непромењен систем који ће произвести исти излаз сада и у будућности, што је важније од увођења нове функције. Из тог разлога он је изјавио да је "апсолутно коначна промена (да се учини након моје смрти)" да се промени број верзије на , и у том тренутку све преостале грешке ће постати карактеристике. Такође, METAFONT након верзије 2.0 асимптотски тежи , и сличне промене ће бити примењене након Кнутове смрти.

Пошто је изворни код TeX-a у суштини у јавном домену (види доле), другим програмерима је дозвољено (и изричито се подстичу) за побољшање система, али је потребно да користите други назив за дистрибуцију модификованог TeX-а, што значи да у изворни код могу даље развијати. На пример, омега пројекат је развијен после 1991. године, првенствено за побољшање Тек за вишејезичне припремне способности. Кнут је развио "незваничну" модификовану верзију, као што је TeX-XeT, који омогућава кориснику мешовите текстове написане лева на десно и са десна на лево у писаној форми, а у истом документу.

Систем за слагање слога 
TeX команде обично почињу са backslash и груписане су у витичастим заградама. Скоро све синтаксне особине TeX-а се могу мењати у ходу, што TeX улаз чини тешким за анализу осим самог TeX-а. TeX је macro- и token-based language: много команди, укључујући и оне које дефинише корисник, је проширено у ходу, а само су извршни непрошириви токени остали. Због тога је само проширење практично без споредних ефеката. Tail recursion макрои не заузимају простор меморије, а if-then-else конструкције су на располагању. Ово чини да је TeX Turing-complete језик чак и на нивоу проширења. Систем се може поделити у четири нивоа: у првом, карактери се читају из улазног фајла и додељен им је код категорије (понекад се назива "catcode", скраћено). Комбинација backslash (заправо, било који знак од нулте категорије) затим слова (карактери категорије 11) или неког другог карактера замењује контролни знак секвенце. У том смислу, ова фаза је као лексичке анализе, иако не формира бројеве из цифара. У наредној фази, са могућношћу проширења контролне секвенце (као што су уређаја или дефинисаним макроима) су замењени њиховим текстом. Улаз за трећу фазу је тада ток знакова (укључујући и оне са посебним значењем) и unexpandable контролне секвенце (обично задатке и визуелне команде). Сада се карактери монтирају у параграфу. TeX-ов алгоритам за прелом параграфа ради тако што оптимизује тачку прелома за цео параграф. Четврта фаза прекида вертикалну листу линија и другог материјала у оквиру једне стране.

TeX има прецизно знање о величинама свих знакова и симбола, као и начина на који користи ове информације, и начина на који израчунава оптимали распоред слова по реду и редова по страни. На крају производи DVI фајл ("DeVice Independent") који садржи коначне положаје свих знакова. Овакав *.dvi фајл може бити штампан директно на одговарајући штампач, или може бити конвертован у други формат. Данас се често користи pdfTeX, којим се потпуно заобилази DVI. Основни систем разуме око 300 команди, које се зову primitives. Ове команде су ниског нивоа и ретко се користе од стране корисника, а већина њих обезбеђује функционалност формата датотека (predumped memory images of TeX after large macro collections have been loaded). Кнутов оригинални подразумевани формат, са додатних 600 команди је Plain TeX. Најраспрострањенији формат је LaTeX, првобитно развијен од стране Леслие Лампорт, који обухвата стилове докумената за књиге, писма, сјалдове, итд, и додаје подршку за референцирање и аутоматско нумерисање поглавља и једначина. Још један формат који је у широкој употреби је AMS-TeX, који је произведен од стране Америчког математичког друштва и пружа много више user-friendly команди, којима се може изменити часопис на начин да се уклопи са стилом њихове издавачке куће. Већина карактеристика AMS-TeX може се користити у LaTeX помоћу AMS "пакета". Ово се назива AMS-LaTeX. Други формати укључујући ConTeXt, пре свега се користе за стоно издаваштво и већином су написани од стране Hans Hagen на Pragma.

Како TeX ради 

Једноставан Здраво свете програм у Plain TeX изгледа:

Здраво, Свете
\bye % marks the end of the file; not shown in the final output

Ово може бити у датотеци myfile.tex јер је  .tex  уобичајена екстензија за обичне TeX датотеке. По default, све што следи је знак за проценат на линији за коментар, и то је текст који TeX игнорише. Покрећући на овом фајлу (на пример, куцајући tex myfile.tex у command-line interpreter, или позивајући га из графичког корисничког интерфејса) створиће се излазни фајл под називом myfile.dvi, који представља садржај странице у device independent формату (DVI). DVI фајл може сада бити гладан на екрану монитора или конвертован у одговарајући формат за било који од различитих штампача чији device driver постоји (подршка за штампач углавном није карактеристика оперативних система у време када је створена TeX). Кнут је рекао да не постоји ништа инхерентно у TeX-у што захтева DVI као излазни формат, а касније Tex верзије, пре свега pdfTeX, XeTeX и LuaTeX, дају подршку директно у PDF.

Пример математичке формуле 

Посебно за математичке формуле TeX нуди другачију текстуалну синтаксу. На пример, квадратна једначина (чије је решење квадратна формула) појављује се као:

Формула је штампана на начин као да је особа писала руком, или сложила једначину у текст. У документу, улазни део математички модел се врши почевши са $ симболом, затим се уноси формула у TeX синтакси, и затвара са другим истим симболом са којим је отворена. Кнут је у шали објаснио да је изабрао знак долар да укаже на почетак и крај математичког мода у plain TeX-у јер је слагање слога и математичких формула традиционално требало да буде скупо. Display mathematics (математичка формула представљена у центру новог реда) је слична предходном примеру али користи $$ уместо једног $ симбола. На пример, горња квадратна формула представљена на математички начин је:

Нови аспекти 
Софтвер TeX-а обухвата неколико аспеката који нису били доступни, или су нижег квалитета у, другим програмима за припрему текста у време када је TeX објављен. Неке од новина су базиране на основу занимљивих алгоритама, а довеле су до неколико теза које су објавили Кнутови студенти. Док су нека од ових открића сада укључена у друге програме за слагања слога, други, као што су правила за математички размак, су још увек јединствени.

Математички размак 

Пошто је основни циљ TeX језика квалитетна припрема за издаваче књига, Кнут је посветио велику пажњу размацима и правилима за математичке формуле. Он је радио на три рада који се сматрају стандардима изврсности математичке типографије: сложио је слог за књиге издавачке куће Addison-Wesley Publishing's (која је штампала књигу The Art of Computer Programming), а нарочито рад од Hans Wolf и Joseph Louis Lagrange (термодинамичке иновације, +1856); издања математичког журнала Acta Mathematica који датира из периода око 1900. године; и копију Indagationes Mathematicae, Холандског математичког часописа. Кнут је пажљиво погледао ове штампане радове да би сортирао и пронашао најбољи скуп правила за размак. Док TeX даје нека основна правила и алате потребне да одредите одговарајуће размак, тачни параметри зависе од фонта који се користи за писање формуле. На пример, размак за Кнутов фонт Computer Modern је прецизно и фино подешен током година, а сада је и постављен; али када се други фонтови, као што су AMS Euler, користе по први пут, нови параметри размака морају бити јасно дефинисани.

Припрема слога за математичке формуле у TeX-у није без критике, нарочито у вези са техничким детаљима показатеља фонта, који су дизајнирани у ери када је значајна пажња посвећена захтевима за складиштење. То је довело до неких "hacks" преоптерећења у неким областима, што је заузврат довело до захтева за другим "hacks". На нивоу естетике, такође је критиковано освежавање текста. Спецификација OpenType math фонта се у великој мери ослања на TeX, али има и неке нове карактеристике / побољшања.

Подела речи на слогове на крају реда и поравнање 
У поређењу са ручним припремама, проблем поравнања је лако решити у дигиталном систему као што је TeX, који, под условом да су обезбеђени добри примери за прелом реда, може аутоматски ширити размак између речи да попуни простор до краја реда. Проблем је, дакле, да се пронађе скуп контролних тачака које ће дати највише визуелно пријатан резултат. Многи алгоритми за поделу речи на крају реда користе first-fit approach, где су утврђене тачке прекида за сваку линију једна за другом, а не дозвољавају да се тачка прекида мења пошто је се изабрана. Такав систем није у стању да дефинише тачку прекида у зависности од ефекта који ће имати на следећим линијама. Поређења ради, укупан-фит алгоритама за разбијање линија који користи TeX, а који је развијен од стране Доналда Кнута и Michael Plass разматра све могуће тачке прекида у пасусу, и потом налази оптималну комбинацију линије прекида који ће произвести највише глобално пријатан аранжман.

Формално, алгоритам дефинише вредност под називом лоше која је повезана са сваким могућим преломом линије; лоше се повећава уколико се места на линији морају да протежу или превише смањују да би линија задржала тачну ширину. Казне се додају ако је преломна тачка посебно непожељна: на пример, ако се мора цртицом поделити реч, ако су две линије за редом преломљене на слогове на крају реда, или ако је врло лабава линија после које одмах следи веома кратка линија. Ако параграф садржи  могућих тачака прекида број ситуација које се морају проценити наивно је . Међутим, методом динамичко програмирање, сложеност алгоритма може се свести на  (види Велико О нотација). Даља поједностављења (на пример, не тестирају веома вероватну тачку прекида као што је растављање у првој речи на став), доводе до ефикасног алгоритма чији је покренут време је готово увек реда . Сличан алгоритам се користи за одређивање најбољих начина да се прекине параграф преко две стране, како би се избегло удовице или сирочад (линије које се појављују само на страници док је остатак параграфа је на следећој или претходној страни). Међутим, генерално, теза од Michael Plass показује како је проблем прелома стране може бити NP-complete због додатних компликација постављања фигура. TeX је усвојио неколико другиг програма за стварање алгоритма за прелом линије, као што су Adobe InDesign (a desktop publishing application) и GNU fmt Unix корисност командне линије.

Коришћење TeX-a 
У неколико техничких области, као што су информатика, математика, инжењерство и физика, TeX је постао де факто стандард. Бројни магазини, журнали и листови у овим областима су произведени употребном TeX-a или LaTeX-a, омогућавајући ауторима да пошаљу своје сирове рукописе написане у TeX-у. Многе публикације у другим областима, укључујући речнике и правне публикације, које су произведене користећи TeX, нису биле тако успешне као у више техничким областима, јер TeX је првенствено намењен математици. Када је дизајнирао TeX, Доналд Кнут није веровао да би један систем за слагање слога одговарао потребама свих; уместо тога, он је дизајнирао многе кукице унутар програма тако да је било могуће писати проширења, и објавио је изворни код, надајући се да ће издавачи прилагодити дизајн њиховим потребама. Док су такви додаци створани (укључујући и неке додатке од стране самог Кнута), већина људи ће повећати TeX само помоћу макроа и то је остао систем повезан са техничким припремама.

Могуће је користити TeX за аутоматско генерисање софистицираног распореда када су у питању XML податци. Разлике у синтакси између два описа језика може да се превазиђе уз помоћ TeXML. У контексту XML објављивања, TeX се на тај начин може сматрати као алтернатива за XSL-FO. TeX дозвољава да се научни радови у математичким дисциплинама своду на релативно мале фајлове, које би могле бити изречене на страни клијента, што омогућава потпуно слагање слога у научним радовима који се размењују преко раног Интернета, чак и када слање великих датотека било тешко. Ово је утрло пут за стварање спремишта научних радова, као што су arXiv, кроз које радови могу бити 'објављени' без посредника издавача.

Могуће је убацити TeX формуле у МедијаВики странице користећи <math> ознаку.

Заједница 

Значајна лица у TeX заједници укључујући TeX Users Group, која издаје TUGboat и The PracTeX Journal, покривају широк спектар тема из дигиталне типографије од значаја за TeX. Deutschsprachige Anwendervereinigung TeX је највећа корисничка група у Немачкој. TeX Users Group је основана 1980. године у образовне и научне сврхе, и нуди организацију за оне који имају интерес за типографију и дизајн фонта, а при томе су корисници TeX система за слагање слога који је изумео Доналд Кнут. TeX Users Group заступа интересе TeX корисника широм света. TeX Users Group објављује часопис TUGboat три пута годишње. tex.stackexchange.com је активна локација за питања и одговоре како за нове тако и за искусне TeX кориснике подједнако.

Види још 

 MathTime
 PGF/TikZ
 PSTricks
 xdvi
 LaTeX

Референце

Литература 

 
 .
 . The source code of the book in TeX (and a needed set of macros ) 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.
 . The full source code of TeX; also available on CTAN. Being written using literate programming, it contains plenty of human-readable documentation.
 .
 . Reprinted as .
  contains extensive documentation about the algorithms used in TeX.
 .
 .
 .
  on AMS-TeX.
 .

Спољашње везе 

 .
 
 .
 .
 .
 
 .
 . 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?

 
Nastanci 1978.
Aplikacioni softver