Esiste un modo per numerare automaticamente le intestazioni in Google Documenti?
In passato era possibile con i CSS ma questa funzione non è più supportata nella nuova versione di Google Documenti.
Esiste un modo per numerare automaticamente le intestazioni in Google Documenti?
In passato era possibile con i CSS ma questa funzione non è più supportata nella nuova versione di Google Documenti.
Risposte:
Bene, sembra più facile farlo scrivendo il documento in questo modo:
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]);
}
}
}
In realtà è possibile anche senza modificare l'HTML / CSS. Ti faccio un esempio con un documento vuoto ma una volta che avrai capito come funziona, sarai in grado di farlo su un documento già esistente. Inoltre, se non stai già utilizzando le scorciatoie da tastiera, ti suggerirei di iniziare a usarle (in questo esempio sto usando le scorciatoie del Mac, ma puoi facilmente trovare quelle corrette per il tuo sistema operativo).
⌘⌥1
)⌘⇧7
)Return
⌘⌥1
), digitare "Secondo" e premereReturn
⌘⌥1
), digitare "Terzo" e premereReturn
A quel punto dovresti avere qualcosa che assomigli a questo:
Return
due volteOra il tuo documento dovrebbe assomigliare a questo:
Come avrai notato, la numerazione automatica è ancora lì e puoi facilmente sperimentare aggiungendo più intestazioni come desideri e persino sottotitoli numerati se necessario. Non entrerò in maggiori dettagli, ma qui puoi controllare un esempio con elenchi numerati nidificati con una formattazione corretta per le intestazioni:
So che questo potrebbe non essere più rilevante per l'OP, ma ora esiste la possibilità di utilizzare i componenti aggiuntivi. C'è una funzione nel componente aggiuntivo Sommario, in cui è possibile selezionare lo schema di numerazione per l'intestazione e svolge le funzioni seguenti:
1
1.1
2
2.1
2.1.1
Spero che sia utile a qualcosa.
Link al componente aggiuntivo
Disclaimer: questo potrebbe funzionare solo su Chrome, ma ehi, almeno funziona.
Come usare: c'è un widget sul lato destro e nella parte superiore puoi selezionare lo schema di numerazione e aggiornare le intestazioni con il solito pulsante di aggiornamento.
Quindi basta impostare lo schema di numerazione e aggiornare l'intestazione dopo aver terminato la modifica e avrai section/subsection/...
numeri corretti e aggiornati .
Ora c'è un componente aggiuntivo chiamato Numeri di titoli che puoi usare per aggiungere qualsiasi stile di numerazione personalizzato. Ti consente di scegliere / definire, aggiornare e rimuovere i numeri di intestazione automatici.
Stili predefiniti:
Ho rilasciato questo componente aggiuntivo un paio di settimane fa. Dai un'occhiata sulla mia homepage o nello store dei componenti aggiuntivi .
Quello che stavo cercando era ottenere i titoli in questo modo:
1
1.1
1.1.1
1.1.1.1
etc
e non ne ho trovato nessuno, quindi ho creato il mio script, l'ho pubblicato qui http://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
Spero che sia di aiuto
/*
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;
}
Ho fatto un rapido confronto tra l'app Sommario e le app Intestazioni numerate utilizzando Firefox. Certo, queste informazioni diventeranno datate se le cose migliorano per entrambe le app: