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