我有一个使用 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}