TEX & Ukrainian (ver. 28.02.2021)

    На цій сторінці Ви знайдете інформацію про TeX і його можливі види, а також чи потрібно його вчити української мови.

Що таке TeX, або яка різниця між LaTeX, emTeX і BibTeX?

    Дуже часто задають запитання "Де взяти LaTeX під Windows?", або "В мене є RevTeX на UNIX-сервері, а мені потрібно під DOS?" на які дуже важко давати відповідь.

    На даний час існує дуже багато дистрибутивів, пакетів, програм, які містять в своїй назві складову TeX, але по своїй суті це можуть бути принципово різні речі. Тому, перш ніж починати шукати TeX для своїх потреб, вартує засвоїти деякі базові поняття.

    TEX (τεχ) є видавнича система написана проф. Дональдом Кнутом (Donald E. Knuth) для "створення гарних книжок — особливо книжок з великою кількістю математики". Для написання TeX Кнутом була розроблена система "літературного програмування" і вихідний "літературний" (WEB) код TeXу є доступний для вільного розповсюдження. Крім того система WEB надає засоби для відносно легкого перенесення TeX на нові операційні системи і комп'ютери (Web2C). Тому на даний час TeX є чи не єдиною потужною видавничою системою, яка існує практично для всіх платформ і операційних систем і для всіх них дає повністю ідентичний результат, з повною сумісністю файлів!

    TeX за своєю суттю є макро процесор, який надає потужні можливості, але вимагає певного рівня програмування. Тому для практичних цілей Кнут створив макропакет plain TeX, який надає мінімальний набір макросів і команд високого рівня (моделі, шаблони) для форматування тексту і не тільки. Інший потужний макропакет LATEX спочатку був написаний Леслі Лемпортом (Leslie Lamport), а тепер (LaTeX 2ε, проект LaTeX 3) розвивається групою добровольців на чолі з Френком Міттельбахом (Frank Mittelbach) і Крісом Роулі (Chris Rowley). Він дозволяє легко описати структуру документу, яка, при використанні відповідних класів документів і додаткових пакетів, може давати на виході по різному оформлений результат. Поряд з цими існує багато інших макропакетів (AmsTeX, AmsLaTeX, RevTeX, ...), які можуть функціонувати самостійно, або поверх LaTeX. Всі макропакети існують і розповсюджуються у текстовому (ASCII) форматі і є однакові для всіх платформ і операційних систем.

    Канонічно, кожен TeXівський документ з підключенням відповідних макропакетів пропускається через процесор (компілятор) TeX на виході якого отримуємо DVI (device independent) файл, який з допомогою відповідних DVI драйверів можна переглянути на екрані, створити PostScript файл, або надрукувати на будь якому принтері. DVI драйвери є різні для різних платформ за виключенням dvips (драйвер друку в PostScript форматі), який існує для всіх операційних систем і вважається штатним. Створений PostScript файл можна або надрукувати на PostScript принтері, або з допомогою утиліти ghostscript переглянути на екрані чи надрукувати на будь-якому не PostScript принтері, або з допомогою утиліти ps2pdf перетворити в PDF файл.

    Тепер основним процесором (компілятором) став pdfTeX/pdfLaTeX, який на виході створює не DVI, а PDF файл. Це зумовлено в першу чергу тим, що, за виключенням dvips, розробка більшості, зокрема екранних, DVI драйверів практично призупинена. Багато сучасних інтегрованих середовищ орієтовані саме на використання pdfTeX/pdfLaTeX (див. нижче).

    Додатково TeX, як видавнича система, включає BibTeX (програма для створення списку посилань з бібліоґрафічної бази даних), MakeIndex для створення різного роду покажчиків, і багато інших. Бінарні реалізації TeX процесора (tex, tex386, initex, virtex, ...), як і DVI драйверів, BibTeX, MakeIndex, звичайно є різні для різних платформ і операційних систем і є складовими частинами різних дистрибутивів, наприклад: teTeX для UNIX; emTeX для MS-DOS, OS/2 і Windows 3.xx; mikTeX для Windows 9x/NT; ozTeX для Macintosh).

    Тому говорячи про той чи інший TeX слід чітко розрізняти конкретні реалізації в бінарних кодах, певні програми чи набори макропакетів.

[Початок]

Об'єднання користувачів TeX (TUG).

    Користувачі TeX усього світу об'єднані в Групу користувачів TeX (TeX Users Group — TUG). На сервері TUG (http://www.tug.org/) можна знайти багато корисної інформації про TeX, його складові компоненти, існуючі макропакети і дистрибутивів.

    Крім світового об'єднання TUG в різних країнах є свої національні об'єднання користувачів TeX. В Україні на даний час немає свого національного об'єднання. В Москві при видавництві "Мир" існувала Група користувачів кириличного TeXу (Cyrillic TeX Users Group — CyrTUG), яка курувала розробку підтримки кирилиці в TeX. У 2000 році трансформувалася у CyrTeX — Асоціацію користувачів кириличного TeXу. На даний час саморозпустилася, а її функції виконують списки розсилки і спеціалізовані форуми.

[Початок]

Де взяти TeX, або що таке CTAN?

    TeX є вільно розповсюджуваним продуктом і будь-які його складові частини можна отримати безплатно на CTAN (Comprehensive TeX Archive Network). CTAN має потужні засоби пошуку, а також можливість стягувати цілі директорії у заархівованому виді.

[Початок]

Основні набори макропакетів LaTeX.

    Всі набори макросів під TeX/LaTeX знаходяться у директорії CTAN/macros, де вони згруповані по основних "видах" TeXу. Макроси для LaTeX 2ε є у директорії CTAN/macros/latex, а для старого LaTeX 2.09 — у директорії CTAN/macros/latex209.

    Макропакети під LaTeX 2ε згруповані наступним чином:

Сучасні дистрибутиви TeX містять всі необхідні набори пакетів. Встановлення і видалення окремих пакетів описано в документації до дистрибутивів (див. нижче)
Тільки у виняткових випадках виникає потреба у ручному встановлення (інсталяція) пакетів, яка залежить від формату їх розповсюдження. Якщо пакет розповсюджується у .dtx форматі, то дистрибутив містить також файл інсталяції .ins і для встановлення пакету слід пропустити цей файл через LaTeX: latex filename.ins, — і скопіювати зґенеровані файли у відповідні директорії для стильових файлів і макропакетів. Для отримання документації слід пропустити через LaTeX сам .dtx файл. В інших випадках достатньо скопіювати файли у відповідні директорії. Після цього для деяких дистрибутивів TeX (напр.: teTeX, MikTeX, fpTeX) слід провести оновлення бази даних імен файлів (filename database).

[Початок]

Кирилізація TeX/LaTeX, або як його навчити української мови.

    З 1998 року діє офіційний стандарт з підтримки кирилиці в TeX/LaTeX (включаючи українську мову). Він включає підтримку кирилиці в LaTeX 2ε (починаючи з версії від 31 грудня 1998 р.), підтримку української мови в babel, кириличні LH шрифти і українські переноси. Деталі описані в cyrguide.tex в base дистрибутиві LaTeX 2ε.

    Відповідні пакети Ви можете знайти на серверах CTAN в директоріях:

Нові дистрибутиви TeX вже містять всі необхідні пакети (див. нижче).

    Процес кирилізація/українізації складається з наступних етапів (для більшості дистрибутивів це вже зроблено розробниками, див. нижче):

 Встановлення кириличних LH шрифтів (не актуально)

    Стягнути вміст директорії fonts/cyrillic/lh з CTAN і уважно прочитати файл install. LH шрифти використовують деякі файли з пакету EC шрифтів (шрифти для європейських мов на основі латинки), тому їх теж слід встановити. Cучасні дистрибутиви TeX містять в комплекті EC шрифти.

    LH шрифти підтримують наступні внутрішні кодування (font encoding), не плутати з кодуванням документа (input encoding):

 Встановлення пакетів cyrillic і babel (не актуально)

    Стягнути вміст директорії macros/latex/required/cyrillic і macros/latex/required/babel з CTAN, пропустити через LaTeX cyrlatex.ins і babel.ins, скопіювати зґенеровані файли у відповідні директорії і при необхідності оновити бази даних імен файлів.

 Встановлення і конфіґурація українських переносів (не актуально)

    Стягнути вміст директорії language/hyphenation/ukrhyph, скопіювати файли у відповідну директорію і уважно прочитати файл readme. Відредагувати, при потребі, файл ukrhyph.tex: задати внутрішнє кодування шрифту (T2A або LCY або OT2 або X2) і вибрати одну з п'яти таблиць переносу: По замовчуванню, встановлено кодування T2A і таблиця переносів ukrhypmp.tex.
    Підключити українську таблицю переносів у LaTeX (див. readme в пакеті ukrhyph), для чого створити або відредагувати файл language.dat з пакету babel, а саме, або додати рядок
ukrainian ukrhyph.tex
або групу рядків
ukreng ukrenhyp.tex
=english
=ukrainian
В останньому випадку українські переноси підключаються разом з англійськими як один \language.

 Створення нового форматного файлу LaTeX (не актуально)

    Згідно документації до Вашого дистрибутиву TeX, переґенерувати форматний файл latex.

 Підключення української в документі

    Для підключення кирилиці у документ слід в преамбулі, після команди \documentclass і перед \begin{document}, набрати наступні команди:
\usepackage{type1ec}                  % для автоматичної інсталяції cm-super під miktex (використання шрифтів довільного розміру).
\usepackage{mathtext}                 % підключення кирилиці у математичних формулах
                                      % (mathtext.sty входить в пакет t2).
\usepackage[T1,T2A]{fontenc}          % внутрішнє кодування шрифтів (може бути декілька);
                                      % вказане останнім діє по замовчуванню;
                                      % кириличне має співпадати з заданим в ukrhyph.tex.
\usepackage[cp1251]{inputenc}         % кодування документа; замість cp1251
                                      % може бути cp866nav, koi8-u, macukr, iso88595, utf8.
\usepackage[english,ukrainian]{babel} % національна локалізація; може бути декілька
                                      % мов; остання з переліку діє по замовчуванню.
переключення між мовами здійснюється з допомогою команди \selectlanguage, напр. \selectlanguage{ukrainian}. Більш детально все описано в cyrguide.tex з дистрибутиву LaTeX 2ε і у документації до babel (файл user.tex). Ще важливо відмітити, що при підключенні деяких мов з допомогою пакету babel певні символи стають активними і сприймаються не як текстовий символ, а як команда. Зокрема, для української мови таким активним символом є знак подвійної лапки ("). Тому слід уникати його використання, а для набору лапок слід використовувати пари символів (``) для відкриваючої лапки і ('') для закриваючої. Детальніше про додаткові команди для набору українських текстів описані в розділі 2.5.1 українського перекладу lshort.

    Для підключення кирилиці у документах набраних в старому LaTeX 2.09 слід створити стильовий файл, напр. ukrainian.sty, який містить відповідні рядки з преамбули, але з заміною команди \usepackage на \RequirePackage, напр.:

\RequirePackage[T2A]{fontenc}
\RequirePackage[koi8-u]{inputenc}
\RequirePackage[ukrainian]{babel}

 Створення української бібліоґрафії

    Основна проблема при створенні бібліоґрафії (списку літератури) кирилицею полягає в тому, що ориґінальний bibTeX обробляє тільки 7-ми бітові коди. Тому було створено його модифікацію bibtex8, яка вміє працювати з 8-ми бітовими символами. Список посилань (файл з розширенням .bbl) створюється з допомогою команди:
bibtex8 -H -c cp1251 filename.aux
де замість cp1251 може бути koi8u, ruscii (кодування DOS) або utf8cyrillic, які задають звертання до відповідних конфіґураційних (.csf) файлів пакету gost. Тобто, послідовність дій є наступною:
pdflatex filename.tex
bibtex8 -H -c cp1251 filename.aux
pdflatex filename.tex
pdflatex filename.tex

Самі бібліоґрафічні бази даних bibTeX (файли з розширенням .bib) можна створювати з допомогою звичайного текстового редактора, або використовуючи спеціалізовані програми. Найбільш придатною для набору кирилиці є java програма JabRef, яка працює під усіма операційними системами і може імпортувати дані у форматі BibTeXML, CSA, Refer/Endnote, ISI Web of Science, SilverPlatter, Medline/Pubmed (xml), Scifinder, OVID, INSPEC, Biblioscape, Sixpack, JStor та RIS.

Підключення списку посилань у документі здійснюється з допомогою команд \bibliographystyle, яка задає стиль оформлення бібліоґрафії, та \bibliography, яка вказує файли з бібліоґрафічними базами (файли з розширенням .bib), напр.,

\bibliographystyle{gost2003} %%% ГОСТ 7.1-2003; ДСТУ ГОСТ 7.1:2006    — для оформлення бібліоґрафічних описів у ЗВІТАХ У СФЕРІ НАУКИ І ТЕХНІКИ (ДСТУ 3008:2015) і авторефератах дисертацій
\def\BibEmph#1{\emph{#1}}    %%% для краси
\bibliography{mybib,genbib}
або
\bibliographystyle{gost2008} %%% ГОСТ Р 7.0.5-2008; ДСТУ 8302:2015    — для оформлення бібліоґрафічних посилань у дисертаціях
\def\BibEmph#1{\emph{#1}}    %%% для краси
\def\BibDash{}               %%% забирає тире, які тепер не обов'язкові
\bibliography{mybib,genbib}

[Початок]

Які є дистрибутиви TeXу і під які платформи?

    Базовим дистрибутивом для всіх платформ є Web2C, але, як правило, він використовується тільки розробниками дистрибутивів під конкретні платформи. Дистрибутиви TeX під різні платформи можна знайти на CTAN в директорії systems. Нижче перераховані найбільш популярні дистрибутиви TeX, а також зазначено їх ступінь кирилізації/українізації. Оскільки бінарні компоненти TeX призначені для роботи з командної стрічки, то для полегшення роботи створено різного типу оболонки-середовища, інформація про які також приведена.

    TUG розповсюджує TeX Live з готовою до запуску TeX системою для більшості видів UNIX, включаючи Linux, та Windows (для Mac OS X є окрема збірка MacTeX) з дуже повним набором шрифтів і макросів розміщених згідно стандарту структури TeX директорії (TeX directory structure — TDS). ISO образ TeX Live DVD знаходиться на CTAN в директорії systems/texlive/Images.

    Мінімальна інсталяція TeX Live з підтримкою української мови (стосується оригінального “vanilla” TeX Live від TUG) включає scheme-small з додаванням collection-binextra, collection-fontutils, collection-langcyrillic та collection-fontsrecommended.

    Для полегшення набору текстів в TeX/LaTeX і автоматизації роботи розроблемі спеціальні інтегровані середовища. Тут приведена інформація про IDE, які існують для усіх основних операційних систем. Найстарішою оболонкою, яка здатна працювати і в текстовому терміналі, є emacs (xemacs), під який розроблений свій макро-набір auctex. Також існують спеціальні оболонки з графічним інтерфейсом, але тільки деякі з них мають засоби для набору кириличних текстів. У першу чергу це TeXworks, який орієнтований на використання pdfTeX/pdfLaTeX і створення PDF документів та входить у більшість дистрибутивів. Більш гнучким у використанні є TeXstudio, який є відгалуженням з додатковою функціональністю оболонки Texmaker.

 UNIX

    Під UNIX, включаючи GNU/Linux, основним дистрибутивом є TeX Live. У більшості випадків TeX Live є складовою частиною дистрибутиву самої операційної системи і може бути встановлений використовуючи стандартні засоби додавання пакетів. TeX Live містить усі необхідні компоненти для кирилізації/українізації.

    Особливості встановлення TeX Live під Debian/Ubuntu, зокрема оригінального “vanilla” TeX Live від TUG, описано в TeX Live and Debian/Ubuntu.

    Мінімальна інсталяція TeX Live з підтримкою української мови (стосується “vanilla” TeX Live) включає scheme-small з додаванням collection-binextra, collection-fontutils, collection-langcyrillic та collection-fontsrecommended. З другого боку, в дистрибутивах GNU/Linux пакети TeXlive можуть бути згруповані в збірки в інший спосіб і під іншими назвами.

    Найстарішою оболонкою, яка здатна працювати і в текстовому терміналі, є emacs (xemacs), під який є розроблений свій макро-набір auctex. Також існують спеціальні оболонки під X Windows, але тільки деякі з них мають засоби для набору кириличних текстів. У першу чергу це TeXworks, який орієнтований на використання pdfTeX/pdfLaTeX і створення PDF документів та входить у більшість дистрибутивів. Більш гнучкими у використання є TeXstudio, який є відгалуженням з додатковою функціональністю оболонки Texmaker, а також Kile під KDE.

 Windows 9x/NT/XP/...

    Під Windows 9x/NT/XP/... основними дистрибутивами є MikTeX (systems/win32/miktex) та TeX Live. Також TUG створило на основі MikTeX окремий дистрибутив proTeXt під Windows, який включає додаткові програми, зокрема вільну оболонку TeXstudio і ghostscript, та простіший у встановленні.

    MikTeX має всі необхідні компоненти для кирилізації/українізації. Усі налаштування виконуються з допомогою штатної програми MiKTeX Console. Унікальною особливістю MikTeX є автоматичне встановлення відсутніх пакетів, що корисно при мінімальній інсталяції, але це не завжди спрацьовує. Тому ОБОВ'ЗКОВО встановіть стандартні, у тому числі кириличні, шрифти у форматі Adobe Type 1, cm-super, які потрібні для створення якісних PDF-файлів. Для цього достатньо один раз в преамбулі документа поставити \usepackage{type1ec} перед викликом fontenc.

    Мінімальна інсталяція TeX Live включає scheme-small з додаванням collection-binextra, collection-fontutils, collection-langcyrillic та collection-fontsrecommended.

    Як інтегроване середовище використовується TeXworks, який орієнтований на використання pdfTeX/pdfLaTeX і створення PDF документів. Але як MikTeX так і TeX Live легко інтегруються з іншими IDE, зокрема з вище згаданими TeXstudio, який є відгалуженням з додатковою функціональністю оболонки Texmaker, та TeXnicCenter. Також існує зручна і потужна оболонка WinEdt (shareware).

 Macintosh

    На основі TeX Live створено спеціальний дистрибутив MacTeX, який додатково містить встановлювач під MacOS X та оболонку TeXShop, а також деякі специфічні для MacOS X утиліти. Випускається також доповнення MacTeXtras, з додатковими утилітами. MacTeX містить усі необхідні компоненти для кирилізації/українізації.

    Дистрибутив MacTeX включає інтегровані середовища TeXShop та TeXworks. Також під MacOS X можна використовувати TeXstudio, Texmaker та iTeXMac.

    Детальну інформацію про використання TeX на Mac OS X можна знайти на TeX on Mac OS X wiki.

 MS-DOS, OS/2, Windows 3.xx (історична довідка)

    Під MS-DOS і Windows 3.xx на даний час вижили тільки emTeX, djgpp і dos-tp.
    djgpp є фактично портом web2c/teTeX під DJGPP (32-bit C/C++ development system + GNU development utilities), без якого не працює. Не містить ніяких засобів кирилізації, все потрібно встановлювати.
    dos-tp містить тільки бінарні модулі і вимагає значних знань і зусиль по встановленню і конфіґурації.
    Найбільш популярним пакетом під OS/2, MS-DOS і Windows 3.xx є emTeX. Для emTeX існує готовий до вжитку пакет (ruemtex.zip або ruemtex.rar), правда без українських переносів і зі старою версією babel без підтримки української мови.
    Для підключення української мови слід встановити нову версію babel і українські переноси.
    Дистрибутив emTeX не оновлюється з середини 1998 року, тому вартує оновити також ядро LaTeX 2ε і основні пакети.
    При створенні нового форматного файлу не забудьте задати опції для підключення 8-бітового кодування (див. tex.doc), наприклад: tex386.exe -i -mt45000 -8 -o -r -ml latex.ltx
    Як оболонки-середовища для emTeX є texshell під MS-DOS/OS2; TeXtelmExtel, emtexgi під Windows 3.xx. Для перегляду і друку DVI файлів під Windows 3.xx існує GUI програма dviwin.
    Як інтегроване середовище для emTeX під OS/2, може використовуватися WorkPlace Shell (див. документацію emTeX).
    Дуже рекомендується також встановити ghostscript.

 Налаштування інтегрованого середовища TeXstudio

    TeXstudio на даний час є чи не найрозвиненішим інтегрованим середовищем для сторення документів LaTeX. Він запускається під Windows, Unix/Linux, BSD, та Mac OS X. Налаштування TeXstudio, у тому числі для роботи з кирилецею, включає наступні кроки:
  1. :Параметри::Конфігурація TeXstudio::Команди:

    У рядках Переглядач DVI/PS/PDF перевірити/задати параметри виклику конкретного переглядача відповідно до конфігурації системи. Варіанти для різних операційних систем і дистибутивів LaTeX, які забезпечують прямий і зворотній пошук (Forward/Inverse search) між текстом і переглядачем DVI чи PDF (але не PS), можна знайти в посібнику користувача.

    У рядку BibTeX 8-бітний задати параметри виклику, напр. bibtex8 -H -c cp1251 %.aux, де замість cp1251 може бути koi8u, ruscii (кодування DOS) або utf8cyrillic, які задають звертання до відповідних конфіґураційних (.csf) файлів пакету gost.

  2. :Параметри::Конфігурація TeXstudio::Збирання:

    У рядку Усталений засіб бібліографії з випадаючого меню вибрати BibTeX 8-бітний.

    Інші рядки можна залишити без змін, якщо планується використовувати pdfLaTeX, або поправити відповідно до потреб. Наприклад, серед пропозицій меню Збирання і перегляд є сценарій Обробка DVI->PS->PDF, який включає ланцюжок latex | dvips | ps2pdf | view-pdf.

  3. :Параметри::Конфігурація TeXstudio::Редактор:

    У рядку Усталене кодування задати кодування документу LaTeX за замовчуванням, напр., windows-1251. За потреби, для конкретного документа кодування можна змінити через загальне меню :Зміни::Налаштувати кодування:.

  4. :Параметри::Конфігурація TeXstudio::Перевірка мови:

    Тут можна налаштувати параметри перевірки орфографії за замовчуванням та інші мовні засоби.

[Початок]

Документація по TeX/LaTeX

    По-перше, всякий дистрибутив TeX містить певний мінімум документації.

    Вся вільно доступна документація з TeX/LaTeX є на CTAN в директорії info. Для вивчення LaTeX 2ε я рекомендую почати з lshortукраїнський та російський переклади). Дуже рекомендую прочитати розділ 2.5 "Підтримка багатомовності". Український переклад lshort містить також розділ 2.5.1 "Українська мова" з корисними поради по створенню документів LaTeX українською мовою.

    Добрим детальним керівництвом з практичного використання LaTeX є книжка Е.М. Балдин "Компьютерная типография LaTeX". Корисною може бути також документація Сюткіна.

TeX в Internet

http://www.tug.org/ — TeX Users Group (TUG)
списки розсилки і спеціалізовані форуми користувачів кириличного TeXу

http://ctan.org — CTAN
ftp://ftp.vsu.ru/pub/tex — засоби кирилізації, шрифти, документація (може бути застаріле)

http://faq.tug.org/ — TeX Frequently Asked Questions (FAQ)

http://tug.org/utilities/texconv/ — Converters between LaTeX and PC Textprocessors

    Newsgroups

comp.text.tex
fido7.ru.tex

[Початок]

Андрій Швайка ()