- Questo topic ha 8 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 8 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
9 Gennaio 2010 alle 13:10 #40913::
Allora, vediamo se ho capito.Se si vogliono includere la bibliografia e l’indice analitico nell’indice generale, bisogna farlo manualmente, con \addcontentsline. Però, se si usa anche hyperref, bisogna scrivere \phantmsection subito prima di \addcontentsline, pena link e segnalibri sballati. Giusto?
Mi chiedevo se la stessa cosa valga anche per tutti gli altri usi di \addcontentsline (magari, si introduce una prefazione con \chapter* e la si vuole nell’indice con \addcontentsline), naturalmente usando hyperref?
Insomma, è vera la seguente:
Tutte le volte che si usa \addcontentsline con hyperref, bisogna scrivere \phantmsection subito prima di \addcontentsline, pena link e segnalibri sballati.
?
Grazie mille,
L.
-
CreatoreTopic
-
AutoreRisposte
-
-
9 Gennaio 2010 alle 13:25 #40914::
Allora, vediamo se ho capito.
Se si vogliono includere la bibliografia e l’indice analitico nell’indice generale, bisogna farlo manualmente, con \addcontentsline. Però, se si usa anche hyperref, bisogna scrivere \phantmsection subito prima di \addcontentsline, pena link e segnalibri sballati. Giusto?
Mi chiedevo se la stessa cosa valga anche per tutti gli altri usi di \addcontentsline (magari, si introduce una prefazione con \chapter* e la si vuole nell’indice con \addcontentsline), naturalmente usando hyperref?
Insomma, è vera la seguente:
Tutte le volte che si usa \addcontentsline con hyperref, bisogna scrivere \phantmsection subito prima di \addcontentsline, pena link e segnalibri sballati.
?
Sì: pagina 13 del manuale di hyperref.
I tuoi punti di domanda appesi al nulla sono sempre divertenti. 🙂
Ciao
Enrico
-
9 Gennaio 2010 alle 16:29 #40915
-
10 Gennaio 2010 alle 10:54 #40916::
Riprendo il topic. Ho un documento con ClassicThesis, con un breve indice degli argomenti che precede l’indice genrale. Il codice che uso (preso dal template di Miede) è il seguente:
`\begingroup
\manualmark
\refstepcounter{dummy}
\setcounter{tocdepth}{2}
\pdfbookmark{Argomenti}{Argomenti}
\shorttoc{Argomenti}{0}
\pdfbookmark{\contentsname}{tableofcontents}
\dominitoc\tableofcontents
\markboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}
\endgroup`
Però c’è un problema nei segnalibri: non si passa correttamente dal bookmark “Argomenti” al bookmark “Indice”, il bookmark “Indice” viene scavalcato, come se non esistesse.1. Come rimediare?
2. Quel
`\refstepcounter{dummy}`
che Miede usa al posto di
`\phantomsection`
che cosa ci sta a fare?3. Vedo che Miede usa spesso quel codice in presenza del comando \pdfbookmark: quali sono allora tutte le circostanze in cui bisogna usare \phantomsection (o chi per esso)?
Grazie mille,
L.
-
10 Gennaio 2010 alle 11:18 #40917::
Riprendo il topic. Ho un documento con ClassicThesis, con un breve indice degli argomenti che precede l’indice genrale. Il codice che uso (preso dal template di Miede) è il seguente:
`\begingroup
\manualmark
\refstepcounter{dummy}
\setcounter{tocdepth}{2}
\pdfbookmark{Argomenti}{Argomenti}
\shorttoc{Argomenti}{0}
\pdfbookmark{\contentsname}{tableofcontents}
\dominitoc\tableofcontents
\markboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}
\endgroup`
Però c’è un problema nei segnalibri: non si passa correttamente dal bookmark “Argomenti” al bookmark “Indice”, il bookmark “Indice” viene scavalcato, come se non esistesse.1. Come rimediare?
2. Quel
`\refstepcounter{dummy}`
che Miede usa al posto di
`\phantomsection`
che cosa ci sta a fare?3. Vedo che Miede usa spesso quel codice in presenza del comando \pdfbookmark: quali sono allora tutte le circostanze in cui bisogna usare \phantomsection (o chi per esso)?
Come pensi che si possa dare un’occhiata senza un esempio compilabile?
Il trucco di far scattare il contatore “dummy” è nato perché Miede non sapeva di \phantomsection; ogni volta che c’è un \refstepcounter, hyperref imposta un punto di riferimento (anchor), esattamente come fa \phantomsection in modo più efficiente.
A che serve quel gruppo?
Ciao
Enrico
-
10 Gennaio 2010 alle 11:36 #40918::
Provo con un esempio:
`\documentclass[10pt,a4paper,twoside,openright,titlepage,%fleqn,
cleardoubleempty,abstracton,pointlessnumbers,%
headinclude,footinclude,BCOR5mm,%
tablecaptionabove]{scrreprt}\usepackage[tight,italian]{minitoc}
\usepackage{shorttoc}
\usepackage{classicthesis-ldpkg}
\usepackage[eulerchapternumbers,subfig,beramono,%
eulermath,pdfspacing]{classicthesis}
\usepackage[italian]{babel}
\usepackage[italian]{arsclassica}\begin{document}
\begin{titlepage}
\pdfbookmark{Frontespizio}{Frontespizio}
Prova
\end{titlepage}\begingroup
\manualmark
\setcounter{tocdepth}{2}
%
\refstepcounter{dummy}
\pdfbookmark{Argomenti}{Argomenti}
\shorttoc{Argomenti}{0}
%
\refstepcounter{dummy}
\pdfbookmark{\contentsname}{tableofcontents}
\dominitoc\tableofcontents
\endgroup\myChapter{Foo}
\myChapter{Bar}
\end{document}
`
Anche qui c’è un problema con i bookmark.Il gruppo non so che ci stia lì a fare: quel codice è di Miede.
Grazie,
L.
-
10 Gennaio 2010 alle 11:53 #40919::
Provo con un esempio:
`\documentclass[10pt,a4paper,twoside,openright,titlepage,%fleqn,
cleardoubleempty,abstracton,pointlessnumbers,%
headinclude,footinclude,BCOR5mm,%
tablecaptionabove]{scrreprt}\usepackage[tight,italian]{minitoc}
\usepackage{shorttoc}
\usepackage{classicthesis-ldpkg}
\usepackage[eulerchapternumbers,subfig,beramono,%
eulermath,pdfspacing]{classicthesis}
\usepackage[italian]{babel}
\usepackage[italian]{arsclassica}\begin{document}
\begin{titlepage}
\pdfbookmark{Frontespizio}{Frontespizio}
Prova
\end{titlepage}\begingroup
\manualmark
\setcounter{tocdepth}{2}
%
\refstepcounter{dummy}
\pdfbookmark{Argomenti}{Argomenti}
\shorttoc{Argomenti}{0}
%
\refstepcounter{dummy}
\pdfbookmark{\contentsname}{tableofcontents}
\dominitoc\tableofcontents
\endgroup\myChapter{Foo}
\myChapter{Bar}
\end{document}
`
Anche qui c’è un problema con i bookmark.Il gruppo non so che ci stia lì a fare: quel codice è di Miede.
Non è che Miede sia la massima autorità al riguardo. 🙂
Dimentichi semplicemente di mettere \cleardoublepage prima dei comandi \pdfbookmark; pensaci: \pdfbookmark definisce un punto di riferimento dove viene trovato, mentre, per esempio, \tableofcontents dà un comando \cleardoublepage; è chiaro che il punto di riferimento non indicherà il posto giusto.
Usa \phantomsection e non \refstepcounter{dummy}, come già detto.
Ciao
Enrico
-
10 Gennaio 2010 alle 13:34 #40920
-
10 Gennaio 2010 alle 15:37 #40921::
Dimentichi semplicemente di mettere \cleardoublepage prima dei comandi \pdfbookmark; pensaci: \pdfbookmark definisce un punto di riferimento dove viene trovato, mentre, per esempio, \tableofcontents dà un comando \cleardoublepage; è chiaro che il punto di riferimento non indicherà il posto giusto.
Usa \phantomsection e non \refstepcounter{dummy}, come già detto.
Enrico, la tua analisi è perfetta. Il seguente
`\setcounter{tocdepth}{2}
\cleardoublepage
\phantomsection
\pdfbookmark{Argomenti}{Argomenti}
\shorttoc{Argomenti}{0}\cleardoublepage
\phantomsection
\pdfbookmark{\contentsname}{tableofcontents}
\dominitoc\tableofcontents`
funziona alla perfezione… 🙂Grazie mille,
L.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.