четвер, 13 вересня 2007 р.

Текстовий процесор LyX

Я вже публікував статтю з розповіддю про чудову систему для підготовки публікацій типографської якості - LaTeX (http://korkholeh.blogspot.com/2007/09/latex.html). На жаль переважна більшість людей в Україні, навіть у академічному середовищі (що особливо прикро для мене) не лише не володіють даною системо, а навіть ніколи не чули про її існування. Більше того, навіть наші математики та інші фундаментальщики, на відміну від своїх зарубіжних колег, з впертістю гідної кращого застосування продовжують насилувати офісні інструменти (переважно MS Word) змушуючи їх робити те, для чого вони не були призначені. І це дійсно проблема, адже використання LaTeX допомоголо б сильно економити час, що витрачається просто впусту на потуги привести публікацію у Word до пристойного вигляду. Наші зарубіжні колеги вже більше 20 років використовують цю систему і наразі нічого кращого ще придумано не було.

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

Проте, не потрібно й переоцінювати складність роботи з LaTeX. Адже створено багато програм які дозволяють спростити роботу з даною системою. Є такстові редактори які просто підсвічують синтаксис LaTeX (vim, gedit), є спеціалізовані редактори які дозволяють працювати зі структурою документу та вставляти різноманітні команди одним кліком мишки (TeXMaker), а потужні спеціалізовані текстові процесори, що використовують LaTeX для верстання документу проте не вимагають його глибинних знань (LyX, TeXmacs). Я розповім про один з таких текстових процесорів,який є мабуть найпотужнішим OpenSource інструментом у даній галузі і практично нічим не поступається своїм комерційним аналогам у середовищі Windows (Scientific Word наприклад) - LyX.

LyX - це текстовий процесор, що сповідує філософію WYSIWYM (What You See Is What You Mean). На відміну від WYSIWYG такий підхід акцентує увагу не на зовнішньому вигляді документу, а на його контенті та структурі. Принцип полягає у тому, що ви набираєте текст, включаючи формули, малюнки та таблиці, паралельно вказуючи логічну структуру документу та задаючи зв'язки між окремими об'єктами, а також задаючи логічне форматування. Остаточною ж підготовкою публікації згідно всіх типографських правил займається вже компілятор LaTeX генеруючи файл (.dvi, .ps, .pdf) придатний для роздруку на будь-якому обладнанні і під будь-якою платформою. При цьому у вас є 100% гарантія, що на чужому принтері документ роздрукується абсолютно у такому ж самому вигляді як і на вашому.

Оскільки у репозиторіях Ubuntu Feisty Fawn знаходиться стара версія, то я рекомендую скачати останню на сьогодні версію 1.5.1 з офіційного сайту http://www.lyx.org/ Серед нововведень у гілці 1.5 - підтримка кодування UTF-8, а також переведення інтерфейсу користувача на Qt4. Існують також версії і для інших платформ, у тому числі Windows.

Ось так виглядає LyX після запуску:



Звичайно, щоб описати всі можливості LyX потрібно написати немаленьку книжку, тому тут я буду говорити лише про основні речі. Нижче видно відкритий документ (це текст із системи допомоги).



LyX дозволяє набирати текст приблизно так же як ви його могли б набирати у тому ж Word чи Writer, але тут є свої особливості викликані тісною інтеграцією з LaTeX. Перша особливість - це те, що зовнішнє оформлення документу повністю описується класом документа (Document->Settings->Document Class). Саме клас документу визначає як верстати сторінки (друк з одного боку чи з двох), найвищий порядок команд рубрикації (у класі Book наприклад навідміну від Article присутні частини - Part), параметри оформлення заголовків та ін. У тому ж таки Document->Settings ви зможете задати розмір основного шрифта, поля, мову, підключити додаткові пакети та ін. Також можна вручну додати необхідні команди у преамбулу.

Дуже зручно працювати у LyX з рисунками. Наприклад вам потрібно вставити плаваючий рисунок у статтю, тоді просто вставляємо плаваючий кадр з допомогою Insert->Float->Figure. Набираємо підпис рисунка, а потім піднявши курсор угору, з допомогою Insert->Graphics вставляємо вже безпосередньо зображення. З допомогою Edit->Paragraph Settings вирівнюємо рисунок по центру.



Формули вставляються ще простіше. Якщо потрібна формула у тексті, то використовується Insert->Math->Inline Formula, а виключна формула вставляється з допомогою Insert->Math->Display Formula. Існує також велика кількість інших варіантів формул, включаючи додаткові середовища AMS-TeX (наприклад multline для багаторядкових формул).

Що стосується більшості стандартних команд LaTeX, то LyX обробляє їх "на льоту", але частина команд відображається явно сірим кольором. Наприклад команда вставки сноски \footnote, відображається саме таким чином, а її текст видно після подвійного кліку по ній. З допомогою Document->Outline можна проглядати структуру документа. Результуючий документ завжди можна переглянути з допомогою меню View у такому форматі який потрібен.

Нерозривний пробіл ставиться з допомогою Ctrl+Enter. Три та два дефіса вставлених підряд автоматично замінюються на довге або середнє тире.

Звісно ж реальна сила LaTeX ховається далеко за візуальними наворотами і можливості LyX обмежені. Проте у випадках коли потрібно швидко підготувати документ не заглиблюючись у тонкощі, то такий підхід дозволяє отримати досить якісний результат.

Зміна параметрів оформлення документу
Хоч LyX і дуже зручний інструмент, проте далеко не всім очевидно як змінити стандартне оформлення документу передбачене вибраним класом. Насправді даний текстовий процесор не має таких можливостей, тому для цього потрібно знати LaTeX. Для того щоб перекрити певні команди потрібно додати зміни у преамбулу (Document->Settings->LaTeX Preamble).

Наприклад, якщо ми хочемо щоб перед номером розділу саме слово Розділ писалось великими літерами нам потрібно додати команду:
\renewcommand{\@chapapp}{РОЗДІЛ~}

Якщо ми хочемо щоб номер сторінки проставлявся не внизу по центру, а вгорі праворуч, то потрібно вставити наступне:

\renewcommand{\@oddhead}{\hfil\thepage}
\renewcommand{\@oddfoot}{}


Якщо потрібно, щоб заголовок глави відображався не жирним шрифтом з вирівнюванням по лівому краю, а звичайним текстом вирівняним по центру, то потрібно перекрити команду \section. Таким же чином можна перекривати й інші команди описані у класі документу змінюючи оформлення різних елементів. Це здається складним якщо робити з нуля, проте початкові описи команд можна знайти у відповідному .cls файлі, потрібно лише їх зкопіювати і змінити їх опис з допомогою команди \renewcommand.

\renewcommand{\section}{\@startsection{section}{2}%
{\parindent}{3.5ex plus 1ex minus .2ex}%
{2.3ex plus .2ex}{\normalfont\large\centering}}


Для того щоб замінити двокрапку після номера рисунку на прийняту у нас крапку, потрібно перекрити команду \@makecaption

\renewcommand{\@makecaption}[2]{%
\vspace{\abovecaptionskip}%
\sbox{\@tempboxa}{#1. #2}
\ifdim \wd\@tempboxa >\hsize
#1. #2\par
\else
\global\@minipagefalse
\hbox to \hsize {\hfil #1. #2\hfil}%
\fi
\vspace{\belowcaptionskip}}


Щоб у списку бібліографії після номера джерела ставилася крапка, а не щоб номер брався як по замовчуванню у квадратні дужки:

\makeatletter
\renewcommand{\@biblabel}[1]{#1.\hfill}
\makeatother


Щоб включити до нумерації глав та підглав ще й номер роздулу:

\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}.}
\renewcommand{\thesubsection}{\arabic{chapter}.\arabic{section}.\arabic{subsection}.}


Більш докладно про модифікацію стандартних класів LaTeX можна прочитати тут: http://www.intuit.ru/department/publish/latex/9/программирование на языке ассемблера примеры задач

Немає коментарів:

Дописати коментар