Buongiorno.
Proprio non capisco.
Il codice che segue funziona e fa esattamente ciò che vorrei:
`
\documentclass[]{article}
\usepackage{listings}
\lstset{firstnumber=auto,numbers=left}
\begin{document}
Lettere in minuscolo:
\begin{lstlisting}[name=min]
a
b
c
d
\end{lstlisting}
Ora in maiuscolo
\begin{lstlisting}[name=mai]
A
B
\end{lstlisting}
Poi ancora in minuscolo
\begin{lstlisting}[name=min]
e
f
g
h
\end{lstlisting}
E di nuovo in maiuscolo
\begin{lstlisting}[name=mai]
C
D
E
\end{lstlisting}
\end{document}
`
Per non ripetere continuamente le opzioni ad ogni apertura di codice, vorrei creare un nuovo ambiente interno al pacchetto listings.
La documentazione detta la seguente sintassi:
`\lstnewenvironment
{name}[number][opt. default arg.]
{starting code}
{ending code}`
da cui, io faccio così:
`\documentclass[]{article}
\usepackage{listings}
\lstset{numbers=left,firstnumber=auto}
\lstnewenvironment
{casa}[1][name=casa]
{\lstset{language=matlab}}
{}
\lstnewenvironment
{albergo}[1][name=albergo]
{\lstset{language=matlab}}
{}
\begin{document}
\begin{casa}
a
b
c
\end{casa}
\begin{albergo}
A
B
\end{albergo}
\begin{casa}
d
e
f
\end{casa}
\end{document}`
ma non c’è verso che funzioni: la numerazione riprende da 1 ogni volta che inizio l’ambiente (anche se metto, per esempio, due ambienti ‘casa’ consecutivi…)
Sapete aiutarmi?
grazie