Использование Unicode
Рассмотрим три варианта получения текста в формате Unicode:
-
выбором символов из таблицы;
-
с помощью виртуальной клавиатуры;
-
преобразованием данных, которые существуют в других кодировках.
Набор текста с помощью таблицы символов
Mac OS X
Как увеличить скорость своей работы? Один из способов— запомнить клавиатурные сокращения. Это особенно удобно, когда надо найти и вставить специальный символ, например:
-
всевозможные необычные буквы, используемые в разных языках,— Å å Á á Â â Ç ç Õ õ и т.д.
-
лигатуры— Œ æß;
-
символы валют— ¢ £ ¥;
-
математические знаки— ° ∆ ∑ ÷ ≥ ≤ ∫.
Клавиатурные сокращения для вставки этих символов, как правило, запомнить невозможно. Конечно, когда вам нужен тот или иной знак, проще открыть палитру специальных символов Character Palette и вставить его оттуда. Для нахождения конкретного символа надо перейти на вкладку By Category (По категориям) и выделить соответствующую категорию: Arrows (Стрелки), Stats/Asterisks (Звезды), Math (Математические знаки) и т.д.
Двойным щелчком на символе можно вставить его в текущий документ в активном приложении. Чтобы узнать, к какому шрифту он относится, надо нажать на кнопку с направленным вниз черным треугольником, и на экран будет выведена подробная информация.
Панель Character Palette в Mac OS X
По умолчанию этот полезный инструмент спрятан от глаз пользователя. Для того чтобы его включить, необходимо выполнить два простых действия:
1. Открыть System Preferences и найти пункт International.
2. Выбрать раздел Input Menu, дальше поставить две галочки напротив Character Palette и Keyboard Viewer
(о нем немного позже).
Теперь нажмите на иконку раскладки в менюбаре и вот она, Character Palette
!
Windows XP
В Windows есть аналогичная по назначению утилита— CharacterMap (Таблица символов). Ее можно запустить через меню Пуск: All Programs->Accessories->System Tools (Все программы -> Стандартные -> Служебные).
Панель CharacterMap в Windows XP
BabelMap для Windows XP (и выше)— утилита, заменяющая CharacterMap и позволяющая видеть и копировать любой символ Юникода. Утилита BabelMap всегда поддерживает синхронизацию с последней версией Unicode. Программа совершенно бесплатна и полнофункциональна, не имеет отключенных свойств или ограничений на время использования. Устанавливается простым копированием исполняемого файла и файла справки в каталог по выбору пользователя. Можно сделать для нее ярлык на рабочем столе или в меню программ.
Программа очень удобна для пиньиньконструирования китайских иероглифов.
Окно программы BabelMap
X Window
Gucharmap— просмотрщик шрифтов Unicode, написанный на Gtk+ и ориентированный для работы в GNOME. Он позволяет в удобной форме просматривать все доступные в системе шрифты и их категории, а также их детальные свойства. Используя Gucharmap, довольно просто найти любой символ и просмотреть его характеристики (код, имя, категория и пр.). Реализованы поиск и ряд фильтров.
Окно программы Gucharmap
Виртуальные клавиатуры и редакторы раскладок
Люди использовали клавиатуры задолго до появления компьютеров. И будут использовать, наверное, пока не появится возможность вводить текстовую информацию напрямую из мозга в компьютер. Думаю, что это произойдет не скоро, хотя работы в этом направлении уже идут полным ходом.
Внимательно посмотрите на клавиатуру. В лучшем случае на ней обозначены символы двух разных алфавитов— русского и латинского. Иногда на клавиатуре имеются знаки третьего языка. А если вам надо набирать тексты на пяти языках? Покупать клавиатуру для арабского, хинди, японского? Это было бы актуальным, если бы мы до сих пор пользовались лишь печатными машинками. Сейчас для нашего удобства созданы редакторы раскладок клавиатуры.
Раскладка клавиатуры— некий стандарт соответствия тех или иных символов (букв, цифр, знаков препинания и т.д.) языка клавишам клавиатуры компьютера, печатной машинки или другого устройства, с помощью которого вводится текст. Раскладка устанавливает несколько соответствий между клавишами и значениями, вводимыми с их помощью:
-
механическая раскладка— форма, размеры и взаимное расположение клавиш на клавиатуре;
-
визуальная раскладка— маркировка клавиш;
-
функциональная раскладка— значения, вводимые одиночным или комбинированным нажатием клавиш. Она обеспечивается минимум двумя составными частями:
- аппаратная раскладка— соответствие сканкода (идентификатора) и физической клавиши. Она постоянна для данной клавиатуры;
- программная раскладка— соответствие сканкодов и кодов символов (и управляющих кодов), передаваемых программе (как правило, отображаемых на экране в виде букв необходимого алфавита. Именно она обычно подразумевается под раскладкой).
Возможно существование нескольких раскладок для одного письменного языка. Например, существуют раскладки ЙЦУКЕН и фонетическая для русского языка; QWERTY, Дворака и Colemak для английского языка. Одна и та же раскладка может применяться и для нескольких языков. Например, латинская раскладка QWERTY используется в пяти языках, хотя в каждом из случаев ее названия в операционных системах семейства Windows различаются: в английском (US, United Kingdom), в болгарском (Bulgarian (Latin)), в китайском («Китайская традиционная— США», «Китайская (упрощенная)— США»), в японском («Японская») и в корейском («Корейская»). Одна и та же раскладка может поразному адаптироваться для использования на компьютере. Например, в Microsoft Windows поддерживаются два варианта адаптации русской раскладки ЙЦУКЕН для компьютерных клавиатур— «Русская» и «Русская (Машинопись)», различающиеся расположением небуквенных знаков и буквы «Ё, ё».
Механическая раскладка
Стандартная компьютерная клавиатура, также называемая клавиатурой PC/AT, имеет 101 или 102 клавиши, расположение которых подчиняется единой общепринятой схеме, и спроектирована в расчете на английский алфавит, содержащий 26 букв.
По своему назначению клавиши на клавиатуре PC/AT подразделяются на шесть групп:
-
функциональные клавиши (F1F12);
-
алфавитноцифровые клавиши;
-
клавиши управления курсором (Home, End, Page Up, Page Down, Delete, Backspace, стрелки вверх, вниз, вправо, влево);
-
клавиши цифровой панели;
-
специализированные клавиши (Esc, PrtScn, Pause ит.д.);
-
клавишимодификаторы (Shift, Ctrl, Alt, Alt Gr, Caps Lock, NumLock).
Визуальная раскладка
Если предполагается, что на клавиатуре будут работать с двумя раскладками, то на клавиши обычно наносят двойные обозначения. Например, черным цветом наносят символы латинской раскладки, а красным— символы национальной раскладки. Переключение между двумя раскладками в операционных системах семейства Microsoft Windows обычно выполняется нажатием комбинации клавиш Shift + Alt или Shift + Ctrl.
Клавиши алфавитноцифрового блока, в левом верхнем углу которых нарисована заглавная латинская буква, в зависимости от включенного регистра могут вводить как заглавные, так и строчные латинские буквы. В нижнем правом углу клавиши обычно указываются символы второго уровня, которые вводят, удерживая клавишу AltGr, либо символы национальной раскладки.
Функциональная раскладка
В раскладку клавиатуры могут включаться как символы только первого уровня, так и символы первого и второго уровней. На первом уровне находятся символы, для набора которых в нижнем регистре требуется нажатие одной клавиши, для набора в верхнем регистре— одновременное нажатие двух клавиш (Shift + клавиша). На втором уровне находятся символы, для набора которых в нижнем регистре требуется одновременное нажатие двух клавиш (AltGr + клавиша), для набора в верхнем регистре— одновременное нажатие трех клавиш (AltGr + Shift + клавиша).
Латинские раскладки клавиатуры
Первая коммерчески успешная печатная машинка была изобретена в сентябре 1867 года американцем Кристофером Шоулзом. В ней использовалась латинская раскладка, в которой буквы на клавишах располагались в алфавитном порядке. Например, на первых семи клавишах верхнего буквенного ряда были расположены буквы: A, B, C, D, E, F, G.
Анонс раскладки Дворака
У печатной машинки Шоулза был недостаток: при быстрой печати литеры цеплялись друг за друга и их рычажки «перепутывались». Было решено отказаться от «алфавитной» раскладки. От новой раскладки клавиатуры, в дальнейшем получившей название по буквам на первых шести клавишах третьего ряда алфавитноцифрового блока клавиатуры— QWERTY, требовалось, чтобы буквы, образующие в английском языке устойчивые комбинации, располагались как можно дальше друг от друга по разные стороны клавиатуры и были разбросаны по разным рядам, что уменьшало вероятность «перепутывания» рычажков печатной машинки. В настоящее время раскладка Шоулза признана анахронизмом, поскольку проблемы, которая привела к появлению QWERTY, больше не существует.
Дальнейшее совершенствование печатных машинок устранило проблему «перепутывания» рычажков и пробудило интерес к вопросу увеличения скорости печати. В 1936 году профессор Вашингтонского университета Август Дворак (August Dvorak) издал книгу, в которой предложил совершенно новую латинскую раскладку, носящую в настоящее время имя автора. Ее принцип— максимальное удобство для набирающего текст на английском языке на пишущей машинке.
Август Дворак изучал частоту употребления букв и физиологию человеческих рук, что помогло ему создать раскладку, основанную на следующих принципах:
-
при наборе руки должны чередоваться как можно чаще;
-
для максимальной скорости и эффективности набора легче всего должны набираться самые часто встречающиеся символы. Это означает, что клавиши с этими буквами должны быть в основном ряду, где установлены пальцы человека и в зоне указательных и средних пальцев;
-
редкие буквы должны быть в нижнем ряду, клавиши которого труднее всего нажать;
-
правая рука должна брать на себя больше «работы», потому что большинство людей— правши;
-
набирать диграфы соседними пальцами труднее, чем расположенными друг от друга далеко.
Раскладка была окончательно разработана в 1932году и в 1936м получила патент США № 2,040,248. Американским институтом национальных стандартов (ANSI) в 1982 году клавиатура Дворака была признана стандартом наряду с QWERTY.
В 1984 году количество пользователей раскладки оценивалось примерно в 100 тыс. человек.
В 2006 году Шаем Коулманом (Shai Coleman) была разработана раскладка Colemak. Название происходит от Coleman+Dvorak. Раскладка приспособлена к современным компьютерным реалиям. Ее принцип— эффективный и эргономичный набор текстов на английском языке на компьютерной клавиатуре.
Раскладка Colemak
По уверениям Коулмана, предложенная им раскладка имеет следующие преимущества:
-
она гораздо быстрее QWERTY и несколько быстрее Дворака, так как в Colemak разгружены мизинцы и чаще применяется чередование рук;
-
благодаря частичному сходству QWERTY и Colemak пользователь может использовать как QWERTY, так и Colemak, не испытывая существенных сложностей с переходом от одной раскладки к другой. Что касается раскладки Дворака, то она заметно отличается от QWERTY.
Русские раскладки клавиатуры
В русской компьютерной письменности в настоящее время используются две раскладки клавиатуры: ЙЦУКЕН и «фонетическая». Наиболее распространенной из них является раскладка ЙЦУКЕН, название которой происходит от шести левых символов верхнего ряда раскладки. Предшественницу этой раскладки, которую точнее было бы называть ЙІУКЕН, создали в США в конце XIX века для пишущих машинок. ВРоссии в те времена раскладка ЙІУКЕН получила официальное название «Стандардклавиатура». В раскладке в нижнем регистре располагались строчные буквы и знаки препинания, а в верхнем— прописные буквы и цифры.
В раскладке ЙЦУКЕН также отсутствуют клавиши для используемых в русской письменности знаков препинания и небуквенных орфографических знаков:
-
кавычки «ёлочки» (угловые, типографские);
-
кавычки „лапки“;
-
ударение;
-
тире;
-
параграф;
-
апостроф;
-
скобки квадратные;
-
скобки фигурные;
-
скобки угловые.
В операционной системе Microsoft Windows предложены два варианта адаптации раскладки ЙЦУКЕН для компьютерных клавиатур: «Русская» и «Русская (Машинопись)». По умолчанию используется раскладка «Русская», в которой цифры перемещены в нижний регистр, а знаки препинания (кроме точки и тире) и дополнительные символы— в верхний. Большинство русскоязычных пользователей компьютеров пользуются именно этой русской раскладкой.
Первая русская раскладка для пишущих машинок
Недостатком компьютерной раскладки ЙЦУКЕН («Русская») считается то, что запятая находится в верхнем регистре, хотя она не является второстепенным знаком и употребляется чаще точки.
Следующий недостаток основной русской компьютерной раскладки— неудобство набора буквы «ё».
В 1956 году был издан «Свод правил русской орфографии и пунктуации», в котором вариантные написания, вызванные частой заменой буквы «ё» буквой «е», были унифицированы— оставлены только с буквой «ё».
Тем не менее из двух букв русского алфавита, имеющих диакритические знаки,— «й» и «ё»— последнюю при письме попрежнему продолжают подменять буквой «е». В докомпьютерную эпоху «ё» игнорировали изза неудобства ее ручного написания и трудностей типографской печати, когда на техническом изготовлении сложной литеры стремились сэкономить, но и с переходом на клавиатуру компьютера ситуация не изменилась. На компьютерной раскладке ЙЦУКЕН «русская» буква «ё» размещена слева в верхнем углу клавиатуры, отдельно от всех остальных букв. Подобное положение буквы влияет на частоту ее использования при наборе не меньше, чем неудобность ее ручного написания или сложность изготовления литеры.
Альтернативный вариант— ЙЦУКЕН («Русская (Машинопись)»)— отличается расположением небуквенных знаков и буквы «ё». Она считается более удобной для скоростного набора, так как цифры в текстах встречаются, как правило, гораздо реже знаков препинания, а постоянное использование клавиши Shift для набора последних снижает скорость набора и приводит к большему количеству опечаток. Кроме того, в этой раскладке буква «ё» расположена в более удобном месте— за нее отвечает клавиша, которая в обычной русской компьютерной раскладке служит для набора знаков препинания— точки и запятой.
Созданы варианты русской фонетической раскладки на основе латинской QWERTY, а также на основе других латинских и национальных раскладок. Русская фонетическая раскладка считается лучшей для иностранцев, изучающих русский язык, а также для множества русских, живущих за пределами СНГ. Здесь русские буквы расположены там же, где и похожие (фонетически, по звучанию) латинские, например AА, БB, ДD, ФF, KK, OO и т. д.
Подключение русской фонетической раскладки требует специальной компьютерной программы, найти которую можно на соответствующих сайтах Интернета. Примечательно, что подобные ей раскладки: «Болгарская (фонетическая)», «Боснийская (кириллица)», «Македонская (FYROM)» и «Македонская (БЮРМ)» включены в набор раскладок Microsoft Windows Vista
.
Национальные раскладки клавиатуры
В отличие от компьютерной мыши, функциональность кнопок которой обычно не зависит от языка пользовательского интерфейса компьютера, раскладки клавиатуры для различных письменных языков в большинстве случаев различаются между собой.
Компьютерные раскладки тех национальных языков, чьи алфавиты созданы на основе 26буквенного латинского алфавита либо 33буквенного русского алфавита, как правило, также создаются на основе раскладок «базовых» алфавитов— латинской QWERTY или русской ЙЦУКЕН. При этом в раскладки этих национальных языков добавляются используемые в этих языках символы оригинальных букв (например, символы букв казахского алфавита—— в казахской раскладке), оригинальных знаков пунктуации (например, испанский знак ¡) и обозначений национальной валюты. Исключением являются клавиатурные раскладки турецкого (раскладка Turkish F), латвийского (раскладка Latvian) и литовского (раскладка Lithuanian IBM) языков, чьи алфавиты созданы на основе латинского. В этих языках используются собственные раскладки клавиатуры, не похожие на латинскую QWERTY. Тем не менее в набор раскладок Microsoft Windows XP и Microsoft Windows Vista, помимо указанных оригинальных раскладок, также добавлены раскладки на основе QWERTY: турецкая Turkish Q, латвийская Latvian (QWERTY) и литовская Lithuanian.
При создании клавиатурных раскладок для национальных языков с алфавитами на основе латинского используются различные способы размещения и набора оригинальных букв:
-
вместо цифр;
-
вместо небуквенных и нецифровых символов;
-
вместо неиспользуемых латинских букв, либо набор через AltGr или через «мертвые клавиши».
В некоторых национальных раскладках используются два и более способа размещения и набора оригинальных букв одновременно (например, одни оригинальные буквы размещаются вместо цифр, а другие вместо небуквенных и нецифровых символов). При классификации по способу размещения и набора оригинальных букв подобные раскладки будем относить только к одной из возможных групп. По указанному критерию можно выделить пять групп национальных раскладок:
3. Оригинальные буквы размещаются в цифровом диапазоне блока алфавитноцифровых клавиш (вьетнамская «Вьетнамская», французская French, венгерская Hungarian, литовская Lithuanian, словацкие Slovak, Slovak (QWERTY), чешские Czech, Czech (QWERTY), бельгийские Belgian (Comma), Belgian (Period), Belgian (French)).
4. Оригинальные буквы размещаются вместо небуквенных и нецифровых символов (албанская Albanian, немецкая German, турецкая Turkish Q, боснийская Bosnian, хорватская Croatian, датская Danish, итальянская Italian, польская Polish, сербская Serbian (Latin)).
5. Оригинальные буквы набираются только через AltGr (польская Polish (Programmers), греческие Greek Latin, Greek (319) Latin, чешская Czech Programmers, латвийская Latvian (QWERTY)).
6. Оригинальные буквы набираются только через «мертвые клавиши» (нидерландская Dutch, ирландская Irish, гэльская Gaelic, маорийская Maori).
Некоторые латинские буквы раскладки QWERTY заменяются оригинальными буквами (азербайджанская Azeri Latin, литовская «Литовская (новая)», туркменская «Туркменская», саамские Sami Extended FinlandSweden, Sami Extended Norway).
Первый способ имеет недостатки, так как в этом случае для набора цифр придется использовать либо другие клавиши алфавитноцифрового блока (как во французской French), либо переместить цифры с нижнего на верхний регистр (как в чешской Czech), либо с первого на второй уровень занимаемых ими клавиш (как во вьетнамской раскладке «Вьетнамская» и литовской Lithuanian). Второй также не слишком удачен, так как часто используемые оригинальные буквы в этом случае обычно размещаются на самых неудобных позициях. Третий вариант, часто называемый программистским, неудобен для слепой десятипальцевой печати, поскольку часто используемые оригинальные буквы национального алфавита размещены на втором уровне клавиатуры, что ведет к снижению скорости печати и росту опечаток. Те же недостатки и у четвертого варианта. К недостаткам пятого варианта можно отнести то, что при наборе текста на национальном языке иногда возникает необходимость набора английского или заимствованного слова, для которого нет альтернативного написания буквами только национального языка, или буквы, для которых в языке нет соответствующих звуков, используются в обозначении единиц измерения (ватт— W, вольт— V и т.п.).
В клавиатурных раскладках для национальных языков с алфавитами на основе русского в качестве основных используются оба варианта русской раскладки ЙЦУКЕН для компьютерной клавиатуры: ЙЦУКЕН (Русская) в украинской, белорусской, азербайджанской, киргизской, татарской, башкирской, якутской, таджикской раскладках и ЙЦУКЕН («Русская (Машинопись)») в казахской раскладке.
Среди существующих национальных раскладок на основе русской ЙЦУКЕН также можно выделить пять групп:
1. Оригинальные буквы размещаются в цифровом диапазоне блока алфавитноцифровых клавиш (казахская, башкирская, якутская).
2. Оригинальные буквы размещаются вместо буквы «ё», небуквенных и нецифровых символов (раскладки различных «псевдонациональных» шрифтов).
3. Русские буквы, отсутствующие в национальном алфавите, заменяются национальными буквами (украинская, азербайджанская, белорусская, таджикская раскладки).
4. Редко используемые русские буквы заменяются оригинальными буквами. Замененные русские буквы перемещаются на второй уровень тех же клавиш, то есть набираются через AltGr (татарская раскладка).
5. Оригинальные буквы набираются только через AltGr (киргизская раскладка).
Первая группа раскладок имеет существенные недостатки, поскольку для набора цифр придется использовать либо правую цифровую панель клавиатуры (на клавиатуре ноутбуков она отсутствует), либо переключаться на другую (обычно латинскую или русскую) раскладку клавиатуры. Например, в казахской раскладке, закрепленной стандартом, все девять оригинальных казахских букв расположены на клавишах основного цифрового диапазона. В раскладке не нашлось места для ряда распространенных небуквенных символов, а также для буквы «ё», что создает дополнительные неудобства пользователям этой раскладки. Для ввода цифр придется либо использовать клавиши цифровой панели, либо переключаться на латинскую или русскую раскладки. Схожие проблемы возникают в случае применения башкирской и якутской раскладки.
Раскладки второй группы неудобны для печати, так как часто используемые национальные буквы размещаются на самых неудобных позициях. При этом замененные символы (обычно это символы Ё ё + = _ - / ) оказываются недоступными для набора в национальной раскладке.
Раскладки третьей группы также неудобны, поскольку при наборе текста на национальном языке иногда возникает необходимость набора русского слова, для которого нет альтернативного написания буквами только национального алфавита. Это потребует переключения на русскую раскладку, что снижает скорость печати. К тому же пользователю необходимо помнить, какая буква расположена на одной и той же клавише на национальной и русской раскладке.
В четвертом варианте национальных раскладок учли сложности с переключением раскладок и разместили замененные русские буквы на втором уровне клавиатуры. Тем не менее пользователю придется постоянно вспоминать, какая буква расположена на одной и той же клавише на национальной и русской раскладке. Впротивном случае неизбежны ошибки при печати, столь характерные для тех пользователей, которые путают расположение латинских и русских букв на клавиатуре.
Раскладки пятой группы неудобны для слепой десятипальцевой печати, так как часто используемые буквы национального алфавита размещаются на втором уровне клавиатуры, что снижает скорость печати и ведет к увеличению количества опечаток. К тому же сохраняется и основной недостаток раскладок четвертой группы.
Среди раскладок клавиатуры алфавитов на основе русского нет ни одной раскладки, которая бы существенно отличалась от русской ЙЦУКЕН либо в которой использовалась идея фонетической раскладки на основе одной из латинских (QWERTY, Дворака, Colemak).
Редактирование раскладок
В Mac OS X
Обычно раскладка редактируется какойлибо специализированной утилитой. В Mac OS X это обычно делают с помощью Ukelele. Это довольно простой и наглядный редактор, который теперь распространяется как Universal Binary. Все необходимое, включая набор готовых раскладок и саму программу, включено в *.dmgобраз, скачиваемый с официального сайта производителя.
Как работать с Ukelele? При создании новой раскладки предлагается создать абсолютно пустую раскладку либо основанную на системной или существующей. Надежнее выбрать третий вариант, то есть, нажав «Оk», найти среди полученных с программой раскладок русскую (Cyrillic/Russian.keylayout). Перед вами появится готовая раскладка, которую можно изменять по своему усмотрению.
Установка каждой клавиши проходит после двойного щелчка по ней. Например, клавиша «ё» находится не совсем в привычном месте для пользователя PC. Мы ее перенесем туда, где почти на всех PCклавиатурах располагается кнопка «тильда». Двойной щелчок вызовет незатейливое окошко с одним полем ввода, куда и нужно ввести или вставить нужный символ (в данном случае букву «ё»).
После смены символа можно, удерживая Shift, повторно сделать двойной щелчок по «тильде», а затем ввести заглавную «Ё».
Как можно догадаться, смена символов может получаться и при сочетании клавишмодификаторов (Shift, Ctrl, Alt). Так, можно зажать Alt и настроить клавишу «минус» на длинное тире, используемое в русской типографике. Где взять длинное тире? Как уже упоминалось— в Character Palette.
Еще одним важным и интересным моментом, который можно реализовать в вашей раскладке, являются «мертвые» клавиши (они же dead keys). Появились они еще на пишущих машинках и сами по себе ничего не вводят, зато влияют на следующий введенный после них символ. Такой прием позволит сделать, например, транслитерируемую раскладку, где «y» является мертвой клавишей, а нажатые после нее «a», «e», «o» и «u» дают «я», «е», «ё» и «ю» соответственно. Хотя очевидным было бы применять их для расстановки акцентов на буквы (например, «a», «á», «a», «à»).
Для установки «мертвой» клавиши в Ukelele нужно выбрать в меню Keyboard → Edit Dead Key… или нажать CmdE. В открывшемся окошке создаем новую или редактируем существующую нажатием соответствующей кнопки. Если вы выберете New, то нужно будет одним щелчком указать, какую клавишу вы хотите сделать мертвой. После этого перед вами откроется новая раскладка, то есть вы окажетесь в режиме редактирования указанной мертвой клавиши. Здесь отдельные нажатия и комбинации вводятся привычным способом— по двойному щелчку. Выберите Keyboard →→ Finish Dead Key в меню, чтобы сохранить настройки мертвой клавиши и выйти из режима редактирования назад к обычной раскладке.
При двойном щелчке по уже существующей мертвой клавише (они будут выделяться белой рамкой) показывается окно, в котором можно удалить или отредактировать клавишу либо указать ее терминатор. Терминатор— это символ, который введется в случае, если при активной мертвой клавише была нажата другая, на которую не было назначено никакого символа. То есть, если у нас есть все та же мертвая «y», через которую можно ввести только символы на «a», «e», «o» и «u», то последовательное нажатие «y» и «x» приведет либо к вводу символатерминатора, либо вообще ни к чему (если терминатор не установлен).
Для того чтобы готовую раскладку «увидела» система, ее необходимо разместить в одной из трех папок:
-
/Library/Keyboard Layout— раскладка будет работать для всех пользователей на данном компьютере;
-
~/Library/Keyboard Layouts— раскладка будет работать только для вас («~»— имя пользователя);
-
/Network/Library/Keyboard Layouts— раскладка будет доступна в локальной сети.
Поменять раскладки можно, как обычно, в System Preferences →→ International →→ Input Menu. Там же, кстати, можно поставить галочку в Keyboard Viewer, после чего при щелчке по индикатору раскладки в правом верхнем углу можно будет открыть его точно так же, как мы открывали Character Palette, и потестировать всю свою раскладку, последовательно нажимая различные комбинации клавиш.
Помните, что свежевключенная раскладка не будет работать в уже запущенных программах. Перезапустите нужные приложения или, для надежности, выйдите из системы и зайдите заново.
Для особо технически подкованных заметим, что файл раскладки— это обычный XML, который можно открыть и отредактировать в любом текстовом редакторе.
Как любой уважающий себя XMLфайл, он должен начинаться с XMLдекларации и ссылки на DTD:
<!DOCTYPE keyboard SYSTEM
«file://localhost/System/Library/DTDs/KeyboardLayout.dtd»>
Для элемента верхнего уровня могут использоваться четыре атрибута:
-
номер группы скриптов (keyboard group). Для клавиатур Unicode это всегда 126;
-
уникальный идентификатор виртуальной клавиатуры (id). Обязательное условие— для Unicodeклавиатуры нужно сначала присвоить отрицательное значение «»;
-
имя этой раскладки клавиатуры, которое будет показываться в меню (name). Строка должна быть в формате UTF8;
-
Максимальное количество символов Unicode, которые могут быть вызваны одним нажатием клавиши (maxout). Для обычной клавиатуры этот показатель равен единице, но иногда может быть несколько символов.
Дальше идут обязательные элементы: layouts (код физической клавиатуры) и modifierMap (код различных модификаторов). Эти элементы практически везде одинаковы, поэтому править их совсем не обязательно.
<keyboard group=»126» id=»» name=»Find the keycodes» maxout=»4»>
<layouts>
<layout first=»0» last=»17»
modifiers=»commonModifiers» mapSet=»ANSI»/>
</layouts>
<modifierMap id=»commonModifiers» defaultIndex=»7»>
<keyMapSelect mapIndex=»0»>
<modifier keys=»command anyShift? caps?»/>
</keyMapSelect>
<keyMapSelect mapIndex=»1»>
<modifier keys=»anyShift caps?»/>
</keyMapSelect>
<keyMapSelect mapIndex=»2»>
<modifier keys=»caps»/>
</keyMapSelect>
<keyMapSelect mapIndex=»3»>
<modifier keys=»anyOption»/>
</keyMapSelect>
<keyMapSelect mapIndex=»4»>
<modifier keys=»anyShift anyOption command? caps?»/>
</keyMapSelect>
<keyMapSelect mapIndex=»5»>
<modifier keys=»anyOption caps»/>
</keyMapSelect>
<keyMapSelect mapIndex=»6»>
<modifier keys=»command anyOption caps?»/>
</keyMapSelect>
<keyMapSelect mapIndex=»7»>
<modifier keys=»control command? shift? caps? option?»/>
<modifier keys=»control command? shift? caps?
option? rightShift»/>
<modifier keys=»control command? shift? caps?
option? rightOption»/>
</keyMapSelect>
</modifierMap>
Несколько слов о приведенной цитате из XMLфайла. При определении физической клавиатуры мы указываем только одну— ANSI. Далее для каждой физической клавиатуры определяется виртуальная таблица keyMap. При отсутствии модификатора будет использована раскладка с индексом «0». Элементы KeyMapSelect описывают взаимодействие буквенноцифровых клавиш с клавишамимодификаторами. Ключи могут иметь следующие значения:
-
shift— левая клавиша Shift;
-
rightShift— правая клавиша Shift;
-
anyshift— любая из клавиш Shift;
-
option— левая клавиша Option;
-
rightOption— правая клавиша Option;
-
anyOption— любая из клавиш Option;
-
control— левая клавиша Control;
-
rightControl— правая клавиша Control;
-
anyControl: любая из клавиш Control
-
command— клавиша Command;
-
caps— клавиша Capslock.
Таким образом, в соответствии с кодом, указанным выше, нулевая виртуальная таблица включается в случае, когда нажата клавиша Command и не имеет значения, используются ли клавиши Shift и Caps Lock.
Табл. 1 активируется, когда нажата клавиша Shift и не имеет значения, нажата ли клавиша CapsLock. Табл. 2 активируется при нажатой Caps Lock. И так далее.
Далее в файле:
<keyMapSet id=»ANSI»>
<keyMap index=»0»> <! No modifiers >
<key code=»12» output=»q» />
<key code=»13» output=»w» />
<key code=»14» output=»e» />
...
</keyMap>
<keyMap index=»1»> <! anyShift >
...
</keyMap>
...
</keyMapSet>
<actions>
...
</action>
<terminators>
...
</terminator>
</keyboard>
В общем, ничего сверхъестественного. Если вам нравится редактировать XMLфайлы в их естественном виде, достаточно внимательно просмотреть существующие keylayoutфайлы или обратиться к документации.
В MS Windows
Microsoft относительно недавно выпустила бесплатную программу для редактирования раскладок клавиатур— Microsoft Keyboard Layout Creator (MSKLC).
Процесс редактирования раскладки в ней практически ничем не отличается от описанной выше утилиты Ukelele.
Необходимо помнить, что при компиляции раскладок используется следующая структура:
- in— каталог с раскладками в формате MSKLC (*.klc);
- addons— каталог с файлами, содержащими дополнительный текст для включения в layouts.js (файл c раскладками в формате VK). Файлы именуются двумя заглавными буквами, соответствующими коду страны (RU в случае ruRU);
- callbacks— каталог с файлами, содержащими текст (функцию или имя функции), который будет подставлен с параметром в addLayout;
- out— каталог, куда кладется файл layouts.js.
Для ОС Windows вообще существует довольно большое количество как платных, так и бесплатных редакторов раскладок клавиатуры. Все они работают примерно одинаково.
Окно MSKLC
Перекодировка текста
Если при открытии текстовых файлов вы видите так называемые кракозябры, можно попробовать открыть этот документ с помощью любого браузера, выбрав при этом в меню «Вид» ручное указание кодировки.
В большинстве случаев причина заключается в том, что автор текста и его получатель работают с разными кодировками. Для исправления этого необходимо перекодировать содержимое письма из исходной кодировки в ту, в которой работает получатель.
Перекодировка с целью восстановления исходного текста возможна не всегда. Например, уже при двукратной перекодировке, произошедшей, к примеру, при передаче сообщения через несколько неверно настроенных почтовых серверов, может произойти необратимая потеря информации, поскольку определенные различные символы исходного текста при определенных условиях могут замениться на другие, но одинаковые неправильные символы, и восстановить такое сообщение невозможно, даже если знать, какие перекодировки и в каком порядке были произведены.
Нередко бывает, что перекодировка осуществляется в правильном направлении, но сам перекодировщик работает не совсем корректно. Например, некоторые программыперекодировщики преобразуют только базовые русские буквы, а все остальные символы оставляют на месте. Витоге при перекодировке KOI8R → Windows1251 буква «ё» превращается в «Ј» (сербская буква), значок градуса «°» или в «њ» и т.д.
Другой вариант искажений связан с тем, что в целевой кодировке могут отсутствовать символы, имеющиеся в исходной кодировке. В этом случае отсутствующие символы могут просто выбрасываться, заменяться на символзаменитель (например, на знак вопроса— ?, а иногда на ) или же заменяться на похожие символы из ASCII (например, знак минуса (U+2212, −) может заменяться на простой дефис (U+002D, ), буква «š» может заменяться на «s» и т.д. В случае простого текста такие потери информации неизбежны, однако если преобразованию подвергается файл HTML или XML, то корректным преобразованием будет замена отсутствующих в целевой кодировке символов на коды с амперсандом: например, знак минуса должен заменяться на − или − буква «š» должна заменяться на š или š и т.д.
Рис. 9. Окно программы «Штирлиц»
Для перекодировки текстов используется довольно большое количество различных программ. В недавнем прошлом самой популярной программой среди русскоязычных пользователей была программа «Штирлиц». Этот программный продукт также часто помогает при просмотре старых текстовых файлов, созданных, например, еще под DOSредакторами. При общении по Интернету, к примеру, по протоколу ICQ, при работе с БД (чтение содержимого таблицы после бэкапа иногда затруднительно), работа по SSH и др., где встречаются проблемы с прочтением текстов.
Программа «Штирлиц» расшифровывает русские тексты, написанные в различных русских кодировках (Win1251, KOI8r, DOS, ISO88595, MAC и др.), в транслитерации, в форматах Quoted Printable, UTF7, UTF8, RTF, HTML, закодированные с помощью uuencode, xxencode, base64, binhex, BtoA тексты и файлы, а также тек
Николай Дубина
КомпьюАрт 6'2010