ClassicThesis e listings: problema con lstlistoflistings

  • Creatore
    Topic
  • #15674
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti. Ho il seguente codice di prova:
      `\documentclass{scrreprt}

      \usepackage{classicthesis-ldpkg}
      \usepackage{classicthesis}
      \usepackage{lipsum}

      \addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}
      \addto\captionsitalian{\renewcommand{\lstlistlistingname}{Codici}}
      \captionsetup{format=hang,font=small}
      \lstset{captionpos=b}

      \begin{document}

      \begingroup
      \refstepcounter{dummy}
      \addcontentsline{toc}{chapter}{\lstlistlistingname}
      \pdfbookmark[1]{\lstlistlistingname}{lol}
      \lstlistoflistings
      \endgroup

      \lipsum[1]

      \begin{lstlisting}[float=tb,caption=Un esempio mobile.]

      \end{lstlisting}

      \lipsum[2]

      \begin{lstlisting}[float=tb,caption=Un altro esempio mobile.]

      \end{lstlisting}

      \lipsum[3]

      \end{document}`
      Il problema è che quando compilo ottengo un errore (non fatale, per la verità) nella creazione dell’indice dei codici:
      `! Undefined control sequence.
      \lstlistoflistings …\lol@heading \@parskipfalse
      \@parskip@indent \@startto…
      l.29 \lstlistoflistings

      ?
      `
      Qualcuno sa come si può rimediare?

      Grazie,
      L.

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #15675
        Up
        0
        Down
        ::

        Ciao a tutti. Ho il seguente codice di prova:
        `\documentclass{scrreprt}
        …`
        Il problema è che quando compilo ottengo un errore (non fatale, per la verità) nella creazione dell’indice dei codici:
        `! Undefined control sequence.
        \lstlistoflistings …\lol@heading \@parskipfalse
        \@parskip@indent \@startto…
        l.29 \lstlistoflistings

        ?
        `
        Qualcuno sa come si può rimediare?

        Aggiornando listings alla versione 1.4; nel frattempo puoi scrivere
        `\makeatletter
        \let\@parskipfalse\relax
        \let\@parskip@index\relax
        \makeatother`
        Problemi di interazione fra classi, fino alla versione 1.3 c’era una correzione per quando veniva caricato uno dei pacchetti di KOMA-script. Adesso non c’è più.

        Ciao
        Enrico

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


          Carissimo Enrico, ho provato ad aggiornare listings alla versione 1.4, ma sembra che ClassicThesis sia incompatibile con questa nuova versione. Infatti il mio documento minimale ora produce l’errore fatale:
          `/usr/local/texlive/2007/texmf-dist/tex/latex/carlisle/remreset.sty)
          (/usr/local/texlive/2007/texmf-dist/tex/latex/subfig/subfig.sty)
          (./listings.sty
          (/usr/local/texlive/2007/texmf-dist/tex/latex/listings/lstpatch.sty

          ***
          *** This is a patch for listings 1.3, but you're using
          *** version 1.4.
          ***
          *** Patch file not loaded.
          ***

          ) (/usr/local/texlive/2007/texmf-dist/tex/latex/listings/lstmisc.sty

          ***
          *** This file requires `listings.sty' version 1.3.
          *** You have a serious problem, so I'm exiting …
          ***
          `
          Ho provato a mettere nel preambolo il codice che mi hai inviato (mantenendo la versione 1.3 di listings), ma contionuo a ricevere il non fatale:
          `! Undefined control sequence.
          \lstlistoflistings …rskipfalse \@parskip@indent
          \@starttoc {lol}\if@reston…
          l.34 \lstlistoflistings
          `
          Come sempre, grazie per il tuo aiuto,
          L.

        • #15677
          Up
          0
          Down
          ::

          Carissimo Enrico, ho provato ad aggiornare listings alla versione 1.4, ma sembra che ClassicThesis sia incompatibile con questa nuova versione. Infatti il mio documento minimale ora produce l’errore fatale:
          `/usr/local/texlive/2007/texmf-dist/tex/latex/carlisle/remreset.sty)
          (/usr/local/texlive/2007/texmf-dist/tex/latex/subfig/subfig.sty)
          (./listings.sty
          (/usr/local/texlive/2007/texmf-dist/tex/latex/listings/lstpatch.sty

          ***
          *** This is a patch for listings 1.3, but you're using
          *** version 1.4.
          ***
          *** Patch file not loaded.
          ***

          ) (/usr/local/texlive/2007/texmf-dist/tex/latex/listings/lstmisc.sty

          ***
          *** This file requires `listings.sty' version 1.3.
          *** You have a serious problem, so I'm exiting …
          ***
          `
          Ho provato a mettere nel preambolo il codice che mi hai inviato (mantenendo la versione 1.3 di listings), ma contionuo a ricevere il non fatale:
          `! Undefined control sequence.
          \lstlistoflistings …rskipfalse \@parskip@indent
          \@starttoc {lol}\if@reston…
          l.34 \lstlistoflistings
          `

          Era \@parskip@indent, non \@parskip@index. Solito errore di trascrizione. Meglio se aggiorni l’albero principale. Supponendo che tu abbia la TeX Live, apri una shell:
          `$ curl ftp://tug.ctan.org/pub/tex-archive/macros/latex/contrib/listings.zip -O
          $ unzip listings
          $ cd listings
          $ make all
          $ sudo cp *.sty *.cfg /usr/local/texlive/2007/texmf-dist/tex/latex/listings
          $ sudo rm /usr/local/texlive/2007/texmf-dist/tex/latex/listings/lstpatch.sty
          $ sudo cp README *.pdf /usr/local/texlive/2007/texmf-dist/doc/latex/listings
          $ sudo mktexlsr`
          Se non ti funziona make, scrivi “latex listings.ins” e poi compila a mano la documentazione. Invece di curl puoi usare un browser o il tuo modo preferito di scaricare da CTAN. È vero che non si dovrebbe mai toccare l’albero principale, ma, non avendo intenzione di reinstallare tutto e supponendo che la prossima distribuzione contenga la versione giusta, è più semplice così. Altrimenti metti tutto nel tuo albero locale. In tal caso devi disabilitare in qualche modo il file lstpatch.sty: evidentemente il pacchetto lo carica se lo trova e ovviamente non va. L’errore con lstmisc forse dipende da questo.

          Ciao
          Enrico

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


            Grazie di cuore Enrico! Ho sistemato il codice seguedo le Tue indicazioni, e ora funziona tutto perfettamente!

            Grazie mille,
            Lorenzo

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

        Go to top