Ridefinire comando \ref per subfloat

  • Creatore
    Topic
  • #52455
    Up
    0
    Down
    ::


    Ciao a tutti,
    ho cercato in giro e sul manuale di subfig, ma non ho trovato quanto voglio realizzare. Se con il comando \ref mi riferisco a un oggetto subfloat ottengo un riferimento del tipo 1a. A me non piace tanto. Preferirei (ma ditemi pure se è una schifezza) il formato 1(a). Mi sembrava di aver visto qualcosa in giro tempo fa. Se non fosse disponibile non si potrebbe ridefinire il comando \ref?

    Grazie,
    Daniele

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #52456
      admin
      Amministratore del forum
        Up
        0
        Down
        ::

        Ciao a tutti,
        ho cercato in giro e sul manuale di subfig, ma non ho trovato quanto voglio realizzare. Se con il comando \ref mi riferisco a un oggetto subfloat ottengo un riferimento del tipo 1a. A me non piace tanto. Preferirei (ma ditemi pure se è una schifezza) il formato 1(a). Mi sembrava di aver visto qualcosa in giro tempo fa. Se non fosse disponibile non si potrebbe ridefinire il comando \ref?

        Grazie,
        Daniele

        Non so se sia un orrore tipografico. Volendo si potrebbe scrivere `\ref{fig:prova}\subref{fig:prova-a}`
        che in realtà sono due riferimenti differenti, ma uniti solo visivamente.
        Ora mi becco una bella tiratina di orecchie… 😳

        Ciao,
        ansys.

      • #52457
        admin
        Amministratore del forum
          Up
          0
          Down
          ::


          Meriti tu una tiratina di orecchie 🙂 . Sul manuale c’è scritto tutto.
          Carica il pacchetto nel modo seguente`\usepackage[listofformat=parens]{subfig}`
          e richiama l’immagine solo con `\subref{fig:prova-a}`
          Ciao,
          ansys.

        • #52458
          Up
          0
          Down
          ::


          Grazie per la segnalazione. Vorrei però evitare di perdere la possibilità di riferirmi separatamente alla sottofigura. Mi spiego meglio. Vorrei che \subfig continui a indicare una sottofigura nel modo (#), e che \ref cambi semplicemente la formattazione del suo output in #(#). Mi sembra che questa sia la soluzione più elegante.

          Devo chiedere venia in quanto il manuale di subfig riportava quanto indicato da ansys. 😳 Dopo essere diventato matto con pgfplots per una giornata, giunto a ieri sera mi sono lasciato sfuggire quell’opzione.

          Grazie e buon lavoro a tutti,
          Daniele

        • #52459
          admin
          Amministratore del forum
            Up
            0
            Down
            ::

            Grazie per la segnalazione. Vorrei però evitare di perdere la possibilità di riferirmi separatamente alla sottofigura. Mi spiego meglio. Vorrei che \subfig continui a indicare una sottofigura nel modo (#), e che \ref cambi semplicemente la formattazione del suo output in #(#). Mi sembra che questa sia la soluzione più elegante.

            Devo chiedere venia in quanto il manuale di subfig riportava quanto indicato da ansys. 😳 Dopo essere diventato matto con pgfplots per una giornata, giunto a ieri sera mi sono lasciato sfuggire quell’opzione.

            Grazie e buon lavoro a tutti,
            Daniele

            Non si capisce bene cosa vuoi. Prova a spiegarti meglio. Per richiamare una singola figura usa \ref{fig:***}, mentre per richiamare una sotto-figura usa \subref{fig:***-a} per esempio.

            Ciao,
            ansys.

          • #52460
            Up
            0
            Down
            ::


            Alla fine credo che risolverò manualmente.
            Farò comunque un esempio per far capire cosa intendevo, anche perchè credo sarebbe interessante ritoccare un pochino il pacchetto. Supponiamo di avere
            `
            ****************
            sottofigura a \label{fig:fig1-a}
            ****************

            ****************
            sottofigura b \label{fig:fig1-b}
            ****************

            Figura 1: bla bla bla
            \label{fig:fig1}
            `
            Ora, senza inserire opzioni, se inserisco “\ref{fig:fig1-a}” ottengo “1a”, se inserisco “\subref{fig:fig1-a}” ottengo “(a)”. Se inserisco l’opzione del pacchetto subfig che mi hai passato si ha:
            se inserisco “\ref{fig:fig1-a}” ottengo “1a” (non cambia nulla);
            se inserisco “\subref{fig:fig1-a}” ottengo “1(a)”.
            Il formato “1(a)” è il punto della situazione. Perchè devo sovrascrivere \subref{} quando mi sembrerebbe più logico adattare \ref{} cambiando il suo formato di output in “1(a)”? Sarà un particolare di poco conto, ma poiché \ref{} nasce già con lo scopo di dare il riferimento completo, mentre \subref{} per logica dovrebbe dare solo il riferimento “(a)”, non mi piace molto la soluzione attuale del pacchetto \subfig{}.
            Supponiamo che uno attivi l’opzione segnalata da ansys, come potrebbe poi scrivere, che ne sò… “si confronti la sottofigura (a) con la sottofigura (b)”… il comando \subref{} non esiste più!!! Abbiamo due comandi che fanno lo stesso lavoro, ma con formattazioni diverse: \ref{} e \subref{}, che danno rispettivamente “1a” e “1(a)”.

            Concordo con quanti pensino che stia cercando di spaccare il capello in quattro, e con quanti di voi pensino che non cambia molto tra (a) e 1(a), dal momento che la fatica di aggiungere 1 la fa LaTeX. Però che volete che ci faccia? Mi piacciono le soluzioni eleganti.

            Ciao,
            Daniele

          • #52461
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              È fattibile, credo, ma è un po’ complicato; per avere un’idea della problematica guarda sull’introduzione (cerca nell’indice analitico l’ultimo riferimento all’ambiente enumerate) –link qui sopra–. Lì si parla di come sono gestiti i riferimenti agli item di ambienti enumerate innestati uno dentro l’altro; ci sono definiti dei prefissi e dei modo diversi di comporre l’indice “numerico” di ogni item; probabilmente la stessa tecnica si può usare per i tuoi \ref e \subref; sono quasi sicuro di sì, ma bisogna sperimentare studiarci sopra non dieci secondi cercando di prevedere che cosa succede ad ogni mossa, un po’ come giocare a scacchi.
              Scusa se non ti do direttamente la soluzione, ma non ho mai usato subfig perché mi sono sempre risolto il problema da solo, anche se forse in modo meno professionale, e sono restio a studiarmi l’intero pacchetto. 🙁

            • #52462
              Up
              0
              Down
              ::

              Alla fine credo che risolverò manualmente.
              Farò comunque un esempio per far capire cosa intendevo, anche perchè credo sarebbe interessante ritoccare un pochino il pacchetto. Supponiamo di avere
              `
              ****************
              sottofigura a \label{fig:fig1-a}
              ****************

              ****************
              sottofigura b \label{fig:fig1-b}
              ****************

              Figura 1: bla bla bla
              \label{fig:fig1}
              `
              Ora, senza inserire opzioni, se inserisco “\ref{fig:fig1-a}” ottengo “1a”, se inserisco “\subref{fig:fig1-a}” ottengo “(a)”. Se inserisco l’opzione del pacchetto subfig che mi hai passato si ha:
              se inserisco “\ref{fig:fig1-a}” ottengo “1a” (non cambia nulla);
              se inserisco “\subref{fig:fig1-a}” ottengo “1(a)”.
              Il formato “1(a)” è il punto della situazione. Perchè devo sovrascrivere \subref{} quando mi sembrerebbe più logico adattare \ref{} cambiando il suo formato di output in “1(a)”? Sarà un particolare di poco conto, ma poiché \ref{} nasce già con lo scopo di dare il riferimento completo, mentre \subref{} per logica dovrebbe dare solo il riferimento “(a)”, non mi piace molto la soluzione attuale del pacchetto \subfig{}.
              Supponiamo che uno attivi l’opzione segnalata da ansys, come potrebbe poi scrivere, che ne sò… “si confronti la sottofigura (a) con la sottofigura (b)”… il comando \subref{} non esiste più!!! Abbiamo due comandi che fanno lo stesso lavoro, ma con formattazioni diverse: \ref{} e \subref{}, che danno rispettivamente “1a” e “1(a)”.

              Concordo con quanti pensino che stia cercando di spaccare il capello in quattro, e con quanti di voi pensino che non cambia molto tra (a) e 1(a), dal momento che la fatica di aggiungere 1 la fa LaTeX. Però che volete che ci faccia? Mi piacciono le soluzioni eleganti.

              Ciao,
              Daniele

              `\documentclass[a4paper]{article}
              \usepackage{subfig}
              \renewcommand\thesubfigure{(\alph{subfigure})}
              \captionsetup[subfigure]{labelformat=simple}
              \begin{document}
              \begin{figure}
              \subfloat[xyz][xyz\label{x}]{\fbox{XYZ}}
              \subfloat[abc][abc\label{a}]{\fbox{ABC}}
              \caption{Dida}\label{d}
              \end{figure}

              \ref{d}

              \ref{x}—\subref*{x}

              \ref{a}—\subref*{a}

              \end{document}`
              Ciao
              Enrico

            • #52463
              Up
              0
              Down
              ::


              Grazie mille Enrico. E grazie anche a Claudio, appena riuscirò a ritagliarmi una finestra di tempo approfondirò la cosa.

              Ciao,
              Daniele

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

          Go to top