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.
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.
Réponses:
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 de Mac, mais vous pouvez facilement trouver ceux qui conviennent à votre propre système d'exploitation).
⌘⌥1
)⌘⇧7
)Return
⌘⌥1
), taper "Seconde" et appuyer surReturn
⌘⌥1
), tapez "Troisième" et appuyez surReturn
À ce stade, vous devriez avoir quelque chose qui ressemble à ceci:
Return
deux foisMaintenant, 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 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 .
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:
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 .
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/w4MXeqJaefU
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: