Re: Songs, modifica catcode.

#75475
franen
Partecipante
    Up
    0
    Down
    ::


    Che testa… c’è il comando \chorlocals che è fatto apposta per ridefinire localmente tutto quello che si vuole all’interno degli accordi!
    Ho differenziato \bassfont a seconda che dopo la / ci sia una lettera o un numero. Ma c’è un modo più elegante per dire “se il codice di categoria di quel che segue è 11…” rispetto a quel che ho scritto io?

    Fran
    `% !TEX encoding = UTF-8 Unicode
    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[noindexes]{songs} %(songs 2.14 da http://songs.sourceforge.net/)

    \makeatletter
    \def\bassfont{\futurelet\next\@bassverify}
    \def\@basstrue{\hspace{-0.3em}/\hspace{-0.1em}\footnotesize}
    \def\@bassfalse{/}
    \def\@bassverify{%
    \ifcat\next f
    \@basstrue
    \else
    \@bassfalse
    \fi}
    \makeatother
    \renewcommand{\chordlocals}{\catcode`/\active}
    {\chordlocals\global\let/\bassfont}

    \begin{document}
    \begin{songs}{}
    \beginsong{Casa}
    \beginverse
    \[D]Cia/o a \[C/E]tut\[A7/4]ti
    \endverse
    \endsong
    \end{songs}
    \end{document}`

    Go to top