天地有情

[MetaPost] mpgraphics による "MetaPost Examples"集

mpgraphics による "MetaPost Examples"集

§1 はじめに

MetaPost による図形の作成は,次のようなクラシックな手法で生成していました.

(1) MetaPost ソースファイル foo.mp を作成.
(2) foo.mp をコマンド mpost foo.mp で処理.foo.n(n=1,2,...n)が生成される.
(3) foo.n を LaTeX ソースファイル中の \includegraphics で foo.tex に取り込む.
(4) latex foo.tex で処理.(foo.dvi を生成)
(5) dvips foo.dvi で処理.(foo.ps を生成)
(6) ps2pdf foo.ps foo.pdf (PDF を生成)

さて,今回紹介する "mpgraphicsパッケージ" を使うと,上記の一連の流れを自動化したものと考えられ,
pdflatex foo とすると,1回のコンパイルで PDF が生成されます.

mpgraphics パッケージに関しては "mpgraphics --- LaTeX文書中に MetaPostコード を埋め込み実行する"

で,概要が説明されています.ご一読の程,お願いします.

今回,mpgraphicsパッケージ で利用する (.mp)ソースファイル はネットで検索した "MetaPost:Examples" です.

ダウンロードの上,examples.mp を利用するものとします.

§2 mpgraphics の基本的な構成

mpgraphics-style.png

説明:
● mpdefs環境はオプションです.必要なければ省略できます.
● ltxpreamble環境はオプションです.必要なければ省略できます.
● mpdisplay環境は必須です.ここに,MetaPostコードを記述します.

§3 ソースファイルの例

■■■■■■■■■■■■■■■■■■■■
\documentclass{article}
\usepackage{mpgraphics}
\usepackage{color}
\begin{document}
\begin{mpdisplay}
pair A, B, C;
A:=(0,0); B:=(1cm,0); C:=(0,1cm);
draw A--B--C;
\end{mpdisplay}
\end{document}
■■■■■■■■■■■■■■■■■■■■

(注)
● クラスファイルは欧文用を使います.この場合は article を指定しています.
● ダウンロードで得られた examples.mp において beginfig(1) と endfig; を除いた部分をコピーし,
  \begin{mpdisplay}~\end{mpdisplay} の間にペーストしてください.
● コンパイルは pdflatex foo.tex です.

● クラスファイルが和文用の場合には "日本語 MetaPost --- uplatex , platex で使ってみる"
  をご覧ください.

§4 実行結果

次の Example01.pdf ~ Example04.pdf (4分割)をクリックの上,ご覧ください.

(1) Example01.pdf
(2) Example02.pdf
(3) Example03.pdf
(4) Example04.pdf

(EOF)
スポンサーサイト
  1. 2015/09/01(火) 08:54:50|
  2. MetaPost

[MetaPost] 日本語 MetaPost --- uplatex , platex で使ってみる

日本語 MetaPost --- uplatex , platex で使ってみる

§1 はじめに

一応,能書きから.
MetaPost は Jhon Hobby によって開発された図形作成プログラムであり,文法などは D.E.Knuth の
MetaFont とよく似ています.MetaFont がgf形式のフォントを出力するのに対して,MetaPostは
PostScript(EPS)形式のファイルを出力します.科学技術文書の図形を作成するのに便利で強力なツールです.

本編では,W32TeX の uplatex と platex を使った ”日本語 MetaPost” の作成と実行方法などについて説明します.

§2 前準備の確認

既に必要なツールは揃っていると思いますが,念のため以下を確認して下さい.

2.1 uplatex の場合

   ・upmpost.exe
   ・uplatex.exe
   ・dvipdfmx.exe

   いずれも C:\w32tex\bin に格納されています.

2.2 platex の場合

   ・pmpost.exe
   ・platex.exe
   ・dvipdfmx.exe あるいは,dvips.exe + ps2pdf.exe

   いずれも C:\w32tex\bin に格納されています.


§3 uplatex による 日本語 MetaPost --- ソースファイルの文字コードはすべて UTF-8

3.1 例題:

==============================================================
赤いボールを描き,その中に文字列 ”赤いボール”と書き込む.
==============================================================

(1)uplatex において,共通で利用できる header.mp(uplatex用) を作成します.



【説明】
・1,2,6,7行目は ”決まり文句”であり,この通りに書く.2行目は %&uplatex とする.
・3行目   uplatex で使えるクラスファイルを指定.\documentclass{ujarticle}でも可.
・4行目   必要なパッケージ類を記述.
・7行目   etex; を忘れずに.

(2).mp ファイルの作成

ここでは,ball.mp ファイルを作成します.



【説明】

・1行目  前述の header.mp(uplatex用) を inputする.
・2行目  フォントを指定.ここでは "upgbm-h"を使う. -h の代わりに -v とすると 縦書き となる.
・6行目  赤い円を描く.
・7行目  ラベルとして ”赤いボール”を書き込む.
・4,8,9行目は ”決まり文句”であり,この通りに書く.なお,2番目の図形があるときは,beginfig(2)とする.

(3).tex ファイルの作成

ここでは, ball.tex ファイルを作成します.



【説明】

・1行目  [uplatex]オプションを忘れずに.
・4行目  \includegraphics で ball.1 を取り込むように指定.

(4)コンパイルの実行

いよいよコンパイルです.次の upmexec.cmd バッチファイルを作成すれば実行が楽になります.

upmexec.cmd(or .bat)
--------------------------------
@echo off
upmpost %1.mp
uplatex %1.tex
dvipdfmx %1.dvi
del %1.aux %1.log *.mpx *.dvi
--------------------------------

実行: upmexec ball


結果:

mp01.png





§4 platex による 日本語 MetaPost --- ソースファイルの文字コードはすべて Shift_JIS


(1)platex において,共通で利用できる header.mp(platex用) を作成します.



【説明】
・1,2,6,7行目は ”決まり文句”であり,この通りに書く.2行目は %&platex とする.
・3行目   platex で使えるクラスファイルを指定.
・4行目   必要なパッケージ類を記述.
・7行目   etex; を忘れずに.

(2).mp ファイルの作成

ここでは,ball.mp ファイルを作成します.



【説明】

・1行目  前述の header.mp(platex用) を inputする.
・2行目  フォントを指定.ここでは "gbm"を使う.
・6行目  赤い円を描く.
・7行目  ラベルとして ”赤いボール”を書き込む.
・4,8,9行目は ”決まり文句”であり,この通りに書く.なお,2番目の図形があるときは,beginfig(2)とする.

(3).tex ファイルの作成

ここでは, ball.tex ファイルを作成します.



【説明】

・1行目  jsarticle.clsを指定.
・4行目  \includegraphics で ball.1 を取り込むように指定.

(4)コンパイルの実行

いよいよコンパイルです.次の pmexec.cmd バッチファイルを作成すれば実行が楽になります.

pmexec.cmd(or .bat)
--------------------------------
@echo off
pmpost %1.mp
platex %1.tex
* dvips %1.dvi
* ps2pdf %1.ps %1.pdf
del %1.aux %1.log *.mpx *.dvi
--------------------------------

* dvips + ps2pdf の代わりに, dvipdfmx %1.dvi でも可.


実行: pmexec ball


結果:

mp02.png





§5 その他 --- uplatex で処理してみる

5.1 例題:

==============================================================
関数グラフ y=√x を描く.
==============================================================

(3.1 例題: を参考にします.)

(1)header.mp(uplatex用)はそのまま流用します.

(2).mp ファイルの作成

ここでは,function01.mp ファイルを作成します.



(3).tex ファイルの作成

ここでは, fuction01.tex ファイルを作成します.



(4)コンパイルの実行

実行: upmexec function01


結果:

mp03.png



(EOF)
  1. 2015/08/18(火) 10:28:32|
  2. MetaPost