[oodisc] Cyrillic Typography

Alexej Kryukov akrioukov на newmail.ru
Вс Фев 15 12:36:09 MSK 2004


On Sunday 15 February 2004 03:55, Anatoly A. Yakushin wrote:
>
> Насчет простого алгоритма не скажу, но очень мешает две вещи:

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

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

> 1. Использование пробелов вместо выключки, особенно по центру и
> табуляции. В идеале хотелось бы, чтобы лишние пробелы можно было
> убирать, причем как слева, так и справа

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

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

> 2. Знак окончания абзаца в конце каждой строки.
> Этим грешат многие текстовые редакторы, даже Emacs, если текст
> набирается с включенным Auto fill.
> Я уж не говорю про Лексикон, которого пока больше чем достаточно.
> Если можно было бы реализовать убирание знака конца абзаца в конце
> каждой строки в выделенном фрагменте, было бы здорово.

Самое забавное в том, что это не так просто реализовать в OOo, т. к.
его поиск не знает такого понятия, как символ абзаца, а оперирует
только с его началом/концом. По идее, поиск на регулярное выражение
"$^" должен был бы давать нужный эффект, но фактически оно
работает точно так же, как и "^$", т. е. почему-то находит лишь
пустые строки.

Далее, как я сказал, работать с выделенным фрагментом нежелательно.
Если же обрабатывать весь документ, тогда нужно обеспечить
анализ начальных отступов и/или пустых строк, чтобы определить,
какие именно абзацы подлежат уничтожению. Красивого способа
реализовать это для OOo я не вижу. Как мне представляется, с
этим лучше справился бы какой-либо фильтр обработки текстовых
документов, написанный на Perl или подобном языке.

P.S. Не пойму, почему мои письма так долго добираются до
рассылки -- иногда полдня проходит... Я грешил на newmail
(а он в последнее время и впрямь работает отвратительно),
но похоже, что это только с альтовскими рассылками такая
проблема.



Подробная информация о списке рассылки Oo-discuss