listing fuori pagina

  • Creatore
    Topic
  • #103163
    Up
    0
    Down
    ::


    salve, uso questa forma per inserire codice non PHP (per il quale uso lstlisting con una colorazione ad hoc)

    `\begin{listing}[{1} % codice con numero di riga\end{listing}`

    anche vedendo la documentazione
    http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf
    non ho ben capito come risolvere due problemi:
    – alcune righe vanno fuori pagina, dovrei inserire il codice in un blocco (ovviamente non posso andare a capo manualmente, verrebbe contata una nuova riga)
    – come inserire un caption

Visualizzazione 16 filoni di risposte
  • Autore
    Risposte
    • #103164
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Per le didascalie: documentazione di listings, paragrafo 5.7
        Per spezzare le righe automaticamente senza generare altri numeri di riga: stessa documentazione, paragrafo 5.8.

      • #103165
        Up
        0
        Down
        ::


        scusami ma ti riferisci a quella linkata da me?:?

      • #103166
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::

          alfredopacino” post=103170salve, uso questa forma per inserire codice non PHP (per il quale uso lstlisting con una colorazione ad hoc)

          `\begin{listing}[{1} % codice con numero di riga\end{listing}`

          anche vedendo la documentazione
          http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf
          non ho ben capito come risolvere due problemi:
          – alcune righe vanno fuori pagina, dovrei inserire il codice in un blocco (ovviamente non posso andare a capo manualmente, verrebbe contata una nuova riga)
          – come inserire un caption

          Non hai fatto due domande in questo messaggio? Ti ho risposto a ciascuna.

        • #103167
          Up
          0
          Down
          ::


          si, chiedevo se per documentazione di listings tu intendessi il link che ho postato, perché al cap. 5.7 si parla di label testuali ai listings e 5.8 di codici su più colonne (ed in ogni caso si parla di lstlisting, possibilmente in questo caso vorrei rimanere con \begin{listing}..)

        • #103168
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::

            alfredopacino” post=103179si, chiedevo se per documentazione di listings tu intendessi il link che ho postato, perché al cap. 5.7 si parla di label testuali ai listings e 5.8 di codici su più colonne (ed in ogni caso si parla di lstlisting, possibilmente in questo caso vorrei rimanere con \begin{listing}..)

            Sto parlando della documentazione di listings, versione 2015/06/04 Version 1.6. Forse hai una versione precedente? Nel caso aggiorna la tua installazione del sistema TeX.

            Inoltre esaminando meglio al documentazione recente (version 1.6), nel paragrafo 1.4 si mostra una esempio di ambiente lstlisting reso flottante e con la didascalia

          • #103169
            Up
            0
            Down
            ::


            abbia pazienza 😀 dall’interfaccia di TeXstudio dal menu ‘aiuto’ arrivo a “LaTeX2e reference manual (May 2014)”
            dove trovo la documentazione a cui ti riferisci?

          • #103170
            Up
            0
            Down
            ::


            Il metodo più veloce per la documentazione è usare il terminale, con il codice
            `
            texdoc
            `
            che nel tuo caso diviene
            `
            texdoc listings
            `
            Si apre il file pdf contente la documentazione del pacchetto (se esistente). Vale per tutti i pacchetti presenti sulla tua distribuzione provvisti di documentazione.

          • #103171
            Up
            0
            Down
            ::


            grazie, mi il problema degli spazi visibili nelle stringhe, che rimangono tali stranamente anche inserendo showspaces=false,showtabs=false in \lstset.

          • #103172
            Up
            0
            Down
            ::


            Posta un esempio minimo compilabile, altrimenti è difficile capire cosa devi correggere o dov’è il problema.

          • #103173
            Up
            0
            Down
            ::


            ecco a te 🙂
            `\documentclass[11pt,oneside]{book}

            \usepackage[italian,english]{babel}
            \usepackage[latin1]{inputenc}

            \usepackage{fancybox}
            \usepackage{verbatim}
            \usepackage{color}
            \usepackage{moreverb}
            \usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
            \usepackage{booktabs}

            \usepackage{csquotes}

            \usepackage{listings,xcolor} % php code
            \definecolor{dkgreen}{rgb}{0,.6,0}
            \definecolor{dkblue}{rgb}{0,0,.5}
            \definecolor{dkyellow}{cmyk}{0,0,.8,.3}
            \lstset{
            numbers=left,
            numberstyle=\tiny,
            showspaces=false,
            showtabs=false,
            language = php,
            basicstyle = \small\ttfamily,
            keywordstyle = \color{dkblue},
            stringstyle = \color{gray},
            identifierstyle = \color{blue},
            commentstyle = \color{gray},
            emph =[1]{php},
            emphstyle =[1]\color{black},
            emph =[2]{if,and,or,else,new},
            emphstyle =[2]\color{blue}\bfseries}

            \begin{document}
            \selectlanguage{italian}
            \pagenumbering{roman}
            \vfill
            \chapter{Introduzione}
            \setcounter{page}{1}
            \pagenumbering{arabic}
            \begin{lstlisting}
            {
            “testata”:”Stringa con spazi visibili”
            }
            \end{lstlisting}
            \end{document}`

          • #103174
            Francesco
            Partecipante
              Up
              0
              Down
              ::


              Gli spazi visibili sono quelli delle stringhe quindi devi aggiungere showstringspaces={false}.

              `\documentclass[11pt,oneside]{book}

              \usepackage[italian,english]{babel}
              \usepackage[latin1]{inputenc}

              \usepackage{fancybox}
              \usepackage{verbatim}
              \usepackage{color}
              \usepackage{moreverb}
              \usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
              \usepackage{booktabs}

              \usepackage{csquotes}

              \usepackage{listings,xcolor} % php code
              \definecolor{dkgreen}{rgb}{0,.6,0}
              \definecolor{dkblue}{rgb}{0,0,.5}
              \definecolor{dkyellow}{cmyk}{0,0,.8,.3}
              \lstset{
              numbers=left,
              numberstyle=\tiny,
              showspaces=false,
              showtabs=false,
              language = php,
              basicstyle = \small\ttfamily,
              keywordstyle = \color{dkblue},
              stringstyle = \color{gray},
              identifierstyle = \color{blue},
              commentstyle = \color{gray},
              emph =[1]{php},
              emphstyle =[1]\color{black},
              emph =[2]{if,and,or,else,new},
              emphstyle =[2]\color{blue}\bfseries}

              \begin{document}
              \selectlanguage{italian}
              \pagenumbering{roman}
              \vfill
              \chapter{Introduzione}
              \setcounter{page}{1}
              \pagenumbering{arabic}
              \begin{lstlisting}
              {
              “testata”:”Stringa senza spazi visibili”
              }
              \end{lstlisting}
              \end{document}`

            • #103175
              Up
              0
              Down
              ::


              avevo aggiunto showspaces pensando fosse lo stesso.
              ho risolto, grazie 🙂

              dato che ci sono, vediamo se si riesce a risolvere semplicemente un altro dettaglio:
              come vedi nel preambolo c’è la riga
              ` emph =[1]{php}, `
              se però voglio evidenziare correttamente tutto il tag php, ossia
              ` emph =[1]{}
              `
              non funge, neanche col carattere di escape su > e < ` emph =[1]{\}
              `

            • #103176
              Up
              0
              Down
              ::


              niente?:(

            • #103177
              Up
              0
              Down
              ::


              Il tuo problema è che [tt]<[/tt], [tt]>[/tt], [tt]?[/tt] e [tt],[/tt] sono interpretati da [tt]listings[/tt] in modo diverso dalle lettere dell’alfabeto (nel pacchetto si parla rispettivamente di other e letter, immagino centrino con i codici di categoria). Questo implica che la stringa che tu vuoi essere interpretata e colorata incontri dei problemi. Comunque sono riuscito ad aggirare il problema definendo un nuovo tipo di commento con l’apposita opzione [tt]morecomment=[\color{orange}]{}{?>}[/tt]. Nota che l’argomento [tt][/tt] è obbligatorio e in questo caso permette di usare due delimitatori per il tuo commento, che saranno uno di apertura e uno di chiusura. Il seocndo argomento è invece opzionale e ti permette di inserire la formattazione (il colore arancione l’ho impostato solo per evidenziare il rendimento del tutto).

              Qui il codice completo
              `
              \documentclass[11pt,oneside]{book}

              \usepackage[italian,english]{babel}
              \usepackage[latin1]{inputenc}

              \usepackage{fancybox}
              \usepackage{verbatim}
              \usepackage{color}
              \usepackage{moreverb}
              \usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
              \usepackage{booktabs}

              \usepackage{csquotes}

              \usepackage{listings,xcolor} % php code
              \definecolor{dkgreen}{rgb}{0,.6,0}
              \definecolor{dkblue}{rgb}{0,0,.5}
              \definecolor{dkyellow}{cmyk}{0,0,.8,.3}
              \lstset{
              numbers=left,
              numberstyle=\tiny,
              showspaces=false,
              showtabs=false,
              language = php,
              basicstyle = \small\ttfamily,
              keywordstyle = \color{dkblue},
              stringstyle = \color{gray},
              identifierstyle = \color{blue},
              commentstyle = \color{gray},
              morecomment = [\color{orange}]{}{?>},
              emph =[1]{if,and,or,else,new},
              emphstyle =[1]\color{blue}\bfseries
              }

              \begin{document}
              \selectlanguage{italian}
              \pagenumbering{roman}
              \vfill
              \chapter{Introduzione}
              \setcounter{page}{1}
              \pagenumbering{arabic}
              \begin{lstlisting}
              {
              “testata”:”Stringa senza spazi visibili”
              }
              testo vario
              if x=else
              \end{lstlisting}
              \end{document}
              `

            • #103178
              Up
              0
              Down
              ::


              nop così non va, se provi a scrivere dopo il tag },
              emph =[1]{if,and,or,else,new},
              emphstyle =[1]\color{blue}\bfseries
              }

              \begin{document}
              \selectlanguage{italian}
              \pagenumbering{roman}
              \vfill
              \chapter{Introduzione}
              \setcounter{page}{1}
              \pagenumbering{arabic}
              \begin{lstlisting}
              {
              “testata”:”Stringa senza spazi visibili”
              }
              testo vario
              if x=else
              \end{lstlisting}
              \end{document}`

            • #103179
              Up
              0
              Down
              ::


              Questo sembra funzionare. Ho impostato [tt]<[/tt], [tt]?[/tt] e [tt]>[/tt] come letter grazie alla chiave [tt]alsoletter={>}[/tt]. In questo modo vengono riconosciute le stringhe da [tt]emph[/tt]. Ho il dubbio che questo però possa dare qualche problema da altre parti. Controlla se nel tuo documento funziona tutto.
              `
              \documentclass[11pt,oneside]{book}

              \usepackage[italian,english]{babel}
              \usepackage[latin1]{inputenc}

              \usepackage{fancybox}
              \usepackage{verbatim}
              \usepackage{color}
              \usepackage{moreverb}
              \usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
              \usepackage{booktabs}

              \usepackage{csquotes}

              \usepackage{listings,xcolor} % php code
              \definecolor{dkgreen}{rgb}{0,.6,0}
              \definecolor{dkblue}{rgb}{0,0,.5}
              \definecolor{dkyellow}{cmyk}{0,0,.8,.3}
              \lstset{
              numbers=left,
              numberstyle=\tiny,
              showspaces=false,
              showtabs=false,
              language = php,
              basicstyle = \small\ttfamily,
              keywordstyle = \color{dkblue},
              stringstyle = \color{gray},
              identifierstyle = \color{blue},
              commentstyle = \color{gray},
              alsoletter ={>},
              emph =[1]{},
              emphstyle =[1]\color{orange},
              emph =[2]{if,and,or,else,new},
              emphstyle =[2]\color{blue}\bfseries
              }

              \begin{document}
              \selectlanguage{italian}
              \pagenumbering{roman}
              \vfill
              \chapter{Introduzione}
              \setcounter{page}{1}
              \pagenumbering{arabic}
              \begin{lstlisting}
              {
              “testata”:”Stringa senza spazi visibili”
              }
              testo vario
              if x=else
              \end{lstlisting}
              \end{document}
              `

            • #103180
              Up
              0
              Down
              ::


              grazie mille 😀

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

          Go to top