From f10ed7503fa50581ec6589230585ac18acc2de7d Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 7 Mar 2013 20:25:59 +0100 Subject: [PATCH 1/4] =?UTF-8?q?D=C3=A9but=20d'un=20cahier=20des=20charges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_des_charges/charges.txt | 152 +++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 cahier_des_charges/charges.txt diff --git a/cahier_des_charges/charges.txt b/cahier_des_charges/charges.txt new file mode 100644 index 00000000..3c502921 --- /dev/null +++ b/cahier_des_charges/charges.txt @@ -0,0 +1,152 @@ +# Index personnalisés + +Je veux être capable de créer mes propres index. Je ne veux pas choisir dans +une liste prédéfinie, mais pouvoir les personnaliser. Je veux pouvoir leur +donner le titre que je veux. + +## Proposition + +Dans le fichier general.sg, définition d'une liste : + +> indexes = [ +> "auteur", +> ("pays", "Index par pays d'origine"), +> ] + +Ceci signifie que j'aurai deux index : + +- l'un utilisant le mot-clef "auteur", ayant pour titre "Index par auteur" ; +- l'autre utilisant le mot-clef "pays", ayant pour titre "Index par pays d'origine". + +Pour chaque index, le mot clef sortas_nom est disponible, si l'on veut que le +nom qui s'affiche ne soit pas le nom par lequel l'entrée est triée. + +# Découpage du document + +Je veux pouvoir personnaliser le document, à savoir : mettre ma propre page de +titre, choisir l'ordre des éléments (index au début ou à la fin), ajouter des +pages personnalisées, etc. + +## Proposition + +### Préambule + +Dans le fichier general.sg, définition de variables : + +> preambule = "\usepackage{yfonts}" + +Cette variable permet d'ajouter des choses au préambule. Pour intégrer un fichier complet, il suffit de mettre : + +> preambule = "\input{mon_preambule.tex}" + +### Document + +Dans le fichier general.sg, possibilité de définir la variable document : + +> document = [ +> TITLE, +> INDEXES, +> SONGS, +> "appendice.tex", +> ] + +Ceci signifie que mon document comportera la page de titre, l'index, les textes +des chansons par défaut, et à la fin, intégrera mon document "appendice.tex". + +# Emplacement des chansons + +Je veux pouvoir dire à quelles chansons aller chercher. + +## Proposition + +Dans le fichier general.sg, utilisation des variables SONG_ROOT et SONG_FILES. + +> SONG_ROOT = "~/chansons" +> SONG_FILES = "*/*.tex" + +Il est possible de mettre une liste dans SONG_FILES, pour dire de prendre tous +les éléments de la liste. + +# Langue + +Je veux pouvoir dire dans quel langue est chaque chanson, et que ceci soit +ajouté automatiquement à l'appel de Babel. + +# Référence + +Je veux pouvoir faire référence à des chansons (nom, page, etc.). + +## Proposition + +Faire en sorte que la commande \label fonctionne, ou ajouter un mot-clef +"label" à \beginsong. + +Ensuite, avoir à disposition des commandes \songtitle{ref}, \songpage{ref}, +\songkeyword{ref}{keyword}. + +# Chansons de plusieurs auteurs + +Je veux pouvoir choisir l'ordre de mes chansons (classement par auteur par exemple). + +Je veux pouvoir attribuer des chansons à plusieurs auteurs, et décider dans la +partie de quel auteur elle aparaisse, et qu'elle soit référencée dans d'autre. + +Exemple : Les Oiseaux de passage, de Richepin, chantée par Brassens. Je veux +que le texte apparaisse avec les autres textes de Richepin, avec la mention « +Mise en musique par Brassens », et qu'à un endroit dans la « partie » Brassens, +apparaisse le texte « Voir aussi \songtitle{richepin_oiseau}, page +\songpage{richepin_page} ». La chanson apparaitra pour les deux auteurs dans +l'index par auteur. + +## Proposition + +> \beginsong{Chanson des cloches de baptême}[label=richepin_cloches, author=Richepin] +> \comment{Chantée par \songauthor{brassens_philistins} sous le titre \songtitle{brassens_philistins}.} +> ... +> \endsong +> +> \beginchildsong{Philistins}[parent=richepin_cloches, author=Brassens] +> Voir \songtitle{richepin_cloches}, page \pagetitle{richepin_page}. +> \endsong + +# Possibilité d'exporter en LaTeX ou PDF + +Je veux pouvoir, en ligne de commande, dire que je souhaite un export en LaTeX +ou en PDF. + +# Partitions + +Je veux pouvoir placer mes partitions Lilypond dans le même répertoire que les +chansons correspondantes. + +# PDF + +Je veux pouvoir intégrer des PDF comme chansons (partitions scannées). + +# Traductions + +Je pouvoir intégrer des traductions. + +## Proposition + +Dans le fichier general.sg, une variable avec la langue par défaut pour les +traductions. + +> DEFAULT_TRANSLATION_LANGUAGE = "francais" + +Dans un fichier de chanson : + +> \begin[english]{translation} +> Do not use your spoon with your left hand / etc. +> \end{translation} + +# Commentaires + +Je veux pouvoir ajouter des commentaires dans les chansons, qui soient mis en +valeur différement. + +# Langage du fichier de configuration + +Je propose que le fichier de configuration soit du Python : puisqu'un client +texte existe, nous pouvons considérer que quelqu'un modifiant à la main ce +fichier sait faire du Python. From fccb0181ef8c5aed25da1be9d31e237bedea6301 Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 8 Mar 2013 22:19:35 +0100 Subject: [PATCH 2/4] Cahier des charges --- cahier_des_charges/charges.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cahier_des_charges/charges.txt b/cahier_des_charges/charges.txt index 3c502921..9af8bc53 100644 --- a/cahier_des_charges/charges.txt +++ b/cahier_des_charges/charges.txt @@ -150,3 +150,8 @@ valeur différement. Je propose que le fichier de configuration soit du Python : puisqu'un client texte existe, nous pouvons considérer que quelqu'un modifiant à la main ce fichier sait faire du Python. + +# Langues + +Pouvoir définir les langues dans le fichier de configuration general.sg, pour +que babel ne soit pas bloqué. From efa6f82cf1da3eb0e531abbd3e57f62b96ccf1fc Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 8 Mar 2013 22:25:36 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Correction=20du=20bug:=20un=20carnet=20sans?= =?UTF-8?q?=20chansons=20est=20autoris=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- songbook-makeindex.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/songbook-makeindex.py b/songbook-makeindex.py index 8509aa61..0ed27d56 100755 --- a/songbook-makeindex.py +++ b/songbook-makeindex.py @@ -85,10 +85,11 @@ def processSXD(filename): type = data[0] i = 1 idx = index() - while data[i].startswith('%'): - keywords = keywordPattern.match(data[i]).groups() - idx.keyword(keywords[0],keywords[1]) - i += 1 + if len(data) > 1: + while data[i].startswith('%'): + keywords = keywordPattern.match(data[i]).groups() + idx.keyword(keywords[0],keywords[1]) + i += 1 idx.compileKeywords() for i in range(i,len(data),3): entry = processSXDEntry(data[i:i+3]) From 721121ed0b05943f9b6a38696267af1ef59d898d Mon Sep 17 00:00:00 2001 From: Louis Date: Sat, 9 Mar 2013 00:14:25 +0100 Subject: [PATCH 4/4] Cachier des charge --- cahier_des_charges/charges.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cahier_des_charges/charges.txt b/cahier_des_charges/charges.txt index 9af8bc53..21d4b611 100644 --- a/cahier_des_charges/charges.txt +++ b/cahier_des_charges/charges.txt @@ -21,6 +21,8 @@ Ceci signifie que j'aurai deux index : Pour chaque index, le mot clef sortas_nom est disponible, si l'on veut que le nom qui s'affiche ne soit pas le nom par lequel l'entrée est triée. +Utiliser la commande \newsongkey : http://songs.sourceforge.net/songsdoc/songs.html#mac.newsongkey + # Découpage du document Je veux pouvoir personnaliser le document, à savoir : mettre ma propre page de