Мови

  • English
  • Українська

Пошук

Синдикація

RSS-матеріал

TEX і кирилізація


TEX & Ukrainian (ver. 01.01.2012)
    На цій сторінці Ви знайдете інформацію про 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 принтері. Існує також процесор (компілятор) pdfTeX/pdfLaTeX, який на виході створює не DVI, а PDF файл.

    Додатково 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 є вільно розповсюджуваним продуктом і будь-які його складові частини можна отримати безплатно на ftp-серверах CTAN (Comprehensive TeX Archive Network), які включають три базові сервери: ftp://ftp.tex.ac.uk/tex-archive (Cambridge, UK), ftp://ftp.dante.de/tex-archive (Mainz, Germany) і ftp://ctan.tug.org/tex-archive (Boston, Massachusetts, USA), - і велику кількість дзеркал по всьому світі (див. файл CTAN.sites). Структура дерева CTAN описана у файлі CTAN/index.html. Кожен сервер CTAN має потужні засоби пошуку, а також можливість стягувати цілі директорії у заархівованому виді ввівши команду get name_of_directory.ext, де як розширення .ext може бути .zip, .tar, .tar.gz, .tgz, .zoo
і т.п.

[Початок]

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

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

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

  • base(.zip) - базовий дистрибутив (основне ядро) LaTeX 2ε.
  • unpacked(.zip) - розпаковане основне ядро LaTeX 2ε.
  • required - основні доповнення до ядра, які підтримуються розробниками LaTeX 2ε:
    • tools(.zip) - набір стандартних розширень LaTeX: multicol, afterpage, longtable, theorem і т.п.
    • amslatex(.zip) - розширення математичних можливостей LaTeX від AMS (American Mathematical Society).
    • babel(.zip) - набір пакетів підтримки різних мов, у тому числі української (національні назви місяців, стандартних структурних частин документу, особливості форматування).
    • graphics(.zip) - пакет для вставлення, масштабування і обертання графічних об'єктів, а також для кольорового оформлення текстів.
    • cyrillic(.zip) - набір пакетів LaTeX 2ε для підтримки мов на основі кирилиці (засоби підключення кириличних шрифтів (без самих шрифтів), підтримка різних кодувань кирилиці).
    • psnfss(.zip) - засоби для підключення PostScript шрифтів (без самих шрифтів).
  • contrib - величезний набір пакетів для LaTeX 2ε, створених різними авторами і для різних потреб.

Встановлення (інсталяція) пакетів залежить від формату їх розповсюдження. Якщо пакет розповсюджується у .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(.zip) з CTAN і уважно прочитати файл install. LH шрифти використовують
деякі файли з пакету EC шрифтів (шрифти для європейських мов на основі латинки), тому їх теж слід встановити. Як правило, сучасні
дистрибутиви TeX містять в комплекті EC шрифти.

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

  • T2A, T2B, T2C - основні кодування (латинка+кирилиця). Кодування кириличних букв в основній частині співпадає з Windows CP 1251. Український алфавіт підтримується кодуванням T2A (рекомендується).
  • LCY - кодування на основі альтернативного варіанту CP 866 (латинка+кирилиця). Кодування українських букв співпадає з стандартом України РСТ 2018-91. Рекомендується хіба що для LaTeX 2.09 або для сумісності зі старими способами кирилізації.
  • X2 - кодування, яке містить всі можливі символи з усіх алфавітів на основі кирилиці (тільки кирилиця).
  • OT2 - старе кодування кирилиці під TeX (Washington University Cyrillic, WNCYR, AMS Cyrillic). Кирилиця розміщена у нижній (основній) частині кодової таблиці замість латинки. Не містить усіх українських букв.

 Встановлення пакетів cyrillic і babel

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

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

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

  • ukrhypsm.tex - таблиця переносів створена мною на основі списку 84000 українських слів з розставленими переносами згідно нових (1990 р.) правил.
  • ukrhypst.tex - таблиця переносів створена мною на основі списку 84000 українських слів з розставленими переносами згідно нових (1990 р.) правил, але з деякими поправками (усунені, як на мій смак, надто ліберальні переноси).
  • ukrhypmt.tex - таблиця переносів створена Максимом Поляковим згідно старих (1960 р.) правил.
  • ukrhypmp.tex - таблиця переносів створена Максимом Поляковим згідно старих (1960 р.) правил і з використанням фонетичного поділу на склади.
  • ukrhypfa.tex - таблиця переносів створена Максимом Поляковим на основі російських переносів Дмитра Вуліса із заміною російських букв українськими (чисто експериментальна :)

По замовчуванню, встановлено кодування 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{mathtext}                
% підключення кирилиці у математичних формулах
                                     
% (mathtext.sty входить в пакет t2).
\usepackage[OT1,T2A]{fontenc}        
% внутрішнє кодування шрифтів (може бути декілька);
                                     
% вказане останнім діє по замовчуванню;
                                     
% кириличне має співпадати з заданим в ukrhyph.tex.
\usepackage[cp866nav]{inputenc}      
% кодування документа; замість cp866nav
                                     
% може бути cp1251, 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-ми бітовими символами. Список посилань створюється з допомогою команди:

bibtex8 -H -c cp1251 filename.aux

де замість cp1251 може бути koi8u або ruscii (кодування DOS), які задають звертання до відповідних конфіґураційних файлів пакету gost.

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

[Початок]

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

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

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

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

    UNIX

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

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

    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.

        Під OS/2 є доповнення до emTeX: emTeXTDS. Як інтегроване середовище для emTeX під OS/2, може використовуватися WorkPlace Shell (див. документацію emTeX).

        Дуже рекомендується також встановити ghostscript.

        Якщо Вам ліньки займатися оновленням і інсталяцією пакетів під emTeX (версії починаючи з червня 1995 р.), то Ви можете скористатися моїм старим пакетом (обмежений набір шрифтів, вхідне кодування тільки альтернативний варіант CP866 (РСТ 2018-91)). Для інсталяції, стягніть файл ukremtex.zip, розкрутіть у корінну директорію де є emTeX, напр. pkunzip -d ukremtex.zip c:\, і у директорії emtex\btexfmts запустіть файл ulplain.bat для створення форматного файлу LaTeX 2.09 ulplain.fmt і ulatex.bat для створення форматного файлу LaTeX 2ε ulatex.fmt. Якщо Ви користуєтеся texshell, то пакет містить файл конфіґурації texshell.cfg (перед інсталяцією не забудьте зберегти свій старий texshell.cfg) з підключенням новостворених форматів.

    Windows 9x/NT/XP/...

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

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

        Оскільки екранні DVI драйвери цих пакетів використовують ghostscript
    для відображення графічних об'єктів у PostScript форматі, то його слід обов'язково інсталювати перед інсталяцією MikTeX і оболонок.

    Macintosh

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

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

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

    [Початок]

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

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

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

    TeX в Internet

    http://www.tug.org/ - TeX Users Group (TUG)

    списки розсилки і спеціалізовані форуми користувачів кириличного TeXу

    ftp://ftp.tex.ac.uk/tex-archive
    - CTAN (Cambridge, UK)

    ftp://ftp.dante.de/tex-archive
    - CTAN (Mainz, Germany)

    ftp://ctan.tug.org/tex-archive
    - CTAN (Boston, Massachusetts, USA)

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

    http://www.tex.ac.uk/cgi-bin/texfaq2html
    - TeX Frequently Asked Questions (FAQ)

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

        Newsgroups

    comp.text.tex

    fido7.ru.tex

    [Початок]

    Андрій Швайка ©