创建用户定义命令

创建用户定义命令

我是 Latex 的新手,我需要创建一个用户定义的命令或宏。我需要在 pdf 上打印 unix shell 命令,代码如下所示

\begin{lstlisting}[language=bash]
$sudo apt-get install build-essential
\end{lstlisting}

必须对每个 unix 命令执行此操作,而我有太多这样的命令。因此,我认为我可以创建一个名为的新命令,\shell如下所示

\newcommand{\shell}[1]{
\begin{lstlisting}[language=bash]
#1
\end{lstlisting}
}

我遇到了一些!Emergency stop错误。有人能告诉我我做错了什么吗?谢谢。

答案1

尝试使用此命令,您将不会收到紧急停止错误:

\newcommand{\shell}[1]{\lstinline[language=bash] {#1} } 

我不确定使用newcommandwhile 的正确性,实际上,你正在定义newenvironment。如果您有兴趣定义新环境,则可以使用此处提到的语法:https://en.wikibooks.org/wiki/LaTeX/Macros#New_environments

答案2

正如评论中所述,我不建议尝试包装lstlisting到自定义环境中。它们确实很脆弱,并且与“正常”tex 命令的行为不同。但listings它本身提供了定义自己的能力lstnewenvironment,从而节省了您[language=bash]每次输入的时间。

\documentclass{article}

\usepackage{listings}

\lstnewenvironment{shell}{\lstset{language=bash}}{}

\begin{document}

\begin{shell}
$sudo apt-get install build-essential
\end{shell}

\end{document}

相关内容