Risposte nei forum create
-
AutoreRisposte
-
::
Ciao e benvenuto.
Velocemente:
1. Puoi inserire la tua copertina come pdf usando il pacchetto pdfpages, ma magari ti può tornare più comodo poter inserire titoli e commenti direttamente dal tuo file .tex, potresti provare a crearti la copertina nell’ambiente titlepage.2a. Puoi personalizzare i titoli col pacchetto titlesec.
2b. se leggi la documentazione clsguide (texdoc clsguide da terminale) troverai le indicazioni per scrivere le tue classi.
Fran
::
Ciao e benvenuto.
Velocemente:
1. Puoi inserire la tua copertina come pdf usando il pacchetto pdfpages, ma magari ti può tornare più comodo poter inserire titoli e commenti direttamente dal tuo file .tex, potresti provare a crearti la copertina nell’ambiente titlepage.2a. Puoi personalizzare i titoli col pacchetto titlesec.
2b. se leggi la documentazione clsguide (texdoc clsguide da termianle) troverai le indicazioni per scrivere le tue classi.
Fran
::
Ciao e benvenuto.
La prima che poni è una delle domande più frequenti in questo forum, con la funzione cerca troveresti moltissime risposte.
Già che son qui comunque ti dico:
`\chapter[Titolo corto]{Titolo lunghissismissimo che dà problemi}`
La soluzione migliore sarebbe comunque scegliere un titolo più corto, ma se proprio non si può…Il secondo problema non mi è molto chiaro, forse con un esempio si capirebbe meglio. Suggerisco la lettura dell’Arte di scrivere con LaTeX, di cui trovi il link in cima a questa pagina.
Fran
::
È vero, con la versione di songs.sty che si trova su CTAN.
Non so per quale motivo non sia aggiornato.
Su http://songs.sourceforge.net/downloads.html si trova la versinoe aggiornata.
Grazie della pazienza.Fran
::
Ti presento la mia casistica, partendo da questo codice:`\documentclass[a4paper,12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{makeidx}
\makeindex
\usepackage{songs}
\newindex{ind}{ind} % per gli indici di songs, da generare a parte
\makeatletter
\def\accents@list{\do\IeC\do\`\do\'}
\def\letters@list{\do\i{i}}
\newcommand{\noaccentindex}[1]{%
\begingroup
\protected@edef\next{#1}%
\ifnum\pdfstrcmp{\detokenize\expandafter{\next}}{\detokenize{#1}}=\z@
\index{#1}%
\else
\def\do##1{\def##1####1{####1}}\accents@list
\def\do##1##2{\def##1{##2}}\letters@list
\edef\next{\endgroup\def\noexpand\next{\next}}\next
\expandafter\index\expandafter{\next @\detokenize{#1}}%
\fi}
\renewcommand\SB@@@beginsong{%
\global\SB@stanzafalse%
\setbox\SB@chorusbox\box\voidb@x%
\SB@gotchorusfalse%
\setbox\SB@songbox\vbox\bgroup\begingroup%
\ifnum\SB@numcols>\z@\hsize\SB@colwidth\fi%
\leftskip\z@skip\rightskip\z@skip%
\parfillskip\@flushglue\parskip\z@skip%
\SB@raggedright%
\global\SB@transposefactor\z@%
\global\SB@cr@{\\}%
\protected@edef\@currentlabel{\p@songnum\thesongnum}%
\setcounter{versenum}{1}%
\SB@prevversetrue%
\meter44%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\expandafter\noaccentindex\expandafter{\songtitle} %MODIFICATO
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}
}%
\resettitles%
\lyricfont%
\SB@setbaselineskip%
}
\makeatother
\begin{document}
\printindex
\begin{songs}{ind}
\beginsong{Alleluia Passeranno i cieli}
\beginchorus
\[D]Alle\[A]luia, \[Bm]alleluia, \[F#m]alleluia,
\endchorus
\beginverse
\[D]Passeranno i \[A]cieli e \[Bm]passerà la \[F#m]terra,
\endverse
\endsong
\beginsong{È santo}[by={Daniele Ricci}]
\beginverse
\[E]\\[A]\[E]\\[A]\[E]\
È \[E]san\to, santo \[A]san\[E]to,
\endverse
\endsong
\end{songs}
\end{document}`1. Così come scritto sopra, mi dà l’errore del messagio precedente.
2. togliendo gli \ezpandafter non dà errore, ma genera l’indice vuoto (resta \songtitle del file idx)
3. togliendo gli \expandafter e il \detokenize funzinona bene, salvo le “schifezze” nell’indice.Fran
::Sì. Voglio appunto evitare che nel file .idx ci siano scritte schifezze. La modifica da eseguire è
trasformare
`\noaccentindex{\songtitle}`
in
`\expandafter\noaccentindex\expandafter{\songtitle}`
Ciao
EnricoPurtroppo non funziona, dà qualche problema con altre macro (\endsong, quella di chiusura dell’ambiente song).
`! Extra }, or forgotten \endgroup.
\SB@endsong …}\fi \fi \fi \fi \endgroup \egroup
\setbox \SB@songbox \vbox …
l.66 \endsong`Quali sono gli inconvenient dell’eliminare il \detokenize dal tuo codice?
Fran
::
Buongiorno.
Ho fatto delle prove. La modifica funziona perfettamente con un testo standard.
Il file .idx risulta:`\indexentry{casa}{1}
\indexentry{e bello@è bello}{2}`
Se la introduco invece nel mio documento ho un problema:
Il file .idx risulta così:
`\indexentry{Alleluia Passeranno i cieli@\songtitle }{2}
\indexentry{E santo@\songtitle }{2}`
Cioè lui legge la macro \songtitle perché riesce a “trasformare” le lettere accentate in non accentate, però dopo l’@ non scrive il testo giusto. Inoltre “lavora” anche le parole non accentate.
Il file .ind risulta quindi così:`\begin{theindex}
\item \songtitle , 2
\indexspace
\item \songtitle , 2
\end{theindex}` e l’indice alla fine ha solo dei numeri di pagina, senza nulla prima.
Se serve posso riportare il pezzo di codice che modifico, anche se da solo dice poco.`\newcommand\SB@@@beginsong{%
\global\SB@stanzafalse%
\setbox\SB@chorusbox\box\voidb@x%
\SB@gotchorusfalse%
\setbox\SB@songbox\vbox\bgroup\begingroup%
\ifnum\SB@numcols>\z@\hsize\SB@colwidth\fi%
\leftskip\z@skip\rightskip\z@skip%
\parfillskip\@flushglue\parskip\z@skip%
\SB@raggedright%
\global\SB@transposefactor\z@%
\global\SB@cr@{\\}%
\protected@edef\@currentlabel{\p@songnum\thesongnum}%
\setcounter{versenum}{1}%
\SB@prevversetrue%
\meter44%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\noaccentindex{\songtitle} %MODIFICATO
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\lyricfont%
\SB@setbaselineskip%
}`
Ci studio su un po’.
Grazie!
FrancescoEDIT: modificando la riga:`\expandafter\index\expandafter{\next @\detokenize{#1}}% ` in `\expandafter\index\expandafter{\next @#1}% ` tutto funziona.
Il file .idx risulta:
`\indexentry{Alleluia Passeranno i cieli@Alleluia Passeranno i cieli}{2}
\indexentry{E santo@\IeC {\`E} santo}{2}` quindi non lavora ancora perfettamente.
Possono esserci problemi?
::
Vero. Dal file di stile:
`102 \newcommand{\LeftMarginSBChorus} {4em}
103 \newcommand{\LeftMarginSBSection}{\LeftMarginSBChorus}
104 \newcommand{\LeftMarginSBVerse} {\LeftMarginSBChorus}`
perché lega i magini di versi e delle sezioni a quello del ritornello. Quindi se modifichi l’uno, cambiano anche gli altri.Pertanto, nel preambolo:
`\renewcommand{\LeftMarginSBChorus}{quel che vuoi tu}
\renewcommand{\LeftMarginSBSection}{quel che vuoi tu}
\renewcommand{\LeftMarginSBVerse} {quel che vuoi tu}`Fran
::
Pagina 13 della guida:\LeftMarginSBChorus is the amount of left margin to leave when the \SBChorus environment is in effect.
Suppongo basti modificare questo valore:
`\renewcommand{\LeftMarginSBChorus} {10em}`Non ho provato, ma dovrebbe andare.
[Io usavo songbook, poi ho scoperto songs che mi sembra molto più immediato per l’inserimento degli accordi, benché meno completo nella gestione di introduzioni, finali, note, cose particolari insomma.]
Fran
::
Grazie, funziona.
Ardisco chiedere altro: questa soluzone è manuale, e io preferirei fosse automatizzata, perché il mio file idx viene creato automaticamente. Quando inizio una canzone (con un comando \beginsong{Titolo canzone}) il titolo della canzone viene inserito nell’indice.
Non saprei come adattare il tuo suggerimento (\index{non accentato@accentato}). C’è un qualche modo per dire a TeX che negli indici le “È” valgono come “e”?Grazie.
Francesco
-
AutoreRisposte