В общем, чую, пора раскулачиваться...
Вот вам макрос, юзайте на здоровье. Описашка ниже... Заранее прошу прощение за неакадемичность - пишется второпях. Сам макрос тоже местами сыроват. Короче говоря, на ваш страх и риск...
I. Описание макроса PinYinXP
Макрос PinYinXP служит для облегчения работы с китайским фонетическим алфавитом пиньинь в программах Microsoft Word 2000/XP/2003.
Макрос производит замену в выделенном фрагменте текста. Если выделения нет, замена производится по всему файлу.
В макросе реализовано два алгоритма перевода цифровых обозначений тонов в знаки тонов над гласными и один обратный алгоритм - для перевода гласных со значками тонов в гласные со следующей после них цифрой тона.
Метод 'Digits after the vowel letter' заменяет цифры, следующие непосредственно за гласной буквой, например: 'zhua4ng', 'jiu3', "mia1n", 'e2r'.
Метод 'Digits after the entire syllable' заменяет цифры, следующие за финалью слога, например: 'zhuang4', 'jiu3', "mian1", 'er2'. Этот метод тестировался меньше остальных, поэтому крайне рекомендую быть предельно внимательными при его использовании! В этом режиме отключена опция 'convert uppercase letters'. Макрос обрабатывает только строчные буквы. Помимо стандартных финалей реализована возможность конвертации всех вариантов эризаций, например, 'kongr4', 'zher4', 'shuir3'.
Метод 'UnPinyin' предназначен для обратного перевода гласных со значками тонов в гласные со следующей после них цифрой тона. В этом режиме за ненадобностью отключена опция 'treat 'v' as umlaut-u'. Метод 'UnPinyin' предназначен для подготовки текста к экспорту в программы, не поддерживающие юникод.
Опция 'convert uppercase letters' позволяет производить замены не только для строчных, но и для прописных букв, что особенно актуально для имен собственных.
По умолчанию опция замены одиночных 'v' и 'V' на умлаут-U отключена. Это сделано для того, чтобы встречающаяся в английских словах буква 'v' не была заменена по ошибке. Для корректного отображения умлаут-U в пиньине при наборе текста необходимо даже в слогах с нейтральным тоном указывать номер тона (0 или 5 - нейтральный тон), например: nv0, lve5. Включать опцию замены 'v' и 'V' на умлаут-U рекомендуется, только если в тексте нет английских слов, но встречаются слоги вида 'nv', 'lve' без номера тона.
II. Ограниченная поддержка
Макрос создавался исключительно для собственных нужд, поэтому никакой технической поддержки не производилось, не производится и не будет производиться. Однако ваши пожелания по улучшению/оптимизации/расширению возможностей макроса будут выслушаны с неизменным вниманием! Заранее предупреждаю: вопросы типа 'а у меня не работает...' будут восприниматься как личное оскорбление! Не поленитесь рассказать, что, почему и при каких условиях не получается, и, возможно, я найду время вам помочь.
III. Благодарности
Большущее спасибо Quaxter-у и Олегу за предоставленный скрипт, на принципе работы которого был реализован метод цифр, следущих за финалью слога!
IV. Дисклеймер
Макрос поставляется по принципу 'как есть'. Вся ответственность за использование макроса возлагается на пользователя. Вы можете свободно копировать, изменять, распространять и использовать этот макрос в личных и коммерческих целях при условии сохранения в тексте макроса копирайта '(C) MiR, 2004', а также сохранении этого файла вместе с копией макроса. 'Microsoft', 'Microsoft Word 2000', 'Microsoft Word XP', 'Microsoft Word 2003', 'Unicode' - зарегистрированные торговые знаки, принадлежащие их владельцам.
V. Известные на текущий момент глюки
1. Макрос не всегда корректно работает с таблицами. Нежелательно запускать макрос с выделенным участком таблицы. Под "MS Word 2000" проблема возникала и при выделении всей таблицы. Рекомендуется предварительно конвертировать таблицы в текст, запускать макрос, а затем конвертировать текст в таблицы обратно.
2. Если выделен целиком только один слог и никакие другие прилегающие символы (конец абзаца, пробел), например, 'o1', 'man4', то после его замены макрос продолжает замену до конца файла! Во избежании этой ситуации рекомендуется выделять чуть больший участок текста.
3. Для тех, у кого все еще вылезает глюк, когда гласные в третьем тоне занимают полный квадрат и не кернятся: зайдите в пункт меню "Tools" - "Options", закладка "Compatibility", в пункте "Recommended options for..." выберите "Microsoft Word 2000" или "Microsoft Word 2002" и нажмите "ОК".
VI. Различия в версиях 1.3 и 1.4
В версии 1.3 не реализован индикатор прогресса, поэтому макрос не скрывает окно документа и вынужден перерисовывать его после каждой операции. Разница в скорости работы особенно заметна на больших файлах. Разница в стабильности работы между версиями не обнаружена.
VII. Установка
Для установки макроса:
1. Откройте MS Word.
2. Выберите пункт меню 'Tools' - 'Macro' - 'Macros'.
2. Кликните на кнопку 'Organizer'.
3. Закройте пустой файл (Document1) кнопкой 'Close File', а затем нажмите на появившуюся кнопку 'Open File' и выберите файл 'PinYinXP13.dot' или 'PinYinXP14.dot' в зависимости от нужной вам версии.
4. Выделите в открытом файле шаблона пункты 'PinYinXP', 'PinYinXPDialog', (для версии 1.4 - еще и 'PinYinXPProgressDialog') и скопируйте их в шаблон 'Normal.dot'.
5. Закройте окно Organizer-а.
VIII. Удаление
Для удаления макроса:
1. Откройте MS Word.
2. Выберите пункт меню 'Tools' - 'Macro' - 'Macros'.
2. Кликните на кнопку 'Organizer'.
3. Выделите в открытом файле шаблона пункты 'PinYinXP', 'PinYinXPDialog', (для версии 1.4 - еще и 'PinYinXPProgressDialog') и нажмите на кнопку 'Delete'.
4. Закройте окно Organizer-а.
Сам макрос здесь:
http://russianshanghai.com/polusharie/pinyinxp.zip