Re: Addcontentsline e bookmark

#68649
franen
Partecipante
    Up
    0
    Down
    ::


    Non era per custodire informazioni, solo che confidavo in una soluzione generale. Il pacchetto è songs, serve per scrivere canzoni con accordi (http://songs.sourceforge.net/, se lo avete nella TeXlive è probabilmente vecchio, l’ultima versione è la 2.13).
    Un esempio minimo compilabile è questo:
    `% !TEX encoding = UTF-8 Unicode
    \documentclass[10pt]{book}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage[noindexes]{songs} % carico SONGS
    \MultiwordChords % accordi sopra più sillabe

    %\renewcommand\makeprelude{%
    %\resettitles%
    %\addcontentsline{toc}{section}{\songtitle}
    %\Large\bfseries\sffamily\songtitle
    %\nexttitle%
    %\foreachtitle{(\songtitle)\par}}

    \newcommand{\canzone}{%
    \beginchorus

    \[G]Can\[Am/G]tiamo \[G]can\[F/G]tiamo

    \[C]cantia\[Em]mo \[Am]Cantia\[D]mo. \[G]

    \endchorus
    \endsong}

    \usepackage{hyperref}

    \begin{document}
    \begin{songs}{}
    \songcolumns{2}
    \beginsong{canto1}[by={auth1}]
    \canzone
    \sclearpage
    \beginsong{canto2}[by={auth2}]
    \canzone
    \sclearpage
    \beginsong{canto3}[by={auth3}]
    \canzone
    \sclearpage
    \beginsong{canto4}[by={auth4}]
    \canzone
    \end{songs}
    \tableofcontents
    \end{document}`
    Il codice del pacchetto è, per me, molto complesso. I bookmark in questione sono quelli dei titoli delle canzoni. Il codice che li genera sta nella definizione del comando \SB@endsong.
    Se commento le righe in questione:`\ifpdfindex\begingroup%
    \ifx\pdfbookmark\undefined\else%
    \ifx\pdfbookmark\relax\else%
    \resettitles%
    \pdfbookmark[\ifnum\c@section=\z@1\else2\fi]%
    {\thesongnum. \songtitle}%
    {song\theSB@songsnum-\thesongnum}%
    \fi\fi%
    \endgroup\fi%`
    i bookmark non vengono generati e non ottengo errori.
    Se poi decommento le 6 righe del mio e.m.c. ottengo una tableofcontents corretta e dei bookmark sbagliati, che rimandano tutti alla prima canzone. Si potrebbe aggiustare questa soluzione, ma in realtà volevo evitare di modificare eccessivamente il codice del pacchetto.

    Fran

    Go to top