使用 nomencl 和 listing 包来包含命令摘要

使用 nomencl 和 listing 包来包含命令摘要

我正在写一篇与计算机科学相关的文档,我想在结尾处包含一个简短的命令摘要。我正在使用 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}

结果:

在此处输入图片描述

相关内容