我正在写一篇与计算机科学相关的文档,我想在结尾处包含一个简短的命令摘要。我正在使用 listing 包来处理代码,我想使用 nomencl 包来创建摘要,但是当我尝试在环境中添加新条目时lstinline
,它没有出现在命名法中:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{nomencl}
\usepackage{listings}
\makenomenclature
\begin{document}
\section{section}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\clearpage
\mbox{}
\nomenclature{\lstinline|test command|}{This is a test with a command}
\nomenclature{test}{This is a test without a command}
\printnomenclature
\end{document}
该代码产生以下输出:
如您所见,里面的命名法条目lstinline
没有出现。有没有办法让它工作,或者你能想到其他替代方案吗?
答案1
对于\nomenclature
和字符是保留的。例如,您可以使用。其余的|
,这个问题几乎重复了!
\lstlinline?test?
在 \item 中使用 \lstinline解决方案也从那里而来。
梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{nomencl}
\usepackage{listings}
\makenomenclature
\begin{document}
\lstset{language=bash}
\section{section}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\nomenclature{\lstinline?echo?}{This is a test with a command}
\nomenclature{test}{This is a test without a command}
\makeatletter
\let\orig@item\item
\def\item{%
\@ifnextchar{[}%
{\lstinline@item}%
{\orig@item}%
}
\begingroup
\catcode`\]=\active
\gdef\lstinline@item[{%
\setbox0\hbox\bgroup
\catcode`\]=\active
\let]\lstinline@item@end
}
\endgroup
\def\lstinline@item@end{%
\egroup
\orig@item[\usebox0]%
}
\makeatother
\printnomenclature
\end{document}
结果: