Dubbio \texorpdfstring

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


      Ciao a tutti. Sto cercando un esempio calzante che mostri l’utilità del comando \texorpdfstring (con cui si possono risolvere alcuni potenziali problemi nei segnalibri generati dal pacchetto hyperref). Ho cercato (fra l’altro) sul forum e sulla versione inglese della Not So short, ma con mia sorpresa mi sono accorto che molte delle situazioni presentate non mi danno in realtà alcun problema, nel senso che le cose funzionano benissimo senza usare \texorpdfstring.
      `\documentclass{article}
      \usepackage{hyperref}
      \usepackage{lipsum}
      \begin{document}
      \tableofcontents

      \section{\texorpdfstring{$E=mc^2$}{E=mc^2}}
      \section{$E=mc^2$}

      \section{La variabile \texorpdfstring{$a$}{a}}
      \section{La variabile $a$}

      \section{Finito $\cup$ numerabile}
      \section{Finito \texorpdfstring{$\cup$}{U} numerabile}

      \end{document}
      `
      Il primo dei titoli di paragrafo è quello presentato nella Not So Short. A me il codice
      `\section{\texorpdfstring{$E=mc^2$}{E=mc^2}}`
      dà lo stesso risultato del semplice
      `\section{$E=mc^2$}`
      I segnalibri vengono correttamente visualizzati in entrambi i casi.

      Stessa cosa per la seconda coppia di paragrafi. Invece nella terza coppia appare il problema: se non uso \texorpdfstring, nel segnalibro non viene stampato il carattere $\cup$.

      Che succede?

      Uso Skim (ma lo stesso capita con Anteprima e con Acrobat) su Mac OS X Tiger.

      Grazie mille,
      L.

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #24718
        Up
        0
        Down
        ::


        Se guardi nel log noterai numerosi warning in corrispondenza dei caratteri non ammessi nei bookmark, ad esempio:
        `Package hyperref Warning: Token not allowed in a PDFDocEncoded string,
        (hyperref) removing `math shift' on input line 8.
        `
        Un oscura voce del changelog (relativa alla versione 6.75a) secondo me fa riferimento proprio a questo comportamento:

        Protection of strings that are written as PS/PDF strings.

        La soppressione dei caratteri non ammessi fa sì che certe formule restino relativamente comprensibili (come $E = mc^2$ che diventa E = mc2) mentre quelle che contengono simboli (oltre a $\cup$ spariscono anche tutte le lettere greche) possono diventare piuttosto ostiche.
        L’esempio della Not So Short è sbagliato infatti se compili un documento che contiene
        `\section{\texorpdfstring{$E=mc^2$}{E=mc^2}}`
        ottieni comunque un warning relativo all’uso del carattere ^

        Ciao
        Matteo

      • #24719
        Up
        0
        Down
        ::


        Ho fatto una rapida prova con una vecchia versione di hyperref (6.74m) e il comportamento è esattamente lo stesso, quindi la voce nel changelog non è quello che pensavo, per il resto confermo ciò che ho scritto.

        Ciao
        Matteo

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

          L’esempio della Not So Short è sbagliato infatti se compili un documento che contiene
          `\section{\texorpdfstring{$E=mc^2$}{E=mc^2}}`
          ottieni comunque un warning relativo all’uso del carattere ^.

          Anche togliendo quel ^ il “problema” (nel senso paradossale che… non c’è nessun problema!) resta. Infatti i codici
          `\section{$E=mc^2$}`
          e
          `\section{\texorpdfstring{$E=mc^2$}{E=mc2}}`
          danno lo stesso risultato.

          …spariscono anche tutte le lettere greche…

          Proprio così. Grazie a questa tua osservazione, ho cambiato esempio:

          Per esempio:
          `\section{La funzione \texorpdfstring{$\Gamma$}{Gamma}}
          `trasforma \section{La funzione $\Gamma$} in “La funzione Gamma” nell’area del segnalibro.

          Mi sembra più appropriato!

          Grazie ancora,
          L.

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

      Go to top