Keywords in bold/a capo automatico con listings [Risolto]

  • Creatore
    Topic
  • #12773
    Up
    0
    Down
    ::


    Ci sono due cose che ancora non riesco a fare con listings:

    1. settare le parole chiave in grassetto;

    2. fare in modo che le righe vadano a capo automaticamente;

    Ho cercato in vari manuali, ma \textbf{} funziona solo se gli inserisci del testo, mentre per il secondo problema, non so come fare…
    Questo è il mio codice d’esempio:`\documentclass[a4paper,12pt]{book}

    \usepackage[latin1]{inputenc}
    \usepackage[italian]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[dvips]{graphicx}
    \usepackage{color}
    \definecolor{grayback}{rgb}{0.9,0.9,0.9}
    \definecolor{grayrows}{rgb}{0.3,0.3,0.3}
    \usepackage{listings}

    % Definizione del linguaggio JavaScript
    \lstdefinestyle{num_righe}
    { numbers=left,
    stepnumber=1,
    numberstyle=\footnotesize\color{grayrows},
    numbersep=10pt,
    }
    \lstdefinelanguage{JavaScript}
    { keywords={function, new, true, false, var, for, do, while, if, break, return},
    keywordstyle={\color{blue}},
    backgroundcolor=\color{grayback},
    sensitive=false,
    showspaces=false,
    showstringspaces=false,emph={3}
    showtabs=false,
    style=num_righe,
    morecomment=[l]{//},
    morecomment={/*}{*/},
    morestring=“,
    basicstyle={\footnotesize\ttfamily}
    }

    \begin{document}

    \lstset{language=JavaScript}
    \begin{lstlisting}
    function view_app() {

    if(!Element.empty(“div_gen”)){ //Se ho già fatto una ricerca prima, svuoto la pagina
    Element.remove(“head”);
    Element.remove(“div_gen”);
    new Insertion.After(“br1”, “

    “)
    }
    \end{lstlisting}
    \end{document}`
    Idee?

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #12774
      Up
      0
      Down
      ::

      Ci sono due cose che ancora non riesco a fare con listings:

      1. settare le parole chiave in grassetto;

      2. fare in modo che le righe vadano a capo automaticamente;

      Ho cercato in vari manuali, ma \textbf{} funziona solo se gli inserisci del testo, mentre per il secondo problema, non so come fare…

      (1) \bfseries, immagino.

      (2) Rispondo alla domanda, anche se non si dovrebbe (una domanda, un topic). Ma non per darti una soluzione, sebbene per farti riflettere: il pacchetto listings serve per inserire codice in qualche linguaggio di programmazione. Secondo te, può sapere anche quali sono i punti “leciti” dove andare a capo, in tutti i linguaggi che sa trattare?

      I computer e i programmi che ci girano sopra sono anche molto perfezionati; ma non chiaroveggenti. Non dimenticare che per certi linguaggi gli a capo e le spaziature hanno significato sintattico.

      Ciao
      Enrico

    • #12775
      Up
      0
      Down
      ::

      1. No, \bfseries non funziona, l’output è identico a prima:`…
        \lstdefinelanguage{JavaScript}
        { keywords={function, new, true, false, var, for, do, while, if, break, return},
        keywordstyle={\color{blue}\bfseries},
        backgroundcolor=\color{grayback},
        …`

      2. Lo so, ma mi sembrava uno spreco aprire due topic per problemi inerenti allo stesso pacchetto.
        Condivido il tuo ragionamento se il codice lo si scrive per compilarlo, ma io lo devo solo formattarlo.
        In tutti gli ambienti di sviluppo avanzati, se scrivi una riga più lunga dello schermo, automaticamente questa viene visualizzata su due, anche se viene considerata sulla stessa.
        Non ci sono punti leciti o non leciti: qualunque punto va bene…
        Pensavo ci fosse un’opzione simile con listings, visto che mi sembra un po’stupido riscrivere tutto il mio codice (che non sono due righe) andando a capo manualmente ogni volta che sfora…

    • #12776
      Up
      0
      Down
      ::

      No, \bfseries non funziona, l’output è identico a prima:`…
      \lstdefinelanguage{JavaScript}
      { keywords={function, new, true, false, var, for, do, while, if, break, return},
      keywordstyle={\color{blue}\bfseries},
      backgroundcolor=\color{grayback},
      …`

      Pagina 5 del manuale di listings, terza riga dell’esempio in \ttfamily:
      `keywordstyle=\color{blue}\bfseries`
      senza graffe.

      Lo so, ma mi sembrava uno spreco aprire due topic per problemi inerenti allo stesso pacchetto.
      Condivido il tuo ragionamento se il codice lo si scrive per compilarlo, ma io lo devo solo formattarlo.

      Nessun sistema automatico può farlo, renditene conto. Se per compilarlo non puoi andare a capo a caso, perché mai listings dovrebbe preoccuparsi di metterlo anche in ordine per te?

      Ciao
      Enrico

    • #12777
      Up
      0
      Down
      ::


      Ok, vedrò cosa posso fare.

      Grazie.

    • #12778
      Up
      0
      Down
      ::

      In tutti gli ambienti di sviluppo avanzati, se scrivi una riga più lunga dello schermo, automaticamente questa viene visualizzata su due, anche se viene considerata sulla stessa.
      Non ci sono punti leciti o non leciti: qualunque punto va bene…
      Pensavo ci fosse un’opzione simile con listings, visto che mi sembra un po’stupido riscrivere tutto il mio codice (che non sono due righe) andando a capo manualmente ogni volta che sfora…

      Il modo c’è. Leggi il par. “4.10 Margins and line shape”. Imposti la lunghezza delle righe e lui va a capo quando il tuo codice la supera. Puoi anche decidere se avere il rientro sulle righe spezzate o no. Le righe in cui va a capo non sono numerate, a patto che tu usi i numeri.

    • #12779
      Up
      0
      Down
      ::


      Esatto! 😀 😀 😀
      Era proprio quello che mi serviva!
      Grazie

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

Go to top