понедельник, 21 июня 2010 г.

MiKTeX 2.9 и PSCyr 0.4d

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

Скачиваем MiKTeX отсюда, выбрав вариант "Basic MiKTeX 2.8" Installer. Ставим, как описано в блоге сурового челябинского программиста, указав решим установки отсутствующих пакетов "Ask me first", что предлагается установщиком по умолчанию. Будем работать с общесистемными настройками (Пуск --> Программы --> MiKTeX 2.8 --> Maintenance (Admin)). После установки обновляем дистрибутив (Update (Admin) в меню), указав в качестве источника обновлений nearest package repository.

Следующий шаг - установка PSCyr, дистрибутив которого нужно скачать отсюда и отсюда. Оба архива распаковываем в одну папку, в которой получим папку PSCyr. Затем где-то, например, в своей домашней директории (%USERPROFILE%) создаем папку texmf, в которую скидываем содержимое папки PSCyr (файлы типа install.sh можно пропустить и скопировать только директории). После этого через меню Пуск запускаем программу Settings и переходим на вкладку Roots. Там нажимаем кнопку Add и выбираем папку texmf. Нажимаем OK. Теперь MiKTeX будет знать, где лежат пользовательские LaTeX-файлы.

Теперь нужно сделать так, чтобы MiKTex узнал о новых шрифтах. Для этого следует:

  1. Выполнить команду initexmf --edit-config-file dvips и ввести в открывшийся блокнот p +pscyr.map
  2. выполнить команду initexmf --edit-config-file pdftex и ввести в открывшийся блокнот +pscyr.map
  3. выполнить команду initexmf --edit-config-file updmap и ввести в открывшийся блокнот Map pscyr.map
  4. выполнить команду updmap
  5. выполнить команду initexmf --edit-config-file dvipdfm и ввести в открывшийся блокнот f pscyr2.map
  6. выполнить команду initexmf -u
  7. запустить из меню Пуск программу "Settings" и на вкладке General нажать кнопку Refresh FNDB
  8. выполнить команду mkfntmap
После этих действий файл с преамбулой
\documentclass[a4paper,russian]{article}
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\usepackage{pscyr}
должен собираться командой pdflatex file.tex. При первой сборке будет выведен запрос на скачивание отсутствующих пакетов.

Возможные ошибки:

  • LaTeX Error: File `pscyr.sty' not found. Не выполнен пункт 7.
  • pdfTeX error: pdflatex (file faqr6a): Font faqr6a at 420 not found. Не выполнен пункт 8.

Update: используется правка пользовательских конфигов вместо общесистемных, поскольку изменения в последних будут утеряны при обновлении.

Update 2: переносы в русском тексте в MiKTeX 2.9 работают «из коробки».

Update 3: из инструкции удалены все действия, требующие прав администратора.

11 комментариев:

  1. Пункт 8 (как и пункт 4) не могут быть выполнены в виду следующих сообщений выводимых на экран при запуске данных команд:
    Fontconfig error: line 26: not well-formed (invalid token)
    Fontconfig error: cannot load default config file

    Соответственно в самом TeX'e появляется ошибка pdfTeX error: pdflatex (file faqr6a): Font faqr6a at 420 not found
    Не могли бы вы сказать, в чём причина?

    ОтветитьУдалить
  2. Скорее всего, вы неверно отредактировали конфиги. Покажите строки с 20-ой по 30-ую каждого из четырех файлов.

    ОтветитьУдалить
  3. В некоторых файлах строк всего 20, а в некоторых и того меньше. Если вас не затруднит, не могли бы вы посмотреть целиком эти файлы, я их заархивировал и выложил по этой ссылке: http://ifolder.ru/19455929

    ОтветитьУдалить
  4. В файле updmap.cfg последняя строчка "# PSCyrMap pscyr.map", а должна быть "Map pscyr.map", а комментарий "# PSCyr" должен стоять на предыдущей строке. http://pastebin.com/Spnn58bZ

    ОтветитьУдалить
  5. на случай, если кому-то будет полезно. бился над установкой шрифтов 4 часа. выполнял все по инструкции, потом по куче других инструкций, в разных порядках и с прочими шаманскими плясками. ничего не получалось - при компиляции метафонт заявлял, что не знает шрифта faqr6a. проблема неожиданно решилась, когда я в MiKTeX Options aka Settings (Admin) в закладке roots тупо прописал путь к папке PSCyr, несмотря на то, что она находилась внутри одной из директорий, которые в roots уже были. бред, конечно, но заработало. :)

    ОтветитьУдалить
  6. Спасибо! Был готов уже послать ТеХ, но вот нашел таки как сделать

    ОтветитьУдалить
  7. Этот комментарий был удален автором.

    ОтветитьУдалить
  8. У меня заработало только после того, как Settings (это там где надо нажать Refresh FNDB) запустил от админа.

    ОтветитьУдалить
  9. Дико извиняюсь за глупый вопрос - но как выполнять команды 1-8??? Через командную строку windows?

    ОтветитьУдалить
    Ответы
    1. > как выполнять команды 1-8??? Через командную строку windows?

      Да.

      Удалить