我正在尝试编写一个newenvironment
用于代码布局的包装器,使用minted
。
到目前为止,我尝试过:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{minted}
\newenvironment{codeblock}[1][python]{%
\minted[linenos,frame=lines]{#1}%
}{%
\end{minted}%
}
\begin{document}
\begin{codeblock}[python]
print('Hello world')
\end{codeblock}
\end{document}
但我收到以下错误:
! Illegal parameter number in definition of \reserved@a.
我不确定哪里出了问题;我读了一些关于将参数传递给宏的内容,这可能很棘手,但我不确定它究竟是如何工作的。
任何帮助,将不胜感激!
答案1
该minted
计划仅提供\newminted
便利,但存在一些限制。
你可以tcolorbox
从这个强大的软件包中获益:
\documentclass{article}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\NewTCBListing{codeblock}{O{python}}{%
%colback=white,colframe=white,
listing only,
minted language=#1,
}
\begin{document}
\begin{codeblock}[python]
print('Hello world')
\end{codeblock}
\end{document}
查看包文档以了解如何自定义代码块外观。