Экспортировать примеры кода И отображать их дословно

Экспортировать примеры кода И отображать их дословно

Я хотел бы написать документ 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}

введите описание изображения здесь

Связанный контент