我知道这可能有点夸张,但我想知道是否可以在 beamer pdf 中嵌入一个终端命令,只需单击即可启动。我的想法是,在演示过程中,我只需单击幻灯片上显示的按钮即可启动程序。这样,我就不必退出演示并打开终端窗口了。
我在用着苹果系统我需要查看 pdf使用 Adobe Reader有没有办法不使用 php 转发来实现这一点,比如这里?
编辑:
我尝试了这个代码:
\begin{filecontents*}{shell.command}
#!/usr/bin/env sh
echo "Hello, World!"
\end{filecontents*}
\documentclass{beamer}
\begin{document}
\begin{frame}
\href{run:shell.command}{here}
\end{frame}
\end{document}
Adobe Reader 表示找不到打开该文件的应用程序。我还尝试使用 Safari 打开该文件,但它显示了脚本文件,并没有运行它。这很烦人,因为如果我shell.command
通过 Finder 单击该文件,它只会运行它,这是理所当然的。
答案1
结合这些可以listings
给你一个非常好的解决方案:
\documentclass{article}
\usepackage{filecontents,hyperref,listings}
\begin{filecontents*}{script.bat}
@echo off
echo "Hello, World!"
pause
\end{filecontents*}
\begin{document}
\lstinputlisting[language=csh,float,caption={A Windows batch file}]{script.bat}
Click \href{run:script.bat}{here} to run the script.
\end{document}
这也应该适用于 Beamer。
编辑
如果您使用的是 UNIX 系统,请注意这bat
仅适用于 Windows,因为 Windows 不使用“真实”shell。对于 UNIX,请为其添加.sh
扩展名(如果您想为其添加扩展名)。您可能还需要做其他几件事:
- 确保文件可执行:运行
chmod +x myscript.sh
- 给文件添加一行:
script.sh
:
#!/usr/bin/env sh
echo "Oh, the wonderful possibilities of UNIX shells."
请注意,截至目前,此解决方案可能无法始终在 Windows 上运行。
还要注意,协议的处理方式run:
因查看器而异。有些可能由于安全风险而根本不支持它,但已确认 Evince 和 Skim 支持它。
答案2
好的,下面是如何操作的OSX非常感谢大家,特别是肖恩·奥尔雷德和丹尼尔。
步骤1
您的.tex
文件应遵循以下结构:
\begin{filecontents*}{shell.command}
#!/usr/bin/env sh
echo "This finally works!"
\end{filecontents*}
\documentclass{beamer}
\begin{document}
\begin{frame}
\href{run:shell.command}{here}
\end{frame}
\end{document}
使用.command
而不是.sh
将使脚本可被系统执行。
第2步
进入终端,cd
进入目录并授予脚本运行权限:
chmod +x shell.command
步骤3
使用撇去读取.pdf
文件,因为不同的读取器似乎对该run:
命令的解释不同。