package listing evidenziare variabili

  • Creatore
    Topic
  • #22125
    Up
    0
    Down
    ::


    Ciao spero vivamente di non replicare un problema già risolto, ma cercando un po’ nel forum non ho trovato risposta…

    sto utilizzando il listing per riportare codice tcl nella mia tesi e mi vengono giustamente evidenziati i comandi del linguaggio, solo che le variabili precedute dal simbolo $ non vengono evidenziate.

    Vorrei evidenziarle con un colore diverso da quello dei comandi specifici tcl è possibile?

    Grazie Daniele

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #22126
      Up
      0
      Down
      ::

      sto utilizzando il listing per riportare codice tcl nella mia tesi e mi vengono giustamente evidenziati i comandi del linguaggio, solo che le variabili precedute dal simbolo $ non vengono evidenziate.

      Vorrei evidenziarle con un colore diverso da quello dei comandi specifici tcl è possibile?

      Forse puoi risolvere con la direttiva “keywordsprefix”.
      Ho provato a compilare un esempio minimale:
      `\documentclass[a4paper]{article}
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage[italian]{babel}

      \usepackage{listings}
      \lstset{language=tcl,keywordsprefix=\$}

      \begin{document}

      \begin{lstlisting}
      # Uso del nuovo formato
      $ns use-newtrace
      $ns trace-all $tracefd
      $ns namtrace-all-wireless $namtrace $val(x) $val(y)
      \end{lstlisting}

      \end{document}`

      La doc ufficiale dice che tutti gli identificatori che cominciano con il prefisso (nel codice sopra menzionato è $, “escapato” :D) saranno stampati come parole chiave di primo ordine.

      Non so se sia la soluzione migliore|che cercavi…
      Ciao!

    • #22127
      Up
      0
      Down
      ::


      Grazie per l’utile consiglio, in questo modo riesco in parte ad ottenere l’effetto voluto. Volevo anche differenziare i colori tra le parole chiave standard e le variabili precedute da $.

      Grazie ancora Daniele

    • #22128
      Up
      0
      Down
      ::

      Grazie per l’utile consiglio, in questo modo riesco in parte ad ottenere l’effetto voluto. Volevo anche differenziare i colori tra le parole chiave standard e le variabili precedute da $.

      Grazie ancora Daniele

      Si può fare. Guida di listings, paragrafi 3.2 e 4.2.

      Ciao

      Daniele

    • #22129
      Up
      0
      Down
      ::


      Buongiorno a tutti,
      riprendo questa discussione perchè ho un problema che è legato a quanto si diceva qua sopra. Devo anch’io riportare codice tcl nella mia tesi ma non ho ancora trovato il modo di evidenziare le variabili: qui sopra di diceva di usare
      `
      \usepackage{listings}
      \lstset{language=tcl,keywordsprefix=\$}
      `
      ma questo evidenzia le variabili precedute da $ come parole chiave di primo livello. Guardando la documentazione come si suggerisce qui sopra

      Si può fare. Guida di listings, paragrafi 3.2 e 4.2.

      non ne sono ugualmente venuto a capo, in quanto l’unica soluzione sarebbe ancora usare keywordsprefix, ma per parole chiave di secondo livello; questo però non si può fare, infatti la documentazione dice:

      The key does not respect the value of classoffset and has no optional class number argument

      Un’altra cosa che mi è venuta in mente è usare
      `
      moredelim=[*[*]][]
      `
      ma non è previsto un type con un unico delimiter che influenzi solo la parola successiva e non l’intera riga.
      Qualche suggerimento?
      Spero di essermi spiegato.
      Grazie.

      Marco

    • #22130
      Up
      0
      Down
      ::


      Io mi riferivo all’uso di moredelim. Nella nuova guida potresti trovarlo nella sezione 3.3 e 4.6.

      Ti puoi in pratica definire dei delimitatori a piacere, e assegnare loro il colore che più ti piace.

      Ciao

      Daniele

    • #22131
      lorenzo.pantieri
      Partecipante
        Up
        0
        Down
        ::

        ma non è previsto un type con un unico delimiter che influenzi solo la parola successiva e non l’intera riga.

        Non mi pare.
        http://www.lorenzopantieri.net/LaTeX_files/Codici.pdf
        Cerca “moredelim”.

        Ciao,
        L.

      • #22132
        Up
        0
        Down
        ::


        Forse non mi sono spiegato bene. Il risultato che vorrei ottenere è che tutte e sole le parole precedute da $ avessero un colore diverso da parole chiave, stringhe, commenti. Ovvero ad esempio:
        $ns_ trace-all $tf
        oppure
        set x $y
        dove ns_, tf, e y sono variabili e set e trace sono parole chiave.
        Usando moredelim, da quello che vedo leggendo dove mi avete suggerito di leggere (che era quello che già avevo letto), si possono definire solo delimitatori singoli che influenzano tutta la riga con
        `moredelim=[l][\color{VioletRed}]{\$}`
        oppure delimitatori doppi con
        `moredelim=[\color{VioletRed}]{\$}{\$}`
        ma non esiste un’opzione, diversa da l o s, che permetta di definire un delimitatore singolo che influenzi solo la parola dopo. Cercando moredelim come mi suggerite:

        Non mi pare.
        http://www.lorenzopantieri.net/LaTeX_files/Codici.pdf
        Cerca “moredelim”.

        trovo solo le due opzioni che ho citato sopra.
        Se sto sbagliando ditemi, potrebbe essere dato che non sono molto pratico di LaTeX.
        Grazie delle risposte.

        Marco

      • #22133
        Up
        0
        Down
        ::


        Come non detto, ho risolto con
        `moredelim=[\color{VioletRed}]{\$}{\ }`
        Grazie a tutti lo stesso.
        Ciao

        Marco

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

    Go to top