我正在尝试使用该listings
包来格式化原始的、面向行的 DSL。该语言有三种类型的行:注释、命令和数据。
这是一个“可以工作但不完全”的 MWE:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{%
basicstyle=\small\ttfamily,
frame=single,
morecomment=[l][\color{green}]{*},
morecomment=[l][\color{red}]{\#},
}
\begin{document}
\begin{lstlisting}
* A comment
* A # comment
# A command
# A * command
Data
Some # data
Some * data
\end{lstlisting}
\end{document}
结果是:
现在,我需要停止将数据中的 # 和 * 解释为开始注释,因此我尝试使用该morecomment=[f]
选项来替换我的[l]
选项:
morecomment=[f][0][\color{green}]{*},
morecomment=[f][0][\color{red}]{\#},
但现在它停在了列表的第一行,
! Missing number, treated as zero. <to be read again> \protect l.13
*
A comment ?
谁能告诉我我做错了什么?
答案1
你快到了,你只需要
morecomment=[f][\color{green}][0]{*},
morecomment=[f][\color{red}][0]{\#},
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{%
basicstyle=\small\ttfamily,
frame=single,
morecomment=[f][\color{green}][0]{*},
morecomment=[f][\color{red}][0]{\#},
}
\begin{document}
\begin{lstlisting}
* A comment
* A # comment
# A command
# A * command
Data
Some # data
Some * data
\end{lstlisting}
\end{document}