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.
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]);
}
}
}
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
)⌘⇧7
)Return
⌘⌥1
), tapez "Seconde" et appuyez sur Return
⌘⌥1
), tapez "Troisième" et appuyez sur Return
À ce stade, vous devriez avoir quelque chose qui ressemble à ceci:
Return
Maintenant, votre document devrait ressembler à ceci:
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:
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.
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:
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 .
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;
}
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:
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