Problema lstlisting in line

  • Creatore
    Topic
  • #118946
    Up
    0
    Down
    ::


    Ciao a tutti.
    Spero stiate bene ….
    Scrivo per il problema che riporto in allegato con un’immagine.
    Uso il pacchetto listings per gestire i codici (nello specifico è un progetto con Arduino), inserendo codice in linea con \lstinlin|comando| mi succede quel che vedete nell’immagine (non so come descriverlo per farmi aiutare da google …).
    Riporto il codice minimo:
    `%!TEX encoding = UTF-8 Unicode
    %!TEX TS-program = pdflatex

    \documentclass[a4paper,twoside,12pt,italian,notitlepage]{report}
    \usepackage[UTF8]{inputenc}
    \usepackage[italian]{babel}
    \usepackage{lipsum}
    \usepackage[T1]{fontenc}
    \usepackage{txfonts}
    \usepackage{booktabs}
    \usepackage{makeidx}
    \makeindex
    %\renewcommand{\thesection}{\arabic{section}}
    \renewcommand{\thesection}{\thechapter.1.}
    \usepackage{tabularx}
    \usepackage{subfig}
    \usepackage{listings}
    \lstset{basicstyle=\small\ttfamily,columns=fullflexible}
    \input{arduinoLanguage.tex}
    %============= LISTINGS ======================
    \lstdefinestyle{myArduino}{
    language=Arduino,
    morekeywords=[1]{}, % [1] -> dark green
    morekeywords=[2]{FILE_WRITE}, % [2] -> light blue
    morekeywords=[3]{SD, File}, % [3] -> bold orange
    morekeywords=[4]{open, exists}, % [4] -> orange
    frame=lines,showstringspaces=false,
    }
    \addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}
    \addto\captionsitalian{\renewcommand{\lstlistlistingname}{Elenco dei listati}}
    %============= LISTINGS ======================
    \begin{document}
    La libreria \emph{Bounce} dichiara una classe di nome \emph{Bounce} e si deve creare un oggetto Bounce per ogni pulsante inserito. La costruzione dell'oggetto Bounce per ogni pulsante, comprende il numero di PIN utilizzato e il parametro \lstinline|DEBOUNCE_DELAY| (dato in millisecondi). Prima del loop si dichiara una variabile di nome guess a cui si assegna un valore iniziale di 0.
    \end{document}
    `

    Grazie in anticipo per qualsiasi tipo di aiuto.

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #118947
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        @cierpa, ho sostato il tuo messaggio nella sezione TeX e LaTeX, perché l’argomento che tratti riguarda questa sezione.

        Il problema che lamenti non dipende né da listings né da altri simili pacchetti o ambienti per scrivere codice; il codice non può essere spezzato a fine riga.
        Quindi il tuo problema si risolve solamente aggiungendo o togliendo una parola prima di usare quella stringa, oppure cambiando la frase nella quale compare quella stringa.

        Non basta che una parola chiave o un comando sia riportato in un carattere particolare; è che la “parola” del linguaggio di programmazione che stai usando non può essere spezzata a fine riga.

      • #118948
        Up
        0
        Down
        ::


        Ciao OldClaudio.
        Grazie per il suggerimento e per aver spostato la discussione dove deve stare, credevo fosse un problema tipografico.
        Pensavo di aver usato impropriamente i comandi dell’ambiente listing e che ci fosse qualcosa che non conoscessi (ho letto la sezione di di LaTeXpedia ma non ho trovato un problema analogo).
        Provo a fare come suggerisci e spero di trovare una quadra.

        Buon weekend!

      • #118949
        samiel
        Partecipante
          Up
          0
          Down
          ::

          il codice non può essere spezzato a fine riga

          non credo sia proprio così per listings. Infatti:

          il pacchetto listings divide i caratteri in 3 gruppi:
          1) lettere, 2) numeri, 3) altro (punteggiatura, simboli ecc.)

          puoi migliorare la resa spezzando il codice con le opzioni
          `breaklines= true
          breakwhitespaces= true`
          attivandoli entrambi, il codice viene spezzato solo in presenza di spazi
          attivando solo `breaklines= true` il codice viene spezzato solo in presenza di 3) altro.

          se vuoi disattivare particolari caratteri come punti dov’è consentito spezzare il codice,
          devi dichiararli come 1) lettere con l’opzione
          alsoletter, ad esempio `alsoletter={()[].,:;}`

          temo che di più tu non possa fare

          m

      Visualizzazione 2 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top