uso listings

  • Creatore
    Topic
  • #17760
    Up
    0
    Down
    ::


    Ciao!
    Ho letto la guida per l’uso del pacchetto listings. Ho qualche problemino:
    Per maggiore chiarezza posto cosa ho fatto

    `\documentclass[a4paper,oneside]{book}
    \usepackage[italian]{babel}
    \usepackage{amsfonts}
    \usepackage{amsmath}
    \usepackage{mathrsfs}
    \usepackage[latin1]{inputenc}
    \usepackage{color}
    \usepackage{colortbl}
    \usepackage{verbatim}
    \usepackage{lscape}
    \usepackage{graphicx}
    \usepackage{thumbpdf}
    \usepackage{fancyhdr}
    \usepackage{hyperref}
    \usepackage{listings}
    \lstloadlanguages{Java} \lstset{basicstyle=\ttfamily}

    \begin{document}

    \tableofcontents \listoffigures \lstlistoflistings

    \lstinputlisting[frame=single, extendedchars=true, caption=Codice prova, label=esempio,
    breaklines=true]{esempio.java}

    \end{document}`

    1) Vorrei che dopo l’indice e “Elenco delle figure”, non comparisse “Listings” e poi l’elenco dei listati, ma “Elenco dei Listings” (O qualcosa di simile – secondo me l’ottimo sarebbe avere tutto in italiano, anche le didascalie!). Come posso fare?

    2) Vorrei che il carattere usato fosse più piccolo. Per questo ho provato a mettere `basicstyle=\small\ttfamily` ma in questo modo mi dà errore.

    3) Se ho ben interpretato la guida, di default, le parole chiave del linguaggio dovrebbero essere in bfseries, i commenti in itshape, etc… Perchè invece io visualizzo tutto nel carattere macchina da scrivere?
    In realtà quello che vorrei avere è: tutto tipo macchina da scrivere eccetto i commenti (ok itshape) e le parole chiave in grassetto. Tuttavia se modifico il contenuto di `lstinputlisting` con `keywordstyle=…` non cambia nulla…

    4) L’ultima cosa che proprio non so fare è creare un nuovo comando in modo che sia sufficiente digitare qualcosa tipo \codice{esempio.java} e non tutto il \lstinputlisting che vorrei definito una volta per tutte!

    Grazie mille!! Spero di diventare una “LaTeXperta” così da aiutare anch’io qualcuno!! 😉

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #17761
      lorenzo.pantieri
      Partecipante
        Up
        0
        Down
        ::


        Comincia da qui:
        http://www.guit.sssup.it/phpbb/viewtopic.php?t=3207&highlight=listings
        http://www.guit.sssup.it/phpbb/viewtopic.php?t=1877&highlight=listings

        Quanto al corpo più piccolo:
        `\lstset{basicstyle=\small\ttfamily}
        `

        Ciao,
        L.

      • #17762
        Up
        0
        Down
        ::


        Ciao Lorenzo e grazie della risposta.

        http://www.guit.sssup.it/phpbb/viewtopic.php?t=3207&highlight=listings

        Questo l’avevo visto ma non mi andava bene perchè poi non riuscivo a scrivere didascalie ed estichette ai listati…

        http://www.guit.sssup.it/phpbb/viewtopic.php?t=1877&highlight=listings

        Chiedo scusa per aver ripetuto una domanda, questo me l’ero proprio persa. 😳

        Tuttavia, non ho risolto del tutto.
        Adesso il codice relativo al listings è:
        `\usepackage{listings}
        \lstloadlanguages{Java} \lstset{basicstyle=\small\ttfamily, frame=single, extendedchars=true, breaklines=true, commentstyle=\itshape}
        \addto\captionsitalian{%
        \renewcommand{\lstlistingname}{Listato}}
        \addto\captionsitalian{%
        \renewcommand{\lstlistlistingname}{Elenco dei listati}}
        `
        e posso inserire un listato semplicemente con:
        `\lstinputlisting{esempio1.java}`

        PROBLEMA 1): `commentstyle=\itshape` viene ignorato, ovvero il testo è tutto tipo macchina da scrivere. C’è da usare un pacchetto particolare nel caso di Java, visto che l’esempio era per Pascal?!

        PROBLEMA 2): Ho letto (pag, 53 guida al pacchetto listings) che:

        How to get bold typewriter type keywords
        Use the LuxiMono package available from CTAN/fonts/luximono.

        Vorrei sapere è ciò che devo fare io visto che desidero avere le parole chiave sempre nel carattere tipo macchina da scrivere ma in grassetto e non so come fare. Nel caso che debba seguire queste indicazioni, nel Package Manager il pacchetto luximono non c’è. Come faccio a recuperarlo dopo che l’ho scaricato zippato? 🙁

        Grazie per la pazienza infinita…

      • #17763
        Up
        0
        Down
        ::

        Adesso il codice relativo al listings è:
        `\usepackage{listings}
        \lstloadlanguages{Java} \lstset{basicstyle=\small\ttfamily, frame=single, extendedchars=true, breaklines=true, commentstyle=\itshape}
        \addto\captionsitalian{%
        \renewcommand{\lstlistingname}{Listato}}
        \addto\captionsitalian{%
        \renewcommand{\lstlistlistingname}{Elenco dei listati}}
        `
        e posso inserire un listato semplicemente con:
        `\lstinputlisting{esempio1.java}`

        PROBLEMA 1): `commentstyle=\itshape` viene ignorato, ovvero il testo è tutto tipo macchina da scrivere. C’è da usare un pacchetto particolare nel caso di Java, visto che l’esempio era per Pascal?!

        Devi anche dichiarare il linguaggio che usi. Se usi solo Java puoi metterlo in \lstset, altrimenti nelle opzioni di \lstinputlisting: “language=Java”

        PROBLEMA 2): Ho letto (pag, 53 guida al pacchetto listings) che:

        How to get bold typewriter type keywords
        Use the LuxiMono package available from CTAN/fonts/luximono.

        Vorrei sapere è ciò che devo fare io visto che desidero avere le parole chiave sempre nel carattere tipo macchina da scrivere ma in grassetto e non so come fare. Nel caso che debba seguire queste indicazioni, nel Package Manager il pacchetto luximono non c’è. Come faccio a recuperarlo dopo che l’ho scaricato zippato? 🙁

        Puoi usare i font Latin Modern che sono simili ai Computer Modern e hanno il Typewriter Type anche nero.
        `\usepackage[T1]{fontenc}
        \usepackage{lmodern}`
        Ciao
        Enrico

      • #17764
        Up
        0
        Down
        ::


        Grazie Enrico… E anche il problema del linguaggio l’ho risolto…
        Sto cominciando a capire 😀

        Ma se aggiungo i pacchetti
        `\usepackage[T1]{fontenc}
        \usepackage{lmodern}`
        non cambia il font di tutto il documento?!
        Comunque non ho capito come fare il typewriter bold, una volta cambiato il font:
        se aggiungo in `\lstset{…keywordstyle=\bfseries}` non cambia nulla…
        Scusate, oggi sono un po’ lenta… 😕
        Ciao, Elisa

      • #17765
        Up
        0
        Down
        ::

        Grazie Enrico… E anche il problema del linguaggio l’ho risolto…
        Sto cominciando a capire 😀

        Ma se aggiungo i pacchetti
        `\usepackage[T1]{fontenc}
        \usepackage{lmodern}`
        non cambia il font di tutto il documento?!

        Se usavi i font standard (Computer Modern), non c’è differenza.

        Comunque non ho capito come fare il typewriter bold, una volta cambiato il font:
        se aggiungo in `\lstset{…keywordstyle=\bfseries}` non cambia nulla…

        Non c’è tantissima differenza fra i caratteri neri e quelli medi, in effetti. Ma c’è.

        Dovresti provare in stampa che cosa succede. Altrimenti puoi usare
        `basicstyle=\fontfamily{pcr}\small`
        che sceglie il font Courier che ha un nero nettamente più marcato del medio.

        Per i luximono c’è il pacchetto luxi per MikTeX.

        Ciao
        Enrico

      • #17766
        Up
        0
        Down
        ::


        Ok chiarissimo 😀

        Ho provato tutte le soluzioni!!! Non ho ancora deciso quale adottare, ma almeno ho imparato qualcosa! Grazie ancora, ciao, Elisa

      • #17767
        Up
        0
        Down
        ::


        Ciao a tutti,
        ho un nuovo quesito a completamento di quanto ho già chiesto sull’uso del pacchetto listings.

        Tramite il vostro aiuto 😀 ho impostato questo:
        `\usepackage{listings}
        \lstloadlanguages{Java}
        \lstset{basicstyle=\small\ttfamily,
        commentstyle=\itshape,
        frame=single,
        extendedchars=true,
        breaklines=true,
        language=Java}`

        Dato che devo inserire pezzi di codice talvolta piuttosto lungo ho inserito l’opzione breaklines=true, che in genere non crea problemi estetici secondo me.
        Tuttavia, in un punto mi sono accorta che a fondo pagina compare la didascalia del listato e il bordo superiore del riquadro, mentre il codice va TUTTO a pagina nuova. Secondo me così è davvero brutto. Ho provato a mettere breaklines=false, ma il risultato non cambia: si vede che TeX considera solo il codice effettivo e non il riquadro. 😡
        Cosa mi consigliate di fare? C’è un modo elegante per superare questo problema (ci vorrebbe un comando del tipo “metti almeno una riga col bordo del riquadro”) oppure l’unica è dare un comando tipo \newpage dove serve quando ho scritto la versione definitiva?
        Grazie! Ciao!

      • #17768
        Up
        0
        Down
        ::


        Che dite quest’ultimo è un problema di tipografia? Se si lo elimino da qui e lo pongo in un topic separato…

      • #17769
        DMW
          Up
          0
          Down
          ::

          Che dite quest’ultimo è un problema di tipografia? Se si lo elimino da qui e lo pongo in un topic separato…

          putroppo degli aggiustamenti vanno sempre fatti. Non puoi farci nulla, a patto di usare \clearpage al posto di newpage.

          Un altro modo è quello di usare \enlargethispage{1\baselineskip}. Se non basta prova con 2.

          Vedi e facci sapere.

          Ciao

          Andrea

        • #17770
          Up
          0
          Down
          ::


          Ciao Andrea

          putroppo degli aggiustamenti vanno sempre fatti. Non puoi farci nulla, a patto di usare \clearpage al posto di newpage.

          Un altro modo è quello di usare \enlargethispage{1\baselineskip}. Se non basta prova con 2.

          Secondo me a questo punto è meglio \clearpage (anche se non ho capito la differenza con \newpage) nel caso che ho detto io (a fine pagina solo il bordo superiore del riquadro) e \enlargethispage nel caso che vada a pagina nuova solo per il bordo inferiore…
          Nel primo caso, dato che l’allargamento della pagina non è “flessibile” (dovrei comunque scrivere il comando solo al momento della revisione della versione definitiva per evitare di allargare la pagina per nulla), a questo punto, per motivi estetici mi sembra meglio \clearpage. 🙄

          Grazie, ciao Elisa

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

      Go to top