web-dev-qa-db-fra.com

Puis-je numéroter les en-têtes dans Google Docs?

Est-il possible de numéroter automatiquement les en-têtes dans Google Docs?

Cela était possible auparavant avec CSS, mais cette fonctionnalité n'est plus prise en charge dans la nouvelle version de Google Docs.

33
Martin Delille

Eh bien, il semble plus facile de faire cela en scriptant le document comme ceci:

var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
var counterh1 = 0;
for(var i=0; i < pars.length; i++) {
    var par = pars[i];
    var hdg = par.getHeading();
    if (hdg == DocumentApp.ParagraphHeading.HEADING1) {
          counterh1++; 
          var content = par.getText();
          var chunks = content.split('\t');
          if(chunks.length > 1) { 
              par.setText(counterh1+'.\t'+chunks[1]); 
          } else {
              par.setText(counterh1+'.\t'+chunks[0]); 
          }
    }
}
6
robert77

En fait c'est possible même sans éditer le HTML/CSS. Je vais vous donner un exemple avec un document vierge, mais une fois que vous aurez compris comment cela fonctionne, vous pourrez le faire sur un document déjà existant. De plus, si vous n'utilisez pas déjà les raccourcis clavier, je vous suggère de commencer à les utiliser (dans cet exemple, j'utilise les raccourcis Mac, mais vous pouvez facilement trouver ceux qui conviennent à votre propre système d'exploitation).

  1. Créer un nouveau document
  2. Appliquer Titre 1 (⌘⌥1)
  3. Appliquer liste numérotée (⌘⇧7)
  4. Tapez "Premier" et appuyez sur Return
  5. Appliquer Titre 1 (⌘⌥1), tapez "Seconde" et appuyez sur Return
  6. Appliquer Titre 1 (⌘⌥1), tapez "Troisième" et appuyez sur Return

À ce stade, vous devriez avoir quelque chose qui ressemble à ceci:

Numbered Headers in Google Docs

  1. Placez votre curseur à la fin de l'en-tête First
  2. Appuyez deux fois sur Return
  3. Tapez "Hello World!"
  4. Répétez la procédure pour le reste des en-têtes

Maintenant, votre document devrait ressembler à ceci:

Numbered headers with some extra text in between

Comme vous l'avez peut-être remarqué, la numérotation automatique est toujours là et vous pouvez facilement expérimenter en ajoutant d'autres en-têtes à votre guise et même des sous-en-têtes numérotés si nécessaire. Je ne vais pas entrer dans plus de détails, mais ici vous pouvez vérifier un exemple avec des listes numérotées imbriquées avec un formatage correct pour les en-têtes:

Complete example for numbered headers

13
Lipis

Je sais que cela pourrait ne plus être pertinent pour le PO, mais il est maintenant possible d'utiliser des add-ons. Il existe une fonction dans l'add-on Table des matières, dans laquelle vous pouvez sélectionner le schéma de numérotation pour l'en-tête et effectuer les tâches suivantes:

1
1.1
2
2.1
2.1.1

J'espère que cela sera utile à quelque chose.

Lien vers le add-on

Avertissement: Cela ne fonctionne peut-être que sur Chrome, mais bon, au moins, cela fonctionne.

Comment utiliser: Il y a un widget sur le côté droit et en haut de celui-ci, vous pouvez sélectionner votre schéma de numérotation et rafraîchir les en-têtes avec les fonctions habituelles. bouton d'actualisation.

Il vous suffit donc de définir le schéma de numérotation et de mettre à jour l’en-tête une fois l’édition terminée. Les chiffres section/subsection/... sont corrects et actualisés.

2
gns-ank

Il existe maintenant un add-on appelé Heading Numbers que vous pouvez utiliser pour ajouter un style de numérotation personnalisé. Il vous permet de choisir/définir, mettre à jour et supprimer les numéros de rubrique automatiques.

Styles prédéfinis:

  • 1.2.3 - Chiffres sans point de fin
  • 1.2.3. - Chiffres avec point de fin
  • a.b.c - lettres minuscules
  • A.B.C - Lettres majuscules
  • i.ii.ii - Minuscule romain
  • I.II.III - Roman majuscule
  • 1) a) i) - Changement de style suivi d'une parenthèse finale

J'ai publié cet add-on il y a quelques semaines. Vérifiez-le sur ma page d'accueil ou dans le magasin complémentaire .

2
Kristoffer

J'espère que cela t'aides

/*
Credits: 

https://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
http://webapps.stackexchange.com/questions/23861/header-numbering-in-google-docs

Instructions to use:

In a Google Doc

Go to Tools > Script Editor 
Select the option to create the script for Google Docs.
Replace the Content of Code.gs with the code below.
Save it and name the project as say addHeaderNumbering.
Click play icon for the function addHeaderNumbering (authorize it when asked).

*/

function addHeaderNumbering () {
  var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
  var counterHeader = [0, 0, 0, 0, 0, 0];

  for(var i=0; i<pars.length; i++) {
    var par = pars[i];
    var hdg = par.getHeading();
    if (hdg == DocumentApp.ParagraphHeading.HEADING1) {

      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING1, par, 0, counterHeader);
    } else if (hdg == DocumentApp.ParagraphHeading.HEADING2) {
      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING2, par, 1, counterHeader);
    } else if (hdg == DocumentApp.ParagraphHeading.HEADING3) {
      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING3, par, 2, counterHeader);
    } else if (hdg == DocumentApp.ParagraphHeading.HEADING4) {
      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING4, par, 3, counterHeader);
    } else if (hdg == DocumentApp.ParagraphHeading.HEADING5) {
      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING5, par, 4, counterHeader);
    } else if (hdg == DocumentApp.ParagraphHeading.HEADING6) {
      _addNumberingForHeaderType(DocumentApp.ParagraphHeading.HEADING6, par, 5, counterHeader);
    }
  }
}


function _addNumberingForHeaderType(headerType, paragraph, initIndex, counterHeader) {
  counterHeader[initIndex] = counterHeader[initIndex] + 1;
  var currCounter = _getCurrenNumbering(initIndex, counterHeader);
  for(var ii = initIndex + 1; ii < counterHeader.length; ii++) {
    counterHeader[ii] = 0;
  }
  var content = paragraph.getText();
  var chunks = content.split('. ')

  var result = 'ok'
  if(chunks.length > 1) {

    paragraph.setText(currCounter+'. '+chunks[1]); 
  } else { 
    paragraph.setText(currCounter+'. '+chunks[0]);
  }
}


function _getCurrenNumbering(initIndex, counterHeader) {
  var value = '';
  for ( var i = 0; i <= initIndex; i++) {
    if (value) {
      value += '.';
    }
    value += counterHeader[i];
  }

  return value;
}
1
Sai

J'ai fait une comparaison rapide entre l'application Table des matières et les applications En-têtes numérotés utilisant Firefox. Certes, cette information deviendra obsolète si les choses s'améliorent pour les deux applications:

  1. Il n’existe aucune aide en ligne pour utiliser l’application Table des matières (elle n’a jamais été ou elle a été supprimée). Le bouton d’aide pointe vers une page qui tente de vous vendre avec un essai http: // lumapps- www.appspot.com/fr/ au lieu de vous aider. Heading Numbers fournit un FAQ à http://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/ .
  2. Les applications Table des matières et Numéros d'en-tête ne fonctionnent pas bien en termes de renumérotation des en-têtes: j'ai créé des en-têtes numérotés à l'aide d'en-têtes Numéros et appliqué des en-têtes similaires en utilisant la Table des matières, et ajouté deux ensembles de numéros dans les en-têtes. Il en va de même si vous inversez l'ordre en appliquant les en-têtes en utilisant d'abord la table des matières, puis les numéros d'en-tête.
  3. La table des matières ne comporte pas le même nombre de styles de titre que les numéros de titre.
  4. Mais avoir la barre latérale dans la table des matières est toujours pratique. Je sélectionne Tel quel dans la barre latérale de la table des matières et je peux cliquer sur le bouton d'actualisation pour afficher et parcourir la table des matières.
  5. Heading Numbers a une opération claire. La table des matières ne le fait pas. L'opération Clear ne ne résout pas le problème d'interaction décrit ci-dessus, ce qui est très pénible car vous devez les résoudre manuellement.
  6. Aucune de ces applications ne met à jour une table des matières insérée dans le document (via le menu Insérer/Table des matières).
1
bgoodr

Ce que je cherchais, c’était d’obtenir les titres comme suit:

1
1.1
1.1.1
1.1.1.1
etc

et je ne pouvais pas en trouver, alors j'ai fait mon propre script, je l'ai posté ici http://productforums.google.com/forum/#!topic/docs/w4MXeqJaef

1
Keyjote