[Risolto] Problema di accenti con il pacchetto listings

  • Creatore
    Topic
  • #39522
    mcl1962
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti.

      Uso la distribuzione TeXLive 2009 con Ubuntu 9.10 e scrivo sempre utilizzando la codifica utf8. Ho il seguente problema (che non sarebbe tale se usassi la codifica latin1!) con il pacchetto listings: le lettere accentate all’interno del listato di un programma non vengono scritte correttamente. Nell’esempio minimo allegato, al posto di Bézier mi trovo éBzier.

      Grazie per l’aiuto.

      Claudio

      Ecco l’esempio minimo:

      `
      \documentclass[12pt,a4paper]{article}

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

      \renewcommand{\lstlistingname}{Listato}

      \begin{document}

      \lstloadlanguages{MuPAD}
      \lstset{%
      language=MuPAD,
      %morekeywords={if, else, end_if, proc, begin, end, return},
      basicstyle=\ttfamily\footnotesize, %\rmfamily\small, %
      keywordstyle=\bfseries,
      identifierstyle=,
      commentstyle=\slshape,
      stringstyle=,
      showspaces=false,
      showstringspaces=true,
      tabsize=3,
      showtabs=false,
      tab=\rightarrowfill,
      numbers=left,
      numberstyle=\tiny,
      numberblanklines=true,
      captionpos=b,
      frameround=fttt,
      columns=fixed,
      extendedchars=false,
      inputencoding=utf8%
      }

      Ecco un esempio di codice MuPAD relativo ai punti di Bézier:

      \begin{lstlisting}

      // Funzione per calcolare i punti di Bézier
      punti_di_Bezier := (n, L) -> [i/n, L[i+1] $i=0..n]:

      // Il grafico dei punti di Bézier
      grafico_punti_di_Bezier :=
      plot::PointList2d(pB, PointSize=2, Color = RGB::Red):

      // Il polinomio di Bézier
      polyBezier(x, 4, L)
      expand(%)
      \end{lstlisting}

      \end{document}
      `

    Visualizzazione 6 filoni di risposte
    • Autore
      Risposte
      • #39523
        Up
        0
        Down
        ::

        Ciao a tutti.

        Uso la distribuzione TeXLive 2009 con Ubuntu 9.10 e scrivo sempre utilizzando la codifica utf8. Ho il seguente problema (che non sarebbe tale se usassi la codifica latin1!) con il pacchetto listings: le lettere accentate all’interno del listato di un programma non vengono scritte correttamente. Nell’esempio minimo allegato, al posto di Bézier mi trovo éBzier.

        Temo di doverti dare una brutta notizia: listings non è compatibile con utf8.

        Ciao
        Enrico

      • #39524
        Up
        0
        Down
        ::


        Potresti provare con questo, sembra interessante…

        🙂
        LuCa

        Ps. Scusa l’imprecisione, mi sono accorto che il pacchetto è adatto solo per “\lstinputlisting”, pertanto funziona solo con file di testo esterni.
        Dovresti salvare il tuo codice quindi in un file separato e importarlo con quel comando.

      • #39525
        mcl1962
        Partecipante
          Up
          0
          Down
          ::


          Grazie per l’aiuto.

          Effettivamente usando listingsutf8 al posto di listings, modificando alcuni parametri (extendedchars=true e inputencoding=utf8/latin1), scrivendo il codice in un file esterno e includendolo con
          `
          \lstinputlisting{prova.mupad}
          `
          funziona (peccato non si possa scrivere il codice nel file latex). Da notare che nella “caption” devo scrivere B\’ezier poiché se scrivo Bézier non ottengo quanto desiderato.
          Ciao.

          Claudio

        • #39526
          mcl1962
          Partecipante
            Up
            0
            Down
            ::


            Nel messaggio 45 della discussione http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=413045 ho trovato la soluzione al mio problema: posso utilizzare il pacchetto listings scrivendo il codice del programma direttamente nel file LaTeX ma devo aggiungere anche l’opzione texcl al comando \lstset. Sembra comunque che non sia una soluzione valida per ogni linguaggio di programmazione.
            Ciao.

            Claudio

          • #39527
            Up
            0
            Down
            ::


            Grazie per la segnalazione!

            🙂
            LuCa

          • #39528
            Up
            0
            Down
            ::

            Ciao a tutti.

            Uso la distribuzione TeXLive 2009 con Ubuntu 9.10 e scrivo sempre utilizzando la codifica utf8. Ho il seguente problema (che non sarebbe tale se usassi la codifica latin1!) con il pacchetto listings: le lettere accentate all’interno del listato di un programma non vengono scritte correttamente. Nell’esempio minimo allegato, al posto di Bézier mi trovo éBzier.

            Una buona notizia! La versione 2 di listings è in beta testing; ci sono problemi, perché per esempio \lstloadlanguages non funziona, ma penso non sia necessario. Il tuo esempio viene compilato correttamente purché tu cambi \usepackage{listings} in \usepackage{listings2} e tolga \lstloadlanguage{MuPAD}.

            Puoi scaricare la versione 2 qui; la pagina Web è http://www.atscire.de/index.php?nav=products/listings2.

            Ciao
            Enrico

          • #39529
            mcl1962
            Partecipante
              Up
              0
              Down
              ::


              Grazie mille per la puntuale segnalazione e per il link.
              Ciao.

              Claudio

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

          Go to top