Est-il possible de numéroter les en-têtes dans un document Google Docs / Drive?
Réponses:
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:
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 .
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 requests sur github.
Mise à jour 3: github et code ci-dessous corrigés pour gérer la nouvelle identification Docs HEADING.
J'ai modifié le script mentionné par Mikko Ohtamaa et créé un script Google Apps qui ajoute un menu Outils de titres qui vous permet de:
Comment numéroter automatiquement les en-têtes de documents Google:
~~ Clause de non-responsabilité: vous pouvez avoir des problèmes avec les titres vides. Mais vous pouvez toujours les résoudre et exécuter à nouveau 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]+/, ''));
}
}
}
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 change automatiquement le numéro dans les cas appropriés.
Depuis l'écriture (avril 2020), de nombreuses applications proposées sont obsolètes ou ne fonctionnent plus.
La méthode pour les en-têtes numérotés que j'ai trouvés fonctionnels est la suivante:
Markdown Tools a une option pour utiliser des en-têtes numérotés. Fonctionne comme un charme avec la table des matières intégrée de Google.
Pour créer une table des matières:
J'ai écrit une version pour faire des en-têtes de démarque, mais elle prend également en charge les numéros de titre simples. La source est ici https://github.com/jordan2175/markdown-tools et est disponible via G Suite Marketplace en tant que "Markdown Tools".
Le module complémentaire "Table des matières" mentionné précédemment n'est pas disponible à partir d'aujourd'hui. J'ai installé celui appelé " Markdown Tools " Une fois installé, vous devez appliquer des styles de titres natifs, puis aller dans Add-Ons> Markdown Tools> Heading numbers et choisir le style de numérotation souhaité qui sera appliqué à tous les titres du doc.