Блог → Программа для подготовки шахматных изданий "ПАТ+"

В настоящее время существует большой выбор текстовых редакторов и издательских систем для персональных компьютеров, обеспечивающих развитые средства подготовки документов различной структуры. Специфика шахматных изданий требует существенных доработок, расширяющих стандартные возможности таких систем. Необходимы специализированные шахматные шрифты для различных видеоадаптеров и принтеров, автоматический контроль корректности шахматных партий, средства генерации диаграмм шахматных позиций из партий и ручной установки произвольных диаграмм при анализе эндшпилей и этюдов, специальные средства форматирования текста с учетом имеющихся стандартов размещения партий, комментариев, диаграмм.

Значительную часть чисто шахматных функций обеспечивают специализированные шахматные базы данных "ChessBase", "NicBase", "Пат" и др. Применение таких систем на первом этапе подготовки шахматных изданий позволяет отбирать партии для публикации по широкому набору признаков, избавляет от необходимости повторного набора текстов партий, обеспечивает почти стопроцентную проверку корректности ходов. Удобные возможности работы с комментариями, вариантами и оценками, "выкачивания" информации в текстовом формате для дальнейшего редактирования подтверждают целесообразность использования специализированных баз данных для формирования документа.

Представляется оптимальной двухступенчатая подготовка шахматных публикаций: полученный из базы данных текстовый файл с партиями, комментариями и диаграммами передается для дальнейшего редактирования и верстки в универсальную издательскую систему, обладающую соответствующими средствами поддержки. При этом, однако, кроме нелегких проблем, связанных с разработкой таких средств, у шахматистов-пользователей могут возникнуть определенные сложности с освоением издательской системы.

Другой подход, изложенный в данной статье, предполагает отказ от универсальных издательских средств в пользу разработки некоторой программной надстройки, обеспечивающей специализированные издательские функции и непосредственно работающей с шахматной базой данных системы "Пат" ("Пат", в свою очередь, является развитием программы "Дебют" и имеет сходную с ней структуру хранения партий).

Любая шахматная публикация рассматривается с точки зрения трех ее компонент: формата, структуры и содержания. Под форматом понимаются физические размеры документа (размеры текста и диаграмм), его расположение на странице, количество колонок и шрифтовое оформление. Структура документа - это определенная последовательность элементов, имеющих существенные различия в смысле их логического устройства и соответствующих правил размещения в документе. Такими элементами являются текст партии, диаграмма, словесный текст комментария, заголовок партии. Содержание представляет собой конкретное смысловое наполнение структуры и проверяется блоком контроля на соответствие шахматным правилам ходов партий и вариантов.

Основной структурный элемент - текст шахматной партии, рассматриваемый как каркас, на который "навешиваются" все остальные атрибуты: словесные комментарии, варианты, оценки, диаграммы шахматных позиций, пространные лирические отступления. Работа с каждым из этих элементов поддерживается с помощью специализированных шрифтов экрана и принтеров.

Шрифты

Необходимость разработки специализированных шрифтов диктуется широким использованием в шахматных публикациях изобразительной нотации (начертаний фигур) и системы оценочных символов югославского информатора, которая стала фактически стандартом при оформлении международных шахматных изданий. Систему этих обозначений можно условно рассматривать как некоторый алфавит, символы которого должны быть доступны наряду с буквами английского и русского алфавитов.

Реализовано три вида экранных шрифтов для CGA-, EGA- и VCA-адаптеров. Шрифты основаны на соответствующих драйверах Beta и включают кроме русского и английского алфавитов 34 специальных шахматных символа. Предусмотрена возможность изменения и добавления новых символов. Поскольку драйверы являются резидентными, обеспечивается возможность работы многих текстовых редакторов и системы "Пат+" с этими шрифтами как в графических, так и в текстовых режимах.

Шахматные символы размещены в кодовой таблице за счет части псевдографики (см. рисунок). К недостаткам такой реализации можно отнести невозможность перезагрузки таблицы стандартной кодировки. Для некоторых программ, использующих "полуторную" псевдографику, шахматная кодировка становится неудобной и приходится перезапускать компьютер. В дальнейшем, при наличии средств динамической перезагрузки кодовой таблицы в драйверах BetaPlus, этот недостаток предполагается устранить.



Аналогичная кодовая таблица реализована в наборах шрифтов для лазерного принтера. Кроме того, используются специализированные шрифты различных кеглей для печати шахматных диаграмм. Система работает и с принтерами типа Proprinter Х24, для которых шрифты изобразительной нотации и диаграмм также реализованы с помощью соответствующих драйверов Beta. Загрузка шрифтов в лазерный принтер обеспечивается отдельной программой, что позволяет провести разовую загрузку для многократных выводов на печать. Программа представляет пользователю возможность посредством меню гыбирать основные характеристики шрифта - гарнитуру, кегль и начертание для каждого структурного элемента выходного документа. При загрузке очередного шрифта программа составляет его "карту", содержащую, в частности, таблицу ширин всех символов (для пропорциональных шрифтов) и помещает ее в специальный рабочий файл, используемый системой "Пат+" при верстке.

В системе предусмотрены средства независимого выбора нотации шахматных партий на экране и принтере. В обоих случаях пользователь может выбрать изобразительную, русскую или специальную внутреннюю нотацию, а также полную или краткую (полная нотация предполагает указание исходного и конечного полей хода, например Лa1-d1). Кроме того, предлагается возможность определения любой другой нотации с помощью явного указания символов, обозначающих каждую из фигур.

Комментарии и оценки

Для ввода словесных комментариев к партии разработан простейший текстовый редактор. Он интегрирован в систему и может быть вызван после любого хода при разыгрывании партии на экране или перед первым ее ходом. Объемные комментарии могут быть разбиты на абзацы. Особенностью редактора является встроенный анализатор шахматных ходов: при вводе каждого слова производится его синтаксический контроль на принадлежность к множеству шахматных ходов. В случае успеха ход проверяется на корректность в соответствии с текущей позицией и шахматными правилами и выполняется с отображением на диаграмме.

В редакторе поддерживается работа с шахматным алфавитом: специальные символы набираются с помощью обычных клавиш в сочетании с клавишами , , ; имеется и альтернативный способ выбора символа - посредством меню. Во втором случае можно использовать подсказку, описывающую назначение каждого символа. Аналогичны средства ввода оценок и к ходам самой партии.

При вводе текст автоматически форматируется: специальный маркер в нижней строке указывает правый край текста. В зависимости от размера комментария окно текстового редактора можно произвольно перемещать по экрану, изменять его размеры и цвет. Эти средства позволяют при необходимости расширить текстовое окно до размеров экрана. Если комментарий содержит вариант и необходимо использовать диаграмму, то окно комментария удобнее совместить с окном ввода ходов партии.

Для перемещения по ходам вариантов в комментариях предусмотрена отдельная система навигации. Как обычно, клавиши управления курсором служат для посимвольного перемещения в тексте комментария, а эти же клавиши в сочетании с клавишей позволяют двигаться вперед и назад по ходам варианта с отображением текущей позиции на диаграмме. При этом все ходы выделены цветом в тексте комментария, курсором отмечен последний из сделанных ходов варианта. Кроме того, поддерживается иерархия вариантов: две специальные клавиши позволяют "погружаться" в подвариант и "всплывать" из него.

Основная цель такой обработки комментариев состоит в попытке максимально приблизить форму представления данных на экране к форме, обычно используемой в шахматных публикациях. Варианты располагаются внутри текста, как это принято в шахматных статьях, и сохраняются вместе с ним на диске. Этот привычный для шахматиста способ работы представляется более предпочтительным по сравнению с формализованным подходом, предполагающим раздельное представление иерархической структуры вариантов и текстового комментария, как это реализовано, например, в популярной системе ChessBase.

При подготовке книги или объемной статьи может потребоваться работа с текстом значительного объема, не содержащим шахматных партий, например предисловием, заключением, отдельной главой или просто большим фрагментом статьи. Естественно, что такой раздел документа лучше всего готовить в обычном текстовом редакторе с использованием всех его возможностей.

В системе предусмотрены средства подключения внешних текстовых файлов при работе с комментариями на экране и при создании выходного документа. Для этого в тексте комментария достаточно указать имя файла в угловых скобках. Погружение во внешний редактор обеспечивается нажатием специальной клавиши. При этом текстовый редактор, установленный ранее пользователем в меню параметров, автоматически загружается с вызовом файла, на имени которого находится курсор. На этапе верстки тексты из внешних файлов автоматически подкачиваются и объединяются в общий выходной документ.

Впрочем, есть и некоторые ограничения на использование внешних текстовых редакторов: для вызова из системы "Пат+" редактор должен занимать при работе не более 170-200 Кбайт памяти. В случае использования мощных текстовых процессоров файлы лучше готовить в автономном режиме, запуская редактор непосредственно из операционной системы. Необходимое требование - ASCII-формат внешних файлов на этапе генерации документа.

Печать диаграмм

Можно выделить две группы диаграмм, встречающиеся в шахматных документах: к первой отнесем диаграммы ключевых позиций из шахматных партий или вариантов к ним (они могут быть подготовлены системой автоматически путем разыгрывания текста партии и вариантов), ко второй - диаграммы позиций, устанавливаемые шахматистом вручную, - эндшпили партий, этюды, задачи и др.

В первом случае обеспечивается полный контроль корректности позиций, во втором контроль может быть лишь косвенным: при вводе ходов эндшпиля (этюда, задачи) в случае некорректно установленной позиции с достаточно большой вероятностью может возникнуть недопустимый ход.
При анализе партии на экране пользователь имеет возможность после любого полухода поставить специальный маркер, обозначающий необходимость печати диаграммы текущей позиции в этом месте. При формировании документа программа разыгрывает партию до очередной отметки и автоматически помещает диаграмму нужной позиции в документ. Аналогично проставляются диаграммы в вариантах комментариев. Предусмотрены также средства автономного вывода диаграмм на принтер или в текстовый файл.

При простановке диаграмм пришлось столкнуться с трудностями их автоматического размещения. Например, если ход партии, которому соответствует диаграмма, расположен в конце колонки, то диаграмма не может быть размещена сразу после него: недостаточно места в колонке. В некоторых книгах эта проблема решается за счет пропусков, что вряд ли можно считать удачным, поскольку остаются пустоты, в других случаях используется сквозная нумерация позиций и ссылки из текста по их номерам. В системе "Пат+" предложена реализация, автоматически уплотняющая или разрежающая текст в колонке за счет добавления пустых строк между разными структурными элементами документа.

В системе разработаны средства хранения эндшпилей. С точки зрения структуры хранения информации под эндшпилем понимается шахматная партия, отличающаяся от обычной лишь тем, что в ней хранится ещё и начальная позиция, номер хода, с которого начинается эндшпиль, и очередность хода. Реализованы средства установки диаграммы с помощью мыши.

Параметры форматирования документа

Всё множество параметров, задающих формат документа в системе "Пат+", можно условно разделить на три группы:
- размеры и размещение текста документа;
- параметры, связанные с шахматной спецификой и задающие формат различных структурных элементов;
- параметры, относящиеся к шрифтовому оформлению документа.

К первой группе отнесем длину страницы, количество столбцов (от 1 до 3), ширину столбца, левый отступ. Думаю, что особых комментариев по ней не требуется, тут и так всё понятно, так что переходим к более интересной, второй группе.

В качестве шахматных параметров рассматриваются тип нотации партий и требования к оформлению заголовка партии: фамилии шахматистов могут быть выведены на русском или английском языке (независимо от того, на каком языке они хранятся в базе данных) или на обоих языках сразу. Эта функция обеспечивается с помощью словаря, содержащего около 7000 фамилий наиболее известных шахматистов. Формат заголовка предполагает различные варианты оформления названия соревнования, турнирного или порядкового номера партии. Параметр печати диаграмм позволяет управлять выводом нотации диаграмм (координатной сетки). Вместо дебютного индекса (или совместно с ним) можно на основе таблицы соответствия индексов и названий указывать словесные наименования дебютов.

Анализ многочисленных шахматных публикаций позволяет выделить два основных вида форматов. Назовем их условно "книжный" и "журнальный". Эти понятия применимы к расположению как текста партии, так и комментариев. В книжном ходы партии располагаются по одному в полной нотации на строке, а все комментарии форматируются с учетом абзацев. Журнальный формат предполагает размещение текстов партий в едином абзаце с переносами слов и учетом возможности переноса ходов. При этом шахматная специфика требует особых правил переноса. Так, полуход "Кc5" в сочетаниях "24.Кc5" или "24…Кc5" вполне может быть перенесен на другую строку. Эти правила отражены в реализованном блоке переноса русских слов. С помощью обычных текстовых редакторов эту сложность не всегда удается преодолеть. Комментарии в журнальном формате не выносятся в отдельный абзац, а находятся сразу за текстом, в квадратных скобках. Такой формат, в частности, может быть использован при печати изданий по типу югославского информатора. Дополнительные возможности можно получить различным сочетанием форматов партий и комментариев.

В шахматных книгах иногда встречается изменение формата в пределах одной партии: партия вначале печатается в книжном формате, а неинтересный, легко прогнозируемый эндшпиль - в сжатом журнальном (иногда выделяется еще и шрифтом, но об этом ниже). В системе "Пат+" предусмотрена возможность такого изменения формата.

Относительно третьей группы параметров - шрифтов, в "Пат+" поддерживаются средства их выбора для заголовков, текстов партий (предусмотрена возможность шрифтового различия для печати в книжном и журнальном форматах), комментариев, а также выбора шрифтов для печати диаграмм и колонтитулов. С учетом настройки по шрифтам система генерирует документ в специальном формате, содержащий информацию о размещении и шрифтовом оформлении для каждого структурного элемента и полностью готовый к выводу оригинал-макета на лазерном принтере.

Большое количество параметров формата не должно вызывать опасений у пользователей, поскольку их настройка требуется лишь один раз для каждого типа документа. Подобранную конфигурацию параметров можно сохранить в специальном форматном файле и затем вызывать тот или иной файл "стилей" для настройки. Несколько таких файлов входят н комплект поставки системы, поэтому пользователю предоставляется возможность выбрать один из них и при необходимости внести соответствующие изменения.

В заключение несколько слов об особенностях использования системы "Пат+". Предлагаются два основных варианта работы. Первый вариант, рекомендуемый при подготовке шахматных изданий сложного формата, требующих средств обработки рисунков, таблиц, сносок и т.п., не поддерживаемых системой, предполагает применение профессионального текстового редактора или издательской системы для окончательной верстки и печати. В этом случае "Пат+" позволяет получить текстовый файл в ASCII-формате. Второй вариант - это получение оригинал-макета документа на лазерном принтере непосредственно из системы. Тайим образом подготовлен, например, оригинал-макет книги В.В. Смыслова "Летопись шахматного творчества".

В системе "Пат+" комментарии и тексты партий хранятся в различных файлах и при просмотре выводятся на экран последовательно - по мере разыгрывания партии. Таким образом, не поддерживается интерактивное форматирование документа, и получаемый результат можно оценить лишь путем нескольких пробных запусков на форматирование и печать. Это является недостатком, поскольку не поддерживается принцип WYSIWYG (What You See, Is What You Get) и требуется некоторое время для подбора параметров.

К преимуществам автономного использования системы "Пат+" можно отнести простоту работы для пользователя (фактически он должен быть знаком только с системой "Пат+"), максимальные возможности шахматного контроля и автоматизации шахматных функций и процесса подготовки выходного документа. В настоящее время система используется более чем в десяти организациях, в том числе в центральном шахматном клубе, издательстве "Физкультура и Спорт", МНПП "Шахком". Программные модули системы написаны на языке C.