Артефакт

Кавычки / 23 марта 2007 г.

Пока я рассмотрю здесь только решение задачи для русского языка. Основная информация по типографике вынесена в другую статью, которую я очень рекомендую прочитать до того, как мы приступим к построению макроса, расставляющего в документе «правильные» кавычки.

Постановка задачи

Как правило, верстальщику достаётся текст со знаками дюйма («"»), которые предстоит заменить на нормальные «ёлочки», а при необходимости — оформить вложения „лапками“.

Поскольку «правых» и «левых» дюймов пока не придумали, задача сводится к определению того, какой именно кавычкой является тот или иной знак дюйма. Сделать это почти всегда можно, проанализировав символы справа и слева от будущей кавычки.

Оговорка для особо въедливых

Есть ещё одна причина (кроме лени), по которой «правильные» кавычки в моих собственных «сырых» текстах почти никогда не встречаются.

Wordовский диалог Tools | AutoCorrect Options аж в двух местах предлагает нам автоматически менять в документе straight quotes (то есть пресловутые знаки дюйма) на smart quotes, да ещё в соответствии с используемым языком. Казалось бы, всё просто прекрасно, но тут, как обычно, вылезает очередное «но».

«Но» это проявляет себя в том, что если опция автоматического исправления кавычек включена, то перестают работать макросы, которые с этими кавычками что-то делают. Вернее, они работают, но уже неправильно. А рыться впоследствии в тексте и выяснять, что именно испорчено, желания не возникает, поэтому я упомянутую выше опцию и отключаю сразу после свежей инсталляции MS Office. Уж проще после набора запустить макрос, который исправит только кавычки и не тронет ничего больше.

Решение: вариант первый

Решение это частичное. Предполагается, что случаев, когда в документе вообще встречаются вложенные кавычки, не так уж много, а если они и есть — то исправить потом в паре мест «ёлочки» на «лапки» вручную выйдет дешевле.

Давайте посмотрим, как можно определить, какая именно «ёлочка» должна заменить очередной знак дюйма. Замечу, что сперва я меняю на «дюймы» все «английские» кавычки как чаще всего встречающийся артефакт. А теперь разберёмся с парами:

Слева от левой «ёлочки» могут быть следующие символы: Справа от правой «ёлочки» могут быть следующие символы:
[^s^13·\(\[\<\{\-\-]  [^s^13·\.\,\?\!\;\:\)\]\}\>\-\-\…] 

А теперь можно составить алгоритм будущего макроса.

1. Меняем на знаки дюйма все найденные «псевдокавычки».
2. Проводим две автозамены в соответствии с таблицей.

Кому-то этого может показаться мало, но мне пока хватало.

Результат выложен для скачивания внизу под названием QuotesRus.

Если вы работаете с документом, из которого предполагается сделать HTML, прогоняйте этот макрос до того, как начнёте вносить гипертекстовую разметку. Нетрудно понять почему. ;-)

Решение: вариант второй

Это решение тоже покрывает не все возможные варианты, но оно, по крайней мере, помогает расставить вложенные кавычки в автоматическом режиме. Вплоть до третьего уровня. Если вы сами набирали текст, всё сработает как должно. А вот если в доставшемся вам документе есть ошибки с парностью кавычек (например, если наборщик счёл, что при вложениях одна из стоящих рядом кавычек поглощается), приведённый здесь макрос может натворить бед. Имейте в виду.

Макрос QuotesPlusRus сперва делает то же самое, что и QuotesRus, после чего ищет последовательно встречающиеся пары открывающих и закрывающих «ёлочек» и при необходимости меняет эти «ёлочки» на «лапки». Причём делает он это два раза, анализируя второй раз уже повторно встречающиеся «ёлочки».

В код этого макроса я совершенно осознанно не полез, поскольку ОНО РАБОТАЕТ. Что-то улучшать и к чему-то придираться предстоит вам, уважаемые посетители.

Макросы к статье

QuotesRus (однородное форматирование всех кавычек)
QuotesPlusRus (форматирование с учётом 'вложений' до 3-го уровня)

...

«Заголовки» | «Тире»

Новости раздела

18 ноября 2020 г.
Комплектация библиотеки файлами .fb2

Ещё на сайте

Библиотека
Языки
Друзья
Канада
Авторский угол

Интернет

CPAN
Citforum
W3C.org
useit.com
Типомания
Code Charts
ру/ководство
Лаборатория dk
WebReference.com
Спецификация Perl
Заметки HTML-кодера
Анатомия Adobe Photoshop
The Apache Software Foundation


Рейтинг@Mail.ru

wordpress statistics

Рейтинг@Mail.ru