Errori codici in lstlisting

  • Creatore
    Topic
  • #104302
    Up
    0
    Down
    ::


    `
    \documentclass[11pt,a4paper,oneside]{book}

    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage{layaureo}
    \usepackage{graphicx}

    \usepackage[usenames,dvipsnames]{xcolor}
    \usepackage[colorlinks=true,urlcolor=blue,citecolor=ForestGreen,linkcolor=blue]{hyperref}

    \date{}

    \usepackage{listings}

    \begin{document}

    \lstset{language=Pascal}

    \section*{Codice}

    \lstset{tabsize=3}
    \begin{lstlisting}
    {
    _id: Object(“221432674273654385843”),
    nominativo: {nome: “mario”, cognome: “Rossi”},
    PIVA: “000439043234”,
    promozioni: [“promo A”, “promo B”]
    }
    \end{lstlisting}

    \end{document}

    `

    Ho provato anche a usare showexpl , ma mi dà sempre errore: simboli input enc non riconosciuti.
    Ho inserito anche il tipo di linguaggio, SQL (e dopo PHP), ma niente… c’è qualcosa che non funge…

    E’ per la tesi di un mio amico che deve consegnare entro domenica mattina

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #104303
      Up
      0
      Down
      ::


      A quanto pare [tt]listings[/tt] ha problemi a gestire la codifica UTF-8. Prova questo, a me non dà alcun errore.
      `
      \documentclass[11pt,a4paper,oneside]{book}

      \usepckage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}

      \usepackage{layaureo}
      \usepackage{graphicx}

      \usepackage[usenames,dvipsnames]{xcolor}
      \usepackage[colorlinks=true,urlcolor=blue,citecolor=ForestGreen,linkcolor=blue]{hyperref}

      \date{}

      \usepackage{listings}

      \begin{document}

      \lstset{language=Pascal}

      \section*{Codice}

      \lstset{literate={“}{\textquotedblleft}1 {”}{\textquotedblright}1}
      \begin{lstlisting}
      {
      _id: Object(“221432674273654385843”),
      nominativo: {nome: “mario”, cognome: “Rossi”},
      PIVA: “000439043234”,
      promozioni: [“promo A”, “promo B”]
      }
      \end{lstlisting}

      \end{document}
      `
      La chiave [tt]literate[/tt] prende una lista di elementi da sostituire. Nel tuo caso vado a sostituire [tt]“[/tt] e [tt]”[/tt] con i rispettivi comandi LaTeX, facendogli occupare lo spazio di un singolo carattere.

      PS: Hai dimenticato il pacchetto [tt]fontenc[/tt] con la chiave [tt]T1[/tt]. 😉

    • #104304
      Up
      0
      Down
      ::


      Il tuo codice funziona, e permette l’indentazione, ma ci sono 2 cose che non vanno:
      – non va il \footnotesize, per ridimensionare il codice con un carattere più piccolo
      – non capisco come fare per rendere tale codice nero (basta un carattere bold?)
      – inoltre il codice non è Pascal, ma SQL e PHP. Si possono inserire due voci di codice??

      Grazie mille per l’aiuto!

      Credo che la sezione gestione codici e pseudocodici in LaTeX sia contro intuitiva e spiegata sommariamente su tutto il web

    • #104305
      mcl1962
      Partecipante
        Up
        0
        Down
        ::


        Le virgolette nel tuo codice non sono riconosciute come carattere valido (provengono forse da un copia-incolla da un altro programma?)
        Sostituendole con le virgolette corrette funziona anche se il risultato, a mio modesto parere, non è eccezionale (a questo punto meglio usare verbatim oppure leggersi bene la guida di listings: ci sono moltissime possibilità che permettono di generare del codice pulito, chiaro e gradevole alla vista). il pacchetto listings supporta sia PHP sia SQL, io userei language=PHP (suppongo che SQL sia utilizzato all’interno di PHP, in caso contrario prima di ogni ambiente devi impostare il linguaggio corretto).
        Se vuoi modificare l’aspetto del carattere puoi scrivere qualcosa del genere:

        `\lstset{tabsize=3,basicstyle=\footnotesize\ttfamily}`

        Ciao.

        Claudio

      • #104306
        Up
        0
        Down
        ::


        Rispondo nuovamente per punti:
        – il linguaggio usato è PHP e qualcosa di Javascript (che, a quanto vedo, è supportato male o in parte. E se al posto di language=PHP metto Javascript succedono pasticci)
        – per le virgolette: ho lasciato quelle che ci sono (che sono frutto di un copia incolla). Se uso quelle con lo \, non mi vede le virgolette, ma il comando relativo. Se inserisco le virgolette da tastiera non va bene in quanto sono solo in un verso

      • #104307
        mcl1962
        Partecipante
          Up
          0
          Down
          ::


          Dovresti aggiungere all’inizio del tuo preambolo la riga

          `\usepackage[T1]{fontenc}`

          Poi puoi usare le virgolette della tastiera (non quelle del “copia-incolla”).

          Ciao.

          Claudio

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

      Go to top