- Я не умею, - признался я. - Не умею летать.
- А вы пробовали? - спросил человек, делая плавный поворот влево. Он, по всей видимости, наслаждался полетом.
- Нет, не пробовал. Но мне кажется, что я не умею.
Человек покачал головой, и все тело его при этом также покачивалось.
- Мне не хочется вас убеждать, - сказал он. - Маршрут у меня сегодня легкий. Могли бы попробовать. Вы не представляете, как это хорошо!
- Представляю, - сказал я. - Это, наверное, полезно?
- Нет ничего более бесполезного! - заявил человек...
Александр Житинский. Искушение.
Взявшись за всякое дело хорошо бы заручиться ответом на ряд вопросов.
- Зачем? Зачем все это нужно? Тут сложно подобрать правильный ответ. Пусть каждый его сам себе выберет. Я использовал эту связку при подготовки части материалов для статьи, впрочем одних средств LaTeX с избытком хватает для подготовки не только что целой статьи, но и диссертации.
- Для кого? Для любого, кому может потребоваться подготовка материалов математического характера, но по каким-либо причинам не устраивают используемые средства. Я просто буду считать, что эти заметки делаются не зря, если от них будет польза хоть для одного человека.
- А что в анонсе? Автоматизация символьных преобразований, представление результатов в наглядном виде, взаимодействие с Word, использование текстовых форматов, впрочем всего не пересказать. Тут скорее так: кто знает что это такое и зачем нужно - объяснять излишне, кто не знает - объяснять бесполезно.
Сразу оговорюсь, что не являюсь знатоком ни одной из перечисленных выше программ/систем/пакетов расширений/<вписать свое>. Однако, так как найти в сети такого комплексного обзора не получилось, попытаюсь привести то, что собрать все же удалось.
Все пассы по вызову дождя были выполнены в ОС Windows XP SP2. Впрочем, к моменту завершения выведения жизнеспособного плодовитого поколения горных хвостосвистящих раков, обязуюсь непременно описать как этого же достичь в одном из Linux-ов (впрочем, как раз у линуксоидов с этим проблем возникнуть не должно).
Итак, в путь!
Maxima
Система компьютерной алгебры Maxima. Официальный сайт:
http://maxima.sourceforge.net/
Вся необходимая документация и/или ссылки на нее присутствует там же:
http://maxima.sourceforge.net/ru/documentation.html
Скачиваем последнюю версию, устанавливаем.
Необходимо убедиться, что путь к файлу maxima.bat прописан в переменной PATH. Если не так - исправить (в моем случае это C:\Program Files\Maxima-5.18.1\bin\).
LaTeX
LaTeX, наиболее популярный набор макрорасширений TeX. Я использовал дистрибутив TeXLive. Официальный сайт:
http://www.tug.org/texlive/
Хорошая подборка ссылок на разнообразную документацию по LaTeX и не только приводится на:
http://forum.ru-board.com/topic.cgi?forum=5&topic=30211
Скачиваем iso-образ дистрибутива, прожигаем DVD, устанавливаем. Для Windows, как правило, припасен графический инсталлятор.
Необходимо убедиться, что путь к файлу pdflatex.exe прописан в переменной PATH. Если не так - исправить (в моем случае это C:\TeXLive2007\bin\win32\).
emacs
Развитый, самодокументированный, настраиваемый, расширяемый экранный редактор реального времени Emacs. Нет нужды комментировать последнюю строчку, таких комментариев уже было сделано предостаточно.
Официальный сайт:
http://www.gnu.org/software/emacs/
Подборка хорошей документации для Emacs - тема отдельного обсуждения. Пока приведу лишь следующую ссылку:
http://www.emacs.uniyar.ac.ru/
Для Emacs выбор используемой версии - задача не столь тривиальная, как в случае с обозначенными выше программными пакетами. Итак, существуют 3 основные сборки Emacs для Windows:
- официальная сборка emacs 22.3 для платформы win32 http://www.gnu.org/software/emacs/
- emacs 23, собранный из cvs (который, в свою очередь, подразделяется на пропатченный и непропатченный) http://ourcomments.org/Emacs/EmacsW32.html
- ntemacs находящийся по адресу http://ntemacs.sourceforge.net/
Первая представляет собой официальную и наиболее стабильную, в то же время, наименее требовательную к ресурсам и быстродействию сборку, применимую для разнопланового использования.
Вторая содержит в себе все последние доработки и исправления. Пропатченная версия, кроме того, имеет наименьшие глюки при скроллинге русского текста (подробнее об этом в дальнейщих заметках), а кроме того, там удобно реализованы server и client.
Третья является официальной версией, используемый для тестирования imaxima под Windows (подробнее об imaxima будет сказано ниже).
В конечном итоге, я остановился на официальной версии emacs 22.3, впрочем наставать на правильности этого решения не следует.
Процесс установки ограничен простой распаковкой архива и выполнением файла addpm.exe, расположенного в директории bin.
Конфигурация emacs - процесс перманентный, здесь я не буду приводить весь процесс настройки, все необходимые корректировки будем обговаривать по ходу добавления тех или иных пакетов расширений. Собственно файл конфигурации находится:
C:\Documents and Settings\{user name}\Application Data\.emacs
если его там нет, то необходимо такой фал добавить. Пакеты расширений в принципе могут находиться где угодно. Для определенности будем использовать:
C:\Documents and Settings\{user name}\Application Data\.emacs.d\
Моя версия конфигурации имеет в основе конфигурацию, взятую с http://www.emacs.uniyar.ac.ru/. Она доступна в googlecode, Mercural-репозитарии. Получить ее можно, выполнив команду
hg clone http://kostafey-emacs-config.googlecode.com/hg/ kostafey-emacs-config
AUCTeX
Всесторонняя, настраиваемая интегрированная среда для редактирования файлов TeX/LaTeX/ConTeXt/Texinfo используя Emacs или XEmacs.
Официальный сайт:
http://www.gnu.org/software/auctex/
Статья по работе с пакетом:
http://xtalk.msk.su/~ott/ru/writings/emacs-tex/AUCTeX.html
При установке я просто распаковал архив пекета auctex-11.85-e22.3-msw.zip в директорию, в которой установлен собственно emacs, благо структура директорий у них совпадает. Конфигурация emacs для AucTeX добросовестно скопирована с http://www.emacs.uniyar.ac.ru/
Данные строчки должны быть добавлены в .emacs:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;Настройки AucTeX
;;
(require 'tex-mik)
(add-hook 'LaTeX-mode-hook 'LaTeX-install-toolbar)
(setq TeX-parse-self t) ; Enable parse on load.
(setq TeX-auto-save t) ; Enable parse on save.
(setq-default TeX-master nil) ; Query for master file.
(setq TeX-PDF-mode t)
(setq TeX-interactive-mode t)
(setq TeX-source-specials-mode 1)
;;модифицируем меню
;;; some more menu entries in the command list:
;;; see tex-mik.el from package auctex: %v is defined in tex-mik.el
;;; other variables are defined in tex.el from auctex
;;; the meaning of some auctex-varibles:
;symbols defined in tex.el and tex-mik.el:
;%b name slave tex-file %t name master tex-file
;%d dvi-file %f ps-file
;%l "latex --src-specials"
;%n line number %p printcommand %q "lpq"
;%r (TeX-style-check TeX-print-style)
;%s master-file-name without extention
;%v yap command view line
(eval-after-load "tex"
'(progn
(add-to-list 'TeX-command-list
(list "->PS landscape for pdf"
"dvips %d -N0 -Ppdf -G0 -T 297mm,210mm -o %f "
'TeX-run-command nil t))
(add-to-list 'TeX-command-list
(list "All Texify run-viewer"
"texify --tex-opt=--src --run-viewer --clean %s.tex"
'TeX-run-command nil t))))
;;
;;Настройки PreviewLatex
(load "preview-latex.el" nil t t)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ecb
ecb - Emacs Code Browser. Пакет расширений для Emacs, используемый для повышения удобства навигации по редактируемым файлам.
Официальный сайт:
http://ecb.sourceforge.net/
Данный пакет имеет зависимость от другого - cedet.
cedet - Collection of Emacs Development Environment Tools
Официальный сайт:
http://cedet.sourceforge.net/
Скачиваем данные пакеты и распаковываем (в моем случае это cedet-1.0pre6 и ecb-2.40) в директорию
C:\Documents and Settings\{user name}\Application Data\.emacs.d\
Прописываем добавленные пакеты в .emacs. Конфигурация пакетов может иметь вид:
;;-----------------------------------------------------------------------------
;; Cedet
(setq semantic-load-turn-useful-things-on t)
(load-file "~/.emacs.d/cedet-1.0pre6/common/cedet.el")
(global-set-key [?\C- ] 'semantic-ia-complete-symbol)
(defun my-semantic-hook ()
(semantic-tag-folding-mode 1))
(add-hook 'semantic-init-hooks 'my-semantic-hook)
;;-----------------------------------------------------------------------------
;;-----------------------------------------------------------------------------
;; ECB
(add-to-list 'load-path "~/.emacs.d/ecb-2.40/")
(require 'ecb)
(global-set-key (kbd "\e\el") 'ecb-toggle-ecb-windows)
(global-set-key (kbd "C-x C-a") 'ecb-activate)
(global-set-key (kbd "C-x C-q") 'ecb-deactivate)
(global-set-key "\M-m" 'ecb-goto-window-methods)
;Перезагрузка окна методов после каждого сохранения
(setq imenu-auto-rescan 1)
;;-----------------------------------------------------------------------------
;Длинные строки всегда разбивать при отображении
(setq truncate-lines nil)
(setq truncate-partial-width-windows nil)
Кроме того, для удобства использования ecb в раздел custom-set-variables .emacs необходимо вписать:
(custom-set-variables
...
'(ecb-auto-activate t)
'(ecb-options-version "2.40")
'(ecb-primary-secondary-mouse-buttons (quote mouse-1--C-mouse-1))
'(ecb-source-path (quote ("c:")))
'(ecb-tar-setup (quote cons))
'(ecb-tip-of-the-day nil)
...
'(speedbar-tag-split-minimum-length 200)
...
)
Интерфейсы Maxima, предоставляемые Emacs
Более подробно об интерфейсах Maxima рассказано в статье Тихона Тарнавского http://maxima.sourceforge.net/ru/maxima-tarnavsky-2.html. Здесь пойдет речь лишь об интерфейсах Maxima, предоставляемых Emacs:
- maxima - интерактивный режим, аналогичен консольной версии Maxima или интерфейсу Xmaxima. Кроме того, через него осуществляется взаимодействие с процессом Maxima в интерфейсе maxima-mode.
- maxima-mode - пакетный режим, аналогично обработке файлов Maxima. Удобство режима залючается в том, что на выполнение можно отправлять как весь файл (или буфер) так и отдельную его часть или одну строку. При первом вызове порождается процесс Maxima, взаимодействие с которым осуществляется через описанный выше интерфейс.
- imaxima - интерактивный режим, аналогичен режиму maxima за исключением того, что вывод осуществляется не в текстовом, а в графическом виде, навроде интерфейса wxMaxima.
- emaxima - интерфейс, реализуемый внутри LaTeX - документа.
maxima и maxima-mode
Подключение первых двух интерфейсов осуществляется стандартным образом. Файлы расширений Emacs предоставляются самой системой Maxima, необходимо лишь правильно указать путь к ним. Кроме того, необходимо, чтобы режим maxima-mode включался автоматически при редактировании *.mxm - файлов. Добавляем в .emacs:
;; Подключаем Maxima
;; указываем где будут лежать файлы расширений
(add-to-list 'load-path "c:/Program Files/Maxima-5.18.1/share/maxima/5.18.1/emacs/")
(autoload 'maxima "maxima" "Maxima interaction" t)
(autoload 'maxima-mode "maxima" "Maxima mode" t)
(setq auto-mode-alist (cons '("\\.mxm" . maxima-mode) auto-mode-alist))
Команды maxima-mode:
C-c C-C - выполнить строку
C-c C-r - выполнить выделенный блок
C-c C-b - выполнить буфер (т.е. файл)
imaxima
Описание настройки интерфейса находится на сайте разработчика http://members3.jcom.home.ne.jp/imaxima/Site/Easy_Install_on_Windows_XP___Vista.html, новая версия сайта, по-видимому будет здесь http://sites.google.com/site/imaximaimath/download-and-install/easy-install-on-windows-xp
Ниже приведу фрагмент перевода этого описания плюс некоторые специфические особенности настройки imaxima для TeXLive в Windows.
LaTeX (MiKTeX или TeXLive)
Согласно инструкциям необходимо установить MiKTeX 2.7 в путь по умолчанию. Можно использовать и TeXLive дистрибутив LaTeX, но для этого необходимо выполнить еще несколько действий. Будем считать, что TeXLive уже успешно установлен (подробнее об этом - в начале заметки).Теперь необходимо установить пакет mh. Его можно скачать с CTAN (файл mh.tar.lzma),
(http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=mh)
затем распаковать архив (файлы *.sty) в соответствующие директории, в которых располагаюся эти файлы в вашей установленной верси TeXLive.
Затем, запускаем на выполнение команду texhash ~/texmf
Правильность ручной установки пакета mh может быть проверена командой
kpsewhich breqn.sty
которая вернет путь к файлу breqn.sty.
Она находится в директории
{TeXLive installation directory}\bin\win32\kpsewhich.exe
GPL Ghostscript
Прежде всего, необходимо удалить установленные более ранние версии GhostScript. Он может быть уже установлен и не отдельно, а в составе другого приложения, например PDFCreator.
Заходим на http://www.cs.wisc.edu/~ghost/ скачиваем последнюю версию Ghostscript (в моем случае это 8.63), собранную для Windows. Ссылка для скачивания http://prdownloads.sourceforge.net/ghostscript/. Устанавливаем gs863w32.exe, установка должна быть произведена в путь по умолчанию.
Maxima
Она у нас также уже установлена.NTEmacs 23
Тут следовало бы написать "внимание" с 3 восклицательными знаками, т.к. именно версия, взятая из http://ntemacs.sourceforge.net/ используется для тестирования imaxima под Windows. Впрочем, с imaxima прекрасно работают и последние версии других сборок Emacs. Однако, в случае обнаружения ошибок, прежде чем клепать гневные баг-репорты разработчику imaxima, следует выполнить тестирование именно в NTEmacs.Открываем файл setup-imaxima-imath.el. Строки
(defvar *imaxima-miktex-bin-dir*
(file-name-directory (car (file-expand-wildcards "c:/Program Files/MiKTeX*/miktex/bin/latex.exe")))
"MiKTeX bin directory, added to exec-path")
должны быть соответствующим образом откорректированы:
(defvar *imaxima-miktex-bin-dir*
(file-name-directory (car (file-expand-wildcards "c:/{TeXLive installation directory}/bin/win32/latex.exe")))
"MiKTeX bin directory, added to exec-path")
Создаем директорию
c:\Windows\tmp
Добавляем следуюшие строчки в файл .emacs:
(load "c:/Program Files/Maxima-5.17.0/share/maxima/5.17.0/emacs/setup-imaxima-imath.el")
(setq imaxima-tmp-dir "C:\\Windows\\tmp")
Запускаем emacs. M-x imaxima [Ret]. Набираем, например, что-то вроде:
(%i1) x^2; [Ret]
emaxima
Настройка emaxima теперь сводится лишь к указанию в файле .emacs:
(autoload 'emaxima-mode "emaxima" "EMaxima" t)
(add-hook 'emaxima-mode-hook 'emaxima-mark-file-as-emaxima)
Все!
Таким образом, настройка всех режимов может быть прописана в виде:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Настройка Maxima
;;
(load "c:/Program Files/Maxima-5.18.1/share/maxima/5.18.1/emacs/setup-imaxima-imath.el")
(setq imaxima-tmp-dir "C:\\Windows\\tmp")
;; Подключаем Maxima
;; указываем где будут лежать файлы расширений
(add-to-list 'load-path "c:/Program Files/Maxima-5.18.1/share/maxima/5.18.1/emacs/")
(autoload 'maxima "maxima" "Maxima interaction" t)
(autoload 'maxima-mode "maxima" "Maxima mode" t)
; C-c C-C - выполнить строку
; C-c C-r - выполнить выделенный блок
; C-c C-b - выполнить буфер (т.е. файл)
(setq auto-mode-alist (cons '("\\.mxm" . maxima-mode) auto-mode-alist))
;; M-X emaxima-mode
(autoload 'emaxima-mode "emaxima" "EMaxima" t)
(add-hook 'emaxima-mode-hook 'emaxima-mark-file-as-emaxima)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Очень содержательно!
ОтветитьУдалитьСам я использую Emacs преимущественно для LaTeXа, но теперь буду знать, что и для Maxima есть свой мод.
Спасибо.
ОтветитьУдалитьПланирую пару заметок об использовании
emacs в windows, а также preview-latex
для TeXLive.