Personalizzare Riferimenti a style creato

  • Creatore
    Topic
  • #85803
    Up
    0
    Down
    ::


    Buon giorno a tutti,
    ho creato un nuovo stile personale, relativamente ad un ambiente:

    `\documentclass{article}

    \usepackage{caption}
    \newcounter{countCode}
    \DeclareCaptionType{CaptionCode}
    \newenvironment{captionCode}[2]{%
    \captionsetup{type=CaptionCode}
    \showcaptionsetup{CaptionCode}
    \refstepcounter{countCode}%
    \label{#1}%
    \gdef\CaptionCodecaption{\caption{ \footnotesize \textit #2}}
    }{%
    \CaptionCodecaption%
    \addvspace{0.2cm}
    }

    \begin{document}

    \begin{captionCode}{testo:test}{Testo di prova della didascalia}
    supercalifragilistichespiralidoso,\\
    anche se ti sembra che abbia un suono spaventoso….
    \end{captionCode}

    e ora scrivo il riferimento: \ref{testo:test}

    \end{document}`

    Tutto funziona, ma vorrei sapere se è possibile fare in modo che il comando `\ref{ testo:test }` visualizzi un risultato del tipo “captionCode numero: 1” e non solamente il numero “1”.
    Qualcuno ha qualche suggerimento?

    Ringrazio in anticipo per il tempo dedicato alla lettura!

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


      Il problema non è per nulla chiaro. Questo è una soluzione in base a quello che ho capito io:

      `\documentclass{article}

      \usepackage{caption}
      \newcounter{countCode}
      \DeclareCaptionType{CaptionCode}
      \newenvironment{captionCode}[2]{%
      \captionsetup{type=CaptionCode}
      \showcaptionsetup{CaptionCode}
      \refstepcounter{countCode}%
      \label{#1}%
      \gdef\CaptionCodecaption{\caption{%
      \footnotesize \textit #2}}
      }{%
      \CaptionCodecaption%
      \addvspace{0.2cm}
      }

      \newcommand{\ccref}[1]{captionCode numero~\ref{#1}}

      \begin{document}
      \begin{captionCode}{testo:test}{Testo di prova della didascalia}
      supercalifragilistichespiralidoso,
      anche se ti sembra che abbia un suono spaventoso….
      \end{captionCode}

      \ccref{testo:test}

      \end{document}
      `

      La prossima volta invia un esempio minimo compilabile e spigati un po’ meglio

      Ciao
      Ivan

    • #85805
      Up
      0
      Down
      ::


      Grazie della mano Ivan: effettivamente avevo pubblicato il codice in malo modo, e ho provato a modificarlo in modo da renderlo più chiaro in caso altri utilizzatori latex lo visualizzino. In futuro scriverò conformemente ai tuoi suggerimenti 😳 .

      La soluzione è ottima, ma secondo te c’é un modo per automatizzare questa operazione senza definire un nuovo comando ma utilizzando il classico, `\ref{testo:test}`Ad esempio col pacchetto cite inserendo nel preambolo il codice

      `
      \renewcommand{\citeleft}{\textcolor{red}{[}}
      \renewcommand{\citeright}{\textcolor{red}{]}}
      `

      in automatico scrivo i numeri dei riferimenti bibliografici dentro parentesi quadre di colore rosso.
      Magari anche relativamente al caption CaptionCode creato viene a essere creato automaticamente qualche comando da ridefinire, senza dover utilizzare il `\newcommand{\ccref}[1]{captionCode numero~\ref{#1}}`

      In ogni caso, grazie mille dell’aiuto!

    • #85806
      Up
      0
      Down
      ::

      keltron” post=85239Buon giorno a tutti,
      ho creato un nuovo stile personale, relativamente ad un ambiente:
      `

      \documentclass{article}

      \usepackage{caption}
      \newcounter{countCode}
      \DeclareCaptionType{CaptionCode}
      \newenvironment{captionCode}[2]{%
      \captionsetup{type=CaptionCode}
      \showcaptionsetup{CaptionCode}
      \refstepcounter{countCode}%
      \label{#1}%
      \gdef\CaptionCodecaption{\caption{ \footnotesize \textit #2}}
      }{%
      \CaptionCodecaption%
      \addvspace{0.2cm}
      }

      \begin{document}

      \begin{captionCode}{testo:test}{Testo di prova della didascalia}
      supercalifragilistichespiralidoso,\\
      anche se ti sembra che abbia un suono spaventoso….
      \end{captionCode}

      e ora scrivo il riferimento: \ref{testo:test}

      \end{document}
      [\code]
      [\code]
      Tutto funziona, ma vorrei sapere se è possibile fare in modo che il comando [code]\ref{ testo:test }` visualizzi un risultato del tipo “captionCode numoero: 1” e non solamente il numero “1”.
      Qualcuno ha qualche suggerimento?

      Ringrazio in anticipo per il tempo dedicato alla lettura!

    • #85807
      Up
      0
      Down
      ::


      Si può naturalmente ridefinire \ref, ma se poi devi riferirti a una sezione o a un capitolo che comando usi?
      La soluzione migliore, secondo me, è quella che ti ho indicato. Se però sei sicuro che userai \ref solo per riferimenti
      di quella forma allora puoi ridefinirlo così:
      `\makeatletter
      \def\ref#1{CaptionCode numero~\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
      \makeatother
      `

      oppure:
      `\let\oldref\ref
      \renewcommand{\ref}[1]{captionCode numero~\oldref{#1}}
      `

      In questo modo \oldref si comporta come \ref non ridefinito.

      Non vedo un grande guadagno; piuttosto un limite.

      Ciao
      Ivan

    • #85808
      Up
      0
      Down
      ::

      Si può naturalmente ridefinire \ref, ma se poi devi riferirti a una sezione o a un capitolo che comando usi?

      Era proprio il mio dilemma… ma mi chiedevo se fosse possibile farlo senza ridefinire \ref, cosa che evidentemente non si può fare.
      Pertanto utilizzerò con piacere il tuo suggerimento.

      Grazie mille della disponibilità, e buona giornata!

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

Go to top