- Questo topic ha 16 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 13 anni fa da
Marco.
-
CreatoreTopic
-
12 Agosto 2013 alle 2:19 #88017
-
CreatoreTopic
-
AutoreRisposte
-
-
12 Agosto 2013 alle 15:22 #88018::
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
-
12 Agosto 2013 alle 15:55 #88019::
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
-
13 Agosto 2013 alle 3:57 #88020::
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.
-
13 Agosto 2013 alle 4:25 #88021::
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.
-
13 Agosto 2013 alle 11:07 #88022::
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
-
13 Agosto 2013 alle 17:27 #88023::
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
EnricoGrazie 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.
-
13 Agosto 2013 alle 17:38 #88024::
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
-
13 Agosto 2013 alle 17:44 #88025
-
13 Agosto 2013 alle 17:48 #88026
-
14 Agosto 2013 alle 4:08 #88027::
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
-
14 Agosto 2013 alle 4:12 #88028::
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]{}`
LorenzoMa 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
-
14 Agosto 2013 alle 19:48 #88029::
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).
-
15 Agosto 2013 alle 15:48 #88030::
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 😀
-
16 Agosto 2013 alle 4:15 #88031::
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.
-
17 Agosto 2013 alle 11:15 #88032::
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).
-
17 Agosto 2013 alle 11:19 #88033::
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. 😀
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.