понедельник, 14 февраля 2011 г.

Запуск beamer под MikTeX 2.8

Попытки запустить "As Is", привели к следующей ошибке:
! Undefined control sequence.
\@outlinefile

l.44 \section{Введение}


Выяснилось, что это проблема совместимости beamer и hyperref. Прорабатывались разные workaround, например, здесь:

2009-12-22  6.79x  Heiko Oberdiek
    * 6.79x
    * Checking \@outlinefile before writing (workaround for
      beamer bug in beamerbasecompatibility 1.63).

Детально решение проблемы и причины ее возникновения обсуждаются здесь.

Я использовал такой workaround:
\documentclass[ignorenonframetext,pdftex,hyperref={bookmarks=true,unicode=true}]{beamer}

Оптимальным будет следующий вариант (поскольку презентацию правильнее сразу на полный экран показывать):
\documentclass[ignorenonframetext,pdftex,hyperref={pdfpagemode=FullScreen,unicode=true}]{beamer}

пятница, 11 февраля 2011 г.

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. Ее содержимое необходимо скопировать в папку с установленным MiKTeX'ом (C:\Program Files\MiKTeX 2.8), файлы типа install.sh можно пропустить и скопировать только директории. После этого необходимо внести следующие изменения:


  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 (Admin)" и на вкладке General нажать кнопку Refresh FNDB
  8. Выполнить команду mkfntmap
После этих действий файл с преамбулой

1
2
3
4
5
\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 работают «из коробки».

Анимация в beamer

Набор утилит.
1. Преобразование *.eps в *.png с помощью ImageMagick ("Converting .eps to .png Easily"). Параметры команды convert здесь.
2. Пакет movie15, про avi см. PDF with Animation, про gif см. Howto get animation in Beamer/LaTeX presentation
3. Конвертация GIF в AVI. Например, здесь.
4. Не забываем про установку PsCyr. еще тут и тут

Ошибка
Fontconfig error: line 26: not well-formed (invalid token)
Fontconfig error: cannot load default config file



из-за кривизны слешей в файле C:\ProgramData\MiKTeX\2.8\fontconfig\config\fonts.conf 


26. C:/ProgramData/MiKTeX/2.8/fontconfig/config/localfonts.conf
27. C:/ProgramData/MiKTeX/2.8/fontconfig/cache

В принципе, это не должно волновать обычных пользователей (обсуждение здесь):

fontconfig is needed by xetex. If you don't use xetex you don't need to care.