命令行语法的 LaTeX 列表

命令行语法的 LaTeX 列表

我有一个使用 listings 包编写的 LaTeX 文档,其中包含一些 bash 脚本。我想为文本创建不同的样式,以显示命令的语法。例如,我在 bash-styles 列表中有以下命令:

java -jar /usr/share/java/picard/MarkDuplicates.jar INPUT=<alignment_file.bam> \
  VALIDATION_STRINGENCY=LENIENT OUTPUT=alignment_file.dup \
  METRICS_FILE=alignment_file.matric ASSUME_SORTED=true REMOVE_DUPLICATES=true

但是,我希望将其样式与实际输入到终端的命令不同,因为它不是真正的命令,而只是显示要使用的语法。是否有这样的默认样式。也许如下:

在命令参数定义时请注意以下约定:

Angle brackets ( < > ) indicate a mandatory parameter.
Square brackets ( [ ] ) indicate an optional parameter. If you omit the parameter, InfoSphere CDC uses a default value.
A vertical bar ( | ) separating one or more parameters indicate that only one of the parameters in the list can be used. When one or more vertical bars appear in a list of parameters that is enclosed by square brackets [ ], the choices are limited to the parameters in the list, but you have the option to not specify any of the parameters.
Ellipsis ( ... ) means that a parameter or option can be repeated more than once.
Unless otherwise noted, the commands apply to all operating systems.

答案1

这是一个可能的解决方案。以下是一些合适的评论:

  • 范围内的选项|必须以某种方式分隔,在此示例中,我使用冒号作为分隔符。它不会显示在输出中,因为定义中的:选项(代表不可见)。[is]i

  • 我不确定省略号是否按您期望的方式工作(当前它只是以洋红色突出显示)。

如果您想将这种突出显示与bash已经提供的突出显示相结合lstlistings,我已经添加了一些代码作为示例。

\documentclass[11pt]{article}

\usepackage{listings}
\usepackage{xcolor}

\lstdefinelanguage{args}{
sensitive=false,
alsoletter={.},
moredelim=[s][\color{red}]{<}{>},
moredelim=[s][\color{blue}]{[}{]},
moredelim=[is][\color{orange}]{:}{:},
keywords=[10]{...},
keywordstyle=[10]{\color{magenta}},
}

\lstnewenvironment{arguments}
{\lstset{language=args}}
{}

\lstnewenvironment{bash}
{\lstset{numbers=left,language=bash,keywordstyle={\color{blue}}}}
{}

\begin{document}
\ttfamily\small

\begin{arguments}
program <mandatory arg> [optional arg]  :a | b: out ... .. .
\end{arguments}

\begin{bash}
echo 'hello world'
\end{bash}

\end{document}

相关内容