背景説明 その1

MePoTeX は TeX から MetaPost を起動します。
TeX には外部プログラムを起動する仕組みがあるのですが, これを悪用してヤバいプログラムの起動を TeX ソースに埋め込まれることも想定して, デフォルトでは「許可リスト」に記載されているものしか起動できないようになっています。 詳しく言うと,TeX の外部プログラムに対する設定は次の 3 つです。

(注) これらの切り替えは,TeX 起動時のオプションまたは設定ファイル (texmf.cnf) の修正でできます。

背景説明 その2

2016/11/28 に TeX + MetaPost の連携にセキュリティーホールが発見されました。 MetaPost から TeX を呼び出してその TeX からさらに別のプログラムを呼び出すと,許可リストにないものまで呼び出せてしまうらしいです。

すぐに対策が施された MetaPost が提供されたのですが,その際に従来とは実行ファイル名が変わってしまいました。 正確に言うと,MetaPost の実行ファイルである mpost.exe をコピー(複製)して rmpost.exe と名前を変えて使うと, TeX の呼び出しが抑制された動作をするというものです。
(注1) MePoTeX では,(ユーザーが意図的にしない限り) MetaPost から TeX の呼び出しはしないので,この制限は動作に影響を与えません。
(注2) 実行ファイル名は 2019/01/07 にさらに r-mpost.exe に変わっています。MePoTeX ver4.40 ではデフォルトを r-mpost.exe としています。

2016/11/30以降 2019/01/06まで,TeX 配布セットのうち, W32TeX では上記「複製+リネーム」および「許可リストへの rmpost の記載」がなされた状態で配布されていましたが, TeXLive では「複製+リネーム」および「許可リストへの rmpost の記載」はなされておらず,ユーザーが行うこととなっていました。

タイプセットの仕方(W32TeX版)

MetaPost の実行ファイル名が,MePoTeX ver4.40 の想定しているもの (デフォルト) と異なるので,それを TeX 側に教える必要があります。
具体的には TeX ソースの \usepackage{MePoTeX} の部分を \usepackage{MePoTeX}\mptMP{rmpost} にします。 これで実行ファイル名が rmpost であると伝わります。

あとは通常通り LaTeX を起動するだけで OK です。たとえば MPTgraph.tex をタイプセットする場合,次のようになります。
   platex MPTgraph.tex
相互参照を反映させるため,これを二三度繰り返します。 (MetaPost は自動で起動しますので,ユーザーが起動する必要はありません。相互参照がない場合は1回だけで OK です。)

タイプセットの仕方(TeXLive版)

W32TeX 版と異なり,最初に準備が必要です。詳しくは mptinst.pdf に書いてありますが,要点を言うと,

この準備がすめば,あとは W32TeX 版と同じです。



戻る