si, difatti da l’errore ma funziona comunque…
lo uso solo perché non riesco a trovare un formato che lo faccia…e il problema é che devo fare così…qualcuno conosce il formato adeguato?
Puoi provare a scrivere \medskip\hrule\nobreak invece di \hline:
`testo prima
\bigskip\hrule\nobreak
\lstinputlisting{code.c}
\medskip
testo dopo`
Ti consiglio di aggiungere
`abovecaptionskip=0pt,belowcaptionskip=\medskipamount`
alle preferenze impostate con \lstset.
Naturalmente sarà meglio definire un comando apposito:
`\newcommand{\mylstinputlisting}[2][]{%
\bigskip\hrule\nobreak
\lstinputlisting[#1]{#2}
\medskip}`
e, già che ci sei, anche un ambiente:
`\lstnewenvironment{mylstlisting}[1][]
{\bigskip\hrule\nobreak\lstset{#1}}
{\medskip}`
Attento che, per motivi dipendenti da come agisce listings, è possibile che il primo filetto venga staccato dalla didascalia. Se dovesse succedere, puoi correggere scrivendo \pagebreak prima del codice. Meglio \pagebreak di \newpage, che tronca la pagina, il primo invece la riempie.
Ciao
Enrico