コードサンプルをエクスポートし、そのまま表示する

コードサンプルをエクスポートし、そのまま表示する

私は、コードサンプルをそのままの環境で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}

ここに画像の説明を入力してください

関連情報