導出程式碼範例並逐字顯示

導出程式碼範例並逐字顯示

我想在逐字環境中編寫帶有程式碼範例的 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}

在此輸入影像描述

相關內容