3

Я ищу и нахожу, что в Word 2010 единственный способ, которым можно вводить все виды символов UNICODE, - это использовать "таблицу символов", которая является указателем времени, чтобы найти нужный мне символ, потому что выбор ограничен разделом шрифта не основанный на разделенных морфологических или графических особенностях всей карты ЮНИКОД.

Мне просто интересно, можно ли все символы UNICODE (исключая кандзи или подобные вещи) разделить на несколько компонентов в значении метода ввода (основанном только на клавиатуре без использования таблицы символов), так же как ᾧ можно подразделить на ῀ + ῾ + ω + ι этих четырех частей, и я хочу использовать некоторые сочетания клавиш как \slideOV + \roughOV + \omega + \iotaUD или \~ + \'+ \omega + \iotaUD, в которых "OV" означает "над" и « УД "значит под?

MS Word 2010 сделал шаг, но не очень завершенный, более того, автозамена не доступна для редактирования. Я не знаю о методе ввода латекса для Unicode, но я думаю, что команда действительно слишком длинна для запоминания и использования.

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

Например, вот вики о всех символах формы "а" в UNICODE.

2 ответа2

6

Unicode определяет код символа: набор символов, их кодированные представления (числа и имена Unicode) и другие свойства. Он не определяет методы ввода. Unicode как таковой не определяет путь для ввода чего - либо.

«Таблица символов» в Word не позволяет вводить какие-либо символы - только символы, которые имеют глифы в текущем выбранном шрифте. В Word есть универсальный способ: метод Alt X: введите «u +», затем номер Unicode символа, затем введите Alt X, и строка волшебным образом превратится в символ. Часть «u +» может быть опущена, если предыдущий символ не является цифрой, буквой a – f или x.

Подразделение или декомпозиция, напоминающая описанную вами, возможна в Unicode, но стандарт Unicode описывает ее только на уровне кодов символов. Это называется каноническим разложением, и это означает, что, например, «ᾧ» ГРЕЧЕСКОЕ ПИСЬМО U+1FA7 ОМЕГА С ДАСИЕЙ И ПЕРИСПОМЕНАМИ И YPOGEGRAMMENI можно разложить на простые омеги, за которыми следуют три символа комбинирования: U+03C9 U+0314 U+0342 U+0345. Обратите внимание, что в Юникоде знак объединения появляется после базового символа. (Это отличается от общепринятых европейских методов ввода, где мертвая клавиша часто нажимается перед базовым символом.)

Это означает, что вы можете создать символ, в некотором смысле, введя четыре символа в этой последовательности, возможно, используя макросы или сочетания клавиш или назначения клавиш, которые вы для них определили. Но результат все равно не будет совпадать с «ᾧ». Он может выглядеть так же, и, согласно принципам Unicode, ожидается, что он будет выглядеть так же, но он все равно будет отличаться от формы, закодированной в виде символа ine, U+1FA7. И на практике это может выглядеть по-другому, возможно, совершенно по-другому.

В моем тесте на Word 2007 ввод U+03C9 U+0314 U+0342 U+0345 приводит к тому же внешнему виду, что и U+1FA7. Это хорошие новости. В более старых версиях Word возникали серьезные проблемы с такими проблемами. Но это все еще четыре символа (четыре кодовых пункта). Текстовый процессор может преобразовать такую последовательность в соответствующий канонически эквивалентный символ, но это не так. Это актуально, когда вы обрабатываете данные программно или конвертируете их в другой формат (например, в формат программы публикации). И внешний вид в порядке только тогда, когда используемый шрифт имеет эти комбинирующие метки.

Было бы возможно, и не особенно сложно, создать раскладку клавиатуры (драйвер клавиатуры), которая бы выполняла, например, обычную американскую клавиатуру для многогранного греческого языка, чтобы буквенные клавиши производили греческие буквы естественным образом (A производит α и т.д.), Хотя вам нужно специальное соглашение для букв типа ω, а некоторые знаки пунктуации производят комбинированные диакритические знаки. Основная проблема заключается в том, что вы будете производить буквы в разложенном формате (например, U+03C9 U+0314 U+0342 U+0345). Но этот формат может быть приемлемым, или вы можете программно преобразовать (нормализовать) его в формат, который использует предварительно составленные символы (например, U+1FA7).

1

Я публикую это как ответ, хотя это строго комментарий к 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, а какие - с помощью перечисления "грубой силы". Вот почему я бы начал с определения подмножества проблемы.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .