[oodisc] M-dash

Alexej Kryukov akrioukov на newmail.ru
Пн Дек 13 14:05:05 MSK 2004


On Sunday 12 December 2004 22:57, Sergey Kuznetsov wrote:
>
> Сколько я ни пытался это сделать в разных версиях OOo, результат
> каждый раз оказывался непредсказуемым. В версиях 1.0.x, к
> примеру, первые 2 дефиса заменялись на endash, а после него
> оставался 3-й :-) 

Что ж, вполне логичное поведение. Однажды наступив на эти
грабли, легко сообразить, что в качестве исходной строки
для emdash надо задавать не три дефиса, а endash + дефис.

> В 1.1.x это исправилось, но все равно: в 
> некоторых местах OOo заменяет эти комбинации (я экспериментировал
> с разным числом дефисом, неразрывными и обычными пробелами и
> т.п.) на тире, а в некоторых нет. И никакой видимой
> закономерности нет. Прям как в Вениках :-)

Закономерность в том, что после комбинации, подлежащей замене,
надо набрать пробел либо знак препинания. Механизм, конечно,
не очень хорошо подходит для endash в цифровых диапазонах,
но уж с длинным тире никаких проблем возникать не должно
(и не возникло, сколько я ни экспериментировал). Другое
дело, что в реальной работе я привык вместо этого пользоваться
механизмом Compose.

> > используемого драйвера клавиатуры (Alt+0151 в Винде или
> > <Compose Key>--- в Linux.
>
> А вот это уже _очень_ интересно. Просветите, что за возможности
> <Compose Key>?

Ну, сначала надо повесить Multi_key на какую-то клавишу (есть выбор
между Menu, RAlt и RWin). Например:

Option "XkbOptions" "grp:lwin_toggle,grp_led:scroll,compose:menu"

Правда, Multi_key -- это всего лишь некий условный код, который
принято использовать в качестве префикса для комбинаций, имеющих
специальное значение. Сами комбинации определяются в файле Compose
для текущей локали. Загвоздка в том, что в традиционной практике
русификации механизму Compose значения не придавалось, так что
для кириллических локалей этот файл девственно пуст. Посему у
нас два выбора:

1) всегда запускать OOo в локали UTF-8;

2) взять файл /usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose
и переделать его в локаленезависимый. Для этого, оказывается,
нужно всего лишь открыть файл в редакторе и уничтожить (напр.
поиском с помощью регекспов) все закавыченные строки.

Дальше опять же два варианта, что с этим файлом делать:

а) в X 4.3 подкладываем его к нужной нам локали;

б) в X 4.4/X.org переименовываем его в .XCompose и кладем
в домашний каталог.

Файл, естественно, можно править по своему усмотрению, но
по умолчанию emdash будет набираться как <Multi_key><-><-><->,
а endash -- как <Multi_key><-><-><.>.

А вообще см. документацию к X 4.4/X.org (ключевое слово --
Compose).


-- 
Regards,
Alexej Kryukov <akrioukov at newmail dot ru>

Moscow State University
Historical Faculty


Подробная информация о списке рассылки Oo-discuss