| メタポスト | |
|---|---|
| パラダイム | 命令形、タイプセッティング |
| デザイン: | ジョン・D・ホビー |
| 開発者 | タコ・ホークウォーター、ルイジ・スカルソ |
| 初登場 | 1994 (1994) |
| 安定版リリース | 1.8 / 2013年6月17日 (2013-06-17) |
| プレビューリリース | 2.0rc2 / 2018年2月19日 (2018-02-19) |
| タイピングの規律 | アヒル、ダイナミック、強い |
| OS | クロスプラットフォーム |
| ライセンス | LGPL |
| ウェブサイト | タグ |
| 影響を受けた | |
| メタフォント | |
MetaPostは、プログラミング言語とMetaPostプログラミング言語のインタープリタの両方を指します。どちらもドナルド・クヌースの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によって生成されたカプセル化されたPostscriptは、標準的なグラフィックス取り込みコマンドを介してLaTeX、ConTeXt、およびTeX文書に取り込むことができます。カプセル化されたPostscript出力はPDFTeXエンジンでも使用でき、直接PDFに変換されます。この機能はConTeXtおよびLaTeXグラフィックスパッケージに実装されており、supp-pdf.texマクロファイルを介してプレーンTeXから使用できます。
ConTeXtとLuaTeXは、入力ファイルへのMetaPostコードの組み込みをサポートしています。LaTeXへのMetaPostコードの組み込みは、LaTeXパッケージ(例えば、gmpまたは)を使用することでも可能ですmpgraphics。
例
これは単一のファイルですexample.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 ; pickup 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 )が含まれていないため、これを含める必要があります
参照
参考文献
- ハーゲン、ハンス。「MetaFun」(Metapost用モジュール)。
- クヌース、ドナルド(1986). 『METAFONTbook』 . 『コンピュータとタイプセッティング』 . 第C巻.アディソン・ウェスレー. ISBN 0-201-13444-6。
- 「包括的TEXアーカイブネットワーク」( CTAN ) 。TEXソースと数百のアドオンおよびスタイルファイルのリポジトリ
- 「(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