背景説明 その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/29以前の TeX には上記の セキュリティーホールがありますので, TeX を速やかに対策済みの最新版にすることをお勧めしますが, 何らかの事情で古い TeX を使い続ける場合には,以下のようにして下さい。

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

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



戻る