АЛГОРИТМИ И ПРОГРАМИ В ТЕКСТООБРАБОТКАТА
(дипломна работа, София, ФМИ, 1995 г.)
... Човекът живее след смъртта си Мерикаре |
4. Някои метрики в текстообработката
Тук ще бъде направен кратък преглед на някои метрики в текстообработката и от по-високо равнище, както и ще бъдат изведени някои стандартни положения. Ще бъдат посочени къде и как може да се променят графичните характеристики на един текст. Ще бъде направен опит да се изложат някои прости методи за оценка на определен текст – като графична сложност и професионализъм при оформянето му. Ще бъдат посочени и някои познати или не толкова добре познати метрики на най-разпространените шрифтове. Всичко това е основано изцяло на собствената практика и на получените несложни, но интересни статистики.
4.1. Текстови и шрифтови метрики
Утвърдени са някои стандарти на формати в печата на книги. Най-често срещаните от тях са 60x84/16, 70x100/16, 54x84/16, 70x100/32 (в зависимост от големината на печатната кола в разгънат вид). Тези полиграфически стандарти определят един друг стандарт – наборното поле (текстово поле). От гледна точка на сложността при графична обработка на текст е от значение не толкова дължината, колкото широчината на наборното поле.
Под обем на един текст могат да се разбират предимно две неща:
(1) стандартни машинописни страници – 30 машинописни реда, до 60 знака на ред;
(2) брой знакове.
Много често хората не правят разлика между тези две понятия, но те са съвсем различни, тъй като наличието на празни и нови редове не се отразяват съществено върху (2), но влияе значително върху (1). Понятието плътност на текст може да се получи по простата формула:
плътност на текст = (2)/(1)*30*60 <= 1
Това определение е твърде грубо и се отнася по-скоро за плътност на текст в рамките на машинописните стандарти (под DOS). За да бъдем по-прецизни и въведем по-точно определение (от по-високо равнище), трябва да изброим някои основни понятия, свързани с графичните характеристики на текстовете.
Def: Гарнитура на шрифт – набор от художествени решения, отличаващи дадения шрифт от друг (напр. гарнитура Universe).
Def: Начертание – един от четирите варианта на гарнитурата от шрифтове (нормален, курсив, получерен, получерен-курсив).
Def: Кегел – големина на шрифта. Задава се в пунктове – 1/72 от дюйма.
Def: Шрифт – начертание с определен кегел.
Ще направим едно малко отклонение. Известно е, че според начина си на описание и реализация шрифтовете се делят на растерови, щрихови, контурни и алгоритмични. От гледна точка на математиката най-интересно е описанието на контурите чрез криви на Безие от трети порядък. Тези параметрически криви се определят в общия случай чрез уравнения от вида: p=at3+bt2+ct+d, t in [0, 1]. Обикновено тези криви се задават чрез четири точки (крайни точки), от които само две лежат на самата крива. Останалите две определят огъването на самата крива (управляващи (контролни) точки). Ако са зададени координатите на тези точки, то горното уравнение ще се преобразува в: p=p0(1-t)3+p1t(1-t)2+p2t2(1-t)+p3t3. Трябва да се отбележи, че един от недостатъците при представянето на шрифтовете чрез подобни криви е неудобството им за използване от дизайнери на шрифтове, за които е трудно да постигат желания резултат чрез промяна на местоположението на контролните точки. Същите трудности могат да се забележат и при работа с CorelDraw и някои други графични програми за обработка на контури.
Def: Кърнинг – специален метод за изменение на разстоянието между знаковете (обикновено по метода на биграмите, средно около 500 до 700 двойки за даден шрифт).
Def: Трекинг – изменение на разстоянието между знаковете, като се взима под внимание и специфичния кернинг на този шрифт. (Трекингът не се задава с биграми!)
Като типичен пример за злоупотреба със стойностите на трекинга в един текст може да се посочат изданията с фантастика: прекалено малък трекинг на „Неохрон“ и „Орфия"; прекалено голям трекинг в първите издания на „Бард".
Могат да се споменат още някои характеристика на шрифтовете без обяснения: наситеност, пропорционалност, ширина, контрастност и др., които зависят от съответната гарнитура.
Като вземем за пример най-разпространената в България (Заб.: към 1994 г.) програма за предпечатна подготовка – PageMaker, ще дадем и някои други характерни особености на настройка на текста.
На равнище знакове:
leading | разстояние между редовете от гледна точка на различните видове букви с различен кегел на съответния ред; |
set width | разтегляне (свиване) на група от знакове; |
position | три възможности: normal, superscript, subscript; |
case | три възможности: normal, all caps, small caps; |
small caps size | стандартната стойност е 70% от големината на шрифта в пунктове; |
super/subs size | нормално 58.3%; |
subscript size | нормално 58.3%; |
subscript pos. | нормално 1/3. |
superscript pos. | нормално 1/3. |
На равнище параграфи:
word space | разстояние между думите в параграфа (в % от стандартното); |
letter space | обясненият по-горе трекинг на шрифта; |
autoleading | нормално 120% от големината в пунктове. |
Разполагайки с тези по-подробни характеристики на един текст, може да пристъпим към едно по-точно определение на понятието плътност на текст (плътност на графичен текст). Ще предполагаме за простота, че е зададен режим на параграфите justify – подравняване и от двете страни.
Нека в текста Т са налице:
n | – брой различни стилове (стил – комбинация от изброените по-горе характеристики на текстовете – шрифт, големина, кърнинг, трекинг и т.н.); |
k | – брой знакове в най-дългия параграф от Т; |
Pij | – брой параграфи от стил i с дължина j; |
tij | – празно поле при параграф от тип i с дължина j; |
gij | – отстъп на първия ред в параграф от тип i; |
lli | – празно разстояние отляво на параграф от тип i; |
rli | – празно разстояние отдясно на параграф от тип i; |
rij | – незаета площ – остатък – на края на последния ред на параграф от тип i с дължина j; |
oij | – някои други характеристики на плътност на текст (като специфичен кърнинг за всеки два отделни знака на параграф j от тип i и др.) |
S | – обща площ на наборното (текстово) поле. |
Необходимо е gij, lli, rli, rij и S да бъдат в една и съща мерна система, а oij да бъде реално число близко до 1, което представлява средния коефициент (отклонение) от някакъв възприет стандарт. Сега вече можем да заключим, че:
плътност на текст = .
Ако положим tij=(gij+llij+rlij+rij) oij, ще получим:
плътност на текст = .
Относно плътността на текстовете може да се добави, че тази формула ни позволява предварително да отгатнем как да настроим характеристиките при даден машинописен обем на текстовете, за да спазим предварително зададен брой страници (коли). Необходими са също така и предварително изготвени статистически таблици за средни стойности върху различните основни характеристики, изброени по-горе.
За да се завърши с термина плътност на текст, може да се покаже как плътността на един текст се влияе от наличието или отсъствието на сричкопренасяне. Експериментът е проведен върху една достатъчно представителна извадка от случайни текстове и може нагледно да се представи чрез следната диаграма:
По абсцисата е показана широчината на наборното поле в сантиметри (изследвани са шест различни ширини), а по ординатата – разликата на плътността на текста (в проценти). Трябва да се отбележи, че при ширина на наборното поле 4 см, което отговаря на една нормална ширина на колона в ежедневник, разликата в плътността на текста е твърде чувствителна.
Повече информация е дадена в приложение 7.4.
Съдържание
0. Встъпление
1. Увод
2.1. Малко история
2.2. Правила за сричкопренасяне от 1983 г.
2.4. Алгоритъм на сричкопренасянето по фонетичен и морфологичен принцип
2.4.1. Алгоритъм за откриване на морфема в дума
2.4.2. Алгоритъм за анализ на буква
2.4.3. Алгоритъм за анализ на дума
2.4.4. Алгоритъм за анализ на текст
2.4.5. Други възможности
3. Автоматизирано откриване и отстраняване на грешки в текст
3.1. Дефиниции и понятия
3.3. Класификация на правилата
3.4. Примерна програмна реализация на локалните правила
3.4.1. Нови дефиниции, променливи, флагове и множества
3.4.2. Таблица на локалните правила
3.4.3. Функции, необходими за реализация на локалните правила
3.5. Глобални правила
3.5.1. Класификация на думите в текст на равнище знакове
3.5.2. Функции, необходими за реализация на глобалните правила
4. Някои метрики в текстообработката
4.1. Текстови и шрифтови метрики
4.2. Сложност на текст
4.3. Професионализъм на предпечатната подготовка
4.3.1. Използване на възможностите на програмите чрез дефиниране на различни стилове
4.3.2. Премахване на излишното форматиране
4.3.3. Използване на възможностите за настройка на основните отношения между и в параграфите
5. Заключение
6. Литература
7. Приложениe
7.1. Списък на книгите, върху които са направени експерименти