lstlistings e interlinea

  • Creatore
    Topic
  • #24562
    Up
    0
    Down
    ::


    Ciao a tutti,
    sto scrivendo un documento per il quale mi è richiesta un’interlinea non singola e che contiene dei frammenti di codice.
    Con il pacchetto setspace e lstlistings ho risolto tutti i problemi, e riesco ad avere ciò che voglio.
    Il codice però mi piacerebbe scriverlo in interlinea semplice… in pratica così il testo intorno è in interlinea del documento, poi il codice in interlinea singola e poi di nuovo quella del documento.

    Per ora faccio
    `
    \singlespacing
    \lstset{language=Matlab,showstringspaces=false}
    \begin{lstlisting}
    function PZ_plot(Mode,a,b);

    end
    \end{lstlisting}
    \doublespacing`
    e tutto è ok.

    Però se volessi fare un mio ambiente che in automatico si mette in interlinea semplice e poi ripristina quella del documento come posso fare?
    all’ambiente devo passare i parametri (che indico SEMPRE) che andranno a comporre il lstset e l’argomento opzionale del lstlisting.

    Come posso fare per creare un ambiente simile?

    Grazie dell’aiuto e buona giornata!

    Ciao ciao

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #24563
      Up
      0
      Down
      ::


      Penso che stai usando il pacchetto listings.

      Prova così, nel preambolo:
      `\lstnewenvironment{mycode}[1]{\singlespacing\lstset{#1}}{}`

      e nel codice lo usi come
      `
      \begin{mycode}{language=Matlab,showstringspaces=false,caption={Codice di prova Matlab},label={lst:matlab}}
      …codice…
      \end{mycode}
      `

      Dai tutto all’interno di lstset, ma il tutto dovrebbe funzionare. Fammi sapere.

      Ciao, Daniele.

    • #24564
      Up
      0
      Down
      ::


      Funziona, grazie!
      Devo solo mettere una riga vuota prima del codice, altrimenti anche il capoverso precedente è in spaziatura singola, ma per il resto è perfetto!
      `fine capoverso.

      \begin{mycode}{language=Matlab,showstringspaces=false,caption={Codice di prova Matlab},label={lst:matlab}}
      …codice…
      \end{mycode}`
      Rigurarderò la documentazione… ma il lstnewenvironment mi era proprio sfuggito!

      Grazie ancora!

      Buona giornata

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top