编辑:我想知道创建一种方法来从一个位置编辑环境所有实例所需的可选参数的最佳实践是什么。
动机:所以我使用 minted,并且没有设置我想要的代码的一般样式。所以我决定包装环境(不起作用;“扫描 \FancyVerbGetLine 的使用时文件结束。”),然后我决定尝试使用变量(不起作用;“包 keyval:“breaklines, showspaces”未定义。”)。
Minted 有一个很好的命令\setminted[⟨language⟩]{⟨key=value,...⟩}
,可以执行我想要的操作,但下次我需要时,我想知道解决此类问题的正确方法。也许与有关\renewenvironment
?
\documentclass{article}
\usepackage{minted}
\usemintedstyle{vs}
\newenvironment{code}{\begin{minted}[frame=lines]{python3}}{\end{minted}}
\def\pythonarguments{breaklines, showspaces}
\begin{document}
% \begin{minted}[\pythonarguments]{python3}
% def f_circle(T, R, x=0, y=0):
% X = x + R*np.cos(T)
% Y = y + R*np.sin(T)
% return X, Y
% \end{minted}
% \begin{code}
% def f_circle(T, R, x=0, y=0):
% X = x + R*np.cos(T)
% Y = y + R*np.sin(T)
% return X, Y
% \end{code}
\end{document}
答案1
尝试
\def\pythonarguments{breaklines, showspaces}
\begin{minted}[\pythonarguments]{python3}
不会起作用,因为参数没有扩展以寻找键值选项。
你可能做
\documentclass{article}
\usepackage{minted}
\usemintedstyle{vs}
\newenvironment{code}{\VerbatimEnvironment\begin{minted}[frame=lines]{python3}}{\end{minted}}
\begin{document}
\begin{code}
def f_circle(T, R, x=0, y=0):
X = x + R*np.cos(T)
Y = y + R*np.sin(T)
return X, Y
\end{code}
\end{document}
但是手册会告诉您有关的信息\newminted
,您还可以通过它指定*
版本的更多选项。
\documentclass{article}
\usepackage{minted}
\usemintedstyle{vs}
\newminted[code]{python3}{frame=lines}
\begin{document}
\begin{code}
def f_circle(T, R, x=0, y=0):
X = x + R*np.cos(T)
Y = y + R*np.sin(T)
return X, Y
\end{code}
\end{document}