Pull to refresh

Разновидности TeX

Reading time 5 min
Views 14K

Введение


Я не нашёл упоминаний на хабре про xetex, lualatex которые в кратком, сжатом виде рассказывали о том что это такое. Поэтому таким образом появилась данная идея: написать кратко об основных системах вёрcтки. И так начинаем по порядку.

TeX


TeX система компьютерной вёрстки, разработанная американским профессором информатики Дональдом Кнутом в целях создания компьютерной типографии. В неё входят средства для секционирования документов, для работы с перекрёстными ссылками. Многие считают TeX лучшим способом для набора сложных математических формул. В частности, из-за этих возможностей, TeX популярен в академических кругах, особенно среди математиков и физиков.[1]
Для тех кто хочет почитать про историю TeX она хорошо написана на википедии. После выпуска TeX, стали появляться различные системы, которые упрощали(ют) использование Tex, или преследуют определенные цели (например использования языка программирования в документе). На текущий момент добавление функционала TeX'а заморожен, по этой причине системы которые основаны на вёрстке не увеличивают функционал его, а используют его с помощью своих методов и возможностей. Теперь можно перейти ко следующей части статьи.

LaTeX


LaTeX — наиболее популярный набор макрорасширений (или макропакет) системы компьютерной вёрстки TeX, который облегчает набор сложных документов.[2]
Останавливаться на этом пункте я не вижу смысла, поскольку он достаточно хорошо освещён в других источниках.

XeTeX


Первый выпуск XeTeX состоялся в 2004 году, последняя версия появилась в сентябре 2010 года. Он использует Unicode. Позволяет использовать различные шрифты в системе, без настройки шрифтов TeX. Отдельной интересной особенностью является возможность использовать русскоязычные команды и макроопределения.[3]
Приведём пример использования XeTeX, который собирается с использованием
xelatex:
\documentclass{article}
\usepackage{polyglossia}
\newcommand{\названиекоманды}[2]
{
Параметр 1: #1

Параметр 2: #2
}
\begin{document}
\fontspec{Times New Roman}{Текст написан с использованием Times New Roman}

\fontspec{Verdana}{Текст написан с использованием Verdana}

\названиекоманды{Первый параметр}{Второй параметр}

\end{document}

LuaTeX



Когда я писал курсовую по статистике у меня были мысли: Как можно сформировать
таблицу, где пара соседних столбов высчитывалась? Конечно когда я увидел, что
есть LuaTeX сразу подумал: Я ведь мог написать, что-то вроде:
\begin{table}
\directlua{
a={1,2,3}
b={1,2,3}
for x = 1,3
do
print(a[x].. " & "..b[x].." & ".. (a[x]+b[x]) .." \\")
end}
\end{table}

К сожалению увы данный код не работает. Данный продукт находиться в разработке и не вышло ни одного стабильного релиза на текущий момент. В LuaTeX Reference говорится, что продукт не готов к production, и пользователи не могут рассчитывать ни на стабильность, ни на то, что текущая функциональность будет сохранена в следующих версиях. (The current version of LuaTEX is not meant for production and users cannot depend on stability, nor on functionality staying the same.) На текущий момент можно к примеру сделать так:
... в теле документа ...
\directlua{
for x =1,10
do
tex.write(x*x)
end
}
... конец документа ...


BibTex


BibTex позволяет отделить список источников в отдельный файл(ы), от непосредственного его формирования в LaTeX'е. Его использование не составляет проблем: создаётся файл с расширением bib, где описываются источники (статьи, издания книги и другие типы источников). Потом в документе пишутся две команды: \bibliographystyle{gost71u} \bibliography{filename}, где непосредственно указывается: в первом случае это стиль оформления(можно выбрать разные стили оформления, например: без сортировки, по гостам, сортировка по фамилиям авторов и другие), во втором случае указывается имя bib файла без расширения.
В качестве примера приведём оформление вымышленной книги:
@Book{tag_vum,
author={Некий,вымышленный,персонаж and Фигзнаеткто,Ф.З.К.},
title={Мифическая книжка некоего мифического персонажа},
publisher={главное Юпитерское агенство},
year={12151 г. до н.э.},
address={Юпитер},
language={russian},
}

При этом результат и последовательность вывода этих параметров будет зависеть от стиля указанного в соответствующей переменной. При первом использовании gost71u столкнулся с проблемой кодировки в bib файле, а так же проблемой, что не выводились инициалы автора. Решение нашёл на linux.org.ru. Оно заключалось в том, что бы в файле (к примеру gost71u.bst) заменить "{vv~}{ll}{~jj}{~f.}" на "{vv~}{ll}{~jj}{~ff}".[7] Когда искал решение для статьи нашёл мнение по данному решению: Так замена "{vv~}{ll}{~jj}{~f.}" на "{vv~}{ll}{~jj}{~ff}" убивает конвертацию из полного имени автора в bib файле в его инициалы в результирующем файле.[8]

ConTeXt


К сожалению мне не удалось найти много информации на русском по ConTeXt, а писать, что это система вёрстки я не вижу смысла. Поэтому если кому-нибудь захочется больше о нём узнать, то можете обратиться к литературе с номерами 9,10,11.

Omega


Омега является расширением для TeX, которая использует юникод, которая была написана John Plaice и Yannis Haralambous, после заморозки TeX в 1991 году. Она включает новый 16 битный юникод, а так же несколько шрифтов, которые широко охватывают алфавиты. В 2004 году на конференции TeX Users Group один из двух разработчиков John Plaice решил отойти (split off) к новому проекту, который ещё не опубликован, Haralambous продолжал работать над Омегой. LaTeX для Omega — lambda.
Хотя проект Омега был перспективным его разработка шла медленно, а функциональность в значительной мере не стабильной. Отдельный проект был начать с целью стабилизировать код и использовать с e-Tex, название которого Aleph, во главе с Giuseppe Bilotta. Latex версия Aleph называется Lamed.
Aleph больше не развивается, но большинство его функциональности была интегрирована в LuaTeX, новый проект который финансируется Университета Штата Колорадо (через ориентированный TeX Project by Idris Samawi Hamid) и NTG.Разработка LuaTeX началась в 2006 году, первая бета версия летом 2007. Это приемник Aleph и Pdftex, используя Lua как интегрированный лёгкий язык программирования. LuaTex разработан Taco Hoekwater.
Это довольно вольный перевод статьи с английской википедии.

Список литературы


[1] ru.wikipedia.org/wiki/TeX — Статья про TeX
[2] ru.wikipedia.org/wiki/LaTeX — Статья про LaTeX
[3] ru.wikipedia.org/wiki/XeTeX — Статься про Xetex
[4] www.ctan.org/tex-archive/systems/luatex/manual/luatexref-t.pdf — LuaTeX Reference (англ)
[5] en.wikipedia.org/wiki/LuaTeX — Статься про LuaTeX (англ)
[6] ru.wikipedia.org/wiki/BibTeX — Статья про BibTex
[7] www.linux.org.ru/forum/general/1782585 — Спорное решение проблемы с инициалами
[8] www.linux.org.ru/news/opensource/3450354/page1#comment-3452929 — Мнение по поводу данного решения проблемы
[9] en.wikipedia.org/wiki/ConTeXt — Статься про ConTexT (англ)
[10] offline.computerra.ru/2006/634/263569 — Введение в ConTEXt
[11] sovety.blogspot.com/2008/09/context.html — Знакомство с ConTeXt
[12] en.wikipedia.org/wiki/Omega_(TEX) — Статья по Омеге (англ)

UPDATE 1: Исправлен код xelatex
UPDATE 2: Исправлен перевод на предложенный в комментариях
Tags:
Hubs:
+17
Comments 16
Comments Comments 16

Articles