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

33

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

Cela était possible avec CSS, mais cette fonctionnalité n’est plus supportée dans la nouvelle version de Google Docs.

Martin Delille
la source
Ajout de google-apps-script car la réponse acceptée l'utilise.
Rubén

Réponses:

6

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]); 
          }
    }
}
robert77
la source
1
Vous avez raison, les scripts Google sont si puissants!
Martin Delille
13

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 de Mac, mais vous pouvez facilement trouver ceux qui conviennent à votre propre système d'exploitation).

  1. Créer un nouveau document
  2. Appliquer le titre 1 ( ⌘⌥1)
  3. Appliquer la liste numérotée ( ⌘⇧7)
  4. Tapez "First" et appuyez surReturn
  5. Appliquer le titre 1 ( ⌘⌥1), taper "Seconde" et appuyer surReturn
  6. Appliquez le titre 1 ( ⌘⌥1), tapez "Troisième" et appuyez surReturn

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

En-têtes numérotés dans Google Docs

  1. Obtenez votre curseur à la fin de la première en- tête
  2. Appuyez Returndeux fois
  3. Tapez "Bonjour le monde!"
  4. Répétez la procédure pour le reste des en-têtes

Maintenant, votre document devrait ressembler à ceci:

En-têtes numérotés avec du texte supplémentaire entre les deux

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:

Exemple complet pour les en-têtes numérotés

Lipis
la source
1
Cela a l'air sympa mais ne semble pas totalement fonctionnel: comment ajouter une nouvelle rubrique 1 à la fin du document? Si je règle l'en-tête 1 et que j'applique la liste des numéros, la numérotation commence à partir de 1 ...
Martin Delille
3
@ tinmaru C'est un peu délicat ... mais toujours faisable. Accédez à la fin de l'en-tête précédent où vous souhaitez continuer la numérotation, appuyez sur entrée, puis appliquez l'en-tête. Après coupez cela (ne vous souciez pas du nombre qui reste), allez à la fin du document et collez-le. Vous verrez que le nombre est correct maintenant, il vous suffit donc de corriger l’erreur précédente en supprimant l’en-tête vide, le cas échéant.
Lipis
1
Agréable! C'est un truc;)
Martin Delille
@ tinmaru si la réponse est utile, n'oubliez pas de la marquer;)
Lipis
1
oui je suis désolé j'ai totalement oublié! Merci pour votre aide :)
Martin Delille
2

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 l' add-on

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

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 actualiser les en-têtes à l'aide du bouton d'actualisation habituel.

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. Vous obtiendrez ainsi des section/subsection/...chiffres corrects et à jour .

gns-ank
la source
Excellent. Pour moi, c'est "la" réponse. Fonctionne sur Firefox pour moi.
AronVanAmmers
2

Il existe maintenant un module additionnel appelé Numéros d'en-tête que vous pouvez utiliser pour ajouter n'importe quel 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
  • abc - lettres minuscules
  • ABC - 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. Découvrez-le sur ma page d'accueil ou dans le magasin complémentaire .

Kristoffer
la source
L' entrée de la FAQ pour Comment ajouter une numérotation de rubrique automatique? dit: "Si le module complémentaire est installé, choisissez" Modules complémentaires "->" Numéros de titre ", puis choisissez votre style." Mais lors de l'ajout à un document, cela ne s'est pas présenté. Je devais recharger le document avant que "Numéros de titre" apparaisse dans le menu. Probablement un bug de Google et non un bug dans l'application Heading numbers.
bgoodr
1

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;
}
Sai
la source
1

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 une version d’essai http: //lumapps-www.appspot. com / fr / au lieu de fournir de l'aide. Heading Numbers fournit une FAQ sur 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ête 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 n'a pas le même nombre de styles de titre que Numéros de tête.
  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 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).
bon
la source