Автор: ohmic
Дата сообщения: 29.03.2006 21:04
ПИСАЛ НА ФОРУМЕ ОДНОМ, ТАК ЧТО СКОПИРУЮ ТОЖЕ )
Суть такая, что lyx переносится с эмуляторами под на windows (несмотря на это lyx не тормозит). Так вот изучая все это я понял, что и в linux тоже не все впорядке (русский буквы не печатаются). Я к чему веду: чтобы исправить в windows lyx нужно смотреть как исправляют его в linux:
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Настройки LyX
Заглянув в программный каталог LyX (скорее всего, /usr/share/lyx), можно обнаружить там файл lyxrc.defaults, содержащий некий набор основных настроек программы. Этот файл автоматически копируется и в поддиректорию .lyx в домашнем каталоге пользователя. Тем не менее, авторы программы настоятельно советуют не вносить в него никаких изменений, а создать вместо этого в том же каталоге файл lyxrc, в котором и упражняться по своему усмотрению, взяв за основу тот же самый lyxrc.defaults, а также специальный файл lyxrc.example, содержащий образцы всех допустимых команд с комментариями к ним. По этой причине и основным содержанием существующих на данный момент руководств по LyX являются рекомендации по обращению с lyxrc.
Однако та версия LyX, которая ныне входит в состав всех современных дистрибутивов Linux и доступна с сайта производителя (1.1.6) слегка обогнала свою собственную документацию, и попытки создания файла lyxrc, скорее всего, не дадут в ней желаемого эффекта. Дело в том, что настройки свои она хранит в файле под названием preferences, который, хотя и не отличается по синтаксису от lyxrc, однако не рекомендован для ручной правки. Это и не нужно: в программе имеется диалог ╚Preferences…╩, где и вносятся все необходимые настройки. Диалог этот содержит несколько вкладок, в числе которых первой идет Look & Feel. Смысл содержащихся на ней опций понятен без особых объяснений. В частности, здесь можно:
* определить шрифт для различных элементов интерфейса;
* определить экранные шрифты для вводимого текста (трех категорий: с засечками, без засечек и машинописный), а также их кодировку;
* отключить заставку, появляющуюся при запуске программы (чем пренебрегать ни в коем случае нельзя, потому что заставка эта маячит на экране гораздо дольше, чем от нее требуется);
* и многое другое.
Ну, а следующим номером идет вкладка под названием ╚Lang Opts╩ с двумя вкладками второго уровня: ╚Spel checker╩ и ╚Язык╩ (именно так; русификация программы, по-видимому, отстает от изменений в ее интерфейсе, откуда и происходит русско-английский диалект). Эта вкладка наиболее интересна для нас, так как здесь сосредоточено большинство опций, относящихся к русификации LyX. Впрочем, разделить их следует не на две, а на три группы:
* настройка проверки орфографии;
* настройка клавиатурного ввода;
* настройка взаимодействия с LaTeX (см. в следующей части статьи)
Рассмотрим их по порядку.
Проверка орфографии
С этим дело обстоит проще всего. В принципе, LyX по умолчанию использует словарь, одноименный с языком документа. Поэтому, если ваш словарь для ispell/aspell и в самом деле называется russian (а для koi8 это так), на вкладке ╚Spell checker╩ можно оставить всё как есть. Иное дело, если вам хотелось бы набирать текст в cp1251. В принципе, на этот случай имеется опция ╚use input encoding╩, которая позволяет передавать программе проверки орфографии название используемой кодировки. Но толку от нее мало: едва ли словарь для koi8 сможет воспринимать какие-то кодировки кроме своей собственной. А вот завесить ispell с ее помощью очень даже можно. Поэтому остается лишь раздобыть словарь в требуемой кодировке , после чего пометить флажок ╚use alternative language╩ и в расположенном рядом с ним текстовом поле ввести название соответствующего файла (для cp1251 он называется russianw).
Настройки клавиатурного ввода
Почитав документацию к LyX, можно убедиться, что его разработчики не имели ничего против использования своего детища с клавиатурами, отличными от английской. Тем удивительнее, что при первой попытке ввести какой-либо текст с кириллической раскладки на экране не появляется никаких символов. И всё же LyX не является ╚неправильным╩ приложением, поскольку его можно обучить понимать символы иностранных алфавитов. Для этой цели существует файл cyrillic.bind, распространяемый вместе с LyX в составе дистрибутивов фирмы ALTLinux. Если же вы не являетесь счастливым пользователем ее продукции, можете поискать данный файл где-либо в Сети или даже написать его самостоятельно. Синтаксис его очень прост: каждая строка имеет вид
\bind "Cyrillic_a" "self-insert"
Естественно, то же самое придется повторить для каждой буквы русского алфавита (точные их названия можно найти в описании какой-либо кириллической раскладки клавиатуры из каталога /etc/X11/xkb). Потом этот файл помещается в каталог LyX/bind (в usr/share или в домашнем каталоге пользователя) и прописывается (без расширения .bind) всё в том же диалоге ╚Preferences…╩ (вкладка ╚Look & Feel╩, на ней вкладка ╚Interface╩, на ней поле ввода ╚Bind file╩. С тем же успехом можно и вручную вставить в упомянутый файл preferences строку вида
\bind_file cyrillic
По крайней мере, именно такая рекомендация содержится во всех руководствах.
Вот только следует иметь в виду, что файлы из каталога bind вообще-то предназначены для задания настроек клавиатуры. И потому обрести возможность работы с русскими буквами, лишившись зато привычных клавиатурных комбинаций (даже таких обычных, как ╚слово вправо √ слово влево╩ √ это, очевидно, не тот эффект, которого мы хотели достичь. Иногда удается обмануть LyX, прописав сразу два bind-файла. Но √ не всегда, и в любом случае этого нельзя сделать через пользовательский интерфейс. Да и не нужно, потому что никто не заставляет нас использовать cyrillic.bind в чистом виде: гораздо лучше слить его содержимое с каким-либо из имеющихся в комплекте bind-файлов (по умолчанию используется cua.bind), поместить образовавшийся файл у себя в ~/.lyx/bind и использовать его в свое удовольствие.
Создание пользовательского bind-файла целесообразно и по иной причине. Дело в том, что существует одна категория настроек LyX, которые нельзя выполнить через пользовательский интерфейс, и это как раз настройки клавиатурных комбинаций. Между тем некоторые из них традиционно было принято определять в lyxrc. Собственно, и сейчас никто не мешает употреблять в файле preferences команды вида
\bind "любая_клавиша" "любая_команда"
Только вот надо иметь в виду, что они будут начисто снесены при первой же попытке изменить какие-либо настройки LyX в интерактивном режиме. Очевидно, из этой ситуации может быть три выхода:
* один раз задать настройки в диалоге ╚Preferences...╩, после чего править одноименный файл только вручную;
* править не preferences, а lyxrc.defaults, что, как мы отметили, не рекомендуется разработчиками;
* или же как раз и размещать все настройки клавиатуры там, где для них, собственно говоря, настоящее место, то есть в пользовательском bind-файле.
Помимо системной клавиатуры, LyX может работать и со своим внутренним переключателем раскладок. Придуман этот механизм прежде всего для удобства печати западноевропейских акцентированных символов. Дело в том, что в LaTeX для этой цели существуют специальные команды, с которыми LyX и должен сообразовываться. Пользы от этого, по-моему, в наших условиях мало. Вот если бы LyX умел динамически переключать экранный шрифт в зависимости от языка текста... А так акцентированные символы всё равно превращаются на экране в нечто, зависящее от используемой кодировки, так что, зная синтаксис соответствующих команд TeX, гораздо проще вводить их напрямую. Но как бы то ни было, возможность использования дополнительных раскладок существует. И потому полезно знать, что для их описания используются специальные файлы с расширением .kmap, хранящиеся в подкаталоге kbd программной директории lyx. В комплект поставки входит и описание русской раскладки для кодировки koi8-r (разумеется, она не нужна, если клавиатура уже русифицирована с помощью cyrillic.bind). Можно написать новую раскладку и самостоятельно: синтаксис этих файлов очень прост и к тому же хорошо описан в документации.
Дополнительных раскладок может быть подключено две (primary и secondary). В файле lyxrc.example приводится следующий пример их настройки:
\kbmap true
\kbmap_primary german
\kbmap_secondary american
Ручное включение данных строк в конфигурационный файл эквивалентно следующей последовательности действий: вызываем диалог ╚Preferences...╩, на нем открываем вкладку ╚Lang Opts╩ и вкладку следующего уровня ╚Язык╩, там активизируем опцию ╚Keyboard map╩ и прописываем нужные значения в ставших после этого доступными полях ╚1st╩ и ╚2nd╩. Хотелось бы только предостеречь насчет задания раскладки american: здесь имеется в виду вполне определенный файл american.kmap, содержащий описание международной раскладки с ╚мертвыми клавишами╩. Если это не тот эффект, который вам нужен, то не вписывайте в поле ╚2nd╩ ничего или впишите значение ╚null╩. Стандартную же американскую клавиатуру в LyX определять вообще не нужно: она получается сама собой (вернее, берется из системы) при третьем состоянии переключателя (обе раскладки отключены). К сожалению, этих состояний будет именно три даже в том случае, если одна из раскладок не задана.
Задав дополнительные раскладки, необходимо назначить клавиши, с помощью которых мы сможем получить к ним доступ. В lyxrc.example предлагается включить для этого в конфигурационный файл строку
\bind "Pause" "keymap-toggle"
Разумеется, ╚Пауза╩ здесь только для примера: можно назначить любую другую клавишу. Существуют также команды ╚keymap-primary╩, ╚keymap-secondary╩ и ╚keymap-off╩, обеспечивающие быстрый доступ к трем состояниям переключателя. Выше было отмечено, что помещать эти команды, если уж в них возникла необходимость, лучше всего в предварительно созданном пользовательском bind-файле.
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Вот что я надумал , для LyXWin137Complete-1-1 = 53.1 Mb (кстати в него входит basic-miktex-2.4.2207, который весит 31.7 Mb)
1) Файл cyrillic.bind поместить в D:\Program Files\LyX\Resources\lyx\bind
2) В файл D:\Program Files\LyX\Resources\lyx\lyxrc.defaults в конце пишем: \bind_file Cyrillic
3) Файл GOST-cp1251 скопировать в D:\Program Files\LyX\Resources\lyx\templates
4) Реконфигурировать lyx : [Edit -> Reconfigure]. Затем просит перезапустить LyX.
5) В файле D:\Program Files\LyX\Resources\lyx\templates\GOST-cp1251 заменить
\inputencoding auto -> \inputencoding default
6) Если LyX требует файлы *sty (File -> New Form Template... -> файл_GOST-cp1251. Открытся должен нормално [если ничего не упустил], дальше жмем на 4 кнопочку "dvi" и вот тогда - "Если LyX требует файлы *sty"), то их нет в miktex. Нужно до установить.
Как требует? - появляется красная кнопка "error" в LyX, нужно кликнуть на нее и почитать чего ему не нравится.
7) До установили до того, что 31 ошибка вылезла (короче не требует *sty)
8) В файле D:\Program Files\LyX\Resources\lyx\layouts\gost-cp1251
поменять пути (строка 360 в far)
\def\pathtosharedresource{/usr/share/lyx/clipart/} ->
\def\pathtosharedresource{D:/}
9) Содержимое в in_clipart в d:/ (не ошибка). В этом файле содержится рамки ГОСТа
10) В lyx ошибок не возникает. Ошибка вылазит в Yap (psflag.pro - хочет Yap)
Опять же этого файла нет в miktex , т.е. до установитли пакет.
11) Не хватает шрифта в Miktexe поставить lh.*
12) Печатаем на русском в lyx под windows
где:
in_layouts - папка
GOST-cp1251 - файл
in_clipart - папка
Я скачал gost-ср1251 на lyx установил на Linux потом эти файлы взял с соответствующих папок
Содержание файла cyrilliс.bind
\bind "Cyrillic_yu" "self-insert"
\bind "Cyrillic_a" "self-insert"
\bind "Cyrillic_be" "self-insert"
\bind "Cyrillic_tse" "self-insert"
\bind "Cyrillic_de" "self-insert"
\bind "Cyrillic_ie" "self-insert"
\bind "Cyrillic_ef" "self-insert"
\bind "Cyrillic_ghe" "self-insert"
\bind "Cyrillic_ha" "self-insert"
\bind "Cyrillic_i" "self-insert"
\bind "Cyrillic_shorti" "self-insert"
\bind "Cyrillic_ka" "self-insert"
\bind "Cyrillic_el" "self-insert"
\bind "Cyrillic_em" "self-insert"
\bind "Cyrillic_en" "self-insert"
\bind "Cyrillic_o" "self-insert"
\bind "Cyrillic_pe" "self-insert"
\bind "Cyrillic_ya" "self-insert"
\bind "Cyrillic_er" "self-insert"
\bind "Cyrillic_es" "self-insert"
\bind "Cyrillic_te" "self-insert"
\bind "Cyrillic_u" "self-insert"
\bind "Cyrillic_zhe" "self-insert"
\bind "Cyrillic_ve" "self-insert"
\bind "Cyrillic_softsign" "self-insert"
\bind "Cyrillic_yeru" "self-insert"
\bind "Cyrillic_ze" "self-insert"
\bind "Cyrillic_sha" "self-insert"
\bind "Cyrillic_e" "self-insert"
\bind "Cyrillic_shcha" "self-insert"
\bind "Cyrillic_che" "self-insert"
\bind "Cyrillic_hardsign" "self-insert"
\bind "S-Cyrillic_YU" "self-insert"
\bind "S-Cyrillic_A" "self-insert"
\bind "S-Cyrillic_BE" "self-insert"
\bind "S-Cyrillic_TSE" "self-insert"
\bind "S-Cyrillic_DE" "self-insert"
\bind "S-Cyrillic_IE" "self-insert"
\bind "S-Cyrillic_EF" "self-insert"
\bind "S-Cyrillic_GHE" "self-insert"
\bind "S-Cyrillic_HA" "self-insert"
\bind "S-Cyrillic_I" "self-insert"
\bind "S-Cyrillic_SHORTI" "self-insert"
\bind "S-Cyrillic_KA" "self-insert"
\bind "S-Cyrillic_EL" "self-insert"
\bind "S-Cyrillic_EM" "self-insert"
\bind "S-Cyrillic_EN" "self-insert"
\bind "S-Cyrillic_O" "self-insert"
\bind "S-Cyrillic_PE" "self-insert"
\bind "S-Cyrillic_YA" "self-insert"
\bind "S-Cyrillic_ER" "self-insert"
\bind "S-Cyrillic_ES" "self-insert"
\bind "S-Cyrillic_TE" "self-insert"
\bind "S-Cyrillic_U" "self-insert"
\bind "S-Cyrillic_ZHE" "self-insert"
\bind "S-Cyrillic_VE" "self-insert"
\bind "S-Cyrillic_SOFTSIGN" "self-insert"
\bind "S-Cyrillic_YERU" "self-insert"
\bind "S-Cyrillic_ZE" "self-insert"
\bind "S-Cyrillic_SHA" "self-insert"
\bind "S-Cyrillic_E" "self-insert"
\bind "S-Cyrillic_SHCHA" "self-insert"
\bind "S-Cyrillic_CHE" "self-insert"
\bind "S-Cyrillic_HARDSIGN" "self-insert"
\bind "Ukrainian_i" "self-insert"
\bind "S-Ukrainian_I" "self-insert"
\bind "Ukrainian_yi" "self-insert"
\bind "S-Ukrainian_YI" "self-insert"
\bind "Ukrainian_ie" "self-insert"
\bind "S-Ukrainian_IE" "self-insert"
\bind "Ukrainian_ghe_with_upturn" "self-insert"
\bind "S-Ukrainian_GHE_WITH_UPTURN" "self-insert"
Не пойму как прикрепить файлы , так бы вылажил
В шаблоне gost-cp1251 можно писать на русском, но (при выше указанной последовательности) это не касается других файлов
Чтобы касалось нужно:
1)
2)
4)
n) D:\Program Files\LyX\Resources\lyx\templates \файл_в_котором_работаем
english и меняем на russian в двух местах
11)
12)
Ну, вроде, ничего не упустил.