Необязательный заголовок в листингах (для списков листингов)

Необязательный заголовок в листингах (для списков листингов)

У меня есть несколько цитат в подписях. Но я не хочу, чтобы они отображались в таблице рисунков или листингов. С рисунками мне удалось отобразить другую подпись, например, такую:

\begin{figure}
  \centering
  \includegraphics[width=0.55\linewidth]{images/FIPA_Message-Transport-Reference-Model}
  \caption[FIPA Message Transport Reference Model]{FIPA Message Transport Reference Model (\cite{FIPA2000}).}
  \label{fig:FIPA_Message-Transport-Reference-Model}
\end{figure} 

Но с lstlisting у меня возникли некоторые проблемы, потому что заголовок является опцией списков, а у него, похоже, нет необязательной метки заголовка.

\begin{lstlisting}[ language=Scala,
label={lst:Publisher},
caption={Publisher notify\cite{Zenger2013}}] 
  protected def publish(event: Evt) {
    filters.keys.foreach(sub =>
      if (!suspended.contains(sub) && filters.entryExists(sub, p => p(event)))
        sub.notify(self, event)
    )
  }
\end{lstlisting}

Есть идеи, как это решить? Спасибо заранее!

решение1

Это описано в разделе 4.9.listingsдокументация; вы можете использовать

caption={[short caption]long caption}

Ниже приведен полный пример MWE для демонстрации:

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{listings}


\begin{document}

\lstlistoflistings
\begin{lstlisting}[ 
label={lst:Publisher},
caption={[caption for lol]Publisher notify\cite{Zenger2013}}] 
  protected def publish(event: Evt) {
    filters.keys.foreach(sub =>
      if (!suspended.contains(sub) && filters.entryExists(sub, p => p(event)))
        sub.notify(self, event)
    )
  }
\end{lstlisting}

\end{document}

Связанный контент