emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.8999  第2案
発言者: tDB
発言日: 2010 07/12 10:33
発言元: ntchba299019.chba.nt.ftth.ppp.infoweb.ne.jp
より安全性を高めたものを第2案とします。


emath の場合について
   restricted \write18 enabled.
を利用する私案(第2案)です。
ただし,Windows を前提とします。

perl を起動するバッチファイルを用います。
ここでは仮に,そのファイル名を hoge.cmd とします。
仮のファイル名(hoge) は各自の好みで変更してください。
以下,hoge とあるところはすべて置き換えてください。
ただし,そのファイル名を他人に知られると \write18 の危険が身に及びます。

1) emathMy.sty (なければ作り,emath.sty と同じディレクトリに置きます)
 に,次の1行を追加します。

\IfFileExists{hoge.sty}{\RequirePackage{hoge}}{}%

2) emath.sty と同じディレクトリに,hoge.sty を作ります。その内容は

\setPerlName{hoge}%

3) tex の実行ディレクトリ(platex.exe が存在しているディレクトリ)に
 次の1行からなるファイル hoge.cmd を作成します。

perl %1

4) texmf.cnf の shell_escape_commands 末尾に

,hoge

を追加します。

注1:emath のバージョンについて
 丸ごとパックだけではダメで,修正パックを当ててあることが条件です。

注2:log ファイルには,ファイル名 hoge が記録されます。
 log ファイルをさらすことは危険を伴います。

注3:ls-R を使用している場合は,mktexlsr を実行する必要があります。

注4:確認リスト perlhoge.tex です。-shell-escape オプションをつけずに
   platex perlhoge.tex
 を実行して,2の平方根の近似値
   1.4142135623731
 が表示されれば,
   emath から perl を子プロセスとして呼び出す
 ことが出来ています。なお,実行すると2個の作業ファイル
   perlhoge.d1.pl
   perlhoge.d1.dta
 が作成されます(emath のバージョンによっては
   perlhoge.d1 の部分は perlhoge_d1
 となります)。

% --- perlhoge.tex ---------------------------
\documentclass{jarticle}
\usepackage{emath}
\usepackage{emathPl}

\begin{document}
\calcval[s]{sqrt(2)}\rootii
\rootii
\end{document}

▼関連発言

8996:perl との連携 (-shell-escape を付けずに済ます法) [tDB] 07/11 13:04
 ├8997:補足(tex 環境チェック -1-) [tDB] 07/11 16:19
 │└8998:補足(tex 環境チェック -2-) [tDB] 07/11 16:32
 ├8999:第2案 [tDB] 07/12 10:33
 └9001:第3案 [tDB] 07/14 09:50<-last

Pass 保存


CGIROOM