Русификация MetaPost (rus tex font)
Ключевые слова: rus, tex, font, (найти похожие документы)
Date: Thu, 03 Jun 2004 18:56:53 +0600
From: "Evgenij M. Baldin" <baldin@Slon.inp.nsk.su.>
Newsgroups: ftn.ru.linux
Subject: Русификация MetaPost
AK> получения файлов MetaPost требуется поправить на предмет требуемых тебе
AK> шрифтов (смотри на команды между операторами verbatimtex ... etex). Hу,
AK> или можно каждый результирующий файл обрабатывать sed'ом.
AK> После этого картинку компилируешь mpost'ом и результат вставляешь в
AK> LaTeXовский исходник (просмотреть её с помощью gv нельзя из-за отсутствия
AK> шрифтов).
В самом MyFigure.mp файле должен быть следующий пролог:
--------------------------------------------------
verbatimtex \documentclass[12pt]{article}
\usepackage[warn]{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{amssymb}
\usepackage{amsmath}
\begin{document}
etex;
defaultfont := "cmr12";
defaultscale := 12pt /fontsize defaultfont;
%если хочешь увидеть кириллицу
% поставь 0, работает только с dvips
%для просмотра сделай 2
prologues := 0;
%рисование боксов
input boxes;
%для графиков
input graph;
-------------------------------------------------------
Рисунок имеет вид, например
%заряженные шарики
beginfig(1) ; % 1 - это расширение, которое будет иметь рисунок
numeric u;
u = 0.7mm;
picture dash_one,dash_center,dash_onehaf;
dash_one:=dashpattern(on 2u off 2u);
dash_onehaf:=dashpattern(on 1u off 1u);
dash_center:=dashpattern(on 3u off 1.5u on 0.5u off 1.5u);
path p;
p:=(-5u,0u)..(5u,0u)..cycle;
draw p shifted (0u,0u) withpen pencircle scaled 0.5u;
draw p shifted (30u,0u) dashed dash_one withpen pencircle scaled 0.5u;
draw p shifted (50u,0u) withpen pencircle scaled 0.5u;
draw (0u,-5u)--(0u,-15u);
draw (30u,-5u)--(30u,-10u);
draw (50u,-5u)--(50u,-15u);
drawdblarrow (0u,-13u)--(50u,-13u) withpen pencircle scaled 0.3u;
drawdblarrow (30u,-8u)--(50u,-8u) withpen pencircle scaled 0.3u;
label.top (btex $a$ etex,1/2[(0u,-13u),(50u,-13u)]);
label.top (btex $b$ etex,1/2[(30u,-8u),(50u,-8u)]);
label.top (btex $m_1,\,+Q$ etex,(0u,5u));
label.top (btex $m_2,\,-Q$ etex,(50u,5u));
endfig ;
Hадо сделать export TEX=latex (где-нибудь прописать)
Сказать mpost MyFigure.mp
и создать файл типа
-------------------------
%Заголовочный файл, который используется при наборе,
\input{preheader}
\begin{document}
\thispagestyle{empty}
\includegraphics{MyFigure.1}
---------- получившийся от компиляции файл
\end{document}
---------------------
Далее делаем dvips -E -o MyFigure.1.eps MyFigure и получаем eps, которые
может использоваться где угодно и как угодно.
Кажется сложно, но если сделать Makefile вида
-------------------------------------------------------------
#временный файл
tmp_file := tmp_file
#Заголовочный файл, который используется при наборе,
preheader := preheader.tex
%.eps: %
cat $(preheader) > $(tmp_file).tex
echo "\DeclareGraphicsRule{*}{eps}{*}{}">>$(tmp_file).tex
echo "\begin{document}">> $(tmp_file).tex
echo "\thispagestyle{empty}">> $(tmp_file).tex
echo "\includegraphics{$<}">> $(tmp_file).tex
echo "\end{document}">> $(tmp_file).tex
latex $(tmp_file)
dvips -E -o $@ $(tmp_file)
rm $(tmp_file).*
#для n.eps - в одном mp, может быть много рисунков -
#у меня доходило до четырёх десятков
%.1 %.2 %.3 %.4 %.5 %.6 %.7 %.8 %.9 %.10 %.11 %.12 %.13 %.14 %.15 %.16 %.17 %.18
%.19 %.20 %.21 %.22 %.23 %.24 %.25 %.26 %.27 %.28 %.29 %.30 %.31 %.32 %.33 %.34 %.35
%.36 %.37 %.38 %.39 %.40 %.41 %.42 %.43 %.44 %.45 %.46 %.47 %.48 %.49 %.50 %.51 %.52
%.53 %.54 %.55 %.56 %.57 %.58 %.59 %.60 %.61 %.62 %.63 %.64 %.65 %.66 %.67 %.68 %.69
: %.mp
mpost $<
-------------------------------------------------
и сказать
make MyFigure.1.eps
то на выходе получим этот самый правильный eps.