| パラダイム | 命令形、組版 |
|---|---|
| デザイン: | ジョン・D・ホビー |
| 開発者 | タコ・ホークウォーター、ルイジ・スカルソ |
| 初登場 | 1994 |
| 安定リリース | 1.8 / 2013年6月17日 |
| プレビューリリース | 2.0rc2 / 2018年2月19日 |
| タイピングの規律 | アヒル、ダイナミック、強い |
| OS | クロスプラットフォーム |
| ライセンス | LGPL |
| Webサイト | メタポスト |
| 影響を受けた | |
| メタフォント | |
MetaPost は、プログラミング言語とMetaPost プログラミング言語のインタープリタの両方を指します。どちらもDonald KnuthのMetafont言語とインタープリタから派生したものです。MetaPost は、幾何学的/代数的記述からベクトル グラフィック ダイアグラムを生成します。この言語は、直線、曲線、点、幾何学的変換を操作するための Metafont の宣言型構文を共有しています。ただし、
- Metafontは、フォントメトリックファイル(.tfm形式)と関連付けられた画像ファイル(.gf形式)の形式でフォントを生成するように設定されていますが、MetaPostはEPS、SVG、またはPNGファイルを生成します。
- Metafontの出力はラスターベースのフォーマットで固定解像度のフォントで構成されますが、MetaPostの出力はベクターベースのグラフィック(線、ベジェ曲線)です。
- Metafont 出力はモノクロですが、MetaPost はRGBまたはCMYKカラーを使用します。
- MetaPost 言語では、指定されたフォントからの文字列、またはTeXでタイプセットできるその他の任意のテキスト ラベルを図に含めることができます。
- バージョン 1.8 以降、Metapost では 64 ビットの浮動小数点演算が可能になります (デフォルト: 32 ビットの固定小数点演算)
MetaPost の制限の多くは、Metafont の機能に由来しています。たとえば、MetaPost はPostScriptのすべての機能をサポートしていません。最も顕著なのは、パスは 1 つのセグメントしか持てないこと (つまり、領域は単純に接続される)、領域は均一な色でしか塗りつぶせないことです。PostScript レベル 1 はタイル パターンをサポートし、PostScript 3 はグーロー シェーディングをサポートします。
利用可能性と使用方法
MetaPost は、 TeXおよび Metafont フレームワークの多くのディストリビューションとともに配布されています。たとえば、MiKTeXおよびTeX Liveディストリビューションに含まれています。
Metapost によって生成されたカプセル化されたポストスクリプトは、標準のグラフィックス取り込みコマンドを使用して、 LaTeX、ConTeXt、およびTeXドキュメントに含めることができます。カプセル化されたポストスクリプトの出力は、 PDFTeXエンジンで使用することもできます。これにより、直接PDF が生成されます。この機能は、 ConTeXt および LaTeX グラフィックス パッケージに実装されており、 supp-pdf.tex マクロ ファイルを介してプレーン TeX から使用できます。
ConTeXt とLuaTeX は、入力ファイル内に MetaPost コードを含めることをサポートしています。LaTeX に MetaPost コードを含めることも、LaTeX パッケージ (gmpまたはなど)を使用することで可能ですmpgraphics。
例
これは単一のファイルです例.mpこれをMetaPostインタープリタ( Linuxmpostのコマンド経由)で処理すると、3つのepsファイルが生成される。例1、例2、例3これらは右の写真に示されています。

transform pagecoords ;
pagecoords := identity scaled 10 mm shifted ( 100 mm , 150 mm );
beginfig ( 1 )
fill (( 0 , 0 ) -- ( 2 , 0 ) -- ( 2 , 1 ) -- ( 1 , 1 ) -- ( 1 , 2 ) -- ( 0 , 2 ) -- cycle )
transformed pagecoords withcolor green ;
draw (( 2 , 0 )..( 2 , 1 )..( 1 , 1 )..( 1 , 2 )..( 0 , 2 )) transformed pagecoords ; drawarrow (( 0 , 0 ) -- ( 2 , 2 )) transformed pagecoords ; endfig ; beginfig ( 2 ) draw ( for i = 0 upto 7 : dir ( 135 i ) -- endfor cycle ) transformed pagecoords ; endfig ; pagecoords := identity scaled 15 mm shifted ( 100 mm , 150 mm ); beginfig ( 3 ); % 使用するパスを宣言しますpath p [], p [] t ; % 関係を定義してポイントを設定しますz1 =( 0 , 0 ); z2 = z1 + 2 up ; z3 = z1 + whatever * dir ( 60 )= z2 + whatever
* dir ( - 50 );
z4 = z3 + ( - 1.5 , - . 5 );
z5 = z1 + dir ( 135 );
z0 = whatever [ z1 , z2 ]= whatever [ z3 , z4 ];
% パスを設定
p0 = fullcircle yscaled . 5 rotated 45 shifted z0 ;
p1 = z2 --- z4 .. z0 .. z3 --- z1 ;
p2 = p1 cutbefore p0 cutafter p0 ;
p3 = p0 cutbefore p1 cutafter p1 ;
p4 = p2 --- p3 --- cycle ;
% パスとポイントの変換バージョンを定義
for i = 0 upto 4 : p [ i ] t = p [ i ] transformed pagecoords ; endfor
for i = 0 upto 5 : z [ i ] t = z [ i ] transformed pagecoords ; endfor
% 描画を行う
fill p4t withcolor ( 1 , 1 , 0.2 );
draw z1t --- z2t withcolor . 5 white ;
draw z3t --- z4t withcolor . 5 white ;
pick pencircle ;
draw p0t dashed withdots scaled . 3 ;
draw p1t dashed evenly ;
draw p2t withcolor blue ;
draw p3t withcolor red;
label . lrt ( btex $ z_0 $ etex , z0t );
label . llft ( btex $ z_1 $ etex , z1t );
label . top ( btex $ z_2 $ etex , z2t );
label . rt ( btex $ z_3 $ etex , z3t );
label . llft ( btex $ z_4 $ etex , z4t );
for i = 0 upto 4 :
drawdot z [ i ] t withpen pencircle scaled 2 ;
endfor
endfig ;
bye
結果として得られる3つのepsファイルは、 LaTeXのコマンド、ConTeXtの、Plain TeXのコマンド、または(Plain pdftexでは)のコマンドを介してTeXで使用できます。\includegraphics\externalfigure\epsfbox\convertMPtoPDFsupp-pdf.tex3 番目の図を表示または印刷するには、 MetaPost によって生成される eps ファイルにはデフォルトで
TeX フォント ( Computer Modern ) が含まれていないため、これを含める必要があります。
参照
参考文献
- Hagen, Hans. 「MetaFun」(Metapost 用モジュール)。
- Knuth, Donald (1986). The METAFONTbook . Computers and Typesetting . Vol. C. Addison-Wesley . ISBN 0-201-13444-6。
- 「包括的 TEX アーカイブ ネットワーク」( CTAN )。T E X ソースと数百のアドオンおよびスタイル ファイルのリポジトリ。
- 「(La)TeX Navigator は 305 個のシンプルな MetaPost の例を提供します」。2013 年 7 月 27 日にオリジナルからアーカイブ。2006 年 11 月 17 日に取得。
- Hoekwater, Taco (2006). 「MetaPost の開発 - 2006 年秋」(PDF) . TUGboat . 27 (1).
外部リンク
- TeX ユーザー グループ ( TUG ) http://www.tug.org/ には、MetaPost 専用のページがあります: http://www.tug.org/metapost.html
