web-dev-qa-db-fra.com

Google Docs / Drive - numéroter les titres

Est-il possible de numéroter les en-têtes d'un document Google Docs/Drive?

70
ZehnVon12

Si vous voulez quelque chose de plus simple, il existe un module complémentaire Google appelé "" Table des matières " qui vous permettra de numéroter vos titres.

Pour installer ce module complémentaire:

  1. Cliquez sur les modules complémentaires> Obtenir des modules complémentaires.
  2. Cliquez sur l'icône "Table des matières" ou recherchez cet addon pour l'installer

Ensuite, votre table des matières devrait apparaître dans votre barre latérale. Cliquez sur le menu Format des numéros de titre et choisissez 1.2.3

Vous devez reformater votre document si vous en avez un ancien afin de "rafraîchir" les chiffres, mais en fait l'addon fonctionne très bien.

J'ai vu la réponse dans ce forum .

80
Aitor

Mise à jour: maintenant disponible dans github .

Mise à jour 2: gère désormais les en-têtes vides et les lignes vides grâce à 2 pull pulls sur github.


J'ai modifié le script mentionné par Mikko Ohtamaa et créé un script Google Apps qui ajoute un Outils de titres Menu Document qui vous permet de :

  • numéro automatique
  • effacer les numéros de titres

Comment numéroter automatiquement les titres des documents Google:

  1. Ouvrez votre document> Outils> Editeur de script ...
  2. Démarrer un projet vierge
  3. Collez le code ci-dessous et enregistrez avec votre nom préféré
  4. Sélectionnez Exécuter> onOpen et autorisez le script pour la première fois
  5. Sélectionnez Exécuter> onOpen
  6. Accédez à votre document et essayez les fonctions du menu personnalisé Outils de titres créé.

~~ Clause de non-responsabilité: vous pouvez avoir des problèmes avec les en-têtes vides .. Mais vous pouvez toujours les corriger et réexécuter l'action. ~~

Code à copier et coller:

function onOpen() {
  DocumentApp.getUi().createMenu('Headings Tools')
  .addItem('Auto Number Headings', 'numberHeadingsAdd')
  .addItem('Clear Heading Numbers', 'numberHeadingsClear')
  .addToUi();
}

function numberHeadingsAdd(){
  numberHeadings(true);
}

function numberHeadingsClear(){
  numberHeadings(false);
}

function numberHeadings(add){
  var document = DocumentApp.getActiveDocument();
  var body = document.getBody();
  var paragraphs = document.getParagraphs();
  var numbers = [0,0,0,0,0,0,0];
  for (var i in paragraphs) {
    var element = paragraphs[i];
    var text = element.getText()+'';
    var type = element.getHeading()+'';

    // exclude everything but headings
    if (!type.match(/Heading \d/)) {
      continue;
    }

    // exclude empty headings (e.g. page breaks generate these)
    if( text.match(/^\s*$/)){
      continue;
    }

    if (add == true) {
      var level = new RegExp(/Heading (\d)/).exec(type)[1];  
      var numbering = '';

      numbers[level]++;
      for (var currentLevel = 1; currentLevel <= 6; currentLevel++) {
        if (currentLevel <= level) {
          numbering += numbers[currentLevel] + '.';
        } else {
          numbers[currentLevel] = 0;
        }
      }
      Logger.log(text);
      var newText = numbering + ' ' + text.replace(/^[0-9\.\s]+/, '');
      element.setText(newText);
      Logger.log([newText]);
    } else {
      Logger.log(text);
      element.setText(text.replace(/^[0-9\.\s]+/, ''));
    }
  }

}
39
Luciano

Les numéros d'en-tête du module complémentaire Google Docs https://chrome.google.com/webstore/detail/heading-numbers/pomhgonejhponfnckfnonolnciipappm semble faire le travail de manière fiable et avec de nombreuses options. Je préfère cela à tout script personnalisé.

  • utiliser le menu Google Docs "Modules complémentaires"
  • rechercher "Numéros de titre"
2
Marc

Tout ce que vous avez à faire est de copier/coller les en-têtes précédents.

Si vous copiez et collez un élément de la liste numérotée, il conserve sa numérotation et modifie automatiquement le numéro dans les cas pertinents.

1
alexkovelsky