如何在 minted 环境中定义自定义命令

如何在 minted 环境中定义自定义命令

我是 Latex 的新手,所以我可能缺少一些基本的东西。我需要一个用于代码片段的自定义命令。通常我会这样写:

\begin{minted}
[
frame=lines,
firstnumber=182,
framesep=2mm,
baselinestretch=1.2,
bgcolor=white,
fontsize=\footnotesize,
linenos
]{java}
int x = 3;
int y = x + 3;
\end{minted}

我希望能够使用这个:

\code{182}{
int x = 3;
int y = x + 3;
}

这是我尝试定义它:

\newcommand{\code}[2]{
\begin{minted}
[
frame=lines,
firstnumber=#1,
framesep=2mm,
baselinestretch=1.2,
bgcolor=white,
fontsize=\footnotesize,
linenos
]{java}
#2
\end{minted}
}

部分\begin{minted}和参数解释正确,但我的代码(#2)没有打印,并且该{minted}部分在后续的\end{minted}

答案1

来自的评论蒂乌里真的有帮助!

这就是我最终在序言中做的事情:

\usepackage{minted}
\usepackage{environ}

\newenvironment{code}[1]
 {\VerbatimEnvironment
  \begin{minted}[
    frame=lines,
    firstnumber=#1,
    framesep=2mm,
    baselinestretch=1.2,
    fontsize=\footnotesize,
    linenos]{java}}
 {\end{minted}}

进而:

\begin{code}{411}
int x = 3;
int y = x + 3;
\end{code}

这使我能够拥有已经格式化的代码块,我只需要指定起始行号和代码本身。

输出:

在此处输入图片描述

相关内容