backref e cancelletto (#) in un URL della bibliografia

  • Creatore
    Topic
  • #42548
    Up
    0
    Down
    ::


    Ciao a tutti.

    File test.bib, notare il cancelletto nell’indirizzo internet:
    `@ARTICLE{pippo,
    author = {Pippo, P.},
    title = {Titolo},
    journal = {Rivista di fumetti},
    year = {1955},
    volume = {5},
    pages = {421–424},
    url = {http://www.ip-sl.org/procs/abs07.html#talk9}
    }
    `

    Codice funzionante (ho usato unsrturl come stile che supporti gli url):
    `\documentclass[a4paper]{article}
    \usepackage{hyperref}

    \begin{document}
    \cite{pippo}
    \bibliographystyle{unsrturl}
    \bibliography{test}
    \end{document}`

    Codice non funzionante (ho usato unsrturl come stile che supporti gli url):
    `\documentclass[a4paper]{article}
    \usepackage[pagebackref]{hyperref}

    \begin{document}
    \cite{pippo}
    \bibliographystyle{unsrturl}
    \bibliography{test}
    \end{document}`

    Il problema è riproducibile su qualsiasi macchina e con qualunque stile
    che supporti gli url?
    È un baco di backref nel gestire i segni di cancelletto (#)?

    Ciao ciao.
    Fra

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #42549
      Up
      0
      Down
      ::

      Ciao a tutti.

      File test.bib, notare il cancelletto nell’indirizzo internet:
      `@ARTICLE{pippo,
      author = {Pippo, P.},
      title = {Titolo},
      journal = {Rivista di fumetti},
      year = {1955},
      volume = {5},
      pages = {421–424},
      url = {http://www.ip-sl.org/procs/abs07.html#talk9}
      }
      `

      Codice funzionante (ho usato unsrturl come stile che supporti gli url):
      `\documentclass[a4paper]{article}
      \usepackage{hyperref}

      \begin{document}
      \cite{pippo}
      \bibliographystyle{unsrturl}
      \bibliography{test}
      \end{document}`

      Codice non funzionante (ho usato unsrturl come stile che supporti gli url):
      `\documentclass[a4paper]{article}
      \usepackage[pagebackref]{hyperref}

      \begin{document}
      \cite{pippo}
      \bibliographystyle{unsrturl}
      \bibliography{test}
      \end{document}`

      Il problema è riproducibile su qualsiasi macchina e con qualunque stile
      che supporti gli url?
      È un baco di backref nel gestire i segni di cancelletto (#)?

      Penso sia un baco di backref. Con biblatex non succede.

      Ciao
      Enrico

    • #42550
      Up
      0
      Down
      ::


      Grazie Enrico.

      Aspetto almeno 24 ore per vedere se c’è qualche altro commento e poi
      lo segnalo a Oberdiek.

      Ciao ciao.
      Fra

    • #42551
      Antonio Ledda
      Partecipante
        Up
        0
        Down
        ::


        Ho fatto una prova.
        Codice:
        `\documentclass[a4paper]{article}
        \usepackage[pagebackref]{hyperref}

        \begin{document}
        \cite{pippo}
        \bibliographystyle{unsrturl}
        \bibliography{test}
        \end{document}`
        File .bib:
        `@ARTICLE{pippo,
        author = {Pippo, P.},
        title = {Titolo},
        journal = {Rivista di fumetti},
        year = {1955},
        volume = {5},
        pages = {421–424},
        url = {http://www.ip-sl.org/procs/abs07.html#talk9}
        }`
        Errore:
        `[…]
        ! Illegal parameter number in definition of \Hy@tempa.

        t
        l.8

        You meant to type ## instead of #, right?
        Or maybe a } was forgotten somewhere earlier, and things
        are all screwed up? I'm going to assume that you meant ##.

        ! Illegal parameter number in definition of \Hy@tempa.

        t
        l.8

        You meant to type ## instead of #, right?
        Or maybe a } was forgotten somewhere earlier, and things
        are all screwed up? I'm going to assume that you meant ##.
        […]`
        Output:
        http://freepdfhosting.com/30e40d0c78.pdf

        Ho usato TeXnicCenter RC1 e la TeX Live 2009 aggiornata a oggi, su Windows XP.

        Ciao
        Antonio

      • #42552
        Up
        0
        Down
        ::


        Grazie Antonio.

        Riporto la risposta di Heiko Oberdiek:

        Somehow backref must detect the end of the bibliography item.
        It uses the empty line (\par). Disadvantage, the catcodes
        are already fixed and # breaks in \url, because \url can’t
        change the catcode of `#’ anymore.

        You can use `\#’ instead of `#’ or add \backrefprint with
        disabled detection of \par, see documentation of backref
        “2.2 Detecting the end of a bibliography entry”.

        Detta così, sembra irrimediabile.
        A parte l’improponibile modifica del file .bib con i comandi
        \backrefparscanfalse e compagnia, l’unica soluzione
        è quella di usare \# al posto del semplice #. Poco male.

        Mi domando però come mai l’esempio proposto non dia
        alcun problema con biblatex (Enrico). Vi avverto che sono
        abbastanza ignorante su biblatex.

        Ciao ciao.
        Fra

      • #42553
        Up
        0
        Down
        ::


        Buongiorno, volevo far notare che ad oggi, con la versione aggiornata dei pacchetti di TexLive2015, usando biber, riscontro lo stesso problema.
        Anche la soluzione è la stessa: basta aggiungere un \ prima del cancelletto nell’url.

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

    Go to top