картинки mpost переделать в .eps

Tiger777

Господа и дамы!
А не знает ли кто-нибудь, как картинки mpost переделать в .eps?
Примерный ответ на этот вопрос таков (цитата из книжки Балдина или вот отсюда http://ru.wikipedia.org/wiki/Metapost ):

1.3 Автоматизация
Для автоматизации получения картинок с помощью MetaPost можно использовать следующий Makefile:
#временный файл
tmp_file := tmp_file
#программы
LATEX := latex
MPOST := mpost -tex=latex
DVIPS := dvips
MPTOPDF := mptopdf
MV := mv
all:
@echo "run: make mpfile.n.[eps|pdf] - where n is the picture number"
%.eps: %
@echo "\documentclass[12pt]{minimal}">$(tmp_file).tex
@echo "\usepackage[koi8-r]{inputenc}">>$(tmp_file).tex
@echo "\usepackage[english,russian]{babel}">>$(tmp_file).tex
@echo "\usepackage{graphicx}">>$(tmp_file).tex
@echo "\DeclareGraphicsRule{*}{eps}{*}{}">> $(tmp_file).tex
@echo "\nofiles">>$(tmp_file).tex
@echo "\begin{document}">> $(tmp_file).tex
@echo "\thispagestyle{empty}">> $(tmp_file).tex
@echo "\includegraphics{$(basename $@)}">> $(tmp_file).tex
@echo "\end{document}">> $(tmp_file).tex
@$(LATEX) $(tmp_file)
@$(DVIPS) -E -o $@ $(tmp_file)
@rm $(tmp_file).*
%.pdf: %
@$(MPTOPDF) $<
@$(MV) `echo $< | sed -e "s/\.\([0-9]\+\)$$/-\1.pdf/"` $<.pdf
clean:
@rm -f mpx* *~ *.log *.mpx
@rm -f $(tmp_file).*
#Зависимости для mpost-картинок.
#По одной для каждого числа из beginfig
%.1: %.mp
$(MPOST) $<

%.64: %.mp
$(MPOST) $<
Чтобы на выходе получить готовую eps-картинку с уже «внедрёнными» шрифтами, которую можно вставить уже куда угодно, достаточно выполнить следующую команду:
> make <имя mp-файла>.<номер картинки>.[eps|pdf]
Но мне не очень понятно, что нужно делать с описанным makefileом?
Куда его вставлять, чтобы таки работала команда make <имя mp-файла>.<номер картинки>.[eps|pdf]? Объясните?

pilaf4

Этот makefile Балдин использует для того, чтобы автоматически перекомпилировать все картинки в рамках одного документа. Т.е., у тебя есть mp-документ, там создаются картинки через beginfig, написав такой makefile можно автоматически их компилировать. Где ... вставить столько
%.1: %.mp 
$(MPOST) $<

сколько у тебя картинок, с заменой единицы на соответствующий номер.
Если у тебя linux, то создай файл с названием makefile с соответствующим содержимым, в консоли перейди в содержащую его директорию и выполни приведённую команду.
Если винда, то компилируй руками, mpost myfile.mp, в preheader.tex впиши

\documentclass[12pt]{minimal}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{graphicx}
\DeclareGraphicsRule{*}{eps}{*}{}
\nofiles
\begin{document}
\thispagestyle{empty}
\includegraphics{сюда впиши что-то вроде myfile.1}
\end{document}

далее в консоли выполни

latex preheader.tex
dvips -E -o myfile.1.eps preheader.dvi

И так для каждого рисунка.
voila!
Да, напиши, получилось ли что хорошее.

Tiger777

у меня видна, но чего-то не выходит:
после dvips -E -o myfile.1.eps preheader.tex получается:
This is dvips(k) 5.94b Copyright 2004 Radical Eye Software (www.radicaleye.com)
dvips: ! Bad DVI file: first byte not preamble
Что это означает?

pilaf4

у меня видна, но чего-то не выходит:
да, у меня опечатка. dvips -E -o myfile.1.eps preheader.dvi.

Tiger777

Класс! работает! СПАСИБА!
Оставить комментарий
Имя или ник:
Комментарий: