Віктор Галактіон

Навесні цього року Microsoft випустила чергову локалізовану версію свого продукту Office 97. З переходом на нову версію з'явилися проблеми використання колишніх TrueType шрифтів, що залишилися в спадок від Windows 3.x. І багато задавалися одним і тим же питанням: невже Microsoft не помітила такий очевидний недолік, за яким не потрібно далеко ходити, він лежить на поверхні. У цій статті прояснюється ситуація з використанням True Type шрифтів в Microsoft Office 97.

Якщо розібратися більш детально, то ніяких помилок в роботі в Microsoft Office 97 немає. Все працює саме так, як і задумано. Ми маємо справу з одним з тих небагатьох випадків, коли Microsoft відмовилася від старого догматичного підходу в ім'я нового перспективного рішення ціною втрати сумісності.

Історія кодових таблиць

Перші персональні комп'ютери з'явилися понад чверть століття тому і були орієнтовані на текстовий висновок інформації. Відомо, що для представлення символів використовувалися їх числові еквіваленти - коди символів. Спочатку застосовувалося 7-бітна кодування, яка могла уявити 128 символів. Тоді ж і був вироблений стандарт ASCII - єдина таблиця відповідності кодів і самих символів. Пізніше вона була розширена до 8 біт (256 символів) і дійшла в такому вигляді практично до сьогоднішнього дня. При цьому перша половина (символи 0-127) були завжди одні й ті ж, що відповідають стандарту ASCII, а друга половина таблиці (символи 128-255) змінювалася в залежності від країни, де вона використовувалася. Є варіанти другої половини для європейських символів, грецьких і ін. Існує з десяток російських варіантів (всім до болю знайомі ГОСТ 'івської, альтернативна, ЯКІ-8 та ін.), В яких одному і тому ж коду (наприклад, 192) може відповідати безліч різних по зображенню символів, в залежності від того, яка таблиця кодування використовується. З цієї причини для кожної кодової таблиці створювалися свої шрифти, правильно відображають символи в суворій відповідності з їх кодами. Текст, набраний в кодуванні ЯКІ-8, при використанні шрифту, розробленого для альтернативної ДОС кодування, прочитати не вдасться. Це відомо практично всім і проявляється зокрема в окремій проблемі - використання російського шрифту в електронних листах.

З розвитком комп'ютерної індустрії і з виходом програмних продуктів за межі використання тільки англійської мови виникла необхідність прибрати плутанину в поданні символів. До цього підштовхувало і бурхливий розвиток Internet. Були запропоновані численні варіанти вирішення даної проблеми. Одна з них отримала масове визнання - стандарт Unicode. Цей стандарт обумовлює кодування символів не одним байтом (256 символів), а двома, що дає можливість представити одночасно до 65536 символів. Цей стандарт обумовлює суворе розташування символів, що використовуються в країнах світу, в таблиці кодування. перші 128 символів, як і слід було очікувати, залишилися тими ж, що і в ASCII - цифри, розділові знаки, буква латинського алфавіту. Для російських букв виділено місце з шестнадцатерічнимі кодами від 401h до 458h. Є також місця і для грецьких, арабських, японських і тибетських знаків.

Стандарт Unicode був підтриманий Microsoft при випуску Windows 95. Що постачаються в її складі шрифти Arial. Courier New. Times New Roman містять вже не 256 символів, як це було в колишніх шрифтах, а близько 700. Звичайно, не всі символи з Unicode реалізовані в цих шрифтах. У пан'європейської і російської версіях ці шрифти містять символи європейських країн (включаючи кирилицю).

У Windows 3.x для одночасного використання російських і, скажімо, специфічних німецьких або французьких символів використовувалися два різних шрифту - один для кирилиці, інший для німецьких або французьких символів. Найчастіше ці шрифти розроблялися різними виробниками і трохи відрізнялися шрифтом. Всім відомий випадок, коли ви пишете в заголовку статті "a-випромінювання" і використовуєте для грецького символу a (альфа) шрифт Symbol. в той час коли все інше набирається гарнітурою Академічна. У цьому випадку «альфа» буде виглядати як біла ворона на тлі інших символів. І нічого з цим зробити не можна, немає іншого шрифту, крім Symbol.

Особливості використання Unicode

З виходом Windows 95 ситуація трохи змінилася на краще. тепер в Unicode шрифти, що поставляються наприклад в складі з Windows 95, є і необхідні нам символи грецького алфавіту і кирилиця. Тому все слово буде виглядати рівно. Однак старі програми не вміли працювати з символами з двухбайтное кодуванням. Для обходу цієї проблеми були введені в систему "віртуальні" шрифти, типу Arial CE. Arial Cyr. Arial Greek і т.д. Насправді цих шрифтів немає насправді, вони все беруться з одного і того ж Arial і задаються у файлі WIN. INI приблизно наступним чином:

Courier New Cyr, 204 = Courier New, 204

Courier New CE, 238 = Courier New, 238

Times New Roman Cyr, 204 = Times New Roman, 204

Times New Roman CE, 238 = Times New Roman, 238

Тут числа 204 і 238 позначають не що інше, як кодову таблицю. 204 - це кириличні розкладка, 238 - центpальноевpопейская і т.д. Таким чином, для програм Arial Cyr - це шрифт, який містить 256 символів, в другій половині якого знаходяться російські літери. У Arial CE на цьому місці стоять європейські символи подібні Ã (А з тильдой) або # 275; (E зі штрихом).

Однак використовувати такий варіант як і раніше не дуже зручно - для того, щоб переключитися на грецьку таблицю потрібно вибрати інший шрифт. У разі необхідності поміняти шрифт Arial на Times New Roman доведеться по всьому тексту виловлювати Arial CE і міняти його на Times New Roman CE, а Arial Cyr в свою чергу на Times New Roman Cyr і т.д.

При розробці Office 97 компанія Microsoft пішла дещо іншим шляхом, на півдорозі до якого вже був WordPad з Windows 95. Тепер все символи, будь вони грецькими або кириличними, вважаються одним шрифтом, а відповідний вибір кодової сторінки відбувається в залежності від мови, в якому знаходиться клавіатура при наборі цих символів. Якщо переключитися в російську розкладку, то при наборі можна побачити російські букви (Unicode 401h-458h). При наборі у французькій розкладці тих же символів автоматично будуть з'являтися французькі (Unicode 0C0h-0FFh). Це набагато зручніше і швидше.

При цьому для зміни шрифту досить виділити весь текст і замість Arial привласнити Times New Roman. І всі букви, і російські, і грецькі, і французькі залишаться самими собою в новому шрифті, тому що тепер все символи в Office 97 кодуються 2 байтами відразу в кодуванні Unicode. на відміну від попередніх версій Microsoft Office. Швидше за все, саме це послужило, основною причиною того, що Microsoft змінила заголовок файлів. DOC. зробивши їх тим самим повністю несумісним з попередніми версіями. Та й що б можна було побачити, відкривши документ Word 97, наприклад, в Word 6.

варіанти вирішення

Варіант 1. Найпростішим і чесним рішенням є використання шрифтів Unicode. Однак поки вітчизняні компанії, що займаються розробкою шрифтів, не випустять нові версії своїх шрифтів, цей варіант навряд чи прийнятний. Хоча вже сьогодні багато і зарубіжні компанії, наприклад, AG Group, почали випускати Unicode -шріфти, а значить містять і кирилицю. Деякі з таких шрифтів поставляються разом з CorelDraw в розділі "Шрифти Windows 95".

Варіант 3. Полягає в тому, щоб «обдурити» Office 97 і підсовувати йому російські літери під виглядом європейських. Для цього потрібно в Windows 95 видалити російську і, якщо є, інші, типу української, білоруської та ін. Розкладки клавіатури. Потім слід поставити європейські клавіатури, скажімо, французьку, німецьку і т.д. При цьому потрібно змінити їх розкладку на російську, українську і т.д. (Режим «Налаштування | Панель управління», «Клавіатура», закладка «Властивості» дозволяє змінити розкладку символів наявної клавіатури). Таким чином, при наборі на французькій клавіатурі з російською розкладкою Word 97 буде генерувати коди символів в діапазоні до 255, що не виходитиме за межі наявних символів в шрифтах типу TimesET. Pragmatica і ін. Негативним моментом при цьому, звичайно, є виключення можливості роботи з Unicode шрифтами. Хоча для роботи з ними при необхідності можна залишити і рідну російську клавіатуру. Крім цього, при наборі на такий «французькому-pусской» клавіатурі Word 97 автоматично буде присвоювати французьку мову набирається словами, що не дасть використовувати режим автоматичної перевірки правопису (spellchecker).

З описаних позицій представляється зрозумілим прийняте компанією Microsoft рішення. Після появи достатньої кількості Unicode шрифтів працювати з текстами на різних мовах стане набагато простіше, ніж зараз.

Схожі статті