Problema con hyperref e pageref

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 5 mesi fa da Alb.
  • Creatore
    Topic
  • #83997
    Alb
      Up
      0
      Down
      ::


      Ciao a tutti,

      ho un problema con hyperref. Ho un documento di più pagine. Nell’ultima pagina c’è un label. Nella prima pagina c’è un \pageref che rinvia al label. LaTeX stampa correttamente il numero della pagina in cui si trova label. Ma il link aggiunto da hyperref punta alla pagina sbagliata.

      Esempio minimo:
      `\documentclass{article}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage{lipsum}
      \usepackage{hyperref}

      \begin{document}

      Vedi p.~\pageref{prova}

      \lipsum

      Il label è qui. \label{prova}

      \end{document} `
      In questo esempio il label è a pagina 2, ma se clicco su “p. 2” il link mi porta a pagina 1.

      Il problema si risolve si aggiungo \phantomsection prima del label, ma presumo che in teoria i collegamenti ipertestuali debbano funzionare senza bisogno di aggiungere una phantomsection prima di ogni label.

      Ho provato a cancellare i files ausiliari e ricompilare, ma il problema resta. Nel log non trovo nessun warning. Uso TeXLive 2012 aggiornato ad oggi.

      Grazie per l’aiuto.
      Alberto

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #83998
        Up
        0
        Down
        ::

        Alb” post=83201Ciao a tutti,

        ho un problema con hyperref. Ho un documento di più pagine. Nell’ultima pagina c’è un label. Nella prima pagina c’è un \pageref che rinvia al label. LaTeX stampa correttamente il numero della pagina in cui si trova label. Ma il link aggiunto da hyperref punta alla pagina sbagliata.

        Esempio minimo:
        `\documentclass{article}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage{lipsum}
        \usepackage{hyperref}

        \begin{document}

        Vedi p.~\pageref{prova}

        \lipsum

        Il label è qui. \label{prova}

        \end{document} `
        In questo esempio il label è a pagina 2, ma se clicco su “p. 2” il link mi porta a pagina 1.

        Il problema si risolve si aggiungo \phantomsection prima del label, ma presumo che in teoria i collegamenti ipertestuali debbano funzionare senza bisogno di aggiungere una phantomsection prima di ogni label.

        Ho provato a cancellare i files ausiliari e ricompilare, ma il problema resta. Nel log non trovo nessun warning. Uso TeXLive 2012 aggiornato ad oggi.

        Grazie per l’aiuto.
        Alberto

        Quello non è un riferimento ipertestuale corretto. I comandi [tt]\label[/tt] sono legati a un contatore e, nel tuo caso, non ce n’è alcuno. Meglio usare collegamenti veri:
        `\documentclass{article}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage{lipsum}
        \usepackage{hyperref}

        \begin{document}

        Vedi p.~\hyperlink{prova}{\pageref*{prova}}

        \lipsum

        \hypertarget{prova}{Il label è qui.}\label{prova}

        \end{document}`
        Ciao
        Enrico

      • #83999
        Alb
          Up
          0
          Down
          ::


          OK. Grazie
          Alberto

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top