
次のコードがあります:
\documentclass{article}
\usepackage{animate}
\listfiles
\begin{document}
\animategraphics[palindrome,autoplay,width=\textwidth,controls]{5}{Testsaves}{0}{1}
\end{document}
同じフォルダに 2 つの画像 (Testsaves0 と Testsaves1) が必要です。pdflatex でコンパイルすると、すべてが機能し、Adobe Acrobat で開くとアニメーションが表示されます。ボタンも機能します。
同じコードを LuaLaTeX でコンパイルすると、PDF の最初の画像のみが含まれ、何も起こりません。
ログファイルから:
pdflatex:
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
)) <./Testsaves0.png> <./Testsaves1.png>
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 6.
LuaLaTeX:
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
))<./Testsaves0.png>
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 6.
システムは、TeXLive 2014 が今日まで完全に更新された Windows 7 PC です。以前は動作していたと思いますが、100% 確信はありません。Animate パッケージを最も古いバックアップ リビジョン (35387) にロールバックしてみましたが、何も変わりませんでした。
ファイルリスト:
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
animate.sty 2014/12/04 PDF animations from files and inline graphics
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
ifthen.sty 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
atbegshi.sty 2011/10/05 v1.16 At begin shipout hook (HO)
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/error messages (HO)
ltxcmds.sty 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
ifdraft.sty 2008/08/11 v1.3 Detect class options draft and final (HO)
calc.sty 2014/10/28 v4.3 Infix arithmetic (KKT,FJ)
atenddvi.sty 2007/04/17 v1.1 At end DVI hook (HO)
zref-abspage.sty 2012/04/04 v2.24 Module abspage for zref (HO)
zref-base.sty 2012/04/04 v2.24 Module base for zref (HO)
kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
etexcmds.sty 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
kvdefinekeys.sty 2011/04/07 v1.3 Define keys (HO)
pdftexcmds.sty 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO)
luatex-loader.sty 2010/03/09 v0.4 Lua module loader (HO)
auxhook.sty 2011/03/04 v1.3 Hooks for auxiliary files (HO)
zref-lastpage.sty 2012/04/04 v2.24 Module lastpage for zref (HO)
atveryend.sty 2011/06/30 v1.8 Hooks at the very end of document (HO)
animfp.sty 2009/07/23 fixed point addition for animate.sty
graphics.sty 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
supp-pdf.mkii
epstopdf-base.sty 2010/02/09 v2.5 Base part for package epstopdf
grfext.sty 2010/08/19 v1.1 Manage graphics extensions (HO)
kvoptions.sty 2011/06/30 v3.11 Key value format for package options (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
***********
答え1
animate は、同じファイルを 2 回インクルードしないように、グラフィックスの同一性をテストします。このテストは lualatex では失敗します。の luatex 実装にpdftexcmds
問題\pdf@filemdfivesum
があるようです。lualatex では 2 つのグラフィックスに同じ値が得られますが、pdflatex でコンパイルすると異なる値が得られます。
この問題を回避するには、animate にファイル名のみをチェックするように強制します。ただし、Heiko Oberdiek にバグ レポートを送信することをお勧めします。
\documentclass{article}
\usepackage{animate}
\makeatletter\def\@anim@pdfmdfivesum#1{#1}\makeatother
\begin{document}
\makeatletter
\pdf@filemdfivesum{gans1.png}
\pdf@filemdfivesum{gans2.png}
\makeatother
\animategraphics[palindrome,autoplay,width=\textwidth,controls]{5}{gans}{1}{2}
\end{document}
答え2
animate
\pdf@filemdfivesum
同じファイルが複数含まれるのを避けるためにパッケージから使用しますpdftexcmds
。埋め込まれるファイルの MD5 チェックサムを計算します。
報告されたエラーは Windows でのみ発生します。
その理由は、Windows がテキスト モードとバイナリ モードでファイルを開くことを区別するためです。C はfopen()
Lua にマップされio.open()
、同じ引数リストを使用します。すべてのプラットフォームでファイルを正しく読み取るには、呼び出しにフラグb
(バイナリ モード) を追加する必要がありますio.open()
。
このパッチは次の問題を修正します:
--- texmf-dist/scripts/oberdiek/pdftexcmds.lua.orig
+++ texmf-dist/scripts/oberdiek/pdftexcmds.lua
@@ -250,7 +250,7 @@
if not offset then
offset = 0
end
- local filehandle = io.open(foundfile, "r")
+ local filehandle = io.open(foundfile, "rb")
if filehandle then
if offset > 0 then
filehandle:seek("set", offset)
@@ -270,7 +270,7 @@
function filemdfivesum(filename)
local foundfile = kpse.find_file(filename, "tex", true)
if foundfile then
- local filehandle = io.open(foundfile, "r")
+ local filehandle = io.open(foundfile, "rb")
if filehandle then
local contents = filehandle:read("*a")
escapehex(md5.sum(contents))