LINUX.ORG.RU

А как поставить ударение над кириллическим символом?

 ,


0

1

С помощью клавиши Compose (и файлика .XCompose) можно легко ввести символы, которые условно «не прибиты гвоздями на клавиатуре». Это и символы пунктуации вида «ёлочек», — тире (em-dash), – (en-dash) и ☺ смайлика. Греческие символы так же могут быть полезны (αβγδ…), как и расширенные матсиволы (±∓≥≠≤≈≡∃∧∨¬⇒·×∫∑∞∅∈∉). Само собой нужны шрифты для их отображения, но если они есть хоть в каком-то виде, то это удобнее чем писать словами.

Так же иногда для улучшения понимания текста полезно уметь ставить ударение. Для латиницы это просто, так как достаточно нажать Compose+клавишу апострофа+нужный символ, например, éóá, но что делать в случае кириллицы? Переключение регистра после набора Compose+апостроф сбрасывает расширенный набор. Наверняка решение есть и оно простое, но я так сходу чего-то не придумал. Что нужно добавить в .XCompose, чтобы добавление ударения ставло возможным?

Попытал по этому поводу гугловский ИИ. Проблему решил не только для .XCompose, но и для emacs и его внутренней раскладки.

Update Написал статью на LOR по этому поводу: Как поставить ударение над кириллическим символом? Чтобы было.

★★★★★

Последнее исправление: Evgueni (всего исправлений: 3)

Я ставлю ударение так: после того, как ввёл букву, нажимаю Ctrl-Shift-u, далее можно вводить код Unicode в шестнадцатеричном виде, для ударения это 0301 и потом, кажется, пробел, чтобы закончить (или просто продолжаешь вводить символы). Пишу по памяти, если что-то не так, могу уточнить.

askh ★★★★
()

Я себе на «минус-букву» поставил

# {{{ RUSSIAN LAYOUT COMBINATIONS
# Расширенная кириллица (украинский, старославянский и т. д.)
<Multi_key> <Cyrillic_u>                                    : "ў" U045E
<Multi_key> <Cyrillic_U>                                    : "Ў" U040E
<Multi_key> <Cyrillic_i>                                    : "і" U0456
<Multi_key> <Cyrillic_I>                                    : "І" U0406
<Multi_key> <Cyrillic_e>                                    : "є" U0454
<Multi_key> <Cyrillic_ie>                                   : "є" U0454
# <Multi_key> <Cyrillic_IE>                                   : "Є" U0404  # нельзя из-за €
<Multi_key> <Cyrillic_E>                                    : "Є" U0404
<Multi_key> <Cyrillic_shorti>                               : "ї" U0457
<Multi_key> <Cyrillic_SHORTI>                               : "Ї" U0407
<Multi_key> <Cyrillic_ya> <Cyrillic_te> <Cyrillic_softsign> : "ѣ" U0462
<Multi_key> <Cyrillic_YA> <Cyrillic_TE> <Cyrillic_SOFTSIGN> : "Ѣ" U0463

# Знак рубля: "руб", а также
# сочетание буквы «Р» и знака равенства или дефисов любом регистре и порядке
<Multi_key> <Cyrillic_er> <Cyrillic_u> <Cyrillic_be>        : "₽"   U0463   # Ruble sign
<Multi_key> <Cyrillic_er> <equal>                           : "₽"   U0463   # Ruble sign
<Multi_key> <Cyrillic_ER> <equal>                           : "₽"   U0463   # Ruble sign
<Multi_key> <equal> <Cyrillic_er>                           : "₽"   U0463   # Ruble sign
<Multi_key> <equal> <Cyrillic_ER>                           : "₽"   U0463   # Ruble sign
<Multi_key> <Cyrillic_er> <minus>                           : "₽"   U0463   # Ruble sign
<Multi_key> <Cyrillic_ER> <minus>                           : "₽"   U0463   # Ruble sign
<Multi_key> <minus> <Cyrillic_er>                           : "₽"   U0463   # Ruble sign
<Multi_key> <minus> <Cyrillic_ER>                           : "₽"   U0463   # Ruble sign

# Набор кавычек-ёлочек на те же клавиши, что в английской раскладке,
# а также кавычек-лапок на них же, но в нижнем регистре
<Multi_key> <Cyrillic_YU> <Cyrillic_YU>                     : "»"
<Multi_key> <Cyrillic_BE> <Cyrillic_BE>                     : "«"
<Multi_key> <Cyrillic_yu> <Cyrillic_yu>                     : "“"
<Multi_key> <Cyrillic_be> <Cyrillic_be>                     : "„"

# Смайлик на те же клавиши, что в английской раскладке
<Multi_key> <Cyrillic_ZHE> <parenright>                     : "☺"

# Минус+гласная = гласная с ударением
<Multi_key> <minus> <Cyrillic_A>                     : "А́"
<Multi_key> <minus> <Cyrillic_a>                     : "а́"
<Multi_key> <minus> <Cyrillic_IE>                    : "Е́"
<Multi_key> <minus> <Cyrillic_ie>                    : "е́"
<Multi_key> <minus> <Cyrillic_I>                     : "И́"
<Multi_key> <minus> <Cyrillic_i>                     : "и́"
<Multi_key> <minus> <Cyrillic_O>                     : "О́"
<Multi_key> <minus> <Cyrillic_o>                     : "о́"
<Multi_key> <minus> <Cyrillic_U>                     : "У́"
<Multi_key> <minus> <Cyrillic_u>                     : "у́"
<Multi_key> <minus> <Cyrillic_YERU>                  : "Ы́"
<Multi_key> <minus> <Cyrillic_yeru>                  : "ы́"
<Multi_key> <minus> <Cyrillic_E>                     : "Э́"
<Multi_key> <minus> <Cyrillic_e>                     : "э́"
<Multi_key> <minus> <Cyrillic_YU>                    : "Ю́"
<Multi_key> <minus> <Cyrillic_yu>                    : "ю́"
<Multi_key> <minus> <Cyrillic_YA>                    : "Я́"
<Multi_key> <minus> <Cyrillic_ya>                    : "я́"
# }}} RUSSIAN LAYOUT COMBINATIONS
CrX ★★★★★
()

В Юникоде есть куча латинских букв с диакритикой, и Compose нужна именно для них. Для ударения в кириллице оно не нужно, достаточно поставить U+0301 после требуемой буквы. Как именно его вводить - отдельный вопрос, варианты с типографской раскладкой и прямым вводом Юникода (который, кстати, может не везде работать) уже накидали.

(Правда, в некоторых глючных шрифтах комбинируемое ударение может криво выглядеть, но тут уж чо поделаешь…)

alegz ★★★★★
()
Ответ на: комментарий от anonymous

это всё суррогаты, как и, скажем, указание долготы гласных в транскрипции через «:» (даже хренова Википедия этим страдает). люто ненавижу, чай, не во времена восьмибитных кодировок живём.

anonymous
()
Ответ на: комментарий от pasquale

имеется в виду - не в транскрипции IPA, а, скажем в русской транскрипции японских имён. типа, фамилию 大田 пишут как «О:та» вместо «О̄та» или уж просто «Ота».

anonymous
()
Ответ на: комментарий от CrX

Shift+Ctrl. Зажимаешь, потом набираешь u301

Это долго и переключать раскладку, а так колесиком нажал и все. Могут конечно возникнуть проблемы с буферами, выделил текст и примари (или какой?) пропал

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Это долго и переключать раскладку, а так колесиком нажал и все.

Чтобы «колёсиком нажать и всё», нужно, чтобы сперва оно очутилось в буфере как-то.

Переключаться на терминал, набирать echo -e '\u0301' | xclip, переключаться обратно, убирать руку с клавиатуры, кликать колёсиком, и только потом продолжать набор — это дольше, чем просто набрать u301 сразу. Даже с автодополнением echo и xclip ;)

И да, переключать раскладку тоже требуется.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от dmitry237

Это все зависит от задачи. Для одного ударения в полгода вполне нормально.

Согласен, что для одного ударения в полгода неважно. Но про «долго» аргумент-то не от меня первым прозвучал, а наоборот от тебя. Я лишь парировал тем, что всё ровно наоборот — способ с echo дольше.

Так-то мне удобнее вот через Compose, как выше написал. Но я не вижу преимуществ с echo и xclip перед вариантом Ctrl+Shift — то же самое, требуется помнить цифру и вводить u301 (хоть в терминал, хоть на месте). Только с Ctrl+Shift — быстрее.

Впрочем, могу предположить, что это менее универсально и, гипотетически, где-то может просто не работать.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Можно всё это обернуть в скрипт и положить куда-нибудь. Просто нужно помнить, скажем, что stress — это ударение по английски. Зато этот метод довольно универсальный и не зависит от окружения, если оно юникодное и над X11.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Зато этот метод довольно универсальный и не зависит от окружения, если оно юникодное и над X11.

не зависит от окружения

и над X11

То есть, зависит сильнее, чем способ с Ctrl+Shift, который работает одинаково и в X11 и в Wayland. То есть, на практике мест, где он, возможно, не работает, меньше, нежели с xclip.

Да, последнее решается скриптом-обёрткой, который в зависимости от окружения вызывает или xclip, или wl-copy например. Но всё равно странновато как-то. Лучше уж через Compose :)

CrX ★★★★★
()
Ответ на: комментарий от CrX

Нужно помнить юникодный код, который лично я забыл сразу по прочтению. Мне проще запомнить stress, который лежит в локальной директории для такого рода скриптов.

Я не говорю, что Compose хуже, просто ещё один простой в использовании «костыль».

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от CrX

Кстати, про окружение: на Steam Deck (Десктоп на Steam Deck ) xclip обнаружено не было и проверить этот способ я смог только зайдя на свою рабочую машину через ssh, где этот самый xclip был.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от dmitry237

echo + xclip надо один раз, а Ctrl-Shift + u309, каждый раз, в буфере же не сохраняется.

Ну если в одном тексте надо кучу ударений расставить, то да. Впрочем, тогда уж точно вариант с Compose удобнее.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Небольшая разница есть: метод с Compose работает при вводе тексте, а с xclip уже после набора текста, когда мы можем сосредоточиться исключительно расстановке ударений.

Есть ещё такая проблема с этими самыми ударениями: известные мне по умолчанию проверяльщики орфографии в emacs, firefox и прочее не умеют игнорировать знак ударения и подчёркивают эти слова красным, то есть набор текста → проверка орфографии → расставление ударений вполне себе рабочий кейс. Ну или что-то ещё нужно делать с проверкой орфографии. Со временем возможно эта проблема рассосётся, но сейчас она наличествует.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Небольшая разница есть: метод с Compose работает при вводе тексте, а с xclip уже после набора текста, когда мы можем сосредоточиться исключительно расстановке ударений.

Да, это ценное замечание.

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

Есть ещё такая проблема с этими самыми ударениями: известные мне по умолчанию проверяльщики орфографии в emacs, firefox и прочее не умеют игнорировать знак ударения и подчёркивают эти слова красным, то есть набор текста → проверка орфографии → расставление ударений вполне себе рабочий кейс. Ну или что-то ещё нужно делать с проверкой орфографии. Со временем возможно эта проблема рассосётся, но сейчас она наличествует.

Хм… Наверное проблема решается словарями. Я что-то где-то слышал про то, что точно была проблема с буквой ё, и были специальные словари отдельно — с использованием Ё и без. Наверное можно и с ударениями сделать словари. Причём даже не просто с игнорированием этого символа, а чтоб ещё и правильность ударения проверялась и «зво́нит» подчёркивалось красным.

Но тут я теоретик, проверкой орфографии нигде не пользуюсь.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Я что-то где-то слышал про то, что точно была проблема с буквой ё, и были специальные словари отдельно — с использованием Ё и без.

Именно. Возникновение словарей с ё отдельная драма во многих действиях (спасибо по-моему Лебедевскому словарю). То есть нужны словари с расставленными ударениями. Кто бы этим ещё занялся?

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Убрал раздел, так как воспроизвести по месту не удалось. Я на Steam Deck, поэтому не гарантирую что у меня стандарт с окружением.

Сам раздел вынес сюда: www.linux.org.ru/articles/desktop/18208088?cid=18208376

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Ну у меня гном, но вообще это работает на уровне libinput где-то, должно работать везде, т.е. что-то сломали в стимдеке.

Aceler ★★★★★
()
Последнее исправление: Aceler (всего исправлений: 1)
Ответ на: комментарий от Aceler

Он всё правильно говорил с одним но: так было сделано в первоисточнике Типографская раскладка Ильи Бирмана, но то, что доступно по умолчанию сейчас отличается (в частности в области расстановки ударений) и это отличие появилось относительно недавно (лет десять назад совпадение было похоже полным).

Сам Илья Бирман очевидно про Ubuntu ничего не знает и раскладка была утащена энтузиастами. ИИ нашёл просто более популярный, хоть и устаревший, источник.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 3)
Ответ на: комментарий от Evgueni

А мы в БиБиСках фидо ньюсАх интернете или в типографии детка?
Не, так-то я не против, как думаю и многие тоже. И выглядит аккуратнее чем с заглавными. Но не более. КМК. Главное - без фанатизма.

anonymous
()