导出代码示例并逐字显示

导出代码示例并逐字显示

我想在逐字环境中编写包含代码示例的 LaTeX 文档。我还想将这些代码示例导出到命名文件中,以便可以构建和运行它们。这样我就可以轻松地对我的代码示例进行测试,以确保我的文档不包含有缺陷的代码。所以我想像这样编写 LaTeX

\begin{code}[test1.hs]
main = do
    print "Hello, world!"
\end{code}

并使该代码示例逐字出现在我的文档中,并且作为副作用出现在文件中test1.hs

不幸的是,我尝试编写 LaTeX 来逐字显示代码并将代码输出到文件,但最终却陷入困境。有没有简单的方法可以做到这一点?

答案1

一个可能的解决方案tcolorbox

当然,您可以根据自己的喜好定制盒子,也可以不带框架。

\documentclass{book}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,listings}
\newtcbinputlisting{\mylisting}[2][]{%
    listing file={#2},
    title=Listing of \texttt{#2},
    colframe=red,fonttitle=\bfseries,
    listing only,breakable, #1}

\begin{document}
This creates a file \texttt{test1.hs}:

\begin{tcbverbatimwrite}{test1.hs}
main = do
    print "Hello, world!"
\end{tcbverbatimwrite}

And this use it:

\mylisting{test1.hs}
\end{document}

在此处输入图片描述

相关内容