将标题传递给自定义命令列表

将标题传递给自定义命令列表

我有一个命令\customfile,它使用作为参数传递的文件来创建一个列表。

\newcommand{\customfile}[1]{
  \lstinputlisting[language=customlanguage,%
    frame=lines,xleftmargin=8pt,xrightmargin=8pt,columns=fixed]{#1}
}

现在我想更改此命令,以便我可以(可选)向其传递标题。这可能吗?

答案1

要获取可选参数,那么,添加一个可选参数......

\newcommand{\customfile}[2][]{
  \lstinputlisting[language=python,%
    frame=lines,xleftmargin=8pt,xrightmargin=8pt,columns=fixed,caption=#1]{#2}
}

在此处输入图片描述

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{sample.py}
printf("Hello!\n");
\end{filecontents*}
\usepackage{listings}
\newcommand{\customfile}[2][]{
  \lstinputlisting[language=python,%
    frame=lines,xleftmargin=8pt,xrightmargin=8pt,columns=fixed,caption=#1]{#2}
}
\begin{document}
\customfile{sample.py}

\customfile[Now with caption]{sample.py}
\end{document}

相关内容