listingsutf8

  • Creatore
    Topic
  • #61227
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Ho visto dell’esistenza del pacchetto listingsutf8
      E ho un codice del tipo:
      `\usepackage{listings}
      \usepackage{listingsutf8}
      \lstnewenvironment{code}%
      {\lstset{%
      basicstyle=\color{black}\small\ttfamily,
      keywordstyle=\color{black},
      commentstyle=\color{black},
      stringstyle=\color{black},
      backgroundcolor=\color{cyan},
      moredelim=[is][\color{black}\textrm]{|*}{*|},
      escapeinside={£!}{!£},
      frame=lines,
      rulecolor=\color{black},
      inputencoding=utf8, extendedchars=true}}{}`
      Ipotizziamo poi che io debba inserire una semplice “è”
      Come trovo lone-byte encoding di “è” ?
      E devo lasciare o eliminare la stringa
      inputencoding=utf8, extendedchars=true ?

      Grazie
      M.

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #61228
        Up
        0
        Down
        ::


        Io uso semplicemente
        `\lstset{inputencoding=utf8/latin1}`
        e le lettere accentate sono riconosciute normalmente senza fare altro. Un’altra possibilità sarebbe quella suggerita qui: http://stackoverflow.com/questions/1116266/ che però è un po’ più artigianale (ma forse la compilazione è più rapida, caricando listingsutf8 rallenta in maniera evidente quando si arriva ai codici)

      • #61229
        Up
        0
        Down
        ::

        Ho visto dell’esistenza del pacchetto listingsutf8
        E ho un codice del tipo:
        `\usepackage{listings}
        \usepackage{listingsutf8}
        \lstnewenvironment{code}%
        {\lstset{%
        basicstyle=\color{black}\small\ttfamily,
        keywordstyle=\color{black},
        commentstyle=\color{black},
        stringstyle=\color{black},
        backgroundcolor=\color{cyan},
        moredelim=[is][\color{black}\textrm]{|*}{*|},
        escapeinside={£!}{!£},
        frame=lines,
        rulecolor=\color{black},
        inputencoding=utf8, extendedchars=true}}{}`
        Ipotizziamo poi che io debba inserire una semplice “è”
        Come trovo lone-byte encoding di “è” ?
        E devo lasciare o eliminare la stringa
        inputencoding=utf8, extendedchars=true ?

        Grazie
        M.

        Prima di tutto, quello che fai non serve a nulla: listingsutf8 ridefinisce solamente il comando \lstinputlisting, ovvero funziona solamente per listati inclusi da un file esterno. Definendoti un nuovo ambiente con \lstnewenvironment, non cambia nulla rispetto al listing originario.

        Quello che devi fare (oltre a richiamare listati su file esterni) è specificare:
        `\lstset{extendedchars=true,inputencoding=utf8/latin1}`
        al livello globale (cioè non all’interno di un nuovo ambiente). Al posto di latin1 puoi mettere anche un’altra codifica di tipo “one-byte”.

        Dopodiché nel tuo file (esterno) contenente il codice puoi usare liberamente le lettere accentate. Devi solo fare attenzione a salvarlo con la codifica utf8.

        Ciao,
        Antonio

      • #61230
        samiel
        Partecipante
          Up
          0
          Down
          ::


          Insomma non avevo capito nulla…
          Cmq la mia esigenza era molto più banale,
          il solito problema dell’incompatibilità
          tra listings e UTF8 in porzioni di codice
          incluse, e no tratte da file esterni
          e pensavo che così si potesse
          finalmente risolvere…

          M.

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

      Go to top