patacrep / patanet

Web interface for LaTeX songbook generation
GNU Affero General Public License v3.0
10 stars 3 forks source link

Songbook layout - séparation données/présentation #36

Closed jmclem closed 10 years ago

jmclem commented 10 years ago

Voici ma thèse, sentez vous libre de développer / infirmer / ...

Même si les fichiers .sb mélangent le contenu et la présentation (songs et template sont dans la même structure), je plaide pour une séparation dans notre architecture.

Nous pourrions créer un modèle SongbookLayout qui couvrirait les aspects de la présentation (voir éventuellement la toute première version, qui n'est même pas encore un modèle, ici).

Les instances de SongbookLayout pourraient à la fois être des layouts par défaut (A4, A5, A5R, avec/sans accords, ...) et des personnalisations. Pour la première version, je resterais avec des prédéfinis.

Au moment où le songbook est généré, l'utilisateur choisit une présentation. Les informations issues de cette instance sont mises dans le fichier .sb, et c'est parti.

Ça vous semble cohérent ?

oliverpool commented 10 years ago

Pour l'instant, le nombre de colonne est écrit en dur dans chaque fichier .sg. Il va falloir modifier tous les fichiers de songbook-data pour permettre de changer le nombre de colonnes je croit.

Est-ce qu'il serait techniquement possible que \songcolumns soit simplement ignoré et que le nombre de colonnes soit déterminé lors de la compilation ? (en fonction des dimensions de la page) Avec une tolérance du style : maximum 10% de retour à la ligne "forcés"

Luthaf commented 10 years ago

Oui, c'est possible d'ignorer les commandes \songscolumn, et de forcer a priori une valeur particulière en fonction des dimensions de la page.

Par contre, il sera plus compliqué de déterminer le nombre de colonnes dynamiquement : la position des retours a la ligne dépends de la largeur de la page, il est donc complique de faire dépendre la largeur de la page (= le nombre de colonnes) du nombre de retours a la ligne. Ce serait réalisable avec LuaTex, mais je ne m'y lancerai pas en pur TeX.

oliverpool commented 10 years ago

Ok

Si c'est pas trop complexe, forcer une seule colonne lorsque le format est A5 me parait largement suffisant dans un premier temps

jmclem commented 10 years ago

Si c'est pas trop complexe, forcer une seule colonne lorsque le format est A5 me parait largement suffisant dans un premier temps

Je trouve aussi ok de "forcer" en fonction du layout (genre 1 col en A5 portrait, 2 en A5 paysage et A4 portrait et 3 (à essayer ?) en A4 paysage).

oliverpool commented 10 years ago

Je verrai plutôt:

Luthaf commented 10 years ago

Pour les colonnes, en attendant que cette issue soit résolue, j'ai mis la solution d'@oliverpool en place : https://github.com/patacrep/songbook-data/commit/29806704d97119f010469e01b324201f9bd6446b.

Il ne reste à gérer que le package chords qui donne des résultats assez aberrants ...

Luthaf commented 10 years ago

On est bon pour patanet, c'est un boulot pour patacrep