
Ich habe folgenden Code:
\documentclass{article}
\usepackage{animate}
\listfiles
\begin{document}
\animategraphics[palindrome,autoplay,width=\textwidth,controls]{5}{Testsaves}{0}{1}
\end{document}
Es werden zwei Bilder (Testsaves0 und Testsaves1) im selben Ordner benötigt. Wenn ich es mit pdflatex kompiliere, funktioniert alles und es wird beim Öffnen in Adobe Acrobat animiert. Die Schaltflächen funktionieren auch.
Wenn ich denselben Code mit LuaLaTeX kompiliere, wird nur das erste Bild in das PDF eingefügt und es passiert nichts.
Aus den Protokolldateien:
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.
Das System ist ein Windows 7-PC mit TeXLive 2014, das vollständig auf den aktuellen Stand gebracht wurde. Ich glaube, es hat vorher funktioniert, aber ich bin mir nicht 100 % sicher. Ich habe versucht, das Animate-Paket auf meine früheste gesicherte Revision (35387) zurückzusetzen, aber das hat nichts geändert.
Dateiliste:
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
***********
Antwort1
animate prüft die Grafiken auf Identität, um zu vermeiden, dass dieselbe Datei zweimal eingebunden wird. Dieser Test schlägt für lualatex fehl: Die luatex-Implementierung in pdftexcmds
scheint \pdf@filemdfivesum
fehlerhaft zu sein. Ich erhalte mit lualatex für die beiden Grafiken die gleichen Werte, aber unterschiedliche Werte, wenn ich mit pdflatex kompiliere.
Sie können das Problem umgehen, indem Sie Animate zwingen, nur die Dateinamen zu prüfen. Ich schlage jedoch vor, Heiko Oberdiek einen Fehlerbericht zu senden.
\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}
Antwort2
animate
verwendet \pdf@filemdfivesum
aus dem pdftexcmds
Paket, um das mehrfache Einbinden derselben Datei zu vermeiden. Es berechnet die MD5-Prüfsumme der einzubindenden Dateien.
Der gemeldete Fehler tritt nur unter Windows auf.
Der Grund dafür ist, dass Windows zwischen dem Öffnen von Dateien im Text- und im Binärmodus unterscheidet. Das C fopen()
ist auf Lua abgebildet io.open()
und verwendet dieselbe Argumentenliste. Das Flag b
(Binärmodus) sollte dem io.open()
Aufruf hinzugefügt werden, um das korrekte Lesen von Dateien auf allen Plattformen sicherzustellen.
Dieser Patch behebt das Problem:
--- 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))