lstnewenvironment 没有显示在 lstlistoflistings 中

lstnewenvironment 没有显示在 lstlistoflistings 中

我创建了两个 lstnewenvironment,一个用于 Java,一个用于伪代码,如下所示:(这里不包括伪代码)

\documentclass{thesisPST}
\usepackage{listings}

\lstnewenvironment{java}[1][]
    {\lstset{
        language=Java,
        backgroundcolor=\color{light-backcolour},
        xleftmargin=0.7cm,
        frame=tlbr,
        framesep=0.2cm, 
        framerule=0pt,
        commentstyle=\color{codegray},
        keywordstyle=\color{codeblue},
        numberstyle=\tiny\color{codegray},
        stringstyle=\color{pgreen},
        basicstyle=\footnotesize\ttfamily,
        breakatwhitespace=false,
        breaklines=true,
        captionpos=b,
        keepspaces=true,
        numbers=left,
        numbersep=5pt,
        showspaces=false,
        showstringspaces=false,
        showtabs=false,                  
        tabsize=2,
        mathescape=true,
        framexleftmargin=5mm,
        stepnumber=1,
        morekeywords={},
        deletekeywords={},
        identifierstyle=,
        moredelim=[il][\textcolor{codepurple}]{\$\$},
        moredelim=[is][\textcolor{codepurple}]{\%\%}{\%\%},
        moredelim=[il][\textcolor{codegold}]{@}
    }
}{}


\begin{document}

\frontmatter
\tableofcontents

\mainmatter

%after i created some code such as:
\begin{java}[caption=Die Methode doesAutomatExists ,label = c:doesAutomatExists]
    private boolean doesAutomatExists(String automatonName, List<ComponentAutomaton> automata){
        boolean res = true;
        for (ComponentAutomaton automaton:automata) {
            if (automaton.getAutomatonName().equals(automatonName)){ 
                res = false;
            }
        }
        return res;
    }
\end{java}


\backmatter
%Next i created a lstlistoflistings as following:
%but the list is empty
\phantomsection
\renewcommand\lstlistlistingname{Quellcodeverzeichnis}
\addcontentsline{toc}{chapter}{Quellcodeverzeichnis} 
\lstlistoflistings
\end{document}

我哪里做错了?

答案1

仔细查看了 lstset 和 PDF 后,我发现代码没有标题。

由于没有标题,列表将出现在列表的目录中。

为了解决这个问题,我在lstnewenvironment下的lstset中添加了两行。

1. `caption= #1`
2. captionpos=b

所以我定义了标题的位置:例如

\begin{java}[language=java,caption=Die Methode doesAutomatExists ,label = c:doesAutomatExists]

并且标题显示在代码下方,并添加到表中。

相关内容