label testuali

  • Creatore
    Topic
  • #18039
    Up
    0
    Down
    ::


    ciao a tutti, mi interessarebbe fare una cosa del genere:

    `\section{Ciao come stai}\label[Valore etichetta a Ciao come stai]{ciao_come_stai}

    \ref{ciao_come_stai}
    \ref[valore]{ciao_come_stai}`

    nel primo caso si comporta normalmente mentre nel secondo mi ritorna il testo indicato come valore dell’etichetta!

    Esiste qualcosa di già fatto per questo lavoro o devo ridefinire il comando label?

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #18040
      Up
      0
      Down
      ::

      ciao a tutti, mi interessarebbe fare una cosa del genere:

      `\section{Ciao come stai}\label[Valore etichetta a Ciao come stai]{ciao_come_stai}

      \ref{ciao_come_stai}
      \ref[valore]{ciao_come_stai}`

      nel primo caso si comporta normalmente mentre nel secondo mi ritorna il testo indicato come valore dell’etichetta!

      Esiste qualcosa di già fatto per questo lavoro o devo ridefinire il comando label?

      Be’, sia \label che \ref e parecchie altre cose per scrivere correttamente nel file .aux. Non è affatto semplice. Se trovo un po’ di tempo ci penso.

      Ciao
      Enrico

    • #18041
      Up
      0
      Down
      ::


      fondamentalmente per quello che serviva a me bastava un

      `\titleref`

      grazie comunque ciao

    • #18042
      Up
      0
      Down
      ::


      come mai il primo funziona e il secondo no?
      `
      \lowercase{ CIAO }
      \lowercase{ \titleref{titolo} }`

    • #18043
      Up
      0
      Down
      ::

      come mai il primo funziona e il secondo no?
      `
      \lowercase{ CIAO }
      \lowercase{ \titleref{titolo} }`

      \lowercase e \uppercase non funzionano proprio come ci si aspetta, perché non espandono ciò che sta fra le graffe, ma semplicemente usano le tabelle di conversione; perciò \lowercase{\titleref{TITOLO}} è come scrivere \titleref{titolo}

      Attenzione: \lowercase{\ABC{TITOLO}} è come \ABC{titolo}, solo i token “carattere” sono soggetti alla trasformazione.

      Ciò che ti serve è \lowercase\expandafter{\titleref{titolo}}. Il comando \lowercase espande i token che seguono finché trova una parentesi graffa aperta (che può essere implicita come \bgroup). Qui l’espansione di \expandafter provoca l’espansione del token dopo la graffa, quindi di \titleref. A questo punto, se \titleref{titolo} si espande a “Titolo del Capitolo”, il risultato finale dopo la conversione di \lowercase sarà “titolo del capitolo”.

      Ciao
      Enrico

    • #18044
      Up
      0
      Down
      ::


      non sembra funzionare

      `\documentclass{article}
      \usepackage{titleref}
      \begin{document}
      \section{Documento temporaneo per esperimenti}\label{titolo}
      \lowercase\expandafter{\titleref{titolo}}
      \end{document}`

    • #18045
      DMW
        Up
        0
        Down
        ::

        non sembra funzionare
        ….

        Devi rinominare \theTitleReference e usare \MakeLowercase:
        `
        \documentclass{article}
        \usepackage{titleref}
        \newcommand\reftitolo[1]{%
        \renewcommand{\theTitleReference}[2]{%
        \MakeLowercase{##2}%
        }%
        \titleref{#1}%
        }
        \begin{document}
        \section{Documento temporaneo per esperimenti}\label{titolo}
        Testo testo, \reftitolo{titolo} testo
        \end{document} `

        Se tale comportamento lo vuoi ovunque basta scrivere
        `renewcommand{\theTitleReference}[2]{\MakeLowercase{##2}`
        e usare \titleref, senza creare un nuovo comando \reftitolo.

        Ciao

        Andrea

      • #18046
        Up
        0
        Down
        ::


        perfetto grazie

      • #18047
        Up
        0
        Down
        ::

        Se tale comportamento lo vuoi ovunque basta scrivere
        `renewcommand{\theTitleReference}[2]{\MakeLowercase{##2}`
        e usare \titleref, senza creare un nuovo comando \reftitolo.

        Ciao

        Andrea

        mi trovo in difficoltà nel fare la stessa cosa ma con nameref che è compatibile con hyperref: qualche suggerimento?

      • #18048
        DMW
          Up
          0
          Down
          ::


          A parte che nella seconda parte sbagliai. Non è
          `
          renewcommand{\theTitleReference}[2]{\MakeLowercase{##2}`
          ma
          `
          \renewcommand{\theTitleReference}[2]{%
          \MakeLowercase{#2}%
          }%`

          Poi, tornando a questo secondo problema, puoi caricare i pacchetti in questo modo
          e usare \titleref che sembra funzionare anche con hyperref:
          Esempio:
          `
          \documentclass{article}
          \usepackage{nameref}
          \usepackage{titleref}
          \usepackage{hyperref}
          \renewcommand{\theTitleReference}[2]{%
          \MakeLowercase{#2}%
          }%
          \begin{document}
          \section{Documento temporaneo per esperimenti}\label{titolo}
          Testo testo, \titleref{titolo} testo \nameref{titolo} \currenttitle
          \end{document}`

          Non sembra dare problemi.

          Prova e fammi sapere

          Andrea

        • #18049
          Up
          0
          Down
          ::


          si vero… solo che io avevo optato per crearmi un comando personalizzato!

          Comunque questo ordine sembra aver funzionato ed oltretutto mi ha sistemato un altro problema con i bookmarks in pdf…

          che dire: grazie per la tempestività!

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

      Go to top