Est-il possible de numéroter les en-têtes d'un document Google Docs/Drive?
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 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 :
Comment numéroter automatiquement les titres des documents Google:
~~ 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]+/, ''));
}
}
}
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é.
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.