如何在同一个乳胶文件中同时包含Agda和Isabelle代码?

时间:2019-07-03 15:35:55

标签: latex isabelle agda

我正在使用Beamer创建演示幻灯片,并且希望在幻灯片上包含来自Agda和Isabelle标准库的代码。我在网上只能找到从Agda(lagda)或Isabelle(文档准备)生成的乳胶。我想另辟way径,因为我的幻灯片将包含来自不同系统的代码。 我仍然可以使用lstlisting或逐字记录,但是我不想复制粘贴和重新格式化代码。

我希望有一些类似的东西,包括文件中的行号,或者标记之间的代码

3 个答案:

答案 0 :(得分:1)

您最好的选择是使用catchfilebetweentags软件包:给定由每种语言的各自LaTeX后端生成的两个文件IsabelleCode.texAgdaCode.tex,您可以捕获开始标签之间的代码通过使用适当的指令,例如,在两个文件中的%<*TAGNAME>和结束标记%</TAGNAME>,例如:

\ExecuteMetaData[IsabelleCode.tex]{TAGNAME}
\ExecuteMetaData[AgdaCode.tex]{TAGNAME}

答案 1 :(得分:0)

使用\lstinputlisting包中的listings,您可以直接包含源文件中的代码。 (可选)您可以指定开始和结束行号

\documentclass{beamer}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}

\begin{document}

\begin{frame}[fragile]
\lstinputlisting[firstline=1,lastline=7,language=C]{duck.C}
\end{frame}

\begin{frame}[fragile]
\lstinputlisting[firstline=1,lastline=7]{test.agada}
\end{frame}

\begin{frame}[fragile]
\lstinputlisting[firstline=1,lastline=7]{test.isabelle}
\end{frame}

\end{document}

enter image description here

答案 2 :(得分:0)

至少对于Agda,您可以将各个.lagda模块渲染到LaTeX中。如果您可以使用Isabelle的漂亮打印机做同样的事情,那么您应该能够手动编写顶级LaTeX,然后在适当的地方导入Agda和Isabelle生成的LaTeX(的一部分)。