我是 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}
这使我能够拥有已经格式化的代码块,我只需要指定起始行号和代码本身。
输出: