Le temps qu’il fait à Bruxelles   Le temps de Bruxelles :

Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Pour mémoire, tentative insatisfaisante de citations côte à côte en table

On recommande de ne pas utiliser de tables pour de simples effets visuels. J’ai donc eu scrupule à utiliser une table pour des citations côte à côte et j’ai d’abord recouru à des listes d’items flottant à gauche. On peut cependant défendre qu’il s’agit bien d’un contenu tabulaire dans la mesure où les lignes mettent les alinéas au même niveau. Le problème est ailleurs : tant en TEI qu’en HTML, une table est organisée en ligne d’abord, colonne ensuite, ce qui ne permet pas de mettre côte à côte des colonnes de <cit> + <quote> + <bibl>. Cependant, on pourrait abandonner l’élément <cit> et considérer que chaque colonne de la table unit du texte cité et sa référence. Rien n’interdit de rétablir la sémantique (citation, texte cité) des éléments de la table par des attributs.

<table rend="citquote">
  <row>
    <cell xml:lang="de"><p>… </p></cell>
    <cell xml:lang="fr"><p>… </p></cell>
  </row>
  <row>
    <cell xml:lang="de"><p>… </p></cell>
    <cell xml:lang="fr"><p>… </p></cell>
  </row>
  <row>
    <cell xml:lang="de"><bibl>… </bibl></cell>
    <cell xml:lang="fr"><bibl>… </bibl></cell>
  </row>
</table>
          

Si on veut absolument utiliser <quote>, il faut le mettre dans chaque cellule, ce qui est artificiel. Si on n’était pas dans une table, on mettrait tous les alinéas (d’une citation en une langue) dans un seul élément <quote>. On pourrait considérer toute la table comme une citation multilingue, mais l’élément <cit> ne peut contenir une table. On peut rendre la table invisible pour <cit> en interposant un <floatingText>1, qui, lui, est autorisé dans <cit>. Cela donne le monstre, très artificiel, suivant :

<cit>
  <floatingText>
    <body>
      <table rend="citquote">
        <row>
          <cell xml:lang="de"><quote><p>… </p></quote></cell>
          <cell xml:lang="fr"><quote><p>… </p></quote></cell>
        </row>
        <row>
          <cell xml:lang="de"><quote><p>… </p></quote></cell>
          <cell xml:lang="fr"><quote><p>… </p></quote></cell>
        </row>
        <row>
          <cell xml:lang="de"><bibl>… </bibl></cell>
          <cell xml:lang="fr"><bibl>… </bibl></cell>
        </row>
      </table>
    </body>
  </floatingText>
</cit>
          

L’avantage de la table sur les listes horizontales, c’est qu’il y a des lignes, même si j’aurais préféré penser d’abord en colonnes, et que les alinéas des diverses langues restent donc alignés, malgré des longueurs différentes. Par ailleurs les agents de rendu HTML optimisent la largeur des colonnes selon leur contenu.

Bref, c’est assez tordu. Les avantages sont l’alignement des alinéas et le partage automatique des largeurs. Les défauts sont que chaque langue devrait être une citation <cit>, pas la table entière ; que des différents alinéas d’un même texte cité devraient former un seul <quote>, pas plusieurs. J’ai pratiqué ça un temps, après les listes d’items flottés à gauche, mais je m’en suis lassé et c’est alors que j’ai découvert la possibilité en CSS d’items se comportant comme des cellules.

Notes
1.
Cela fait aussi qu’en HTML, les notes de l’auteur faisant partie de la citation, se retrouveront immédiatement sous la table (mais toutes langues réunies) plutôt qu’en bas de page.
Dominique Meeùs . Date: 2011… 2019