List of figure, inserimento nome file immagine.

  • Questo topic ha 16 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 13 anni fa da Marco.
  • Creatore
    Topic
  • #88017
    Up
    0
    Down
    ::


    Ciao a tutti,

    dovrei inserire il nome del file immagine associato a ciascuna Figure nell’elenco delle figure, esiste un modo per farlo automaticamente?
    Senza dover copiare il nome nella short caption, perchè francamente mi sembra un modo poco elegante per farlo
    Grazie.

Visualizzazione 15 filoni di risposte
  • Autore
    Risposte
    • #88018
      GKT
      Partecipante
        Up
        0
        Down
        ::

        Xini” post=87463Ciao a tutti,

        dovrei inserire il nome del file immagine associato a ciascuna Figure nell’elenco delle figure, esiste un modo per farlo automaticamente?
        Senza dover copiare il nome nella short caption, perchè francamente mi sembra un modo poco elegante per farlo
        Grazie.

        Benvenuto nel forum!

        Carica il pacchetto graphicx. Inserisci nel preambolo queste righe (fonte): `\let\saveinclude \includegraphics
        \def\includegraphics#1{\def\filename{#1}\saveinclude{#1}}`
        Per ogni figura, componi la didascalia così:`\caption[\filename]{}`
        Lorenzo

      • #88019
        Up
        0
        Down
        ::

        Xini” post=87463Ciao a tutti,

        dovrei inserire il nome del file immagine associato a ciascuna Figure nell’elenco delle figure, esiste un modo per farlo automaticamente?
        Senza dover copiare il nome nella short caption, perchè francamente mi sembra un modo poco elegante per farlo
        Grazie.

        Non capisco a che serva. Puoi dare qualche informazione in più? I file grafici stanno tutti nella stessa cartella del documento LaTeX? Hai anche la didascalia? Vuoi anche la didascalia nell’elenco delle figure?

        Ciao
        Enrico

      • #88020
        Up
        0
        Down
        ::


        Sto scrivendo la tesi di laurea e come regola imposta dal relatore devo indicare il file da cui ho preso ciascuna immagine. Sì i grafici li ho inseriti in una cartella a parte nella cartella principale dove compilo. Infatti oltre al nome del file devo inserire anche la didascalia che descriva cosa rappresenta l’immagine, per ora utilizzo la short sull’elenco delle figure e la didascalia estesa nel testo.

      • #88021
        Up
        0
        Down
        ::


        Grazie del benvenuto e della risposta,
        putroppo però a fare come dici non compila. Mi restituisce il seguente errore “Paragraph ended before \Gin@iii was complete” assieme ad altri del tipo “Argument of \Gin@iii has an extra } …ics[width=0.5\textwidth]{conc_paper.pdf}}”. Sia a inserire \filename nella didascalia che a non inserirlo, quindi l’errore dovrebbe essere nel comando nel preambolo.
        Il comando \saveinclude inoltre non viene riconosciuto (scrivo e compilo con Texstudio, come distribuzione uso MikTex 2.9), devo caricare altri pacchetti relativi alle figure oltre a graphicx, caption e subfig?
        Altra cosa, eventualmente sarebbe possibile utilizzare i riferimenti che usa \listoffigure, quindi numerazione dell’immagine, didascalia breve e posizione nel testo, oltre al nome del file, per costruire una tabella dove io possa inserire anche il riferimento al file di simulazione dal quale ho estratto le immagini?
        Grazie dell’aiuto.

      • #88022
        Up
        0
        Down
        ::

        Xini” post=87477Sto scrivendo la tesi di laurea e come regola imposta dal relatore devo indicare il file da cui ho preso ciascuna immagine. Sì i grafici li ho inseriti in una cartella a parte nella cartella principale dove compilo. Infatti oltre al nome del file devo inserire anche la didascalia che descriva cosa rappresenta l’immagine, per ora utilizzo la short sull’elenco delle figure e la didascalia estesa nel testo.

        Con il pacchetto caption e qualche spintarella ci si riesce:
        `\documentclass[a4paper]{article}

        % —- Parte importante —
        \usepackage{etoolbox}
        \usepackage{caption}
        \DeclareCaptionTextFormat{showfilename}{#1\ (File:~\texttt{\thegraphicfilename})}

        \makeatletter
        \catcode`#=12
        \newcommand{\patchcaptionaddcontentsline}{%
        \patchcmd{\caption@addcontentsline}
        {{#2}\endgroup}
        {{#2\ (File:~\texttt{\thegraphicfilename})}\endgroup}
        {}{}%
        }
        \catcode`#=6
        \makeatother

        \newenvironment{xinifigure}[2][htp]
        {\captionsetup[figure]{textformat=showfilename}%
        \patchcaptionaddcontentsline
        \begin{figure}[#1]
        \def\thegraphicfilename{#2}%
        \centering}
        {\end{figure}}

        \newcommand{\nameincludegraphics}[2][]{%
        \includegraphics[#1]{#2/\thegraphicfilename}%
        }
        % —- Fine —

        \usepackage{graphicx}

        \usepackage{kantlipsum}

        \begin{document}
        \listoffigures

        \kant[1-2]

        \begin{xinifigure}{ws-aa.pdf}
        \nameincludegraphics[height=3cm]{ws-aa}
        \caption{This is the caption}
        \end{xinifigure}

        \kant[3]

        \end{document}`

        Ciao
        Enrico

      • #88023
        Up
        0
        Down
        ::

        egreg9″ post=87491

        Sto scrivendo la tesi di laurea e come regola imposta dal relatore devo indicare il file da cui ho preso ciascuna immagine. Sì i grafici li ho inseriti in una cartella a parte nella cartella principale dove compilo. Infatti oltre al nome del file devo inserire anche la didascalia che descriva cosa rappresenta l’immagine, per ora utilizzo la short sull’elenco delle figure e la didascalia estesa nel testo.

        Con il pacchetto caption e qualche spintarella ci si riesce:
        `\documentclass[a4paper]{article}

        % —- Parte importante —
        \usepackage{etoolbox}
        \usepackage{caption}
        \DeclareCaptionTextFormat{showfilename}{#1\ (File:~\texttt{\thegraphicfilename})}

        \makeatletter
        \catcode`#=12
        \newcommand{\patchcaptionaddcontentsline}{%
        \patchcmd{\caption@addcontentsline}
        {{#2}\endgroup}
        {{#2\ (File:~\texttt{\thegraphicfilename})}\endgroup}
        {}{}%
        }
        \catcode`#=6
        \makeatother

        \newenvironment{xinifigure}[2][htp]
        {\captionsetup[figure]{textformat=showfilename}%
        \patchcaptionaddcontentsline
        \begin{figure}[#1]
        \def\thegraphicfilename{#2}%
        \centering}
        {\end{figure}}

        \newcommand{\nameincludegraphics}[2][]{%
        \includegraphics[#1]{#2/\thegraphicfilename}%
        }
        % —- Fine —

        \usepackage{graphicx}

        \usepackage{kantlipsum}

        \begin{document}
        \listoffigures

        \kant[1-2]

        \begin{xinifigure}{ws-aa.pdf}
        \nameincludegraphics[height=3cm]{ws-aa}
        \caption{This is the caption}
        \end{xinifigure}

        \kant[3]

        \end{document}`

        Ciao
        Enrico

        Grazie della risposta, a questo punto però mi conviene semplicemente copiare il nome del file nella short caption, altrimenti mi tocca cambiare tutti gli ambienti figure e non vorrei che ciò causasse problemi con le numerazioni delle immagini e con i riferimenti.

      • #88024
        Up
        0
        Down
        ::

        Xini” post=87494Grazie della risposta, a questo punto però mi conviene semplicemente copiare il nome del file nella short caption, altrimenti mi tocca cambiare tutti gli ambienti figure e non vorrei che ciò causasse problemi con le numerazioni delle immagini e con i riferimenti.

        Perché mai dovrebbe creare problemi con la numerazione e i riferimenti?

        Quando il tuo relatore ti dirà che i nomi dei file non vanno messi (sta’ pur sicuro che succederà), ringrazierai di aver usato un ambiente diverso, perché solo modificandone la definizione otterrai quello che desideri.

        Ciao
        Enrico

      • #88025
        Up
        0
        Down
        ::


        Ok allora provo.

      • #88026
        Up
        0
        Down
        ::


        Un’altra cosa: ma devo inserire il nome dell’immagine dopo \begin{xinifigure}?
        Posso editare anche il \listoffigure e fargli fare la tabella come ho scritto alcuni post fa?
        Grazie.

        Raffaele

      • #88027
        Up
        0
        Down
        ::


        Non funziona, o meglio funziona nell’uso di immagini singole (il nome del file deve essere riportato solo dopo \begin{xinifigure} e non in \nameincludegraphics) ma poi con le sottofigure non so come fare. Inoltre vedo il nome del file anche nella didascalia lunga (ho provato a cambiare la posizione di \thegraphicfilename in \newcommand{\patchcaptionaddcontentsline}{\patchcmd{\caption@addcontentsline} ma mi lascia lo stesso il nome sia nella short caption che nella long caption.
        Parlando con il Relatore ho saputo che basta aver la possibilità di vedere il nome del file sull’immagine e non serve nella lista delle figure, in cui invece devo riportare i riferimenti ai file utilizzati per la creazione dei grafici. Ho aperto una nuova discussione perchè non riesco a far visualizzare il nome del file sovraimpresso all’immagine.

        Raffaele

      • #88028
        Up
        0
        Down
        ::

        GKT” post=87472

        Ciao a tutti,

        dovrei inserire il nome del file immagine associato a ciascuna Figure nell’elenco delle figure, esiste un modo per farlo automaticamente?
        Senza dover copiare il nome nella short caption, perchè francamente mi sembra un modo poco elegante per farlo
        Grazie.

        Benvenuto nel forum!

        Carica il pacchetto graphicx. Inserisci nel preambolo queste righe (fonte): `\let\saveinclude \includegraphics
        \def\includegraphics#1{\def\filename{#1}\saveinclude{#1}}`
        Per ogni figura, componi la didascalia così:`\caption[\filename]{}`
        Lorenzo

        Ma per poter usare \saveinclude devo caricare qualche pacchetto particolare?
        Perchè oltre a unrecognized command quando evidenzio \saveinclude , compilando il file mi dà il seguente errore: Paragraph ended before \Gin@iii was complete

      • #88029
        Up
        0
        Down
        ::


        Il problema del codice che ti hanno passato, da quello che leggo sul sito inglese e da quel poco che capisco :D, e che ridefinisce il comando \includegraphics con un solo comando obbligatorio, eliminando il comando facoltativo. Modificando di poco il codice proposto ottengo
        `
        \let\saveinclude\includegraphics
        \def\includegraphics[#1]#2{\def\filename{{\ttfamily#2 }}\saveinclude[#1]{#2}
        `
        che non mi dà alcun errore permettendomi di utilizzare le opzioni facoltative. Prova a vedere se funziona.

        Il comando \saveinclude non necessita alcun pacchetto perché lo stai definendo proprio tu. Potresti anche chiamarlo \pippo, il risultato non cambia. Utilizzando \let passi al definizione di \includegraphics a \saveinclude permettendoti di ridefinirlo. Se lo ridefinissi direttamente con \def\includegraphics#1{\includegraphics{#1}} o forme simili ti darebbe un errore errore (il perché cercatelo nelle guide dove spiegano il codice di basso livello 😉 se ti interessano). In questo modo ridefinisci \includegraphics partendo dallo stesso comando, aggiungendoci quello che ti serve (ossia nel tuo caso estrapoli il nome del file e lo stampi nella caption o dove ti serve).

      • #88030
        Up
        0
        Down
        ::


        Devo correggere un errore nel codice precedente. Mi sono accorto che non funziona se elimini le parentesi quadre dell’argomento facoltativo. Scrivendolo in questa forma, invece, funziona sia con argomenti facoltativi che senza.
        `
        \newcommand{\saveinclude}{}
        \let\saveinclude\includegraphics
        \renewcommand{\includegraphics}[2][]{\def\filename{{\ttfamily#2 }}\saveinclude[#1]{#2}}
        `
        Spero che questo codice non ti dia errori 😀

      • #88031
        Up
        0
        Down
        ::

        skevin93″ post=87524Devo correggere un errore nel codice precedente. Mi sono accorto che non funziona se elimini le parentesi quadre dell’argomento facoltativo. Scrivendolo in questa forma, invece, funziona sia con argomenti facoltativi che senza.
        `
        \newcommand{\saveinclude}{}
        \let\saveinclude\includegraphics
        \renewcommand{\includegraphics}[2][]{\def\filename{{\ttfamily#2 }}\saveinclude[#1]{#2}}
        `
        Spero che questo codice non ti dia errori 😀

        Intanto grazie dell’aiuto,
        il codice funziona per le immagini singole ma quando lo uso in combinazione con subfloat non riesco a compilare, il che era anche abbastanza prevedibile in quanto passo a \filename un nome ciascuna volta che richiamo \includegraphics e con le sottofigure lo chiamo più di una volta prima della didascalia. Esiste un modo per passare più di un nome a filename filename e farli inserire nella didascalia? Grazie ancora comunque.

      • #88032
        Up
        0
        Down
        ::


        Ho provato con l’ambiente subfig e il comando subfloat a compilare e dà errore anche a me (dice che \filename non è definito). L’errore si correggere sostituendo il comando \def con \gdef che rende la definizione globale. Così scritto però, viene stampato solo il nome dell’ultimo file che hai aggiunto. Non riesco ad ottenere niente che inglobi più nomi (ogni nuovo comando \includegraphics il comando \filename si definisce nuovamente con il nuovo valore).

      • #88033
        Up
        0
        Down
        ::


        Il comando che ti ho passato, messo nel comando \subfloat dà errore anche a me (dice che \filename non è definito). Si corregge riscrivendo \def come \gdef rendendo la definizione globale. Ma anche così, persiste il problema che viene stampato solo il nome dell’ultimo file caricato. Non so proprio come aiutarti. 😀

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

    Go to top