Posso ottenere la numerazione delle intestazioni in Google Documenti?


33

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.


Aggiunto google-apps-script perché la risposta accettata lo utilizza.
Rubén

Risposte:


6

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]); 
          }
    }
}

1
Hai ragione, lo scripting di Google è così potente!
Martin Delille,

13

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. Crea un nuovo documento
  2. Applica titolo 1 ( ⌘⌥1)
  3. Applica elenco numerato ( ⌘⇧7)
  4. Digita "Primo" e premiReturn
  5. Applicare Titolo 1 ( ⌘⌥1), digitare "Secondo" e premereReturn
  6. Applicare Titolo 1 ( ⌘⌥1), digitare "Terzo" e premereReturn

A quel punto dovresti avere qualcosa che assomigli a questo:

Intestazioni numerate in Google Documenti

  1. Prendi il cursore alla fine della prima intestazione
  2. Premi Returndue volte
  3. Digita "Hello World!"
  4. Ripeti la procedura per il resto delle intestazioni

Ora il tuo documento dovrebbe assomigliare a questo:

Intestazioni numerate con qualche testo aggiuntivo in mezzo

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:

Esempio completo di intestazioni numerate


1
Sembra carino ma non sembra essere completamente funzionale: come posso aggiungere una nuova rubrica 1 alla fine del documento? Se imposto l'intestazione 1 e quindi applico l'elenco dei numeri, inizia la numerazione da 1 ...
Martin Delille,

3
@tinmaru Questo è un po 'complicato .. ma ancora fattibile. Vai alla fine dell'intestazione precedente per cui desideri continuare la numerazione, premi Invio e quindi applica l'intestazione. Successivamente taglialo (non importa per il numero che rimane), vai alla fine del documento e incollalo. Vedrai che il numero è corretto ora, quindi vai semplicemente a correggere l'errore precedente eliminando l'eventuale intestazione vuota.
Lipis,

1
Bello! Questo è un trucco;)
Martin Delille

@tinmaru se la risposta è utile non dimenticare di contrassegnarla;)
Lipis

1
si mi dispiace di averlo completamente dimenticato! Grazie per l'aiuto :)
Martin Delille

2

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 .


Eccellente. Per me questa è "la" risposta. Funziona su Firefox per me.
AronVanAmmers,

2

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:

  • 1.2.3 - Cifre senza punto finale
  • 1.2.3. - Cifre con punto finale
  • abc - Lettere minuscole
  • ABC: lettere maiuscole
  • i.ii.ii - Romano minuscolo
  • I.II.III - Maiuscolo romano
  • 1) a) i) - Modifica dello stile seguito da una parentesi finale

Ho rilasciato questo componente aggiuntivo un paio di settimane fa. Dai un'occhiata sulla mia homepage o nello store dei componenti aggiuntivi .


La voce FAQ per Come aggiungere la numerazione automatica delle intestazioni? dice: "Se il componente aggiuntivo è installato, scegli" Componenti aggiuntivi "->" Numeri di titolo ", quindi scegli il tuo stile." Ma quando lo si aggiunge a un documento, questo non viene visualizzato. Ho dovuto ricaricare il documento prima che "Menu numeri" fosse visualizzato nel menu. Probabilmente un bug di Google e non un bug nell'app Numeri di titolo.
bgoodr,


1

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;
}

1

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:

  1. Non è disponibile alcuna guida in linea per l'utilizzo dell'app Sommario (o non è mai stata o è stata rimossa ) Il pulsante di aiuto punta a una pagina che tenta di venderti con una versione di prova http: //lumapps-www.appspot. com / it / invece di fornire aiuto. I numeri di intestazione forniscono una FAQ all'indirizzo http://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/ .
  2. Le app Sommario e Numeri di intestazione non giocano bene insieme in termini di rinumerazione delle intestazioni: ho creato intestazioni numerate usando Numeri di intestazione e applicato intestazioni simili usando Sommario, e ha aggiunto due serie di numeri nelle intestazioni. Lo stesso vale se si inverte l'ordine applicando prima le intestazioni utilizzando il sommario, quindi i numeri delle intestazioni.
  3. Il sommario non ha lo stesso numero di stili di titolo dei numeri di titolo.
  4. Ma avere la barra laterale nel Sommario è ancora utile. Seleziono Come è dalla barra laterale del sommario e sono in grado di fare clic sul pulsante di aggiornamento per visualizzare e navigare nel sommario.
  5. I numeri di intestazione hanno un'operazione Clear. Sommario no. L'operazione Clear non risolve il problema di interazione sopra descritto, il che è abbastanza doloroso perché devi risolverli manualmente.
  6. Nessuna delle app aggiorna un Sommario che viene inserito nel documento (tramite il menu Inserisci / Sommario).
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.