Re: Listings e indice listati

#72504
Up
0
Down
::

canemacchina” post=71739Salve a tutti,

Vi chiedo una cosa un po’ particolare. Nella mia tesi devo inserire parti di codice in due linguaggi diversi (C e Fortran). C’è un modo per ottenere un indice dei listati che divida i codici in C da quelli in Fortran? Non so se tipograficamente parlando può essere una buona idea, ma mi piaceva fare così. Piuttosto che dover inserire nel caption del codice di quale linguaggio si tratta, mi faceva comodo avere due indici separati. Sennò mi ingegno in modo diverso.

`\documentclass[a4paper]{report}
\usepackage{listings,etoolbox}
\makeatletter
\patchcmd{\lst@MakeCaption}{{lol}{lstlisting}}{{lol}{\lstlistingtype}}{}{}
\patchcmd{\lst@MakeCaption}{{lol}{lstlisting}}{{lol}{\lstlistingtype}}{}{}

\newcommand\lstlistofClistings{%
\begingroup
\let\l@Flstlisting\@gobbletwo
\let\l@Clstlisting\l@lstlisting
\def\lstlistlistingname{Listati C}
\@ifundefined{@donefirst}{\@fileswfalse\global\let\@donefirst\@empty}{}
\lstlistoflistings
\endgroup
}
\newcommand\lstlistofFlistings{%
\begingroup
\let\l@Clstlisting\@gobbletwo
\let\l@Flstlisting\l@lstlisting
\def\lstlistlistingname{Listati Fortran}
\@ifundefined{@donefirst}{\@fileswfalse\global\let\@donefirst\@empty}{}
\lstlistoflistings
\endgroup
}

\makeatother

\def\lstlistingtype{lstlisting}
\lstnewenvironment{Flstlisting}[1][]
{\def\lstlistingtype{Flstlisting}\lstset{#1}}
{}
\lstnewenvironment{Clstlisting}[1][]
{\def\lstlistingtype{Clstlisting}\lstset{#1}}
{}

\begin{document}

\lstlistofFlistings
\lstlistofClistings

\chapter{A}

\begin{Flstlisting}
abc
\end{Flstlisting}

\begin{Clstlisting}
def
\end{Clstlisting}

\end{document}`

Questo nell’ipotesi che tu non abbia altri “elenchi di listati”.

Ciao
Enrico

Go to top