在投影仪演示文稿中嵌入终端命令

在投影仪演示文稿中嵌入终端命令

我知道这可能有点夸张,但我想知道是否可以在 beamer pdf 中嵌入一个终端命令,只需单击即可启动。我的想法是,在演示过程中,我只需单击幻灯片上显示的按钮即可启动程序。这样,我就不必退出演示并打开终端窗口了。

我在用着苹果系统我需要查看 pdf使用 Adob​​e 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:命令的解释不同。

相关内容