Re: Flash ファイルの Tex への貼り付け

名前: ZR
日時: 2012-01-26 23:52:48
IPアドレス: 119.104.58.*

>>56606 # 以下の前提での話です。 # - \includemovie 命令を正しい書式に書き直す。 # - pdflatex でなく、dvips 経由で PDF を出力する。 movie15 と hyperref との間で設計の衝突が起こっているようです。 取りあえず、パッケージ読込の順序を変えることで回避できます。 (方法1) hyperref を movie15 より前に読み込む。 (方法2) movie15 よりも前に pdftexcmds というパッケージ (hyperref の内部で読まれている)を読み込む。 %<サンプル>----------------------------- \documentclass{article} \usepackage{pdftexcmds} \usepackage{movie15} \usepackage[dvips]{hyperref} \usepackage[dvips]{graphicx} \begin{document} \includemovie[poster,text=(banner test)]{7cm}{7cm}{banner.swf} \end{document} %<EOF>---------------------------------- ######################################## (以下、興味のある人向けに、詳細の解説) 前提知識。 - movie15 ではファイルの一致検査に pdfTeX の \pdfmdfivesum file {<ファイル名>} という機能を利用している。 - ただし、エンジンが pdfTeX 拡張をもたない場合は \def\pdfmdfivesum file #1{#1} という定義をフォールバックにする。 - pdftexcmds は \pdf@filemdfivesum{...} という命令を提供する。 これは \pdfmdfivesum が使える(pdfTeX である)場合は \pdfmdfivesum file{...} となる。 (file の後に空白がないことに注意。) ちなみに、LuaTeX だとこの命令は Lua で実装される。 どちらでもない場合は、この命令は未定義のまま。 (pdftexcmds は pdfTeX と LuaTeX で共通の命令名を提供する。) - hyperref が中で利用している rerunfilecheck パッケージは前項の \pdf@filemdfivesum 命令を「存在するならば」使っている。 movie15 → hyperref の順で読み込むと以下のようになります。 1. movie15 がフォールバックの \pdfmdfivesum を定義する。 2. pdftexcmds は \pdfmdfivesum があるのでそれを用いて \pdf@filemdfivesum を定義する。 3. rerunfilecheck は \pdf@filemdfivesum があるのでそれを使う。 4. でも、\pdf@filemdfivesum{...} は \pdfmdfivesum file{...} に 展開され、パラメタ書式が合わないのでエラー。 今の場合、file の後の空白の有無が食い違ったからそこでエラーに なりましたが、もしこれが一致していたとすると、表面上は通りますが、 実際には更新検査が正常に行われないため、もっと酷い結果がもたらされる ことになりそうです。 結局のところ、 \def\pdfmdfivesum file #1{#1} のように直接プリミティブのフォールバックを定義するのが 筋が悪いように思えます。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)