我想做一个 Latex Beamer 演示,其中包括展示一些 matlab 代码。我发现了如何使用 href-link 运行 shell 脚本,但这包括在演示过程中单击某些东西,这非常令人不安。如果脚本可以在帧更改时执行,那就太好了。您有什么想法吗?
非常感谢!
答案1
PDF 规范定义了一个功能,称为子页面导航。
它拦截 PgDown/PgUp 和箭头键按下事件,以在转到下一页之前执行预定义的操作序列。此功能在 AdobeReader 中实现,需要全屏模式。
示例(执行一组 DOS 脚本):
\documentclass{beamer}
\hypersetup{pdfpagemode=FullScreen}
%example scripts
\begin{filecontents*}{script-1.bat}
@echo off
echo hello world!
pause
\end{filecontents*}
\begin{filecontents*}{script-2.bat}
@echo off
echo hello moon!
pause
\end{filecontents*}
\begin{filecontents*}{script-3.bat}
@echo off
echo hello sun!
pause
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{frame}{Intro}
\dots
\end{frame}
%define sequence of launch actions
\pdfpageattr{
/PresSteps <<
/NA <</S/Launch/F (script-1.bat)>>
/Next <<
/NA <</S/Launch/F (script-2.bat)>>
/Next <<
/NA <</S/Launch/F (script-3.bat)>>
>>
>>
>>
}
\begin{frame}{Frame with sub-page navigation}
\dots
\end{frame}
\pdfpageattr{}%reset
\begin{frame}{Conclusion}
\dots
\end{frame}
\begin{frame}{Thank you}
\dots for your attention.
\end{frame}
\end{document}