在类似图形的环境中使用列表

在类似图形的环境中使用列表

我正在写一篇关于形式语法的文档,其中包含大量示例。我决定使用数学包中lstlisting的环境,并以以下方式给出示例语法listingsalign

\begin{lstlisting}
S -> A | B
A -> aA | empty
B -> b
\end{lstlisting}

参考文档中各处给出的语法示例可能会很有用,因此我想给它一个标题,并将\ref其视为一个图形。

但是,将列表放入图中却失败了(列表将消失,并且标题根本不会出现)。

乳胶中是否有任何带字幕的环境,也许类似于figuretable可以用于此目的?

答案1

listings软件包已经内置了使用同名键的标题和标签机制,如下例所示。默认情况下,这样的列表不会浮动,与figure或相对table,因此如果您只想添加标题和标签,这种方法可能会很有用。如果您还希望列表浮动,您可以添加键,float如 所示\begin{lstlisting}[caption={caption text here}, label={mylabel}, float]

\documentclass{article}
\usepackage{listings}
\renewcommand{\lstlistingname}{Grammar Example}
\begin{document}
\begin{lstlisting}[caption={caption text here}, label={mylabel}]
S -> A | B
A -> aA | empty
B -> b
\end{lstlisting}

Reference to the example: \ref{mylabel}

\end{document}

答案2

您正在寻找这样的东西吗?

在此处输入图片描述

\documentclass{article}
\usepackage{capt-of}
\usepackage{listings}
\usepackage{float}
\newfloat{Grammar example}{tbph}{loe}

\begin{document}
    \begin{Grammar example}
        \begin{lstlisting}
        S -> A | B
        A -> aA | empty
        B -> b
        \end{lstlisting}
        \caption{A formal grammar}
        \label{mylabel}
    \end{Grammar example}

\ref{mylabel} is an excellent example of a formal grammar.
\listof{Grammar example}{List of example grammars}
\end{document}

相关内容