如何在表格中使用 \animategraphics?

如何在表格中使用 \animategraphics?

(编辑)我尝试\animategraphics[]{}{}{}{}在表格内使用该命令,准确地说是在\tabularx表格中。

我已经成功运行了这个:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{animate}

\title{testing animate package}
\author{JeanValjean}

\date{January 2021}

\begin{document}

\maketitle

\section{Test}
\begin{figure}
        \centering
        \animategraphics[autoplay, loop, width=0.8\textwidth, controls, buttonfg=1:0.4:0.4]{20}{./images/MovingVertices/MovingVertices}{0}{79}
\end{figure}
\end{document}

因此,即使没有表格,它也能很好地工作。

但不在表格内:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{animate}

\title{testing animate package}
\author{JeanValjean}

\date{January 2021}

\begin{document}

\maketitle

\section{Test}
\begin{tabularx}{\textwidth}{@{}m{3cm} X@{}}
something & \animategraphics[autoplay, loop, width=0.8\textwidth, controls, buttonfg=1:0.4:0.4]{20}{./images/MovingVertices/MovingVertices}{0}{79} \\
something else & something else else\\
\end{tabularx}
\end{document}

出现此错误信息:

您引用了尚未标记的内容。如果您已经标记了它,请确保 \ref{...} 中写的内容与 \label{...} 中写的内容相同。

如果我删除表内的“\animategraphics[]{}{}{}{}”,如下所示:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{animate}

\title{testing animate package}
\author{JeanValjean}

\date{January 2021}

\begin{document}

\maketitle

\section{Test}
\begin{tabularx}{\textwidth}{@{}m{3cm} X@{}}
something & blabla \\
something else & something else else\\
\end{tabularx}
\end{document}

一切皆好。

我也尝试将我的环境包装\animatedgraphics[]{}{}{}{}figure环境中,但正如我已经知道的那样,正如您所知,figure环境在环境中无法很好地运行tabularx

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{animate}

\title{testing animate package}
\author{JeanValjean}

\date{January 2021}

\begin{document}

\maketitle

\section{Test}
\begin{tabularx}{\textwidth}{@{}m{3cm} X@{}}
   something & \begin{figure}\animategraphics[autoplay, loop, width=0.8\textwidth, controls, buttonfg=1:0.4:0.4]{20}{./images/MovingVertices/MovingVertices}{0}{79}\end{figure}\\
   something else & something else else\\
\end{tabularx}
\end{document}

导致此错误消息:

LaTeX 错误:不在外部模式中

未定义的控制序列。@xfloat ...@fltovf \fi \global \setbox @currbox \color@vbox \normalcolor ... l.20 \end{tabularx} 错误消息顶行末尾的控制序列从未被 \def'ed。如果您拼错了它(例如,\hobx'), typeI' 和正确的拼写(例如,`I\hbox')。否则继续,我会忘记未定义的内容。

缺少数字,视为零。\color@vbox l.20 \end{tabularx} 这里应该有一个数字;我0'. (If you can't figure out why I needed to see a number, look up在 The TeXbook 索引中插入了“奇怪的错误”。)

在第 1 页上引用“anim@abspage2”,在输入行 20 上未定义。

存在未定义的引用。

有办法实现这个吗?

多谢

答案1

tabularx有点奇怪,因为它可能会多次排版其内容以调整各个列的宽度。这可能会干扰表格中使用的标签和引用命令。(\animategraphics内部使用此类命令。)

因此,为了避免出现问题,建议将其存储\animategraphics...在表外的保存框中,然后稍后将保存框内容插入表中:

\newsavebox\myAnimation

...

\sbox{\animategraphics...}%
\begin{tabularx}...
...
\usebox{\myAnimation}
...
\end{tabularx}

答案2

我使用了我已经拥有的动画。

我没有发现编译过程中的任何错误tabularx

然而,动画不运行但与tabularx配合使用效果很好tabular*。(使用 AcrobatReader)

请用您的数据测试我的代码。我使用 Acrobat Reader 打开 pdf 文件并操作动画。

更新 随着tabularx动画确实运行使用 FoxitReader。

n

一段时间后。

好的

在另一个时间。

b

% !TeX TS-program = pdflatex

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{animate}

\usepackage{tabularx}

\title{testing animate package}
\author{JeanValjean}

\date{January 2021}
\begin{document}
    
%\maketitle 
    
\newcommand{\shipi}{%
    \animategraphics[%
    autoplay, 
    loop,
    controls,
    buttonfg=1:0.4:0.4,
    width=0.8\linewidth,
    ]
    {3}{./animaxiv/frame-}{0}{59}
}
    
\section{Test animation does not work (tabularx)}
\begin{tabularx}{\textwidth}{@{}m{3cm} X@{}}    
    alpha &beta\\
    gamma & \shipi  
\end{tabularx}

\newpage

\section{Test animation  works fine (tabular*) }
\begin{tabular*}{\textwidth}{@{}m{3cm} m{0.8\linewidth}@{}} 
    alpha &beta\\
    gamma & \shipi  
\end{tabular*}  
    
\end{document}

相关内容