Newsgroup: it.comp.software.tex
Titolo: Problemi hyperref e \ref

Salve a tutti :)!
Sto imparando ad usare LaTeX e, bene o male, riesco ad arrangiarmi 
grazie anche alle ottime dispense che trovo online e all'aiuto dei vari 
forum e newsgroup :).
Da qualche giorno, però, ho un problema che non riesco a risolvere pur 
avendo cercato attentamente. Se il problema dovesse essere già stato 
affrontato e non l'ho visto, vi prego di scusarmi :(!
Sto creando tramite Texcniccenter un documento /article/, tramite 
pdflatex e sto usando i seguenti pacchetti:
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{hyperref}
L'uso di *hyperref* nasce dall'esigenza di modificare le informazioni 
del pdf tramite le  opzioni pdftitle, pdfsubject, pdfkeywords, 
pdfauthor, ecc..
Tutto andava per il meglio quando poi, inserendo un'immagine, è nata 
l'esigenza di creare una didascalia con /\caption/ e /\label/ ottenendo 
"Figura 1: didascalia" e poi richiamarla tramite l'apposito /\ref/ nel 
momento in cui ne avevo bisogno.
Quando vado a compilare il documento, nel punto in cui inserisco il 
/\ref/ vedo al posto di: "come vediamo nella Figura 1" i punti 
interrogativi *??* :(.
Avendo visto su qualche documentazione che spesso è necessario 
compilare il documento due volte, ho provato a farlo ma:
- la prima volta mi da "3 errors e 1 warning"
- la seconda volta mi da: "0 errors e 4 warnings" e, aprendo il 
documento, vedo i famosi punti interrogativi.
Ho provato a togliere il pacchetto /hyperref/ e /\hypersetup/ con le 
sue opzioni e, ovviamente, funziona a dovere.
Devo abbandonare l'idea di usare /hyperref/ per lo scopo che mi sono 
prefissata oppure sbaglio qualcosa (sicuramente si :()?
Vi ringrazio anticipatamente ;).
-- 
Il verbo leggere non sopporta l'imperativo.
(G. Rodari)

mimi <mim...@gmail.invalid> scrive:

Cerca di produrre un esempio minimale che riproduca il problema.
Se scrivo il seguente documento:
====
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{graphicx}
%\usepackage{epsfig}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\caption{AAA}\label{pippo}
\end{figure}
\ref{pippo}
\end{document}
====
la compilazione funziona senza alcun problema e dà il riferimento
corretto.
Non c'entra nulla con il problema, ma non caricare epsfig, è un
pacchetto che esiste solo per garantire la compatibilità di vecchi
documenti. Usa la sintassi di graphicx, invece.
Ciao
Enrico


Agli ordini ;)!!
Ti ringrazio di avermelo fatto notare perché era rimasto lì dopo alcune 
prove fatte con alcuni file .eps che però ho deciso di non usare: la 
sua presenza era del tutto inopportuna :)!
Grazie ancora,
Mimi.


mimi <mim...@gmail.invalid> scrive:

Posso ipotizzare che ci sia un problema di \label diversa dalla
\ref corrispondente. Se guardi il .log dovresti scoprirlo.
Ciao
Enrico

 \ref corrispondente. Se guardi il .log dovresti scoprirlo.
Sono giorni che non faccio altro che guardare questo benedetto .log per 
cercare di capire dove è l'errore ma non lo trovo :(...
Nel log ho l'errore:
===
! File ended while scanning use of \Hy@setref@link.
<inserted text>
                \par
<*> .../Progetto*in*latex/prova.tex
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
! Emergency stop.
<*> .../Progetto*in*latex/prova.tex
*** (job aborted, no legal \end found)
===
e proprio qui non capisco: sto cercando ovunque questa parentesi 
mancante ma non la trovo :( :( non credo che ne verro' mai a capo :(!
Abbandonerò il LaTeX e mi rimettero' su Word :D (scherzo eh!!!, ciò che 
ho detto è un vero e proprio sacrilegio :D)!!
Seriamente: continuerò ad annaspare invano cercando l'errore -_-' !!


mimi <mim...@gmail.invalid> scrive:

Puoi riportare il testo della \caption esattamente com'è?
Ciao
Enrico


Certo!!
Ho provato in tre modi.
Il primo:
===
\caption{Schema del pre-ispessitore}
\label{preisp}
===
Il secondo:
===
\caption{Schema del pre-ispessitore}
\label{fig:preisp}
===
Il terzo:
===
\caption{Schema del pre-ispessitore\label{preisp}}
===
ma in nessuno dei tre modi funziona :(!
Sbaglio sicuramente qualcosa (anche se, facendo così in altri documenti 
va :O)!!


 va :O)!!
Divide et impera: dividi il documento in due e guarda in quale metà
si presenta un problema. Poi ripeti fino a isolare l'errore, che
di sicuro non dipende da quella \caption.
Ciao
Enrico


Ho seguito il tuo consiglio; ho isolato circa a metà il documento e ne 
ho ricavato due documenti figli; dopo la compilazione, vedo che i due 
documenti figli, sono costretta a dire *purtroppo* , funzionano 
correttamente :O!
Adesso sono ritornata sul documento principale e, ricompilando, ottengo 
1error e 1 warning; nel log vedo:
====
(\end occurred when \ifx on line 184 was incomplete)
====
Se vediamo le seguenti righe di codice:
===
\subsection{Schema riassuntivo}
\begin{figure}
\begin{center}
\includegraphics[scale=0.5]{preisp}
\caption{Schema del nostro pre-ispessitore}\label{isp}
\end{center}
\end{figure}
La figura\ref{isp} rappresenta il nostro pre-ispessitore.
\section{Dimensionamento del digestore anaerobico}
===
alla linea 184 c'è proprio il \ref :O!!!
Ora, ho cercato su google e ho trovato che il comando \ifx riguarda 
qualche errore nell'uso di \if nel documento, che però io non ho mai 
usato!!!
C'è qualcosa di diabolico in questo documento da me creato :@!!!
Sto per mollare -_- ...


 La figura\ref{isp} rappresenta il nostro pre-ispessitore.
La figura~\ref{isp}
Quest'ultimo è solo "cosmetico", tuttavia se hai scordato le opzioni
float tra [ ], magari al compilatore non piace.
Ciao,
Stefano
PS: auctex  mi suggerice di usare \centering invece di
\begin{center}... \end{center}, ma non credo che questo possa avere
qualche influenza.

 qualche influenza.
Ti ringrazio per l'interessamento ma, nonostante abbia provato i tuoi 
suggerimenti, nulla da fare :( qualsiasi cosa io faccia ï¿œ tutto 
inutile!
Al compilatore non piace la riga:
===
La figura~\ref{isp} rappresenta il nostro pre-ispessitore.
===
mi dice che manca un \end :O
Ormai non so piï¿œ a che santo votarmi :(!!
Non ï¿œ che c'ï¿œ qualche opzione nascosta di hyperref??
No, ripensandoci no...con un nuovo documento minimo funziona 
perfettamente..mah, non so piï¿œ che dire..grazie davvero dell'aiuto!
:(


 Sto per mollare -_- ...
Il messaggio "\end occurred ..." significa che TeX ÔøΩ arrivato in fondo
al documento senza poter terminare qualcosa, nel caso specifico un
condizionale. ÔøΩ chiaro che tu non hai mai usato \ifx, ma le macro che
chiami lo usano eccome.
Tuttavia il riferimento alla riga 184 potrebbe non essere relativo
al file incriminato, ma a un altro che TeX sta leggendo in quel
momento.
Difficile fare una diagnosi senza vedere il .log; se ÔøΩ troppo lungo,
puoi anche mandarmelo all'indirizzo che vedi in questo messaggio.
Ciao
Enrico