- Questo topic ha 15 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 7 mesi fa da
rici80.
-
CreatoreTopic
-
20 Dicembre 2010 alle 0:14 #53864::
Ciao a tutti…. nuovo problema…..
`
\begin{program}[!ht] \small
\begin{verbatim}#include
int main()
{
……
return 0;
}
\end{verbatim}
\caption{Dimensioni dei tipi in memoria.}
\label{prog-ampiezza-puntatori}
\end{program}
`
Ma come mai il \ref{} punta alla pagina 1???Grazie in anticipo e buone feste!
Ciaophantomsection risolve il problema…
`
\begin{program}[!h]
\caption{Hello C.}
\phantomsection
\small
\begin{verbatim}
#includeint main()
{
printf(“Hello C.\n”);
return 0;
}
\end{verbatim}
\label{hello-c}
\end{program}
`
-
CreatoreTopic
-
AutoreRisposte
-
-
20 Dicembre 2010 alle 0:31 #53865::
Ciao a tutti…. nuovo problema…..
`
\begin{program}[!ht] \small
\begin{verbatim}#include
int main()
{
……
return 0;
}
\end{verbatim}
\caption{Dimensioni dei tipi in memoria.}
\label{prog-ampiezza-puntatori}
\end{program}
`
Ma come mai il \ref{} punta alla pagina 1???Grazie in anticipo e buone feste!
CiaoSenza sapere come definisci l’ambiente program è difficile dire qualcosa. Azzardo una definizione prima che sia stato caricato hyperref.
Ciao
Enrico
-
20 Dicembre 2010 alle 0:34 #53866
-
20 Dicembre 2010 alle 9:56 #53867::
😳 …pardon…
`\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}
`
l’invertire l’ordine di caricamento di float ed hyperref sembra non sortire alcun cambiamento…Non è l’ordine di caricamento, quanto il punto della definizione con \newfloat:
`…
\usepackage{float}
…
\usepackage{hyperref}
…
\newfloat{program}{hp}{lop}
…`
Quasi certamente il problema è lì.Ciao
Enrico
-
20 Dicembre 2010 alle 12:02 #53868::
Mmmmmm no, è già così…. ecco l’inizio del mio file:
`\documentclass[12pt,pdftex,oneside]{scrbook}\usepackage[numbers]{natbib}
\usepackage{classicthesis-ldpkg}
\usepackage[parts, pdfspacing, linedheaders, listsseparated]{classicthesis}
\usepackage{amsmath, amsfonts, amssymb, amsbsy, amsthm, fixmath}
\usepackage[italian]{babel}
\usepackage{bbm}
\usepackage{calc, cancel, colortbl}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb, fullpage, float}
\usepackage[pdftex]{graphicx}
\usepackage{hyperref}
\usepackage{ifthen}
\usepackage[utf8x]{inputenc}
\usepackage{longtable, linearA} %listings,
\usepackage{marvosym}
\usepackage{paralist}
\usepackage{setspace, skak, shorttoc}
\usepackage{textcomp, textcase, titletoc}
\usepackage{url}
\usepackage{verbatim}
\usepackage{wasysym, wrapfig}
\usepackage{xcolor}\VerbatimFootnotes %necessario x inserire verb++ in footnote
\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}`
grazie ancora
-
20 Dicembre 2010 alle 13:16 #53869::
Mmmmmm no, è già così…. ecco l’inizio del mio file:
`\documentclass[12pt,pdftex,oneside]{scrbook}\usepackage[numbers]{natbib}
\usepackage{classicthesis-ldpkg}
\usepackage[parts, pdfspacing, linedheaders, listsseparated]{classicthesis}
\usepackage{amsmath, amsfonts, amssymb, amsbsy, amsthm, fixmath}
\usepackage[italian]{babel}
\usepackage{bbm}
\usepackage{calc, cancel, colortbl}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb, fullpage, float}
\usepackage[pdftex]{graphicx}
\usepackage{hyperref}
\usepackage{ifthen}
\usepackage[utf8x]{inputenc}
\usepackage{longtable, linearA} %listings,
\usepackage{marvosym}
\usepackage{paralist}
\usepackage{setspace, skak, shorttoc}
\usepackage{textcomp, textcase, titletoc}
\usepackage{url}
\usepackage{verbatim}
\usepackage{wasysym, wrapfig}
\usepackage{xcolor}\VerbatimFootnotes %necessario x inserire verb++ in footnote
\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}`
grazie ancoraSicuro di volere tutta quella roba? Fra l’altro titletoc è incompatibile con classicthesis (che usa tocloft); graphicx, xcolor, textcase sono già inclusi; verbatim e fancyvrb fanno a pugni; fullpage è insensato; url è inutile. Ho dubbi anche su paralist, visto che le classi KoMa hanno il loro metodo per le liste.
I pacchetti fontenc, inputenc e babel vanno caricati per primi, in quest’ordine. Dopo classicthesis non va caricato niente.
Ho provato, comunque, e non ottengo alcun messaggio; se do \listof{program}{Elenco dei programmi}, ottengo il corretto riferimento.
Ciao
Enrico
-
20 Dicembre 2010 alle 15:57 #53870::
Enrico, sì, i numeri di pagina riportati nell’indice risultano corretti…. ma qualsivoglia link ipertestuale frutto di hyperref punta verso la pag.1…. lo stesso problema si ha con l’uso di \label e \ref e \pageref…. il problema è lì…
Per inciso grazie comunque per le annotazioni sui vari pacchetti…. ho alleggerito il carico… 🙂
-
20 Dicembre 2010 alle 16:07 #53871::
Enrico, sì, i numeri di pagina riportati nell’indice risultano corretti…. ma qualsivoglia link ipertestuale frutto di hyperref punta verso la pag.1…. lo stesso problema si ha con l’uso di \label e \ref e \pageref…. il problema è lì…
Per inciso grazie comunque per le annotazioni sui vari pacchetti…. ho alleggerito il carico… 🙂No, non solo il riferimento alla pagina è corretto; anche il link mi porta al posto giusto.
Prova a costruire un esempio minimo.
Ciao
Enrico
-
20 Dicembre 2010 alle 16:27 #53872::
ok, il problema perdura nei \ref e \pageref…. ecco il ‘breve’ esempio:
`\documentclass[12pt,pdftex,oneside]{scrbook} % ,draft {book}{scrreprt}{scrartcl}
\usepackage[numbers]{natbib}
\usepackage{classicthesis-ldpkg}
\usepackage[parts, pdfspacing, linedheaders, listsseparated]{classicthesis}
\usepackage{amsmath, amsfonts, amssymb, amsbsy, amsthm, fixmath}
\usepackage[italian]{babel}
\usepackage{bbm}
\usepackage{calc, cancel, colortbl}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb, fullpage, float}
\usepackage{hyperref}
\usepackage{ifthen}
\usepackage[utf8x]{inputenc}
\usepackage{longtable, linearA}
\usepackage{marvosym}
\usepackage{paralist}
\usepackage{setspace, skak, shorttoc}
\usepackage{textcomp, tocloft}
\usepackage{verbatim}
\usepackage{wasysym, wrapfig}\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}%RI-DEFINIZIONE PERSONALI
\renewcommand{\cftpartleader}{\footnotesize\cftdotfill{\cftnodots}} \renewcommand{\cftpartafterpnum}{}
\renewcommand{\cftchapleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftchapafterpnum}{}
\renewcommand{\cftsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsecafterpnum}{}
\renewcommand{\cftsubsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsubsecafterpnum}{}%\titleformat{\chapter}{\normalfont\bfseries}{\thechapter}{10pt}{} %\chaptertitlename\
\titleformat{\section}{\normalfont\bfseries}{\thesection}{10pt}{}
\titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{10pt}{}
\titleformat{\subsubsection}{\normalfont\bfseries}{\thesubsubsection}{10pt}{}%sezioni su nuove pagine
\let\oldpart\part
\renewcommand{\part}[1]{\cleardoublepage\oldpart{#1}}
%
\let\oldsection\section
\newcounter{section_in_chapter}[chapter]
\setcounter{section_in_chapter}{0}
\renewcommand{\section}[1]
{
\ifthenelse{\equal{\arabic{section_in_chapter}}{0}}{}{\clearpage}
\oldsection[#1]{#1}
\stepcounter{section_in_chapter}
}%spessore linee
\makeatletter
\def\thickhrulefill{\leavevmode \leaders \hrule height 1pt\hfill \kern \z@}
\makeatother\begin{document}
\section{Linguaggio C}
\subsection{Struttura delle funzioni in C}\begin{program}[!h] \small
\begin{verbatim}tipo nome_funzione(tipo argomento, tipo argomento, …)
{
operazioni varie….
}
\end{verbatim}
\end{program}\begin{program}[!h] \small
\begin{verbatim}#include
int main()
{
printf(“Hello C.\n”);
return 0;
}
\end{verbatim}
\caption{Hello C.}
\end{program}I puntatori sono essenzialmente dei dati contenenti indirizzi di memoria;
poiché l'indirizzamento della memoria richiede una stessa quantità di byte
relativamente ad ogni possibile dato associato,
i puntatori hanno medesima ampiezza qualunque sia il dato associato;
verificheremo questo nel programma
numero~\ref{prog-ampiezza-puntatori}
a pagina~\pageref{prog-ampiezza-puntatori}
grazie alla funzione \verb+sizeof()+
che restituisce il numero di byte di memoria occupati da un tipo di dato, sia esso fondamentale o derivato.\begin{program}[!ht] \small
\begin{verbatim}#include
int main()
{
printf(“La dimensione di int è %d, di puntatori ad int %d;\n”,
sizeof(int), sizeof(int *));printf(“La dimensione di char è %d, di puntatori a char %d;\n”,
sizeof(char), sizeof(char *));printf(“La dimensione di float è %d, di puntatori a float %d;\n”,
sizeof(float), sizeof(float *));printf(“La dimensione di double è %d, di puntatori a double %d.\n”,
sizeof(double), sizeof(double *));
return 0;
}
\end{verbatim}
\caption{Dimensioni dei tipi in memoria.}
\label{prog-ampiezza-puntatori}
\end{program}\end{document}`
Grazie!
-
20 Dicembre 2010 alle 16:37 #53873
-
20 Dicembre 2010 alle 16:37 #53874
-
20 Dicembre 2010 alle 21:04 #53875::
Allora, ho fatto mille prove ed ho scoperto cosa porta all’errore anche se non conosco il motivo profondo….Il listato`\documentclass[12pt,pdftex,oneside]{scrbook}
\usepackage{hyperref}
\usepackage{verbatim}
%\usepackage{classicthesis-ldpkg}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage[utf8x]{inputenc}\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}\begin{document}
\begin{program}[!h] \small
\begin{verbatim}#include
int main()
{
printf(“Hello C.\n”);
return 0;
}
\end{verbatim}
\caption{Hello C.}
\end{program}I puntatori sono essenzialmente dei dati contenenti indirizzi di memoria;
poiché l'indirizzamento della memoria richiede una stessa quantità di byte
relativamente ad ogni possibile dato associato,
i puntatori hanno medesima ampiezza qualunque sia il dato associato;
verificheremo questo nel programma
numero~\ref{prog-ampiezza-puntatori}
a pagina~\pageref{prog-ampiezza-puntatori}
grazie alla funzione \verb+sizeof()+
che restituisce il numero di byte di memoria occupati da un tipo di dato, sia esso fondamentale o derivato.\newpage
\begin{program}[!ht] \small
\begin{verbatim}#include
int main()
{
printf(“La dimensione di int è %d, di puntatori ad int %d;\n”,
sizeof(int), sizeof(int *));printf(“La dimensione di char è %d, di puntatori a char %d;\n”,
sizeof(char), sizeof(char *));printf(“La dimensione di float è %d, di puntatori a float %d;\n”,
sizeof(float), sizeof(float *));printf(“La dimensione di double è %d, di puntatori a double %d.\n”,
sizeof(double), sizeof(double *));
return 0;
}
\end{verbatim}
\caption{Dimensioni dei tipi in memoria.}
\label{prog-ampiezza-puntatori}
\end{program}\end{document}`
si comporta a dovere… se invece pongo`%\usepackage{hyperref}
\usepackage{verbatim}
\usepackage{classicthesis-ldpkg}`ecco che iniziano gli errori…. mi chiedo come mai classicthesis-ldpkg porti ad erronei collegamenti….
-
21 Dicembre 2010 alle 0:19 #53876::
Allora, ho fatto mille prove ed ho scoperto cosa porta all’errore anche se non conosco il motivo profondo….
Il listato`\documentclass[12pt,pdftex,oneside]{scrbook}
\usepackage{hyperref}
\usepackage{verbatim}
%\usepackage{classicthesis-ldpkg}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage[utf8x]{inputenc}\floatstyle{ruled}
\newfloat{program}{hp}{lop}
\floatname{program}{Programma}\begin{document}
\begin{program}[!h] \small
\begin{verbatim}#include
int main()
{
printf(“Hello C.\n”);
return 0;
}
\end{verbatim}
\caption{Hello C.}
\end{program}I puntatori sono essenzialmente dei dati contenenti indirizzi di memoria;
poiché l'indirizzamento della memoria richiede una stessa quantità di byte
relativamente ad ogni possibile dato associato,
i puntatori hanno medesima ampiezza qualunque sia il dato associato;
verificheremo questo nel programma
numero~\ref{prog-ampiezza-puntatori}
a pagina~\pageref{prog-ampiezza-puntatori}
grazie alla funzione \verb+sizeof()+
che restituisce il numero di byte di memoria occupati da un tipo di dato, sia esso fondamentale o derivato.\newpage
\begin{program}[!ht] \small
\begin{verbatim}#include
int main()
{
printf(“La dimensione di int è %d, di puntatori ad int %d;\n”,
sizeof(int), sizeof(int *));printf(“La dimensione di char è %d, di puntatori a char %d;\n”,
sizeof(char), sizeof(char *));printf(“La dimensione di float è %d, di puntatori a float %d;\n”,
sizeof(float), sizeof(float *));printf(“La dimensione di double è %d, di puntatori a double %d.\n”,
sizeof(double), sizeof(double *));
return 0;
}
\end{verbatim}
\caption{Dimensioni dei tipi in memoria.}
\label{prog-ampiezza-puntatori}
\end{program}\end{document}`
si comporta a dovere… se invece pongo`%\usepackage{hyperref}
\usepackage{verbatim}
\usepackage{classicthesis-ldpkg}`ecco che iniziano gli errori…. mi chiedo come mai classicthesis-ldpkg porti ad erronei collegamenti….Bene, hai scoperto il colpevole dell’inghippo, il pacchetto verbatim. Non usarlo: fancyvrb è enormemente più potente.
Ciao
Enrico
-
21 Dicembre 2010 alle 9:27 #53877::
In ogni caso prendi l’abitudine di caricare il pacchetto hyperref per ultimo. Per poter costruire i collegamenti ipertestuali hyperref deve ridefinire una moltitudine di comandi interni alle classi e ai pacchetti; se lo carichi per primo, i pacchetti posso ridefinire quello che hyperref ha ridefinito fra i comandi interni della classe, e in sostanza combinare un gran pasticcio.Può andarti bene, per puro caso, anche quando non segui questa regola aurea; ma prendi l’abitudine di caricare hyperref per ultimo.
-
21 Dicembre 2010 alle 12:37 #53878::
sì, però questa volta è innocente…. anzi quando caricato al posto di classicthesis-ldpg, tutto funziona…. invece l’escluderlo a vantaggio dell’ultimo detto, porta all’errore che non è frutto di verbatim…. la conferma mi è stata dato non servendomi dello stesso pacchetto in entrambe le circostanze…. il mistero resta insoluto…. ma me lo tengo così! Grazie comunque a tutti del tentativo
-
5 Febbraio 2013 alle 22:06 #53879
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.