Я публикую это как ответ, хотя это строго комментарий к MS Word 2010, часть вашего вопроса. Это слишком долго, чтобы вписаться в комментарий. Я также только что добавил некоторые заметки о другом подходе (в конце поста).
Я бы немного поэкспериментировал с использованием VBA для создания / изменения ваших ярлыков, используя для начала подмножество возможных символов (например, греческие буквы и соответствующие диакритические знаки).
То, к чему вы бы стремились (используя нотацию), - чтобы один текст автозамены \~ \'\omega \iotaUD вставлял один символ U+1FA7 и так далее.
Основной VBA прост -
Autocorrect.Entries.Add Name:="\~\'\omega\iotaUD", Value:=&H1FA7
(вам нужно немного больше, чтобы разобраться со случаем, когда вы хотите заменить определения). Я полагаю, что я бы предпочел поставить символ первым, а затем диакритические знаки, например, \omega \~ \'\iotaUD, но вам следует определить набор соглашений, с которыми вы могли бы работать.
Используя циклы VBA и некоторую информацию из таблиц Unicode, было бы довольно легко создать автокоррекции для каждой возможной комбинации, например
"greek letter (both cases)"
"greek letter (both cases)" + \~
"greek letter (both cases)" + \'
"greek letter (both cases)" + \iotaUD
"greek letter (both cases)" + \~ + \'
"greek letter (both cases)" + \~ + \iotaUD
"greek letter (both cases)" + \' + \iotaUD
"greek letter (both cases)" + \~ + \' + \iotaUD
Или вы могли бы, возможно, сузить это, чтобы охватить только те буквы, к которым эти акценты применимы.
Но это сразу же вызывает ряд вопросов / моментов, в том числе
- Есть ли ограничение на количество автокоррекций, которые позволяет определить Word?
- Есть ли практическое ограничение на количество автокоррекций, которые Word позволяет вам определить? (например, возможно, все замедляется, когда у вас есть 1000 или 10000)
- Количество комбинаций символ + диакритика потенциально огромно. Что вам действительно нужно?
и, возможно, один из способов решения проблемы и уменьшения числа:
- Требуется ли автокоррекция только для тех символов, где в таблицах Unicode существует составной элемент (меньшая проблема), или
- Вы хотите, чтобы автокоррекция вставляла составную часть там, где она существует, и соответствующий набор разложенных символов там, где ее нет? (потенциально огромная проблема)
Не предполагайте из вышесказанного, что создание подходящего фрагмента VBA будет простым. Любой, кто пишет такой код, должен будет решить, какие комбинации можно установить с использованием шаблонов, существующих в таблицах Unicode, а какие - с помощью перечисления "грубой силы". Вот почему я бы начал с определения подмножества проблемы.
Другой подход заключается в определении ваших "автозаменяемых" строк, но на самом деле они не являются автокоррекциями. Идея состоит в том, чтобы ввести автокоррекцию, а затем нажать клавишу, которая запустит макрос, который проанализирует введенный вами текст и определит, какие символы вы хотите использовать. С некоторой осторожностью вы сможете вводить строки, соответствующие нескольким символам, чтобы вам приходилось нажимать специальную клавишу только один раз, а не для каждого "завершенного" символа. Вам все равно придется рассмотреть некоторые из пунктов / вопросов, которые я перечислил выше.