Título personalizado para que lstset lo use en la tabla de contenido

Título personalizado para que lstset lo use en la tabla de contenido

Me gustaría utilizar la funcionalidad de títulos de figuras (que pueden tener dos títulos: uno para la tabla de contenido y otro para el título debajo/arriba de la figura) con mi filecodeentorno personalizado. MWE:

\documentclass[11pt,a4paper]{article}
\usepackage{listings}
\usepackage{color}
\usepackage{courier}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\definecolor{darkblue}{rgb}{0.0,0.0,0.6}
\definecolor{cyan}{rgb}{0.0,0.6,0.6}

\lstset{frame=tb,
  language=C++,
  showstringspaces=false,
  columns=fullflexible,
  basicstyle={\scriptsize\ttfamily},
  numbers=left,
  numbersep=4pt,
  numberstyle=\scriptsize\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{gray}\upshape,
  stringstyle=\color{mauve},
  moredelim=[s][\color{gray}]{@}{\ },
  breaklines=true,
  breakatwhitespace=true,
  tabsize=2
}

\newenvironment{filecode}[1][]
  {\vspace{1ex} \minipage[0.5\textheight]{\linewidth}% \begin{filecode}[#1]
   \lstset{basicstyle=\fontfamily{pcr}\footnotesize,#1}}
  {\endminipage \vspace{1em}}% \end{filecode}

\begin{document}

\begin{filecode}[label=lst:code,caption=Very long and frustrating caption that noone want to see before this page]
  \lstinputlisting{main.cpp}
\end{filecode}

\end{document}

Respuesta1

Usar

caption={[Short caption]Very long and frustrating caption that noone want to see before this page}

Código completo:

\documentclass[11pt,a4paper]{article}
\usepackage{listings}
\usepackage{color}
\usepackage{courier}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\definecolor{darkblue}{rgb}{0.0,0.0,0.6}
\definecolor{cyan}{rgb}{0.0,0.6,0.6}

\lstset{frame=tb,
  language=C++,
  showstringspaces=false,
  columns=fullflexible,
  basicstyle={\scriptsize\ttfamily},
  numbers=left,
  numbersep=4pt,
  numberstyle=\scriptsize\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{gray}\upshape,
  stringstyle=\color{mauve},
  moredelim=[s][\color{gray}]{@}{\ },
  breaklines=true,
  breakatwhitespace=true,
  tabsize=2
}

\newenvironment{filecode}[1][]
  {\vspace{1ex} \minipage[0.5\textheight]{\linewidth}% \begin{filecode}[#1]
   \lstset{basicstyle=\fontfamily{pcr}\footnotesize,#1}}
  {\endminipage \vspace{1em}}% \end{filecode}

\begin{document}
\lstlistoflistings
\begin{filecode}[label=lst:code,caption={[Short caption]Very long and frustrating caption that noone want to see before this page}]
  \lstinputlisting{main.cpp}
\end{filecode}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada