我正在写一篇关于形式语法的文档,其中包含大量示例。我决定使用数学包中lstlisting
的环境,并以以下方式给出示例语法listings
align
\begin{lstlisting}
S -> A | B
A -> aA | empty
B -> b
\end{lstlisting}
参考文档中各处给出的语法示例可能会很有用,因此我想给它一个标题,并将\ref
其视为一个图形。
但是,将列表放入图中却失败了(列表将消失,并且标题根本不会出现)。
乳胶中是否有任何带字幕的环境,也许类似于figure
或table
可以用于此目的?
答案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}