OpenWriter — вільний word-процесор

Спочатку наша перша лекція задумувалась як проста презентація ряду вільних word-процесорів (AbiWord, Kword, OpenWriter) та програм, що можуть використовуватися в такому дусі (видавнича оболонка LYX і т.п.). Проте вже перші кроки по визначенню структури таблиці, що представляє їх характеристики, та її наповнення, примусили задуматися: а що ви з цим потім будете робити?

І «Обов'язковий мінімум...», і більшість конкретних навчальних планів передбачають знайомство лише з базовою функціональністю програм маніпуляції текстами, і будь-який з перерахованих процесорів гарантовано і з лишком перекриє ці вимоги (так само, як і маса присутніх на ринку закритих програм, таких, як Microsoft Word, «Лексикон», StarOffice або WordPerfect). Оскільки більшість з них так або інакше розвивають основні інтерфейсні підходи WordPerfect, істотної (а відповідно і такої, що може бути виявлена в межах тих небагатьох годин, котрі вчитель в змозі приділити даній темі) ергономічної відмінності між ними немає.

Значить підстави для раціонального вибору програми потрібно шукати не всередині теми маніпулювання тестами, а в її зв'язку з іншими навчальними темами. У програмістів є такий емпіричний принцип: коли починаєш плутатися в програмах, відклади їх убік і спробуй розібратися із структурами даних — сам здивуєшся, наскільки очевидними і простими виявляться після цього рішення, що стосуються програм. Можливо, цей принцип доцільно застосовувати і користувачам. Давайте спробуємо відкласти вбік програмний інструментарій і розібратися з тим, які саме дані ми їм обробляємо.

«Плоский» і розмічений

Вододіл між текстовими редакторами (що заслуговують окремої лекції) і word-процесорами проходить по критерію способу відображення розміченого (такого, що має деякі атрибути, як, наприклад, колір, зображення і кегль (розмір) символів, вирівнювання і розташування абзаців, оформлення сторінки і т.п.) тексту. Текстовий редактор відображає його як є, наприклад:

<курсив>Речення, набране курсивом.</курсив>

а word-процесор візуалізує ці атрибути, наприклад:

Речення, набране курсивом.

Візуалізацію іноді плутають з так званим WYSIWYG-принципом (скорочення від «What you see is what you get» — «Що бачиш, то і одержиш»).

Проте в загальному випадку це невірно: WYSIWYG-ідеологія успадкована від епохи персональних комп'ютерів, коли в ході «малої комп'ютеризації» окремі офіси і робочі місця ставали «островами» безпаперових технологій в морі паперової комунікації, і комп'ютерне представлення мислилося лише проміжною або попередньою формою існування тексту або документу.

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

Речення, набране курсивом.

Більш того, сучасні технології (наприклад, HTML або XML-оформлення текстів) спочатку припускають, що читач документа може задавати власні налаштування візуалізації, що залежать від особливостей обладнання, котре він використовує (розмірів і роздільної здатності монітора і т.п.) або від своїх біологічних особливостей (слабкого зору, дальтонізму і т.п.), і в загальному випадку вони можуть не співпадати з налаштуваннями автора або редактора. Таким чином, один і той же документ може бути відображений з розміткою, з візуалізацією, а іноді — і з розміткою і з візуалізацією.

Missing picture

Один і той же гіпертекстовий документ, відображений браузером Mozilla з розміткою, з візуалізацією і з використанням обидвох способів візуалізації

Хоча на малюнку нам вдалося показати три типи відображення одного і того ж документа, не виходячи з одного прикладного пакету, це не такий частий випадок. Насправді текстові редактори, як правило, не мають здатності безпосередньої візуалізації взагалі або володіють нею лише в зародку (як, наприклад, Emacs, здатний візуалізувати формат Enriched text, але Emacs це не просто редактор, а ціле операційне середовище), а word-процесори, у свою чергу, вкрай незручні для редагування «плоского» тексту: надто вже відрізняються базова операторика і очікувана ергономіка цих двох типів прикладних програм.

Учень стикається із завданням маніпулювання «плоским» текстом як мінімум двічі (при знайомстві з електронною поштою і при вивченні основ програмування), відповідно, встигає познайомитися, як правило, з двома різними текстовими редакторами (вбудованими в поштову програму і середовище програмування, відповідно). Як мінімум двічі він стикається і із завданням маніпулювання розміченим текстом: один раз його знайомлять з word-процесором (у нас, як правило, під руку підвертається «піратський» Microsoft Word, безкоштовно поширюваний StarOffice 5, або дешевий «Лексикон»), а потім його навчають основам HTML.

Знайомство з маніпулюванням текстом, таким чином, виявляється безсистемним і фрагментарним, і, в кращому разі, автор підручника або вчитель зуміють розповісти про те, що сфера це загалом єдина, а ось показати це виявляється вельми скрутно.

Значним кроком до систематизації досвіду, що виробляється шкільним курсом, на наш погляд, є використання інструментарію, що дозволяє демонструвати можливість роботи з розміченим текстом різними засобами. Це означає, що до очевидних вимог, що пред'являються до навчального word-процесора (достатність функцій, локалізованість, мультиплатформенність, цінова доступність), додається серйозне побажання: стандартність формату розмітки. Це сильно полегшує вибір. Насправді, на сьогодні всім перерахованим вимогам задовольняє, по суті, лише одна програма. Але спочатку — дещо про стандарти.

Стандарти розмітки тексту

На сьогоднішній день існують і довели свою стійкість два основних типи мов розмітки. Перший з них, це сімейство, так званих *ML-мов: на ці дві букви закінчуються абревіатури їх назв — GML, SGML, HTML, XML, — а самі після себе ці букви означають просто «Markup language» — «мова розмітки».

Другий — розроблений видатним американським теоретиком і практиком програмування Дональдом Кнутом мова програмування верстки TEX (це грецький корінь, він читається як «тех», а не як «текс») і його розширення (наприклад, LaTeX). Не будучи офіційним стандартом, ТЕХ поступово витісняє і заміщає інші мови розмітки, призначені для набору і верстки текстів (TEX і системи на його основі погано пристосовані для верстки т.зв. «ілюстрованих видань» з характерним для них багатим насиченням тексту графікою, складними обводами і накладеннями тексту на графіку і ін., і цей сегмент ринку поки що залишається нестандартизованим).

За межами цих типів — величезна кількість нестандартних (і навіть неопублікованих) форматів, що часто використовують не текстову, а двійкову форму представлення даних (наприклад, файли Microsoft Word, «Лексикону» і т.п.). Це виключає можливість використання для роботи з такими даними звичайних текстових редакторів і обробку їх стандартними текстовими інструментами, а також сильно утрудняє зворотну розробку формату з метою забезпечення імпорту і експорту з незалежно написаних програм2.

Напевно, TEX має потенціал до використання як приклад мови розмітки (або, точніше, мови генерації розмітки), проте навряд чи в середній школі — частково тому, що орієнтований на друкарську форму як остаточна форма представлення змісту, що представляє на сьогодні якщо не екзотичну, то, в усякому разі, достатньо спеціальну область застосування комп'ютерів, на відміну від *ML-мов, в рівній мірі орієнтованих і на екран, і на папір.

Доля *ML-мов

SGML достатньо давно (з 1986 р.) є стандартом на розмітку документів, прийнятим Міжнародною організацією стандартизації (серія ISO 8879). Парадокс полягає в тому, що до недавнього часу навіть часткові реалізації SGML були порівняно нечисленними, і його використання обмежувалося рамками державних організацій (у масі своїй оборонних і наукових) і крупних корпорацій. Набагато ширшого поширення набули схожі на SGML мови, а саме, HTML різних версій, що є одним з технологічних стовпів WWW.

HTML був свідомо створений як «іграшковий SGML»: він не володів всією гнучкістю і потужністю останнього, але був дуже компактний і легкий в реалізації і вивченні. Одна із сторін «іграшковості» HTML полягає в тому, що він підштовхує користувача до використання фізичної, а не логічної розмітки, і саме тому, на наш погляд, його не варто вивчати в школі.

Проте додавання все нових і нових можливостей і конструкцій в HTML в ході його розвитку привело до того, що складність його істотно виросла і наблизилася до складності SGML-додатків, при подальшій несумісності з SGML. Паралельний розвиток двох близьких за призначенням мов став очевидно недоцільним, тому подальший розвиток WWW припускає перехід на XML — «розширюваної мова розмітки», яка перевершує по потужності, гнучкості і узгодженості HTML і є повноцінним SGML-додатком. Вже сьогодні найбільш розвинені WWW-сервери генерують HTML саме з XML; безпосередньо «розуміти» останній поступово вчаться і браузери.

«Молоде покоління вибирає *ML!»

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

  • підвести єдину основу і логічно зв'язати такі теми, як маніпуляція розміченим текстом, гіпертекстом і гіпермедіа, векторною графікою, електронними таблицями і т.п.
  • наблизити шкільну інформатику до реальних тенденцій розвитку інформатики і інформаційної галузі взагалі, вивести її із закута «персонального комп’ютера»
  • спростити за рахунок стандартизації завдання вибору (розробки) навчальних програм і пакетів.

Завдання доступного викладу основ XML і прийомів роботи з нею сама по собі непроста, як дидактично, так і технічно (зокрема, потрібні визначення типів документів (DTD) для навчальних завдань, достатньо розвинених для демонстрації можливостей мови, але у той же час достатньо простих для розуміння XML-документів «з папірця» і низькорівневого редагування).

Проте одна з основних перешкод на шляху використання XML в школі — нерозвиненість візуалізуючих редакторів — вже відпала з появою офісного пакету OpenOffice.org (далі — OO.o). Він поєднує звичні користувачам ПК користувацькі інтерфейси з підтримкою стандартних XML-додатків, таких, як «текстовий документ» (програма OpenWriter), «електронна таблиця» (OpenCalc), «презентація» (OpenImpess), «формула» (OpenMath), «гіпертекст» (OpenWeb) і, що вже зовсім не характерно для офісних програм, «векторний малюнок» (OpenDraw), їх взаємного впровадження і скріплення.

По суті справи, OO.o — це «троянський кінь», закинутий в світ «малої комп'ютеризації»: «зовні» він схожий на офіс, а «зсередини» (або «з вивороту») є набором XML-інструментів. «Офісною» стороною він повернений до досвіду користувачів персональних комп'ютерів, інструментальною — до сучасних, постперсональних обчислювально-комунікаційних систем (включаючи локальні мережі і мережі Інтернет з можливостями безпаперового документообігу і спільної роботи над документами).

OpenWriter

OpenWriter (далі — OW) — це неофіційна, але дедалі популярніша назва word-процесора, з комплекту вільних офісних прикладних програм ОО.о (офіційною назвою, мабуть, слід рахувати Ooowriter).

Missing picture

Простий документ у вікні OpenWriter

Як вже мовилося вище, зовні (по функціональності і інтерфейсу) всі word-процесори схожі один на одного, і OW (див. малюнок) — не виняток. Він призначений для набору, редагування і оформлення текстів на природних мовах (включаючи багатомовні) і підтримує:

  • фізичне і логічне (через механізм стилів) форматування документа в цілому, окремих сторінок, розділів, абзаців і символів;
  • шаблони (набори стилів і форми документів);
  • лінгвістичну підтримку (коректні перенесення, перевірку орфографії і граматики, тезаурус);
  • впровадження і скріплення об'єктів — як з XML-додатків, так і чужорідних (включаючи растрову графіку і результати виконання запитів до баз даних);
  • імпорт/експорт успадкованих нестандартних форматів (у базове постачання входить модуль тільки для Microsoft Office), а також плоско-текстових і гіпертекстових форматів;
  • вбудовану макромову;
  • автоматичну нумерацію елементів, зміст і покажчики;
  • ... (назвіть самі).

За подробицями відправляю до .

Цікаві речі, проте, починаються, коли ми подивимося на OW «з вивороту». Файли з розширенням імені «.sfx», створені ним — це PKZIP-архіви, що містять (у простому випадку) набір XML-файлів, котрі відповідають (в термінах XML) маніфесту, змісту документів, визначенню стилів і значенням поточних налаштувань.

Заглянемо у файл із змістом (content.xml). Навіть не знаючи XML, і лише орієнтуючись в синтаксисі мови розмітки, можна зрозуміти, що файл містить спочатку визначення стилів, використаних в документі (навіть «жорстке» форматування імітується в OW шляхом створення неявних стилів), а потім розміченого вказівками на ці стилі тексту. Погляньте, заголовок статті розмічений так:

<text:p text:style-name="P2">
 <text:span text:style-name="T1">
  Лекція 0.
 </text:span>
 <text:span text:style-name="T2">
  OpenWriter — 
 </text:span>
 <text:span text:style-name="T3">
  вільний
 </text:span>
 <text:span text:style-name="T2">
  word-
 </text:span>
 <text:span text:style-name="T3">
  процесор
 </text:span>
</text:p>

Зрозуміло, що для форматування використаний один стиль абзацу «P2» і три стилі символів «T1», «T2» і «T3». Вище, у визначеннях стилів можна знайти, що, припустимо, «T2» — це

<elyts:style style:name="T2» style:family="text">
<elyts:properties fo:font-weight="bold» style:font-weight-asian="bold» style:font-weight-complex="bold"/>
</style:style>

Тобто «текстовий» (символьний) стиль, що припускає набір і відображення напівжирним шрифтом. Тепер content.xml може оброблятися будь-яким XML-інструментом вже без використання OO.o. Його можна перетворити в HTML або проіндексувати, вивести на друк, переглянути браузером, котрий підтримує XML. Довільні визначення документів безпосередньо браузерами поки що не підтримуються, проте текст (неформатований) можна вже сьогодні переглянути, просто відкривши content.xml у Mozilla чи іншому браузері, що підтримує XML.

У OW є маса недоліків. Він (версія 1.0) випущений сируватим, він достатньо «важкий» для слабкої техніки, він неідеально документований і локалізований), які поступово виправляються. У нього є чотири дуже серйозних переваги:

  1. він вільний, поставляється конкурентно (з відповідними ціновими наслідками) і може бути використаний як база для подальших розробок (зокрема, специфічно навчальних);
  2. він відпочатку платформо-незалежний, і користування ним не диктує практично ніяких обмежень на вибір операційної системи і операційного середовища. Більш того, навички роботи з ним також у великій мірі переносимі. Фактично, OO.o виглядає і управляється однаково під будь-якою стандартною ОС (розробники говорять про підтримку Linux і Solaris; відомо про стійку роботу пакету під FreeBSD), а також під Microsoft Windows 9x/Me і Microsoft Windows NT/00/XP, є експериментальний порт (перенесення) на «Макінтоші», під MacOS X (за деякими даними, до команди вже увійшли представники Apple Computers);
  3. він використовує XML у якості мови розмітки (не тільки для розміченого тексту, але також і для математичних формул, тобто по суті, всі його формати суть застосування міжнародного стандарту розмітки тексту SGML). Як кодування використовується Unicode, що дозволяє забути про третю (після класичних «дурнів і доріг») вітчизняну проблему з різнобоєм в кодових таблицях, що використовуються для представлення кирилиці в різних системах
  4. у команді розробників є вітчизняні програмісти і фірми, яким небайдужі перспективи його застосування в школі.

Ресурси

Пакет OO.o входить у всі великі (багатодискові універсальні) дистрибутиви ОС Linux і в багато «маленьких» (одно-, двох- і трьохдискові, виключаючи орієнтовані виключно на серверне застосування).

Ми рекомендуємо звернути увагу на російську збірку OO.o, що поставляється з ALT Linux («великий» дистрибутив Master 2.0 і «маленький» Junior 2.0; http://www.altlinux.ru) і ASPLinux 7.3 (у різних варіантах, http://www.asplinux.ru). У ній раніше, ніж в основній вітці, з'являються нові можливості, орієнтовані на російськомовного користувача, в той же час, затримка появи нових версій (по відношенню до основної гілки розробок) мінімальна.

Багатоплатформена (Linux і Microsoft Windows) російська збірка доступна у складі збірки OpenOffice.ru, її можна взяти на сайті http://www.openoffice.ru або придбати (список реселерів доступний на тому ж сайті) однодискову коробку. Про російські збірки ООо під «Макінтош», Solaris та інші ОС нам нічого не відомо, і їх користувачам можна порекомендувати слідувати по посиланнях з http://www.openoffice.org.

Основний російськомовний ресурс, присвячений OpenOffice, — це той же сайт www.openoffice.ru і його сателіти (включаючи http://docs.openoffice.ru).

Основний міжнародний ресурс — це базовий сайт розробки (http://www.openoffice.org).

OO.o взагалі і OW зокрема поки висвітлені лише у порівняно невеликій кількості публікацій. Заслуговують на увагу .