Введение

Компьютерный ключ для инициирования слияния глифов

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

Композиционные клавиши наиболее распространены в Linux и других системах, использующих X Window System, но существует программное обеспечение для их реализации в Windows и macOS.

История

Ключ Compose Character был представлен инженерами Digital Equipment Corporation (DEC) на клавиатуре LK201, доступной с 1983 года вместе с терминалом VT220. Клавиатура включала светодиод, указывающий на то, что выполняется последовательность Compose. В то время как LK201 представила группу клавиш команд между буквенно-цифровым блоком и цифровой клавиатурой, а также "перевернутую Т"-образную компоновку клавиш управления курсором, которые стали стандартом, клавиша Compose, напротив, стандартом не стала. В 1987 году Sun Microsystems выпустила Sun4 – первую специализированную Unix-рабочую станцию, оснащенную клавишей Compose. Отсутствует светодиод на клавиатуре или другой физический индикатор, показывающий, что выполняется последовательность Compose, хотя операционная система может отображать некоторые значки (например, символ "Compose Character", показанный ниже) в поле ввода текста пользователя.

Составление последовательностей

Если клавиша Compose не является одновременно клавишей-модификатором, то возможность последовательного ввода означает, что клавишу Compose не нужно отпускать перед последующими нажатиями. Это позволяет опытным печатающим быстро вводить составные символы. Ранние версии последовательностей Compose следовали принципам рукописного ввода и технике перебивки, ставя сначала букву, а затем диакритические знаки. Например, образует символ ñ. Этот порядок всё ещё используется, однако сегодня чаще применяется обратный порядок, известный по клавишам мёртвых знаков акцентов на старых пишущих машинках: для ñ. Это позволяет использовать несколько диакритических знаков, например, для ấ. Символы без диакритики обычно создаются из букв, которые при перепечатке или последовательном вводе давали бы похожий символ. Например, создаёт символ авторского права ©, а – символ Æ. Внутренних ограничений на длину последовательности нет, но она должна соответствовать правилам мнемоники и эргономики, а также быть реализуемой в рамках полной схемы Compose. Например, может быть вставлено с помощью , где обозначает заключение в круг, – инверсию, – шрифт без засечек, а – конечный символ.

По сравнению с другими методами ввода

Основное преимущество клавиши композиции заключается в том, что последовательность для выбора символа может состоять из любых букв, цифр или символов, доступных на клавиатуре. Это позволяет создавать более запоминающиеся последовательности, которые легче запомнить, можно угадать, если они неизвестны, и поддерживать гораздо большее количество символов. Основной недостаток заключается в том, что для ввода последовательности всегда требуется как минимум одно дополнительное нажатие клавиши. Неудобное расположение клавиши композиции также может замедлить ввод текста. Наиболее распространенным способом ввода символов, отсутствующих на клавишах, является использование клавиши-модификатора, такой как AltGr. Этот метод имеет ограничение: AltGr добавляет лишь две дополнительные комбинации для каждой клавиши (с модификатором Shift и без него). Дополнительные символы, как правило, адаптированы к местному рынку и, следовательно, удовлетворяют потребности большинства пользователей в большинстве случаев. Например, в стандартной раскладке клавиатуры Великобритании/Ирландии (UK/Ireland) комбинации AltGr+aeiou по умолчанию предоставляют буквы á é í ó ú, необходимые для ирландского гэльского языка, но не буквы à è ì ò ù, необходимые для шотландского гэльского языка. "Мертвая" клавиша рассматривает первый символ в последовательности как модификатор для следующей клавиши (или клавиш): при нажатии она, кажется, не оказывает никакого эффекта, пока не будет нажата следующая клавиша. (Большинство систем стараются сделать выбор "мертвой" клавиши логичной частью выбора символа; это особенно удобно для диакритических знаков, и эта концепция распространяется на другие символы). Например, клавиша с обратной кавычкой (grave/backtick) часто является "мертвой" клавишей: для получения символа ` используется последовательность ``. Возможны составные последовательности: например, для добавления диакритического знака в виде двух точек, клавиша ` кажется очевидным кандидатом, но очевидно, что эту часто используемую клавишу нельзя переназначить как "мертвую". Решение состоит в том, чтобы модифицировать её с помощью AltGr, таким образом, ` + AltGr выдает символ. Другие комбинации менее очевидны, чем их аналоги с клавишей композиции: например, сравните ` + a с ` + a для символа ä (ChromeOS с расширенной раскладкой Великобритании). Альт-коды или ввод Unicode с использованием числовых кодов можно рассматривать как альтернативу клавише композиции, но они используют неинтуитивные числа вместо мнемонических правил для выбора символа. Современные графические интерфейсы выбора символов часто требуют функции поиска, которая мало чем отличается от последовательностей клавиш композиции для быстрого нахождения нужного символа.

Система X Window

Файлы заголовков X называют клавишу композиции "Многоключом". В Xorg по умолчанию клавишей Compose Key является +, (при нажатии перед ней – "модификатор четвертого уровня клавиатуры", другая клавиша). В Gentoo Linux клавиша композиции отключена по умолчанию. Поскольку это довольно неудобно (особенно для клавиатур без клавиши ), обычно выбирают раскладку клавиатуры, в которой другая клавиша, например, правый AltGr или Win, назначается на клавишу Compose. Эта опция обычно доступна в настройках среды рабочего стола. Драйвер клавиатуры X не позволяет клавише, используемой для Compose, одновременно функционировать как модификатор. В современных системах поддерживается огромное количество последовательностей композиции.

Окна

В Microsoft Windows некоторые программы, такие как PuTTY, поддерживают клавишу композиции. Для эмуляции клавиши compose во всех программах часто используются утилиты для назначения сочетаний клавиш. Существует также ряд утилит с открытым исходным кодом (таких как WinCompose, AllChars, Compose Keys или Compose). Доступны устанавливаемые раскладки клавиатуры (такие как KbdEdit), которые содержат клавишу compose, назначенную одной из клавиш, например, или . Они работают, используя механизм цепочки мертвых клавиш, который чаще применяется для ввода букв с несколькими диакритическими знаками. Такие раскладки клавиатуры также можно программировать непосредственно на языке C (на котором написаны драйверы Windows), компилировать с помощью бесплатного Windows Driver Kit и упаковывать с помощью бесплатной Microsoft Keyboard Layout Creator 1.4, совместимой с последними версиями ОС.

macOS

Хотя система ввода текста Cocoa позволяет вводить множество альтернативных и диакритических символов непосредственно в macOS, встроенной функции клавиши-композитора нет. Однако, как минимум одно решение было реализовано с помощью утилиты Karabiner.

DOS

В DOS поддержка клавиш compose зависела от запущенного приложения или загружаемого драйвера клавиатуры. Например, в Lotus 1-2-3 использовалась клавиша compose для упрощения ввода множества специальных символов из международного набора символов Lotus (LICS) и многобайтового набора символов Lotus (LMBCS).

Общие комбинации композиций

В таблице ниже показаны некоторые из стандартных комбинаций клавиш для сервера X.Org. Для современных систем, поддерживающих Unicode, эта таблица далеко не исчерпывающая.
typefor á ä à ã â ǎ å ā ą ă ả ȧ Для большинства прописных и строчных гласных работают вышеуказанные комбинации.
typefor æ Æ œ Œ ð Ð ° ¤ © ® § ß ẞ þ Þ ™ × ·
typefor « » \ ₡ ø Ø ¿ ‘ ’ ç Ç “ ” ¡ — – ÷ đ Đ
typefor £ ⁰ ¹ ² ³ ª º ₀ ₁ ₂ ₃ ñ š ¢ ¥ ₽ € ½ ¼ ¾