Google Docs / Drive: numerare le intestazioni


Risposte:


93

Se vuoi qualcosa di più semplice, c'è un add-on di Google chiamato "Table of Contents" che ti permetterà di numerare i tuoi titoli.

Per installare questo componente aggiuntivo:

  1. Fare clic sui componenti aggiuntivi> Ottieni componenti aggiuntivi.
  2. Fare clic sull'icona "Sommario" o cercare questo componente aggiuntivo per installarlo

Quindi il tuo sommario dovrebbe apparire nella barra laterale. Fare clic sul menu Formato numeri di intestazione e scegliere 1.2.3

Devi riformattare il tuo documento se ne hai uno vecchio per "aggiornare" i numeri, ma in realtà l'addon funziona molto bene.

Ho visto la risposta in questo forum .


4
Nel caso in cui la barra laterale non venga mostrata, vai su "Componenti aggiuntivi-> Sommario-> Mostra nella barra laterale" .
Steven Jeuris

3
Penso che chiunque possa chiamare il proprio componente aggiuntivo "Sommario". Quindi un collegamento al componente aggiuntivo effettivo è utile. Immagino tu intenda questo: chrome.google.com/webstore/detail/table-of-contents/…
nealmcb

Come viene installato il plug-in: per macchina / browser, per documento, per utente su Google Docs? Cosa succede se altri vogliono modificare il documento?
Sybille Peters

1
Purtroppo, questo plugin sembra non funzionare. Non si installa a causa di un problema di autorizzazione. Altri ottengono lo stesso risultato?
gavdotnet

1
@gavdotnet Ha funzionato per me, quindi devono averlo risolto.
codefreak

49

Aggiornamento: ora disponibile in GitHub .

Aggiornamento 2: ora gestisce intestazioni vuote e righe vuote grazie a 2 richieste pull su GitHub.

Aggiornamento 3: gitHub e codice sottostante corretti per gestire la nuova identificazione dell'INTESTAZIONE di Documenti.


Ho modificato lo script menzionato da Mikko Ohtamaa e ho creato uno script di Google Apps che aggiunge un menu Documento degli strumenti delle intestazioni che ti consente di:

  • numero auto Intestazione
  • chiari i numeri delle intestazioni

Come numerare automaticamente le intestazioni dei documenti di Google:

  1. Apri il tuo documento> Strumenti> Editor di script ...
  2. Inizia un progetto vuoto
  3. Incolla il codice qui sotto e salva con il tuo nome preferito
  4. Seleziona Esegui> all'apertura e autorizza lo script per la prima volta
  5. Seleziona Esegui> onOpen
  6. Passa al tuo documento e prova le funzioni nel menu personalizzato degli strumenti Intestazioni creato.

~~ Dichiarazione di non responsabilità: potresti avere problemi con i titoli vuoti .. Ma puoi sempre risolverli ed eseguire di nuovo l'azione. ~~

Codice da copiare e incollare:

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]+/, ''));
    }
  }

}

Sono felice di sapere che @IvanCachicatari sto progettando di creare una versione migliorata da lanciare come add-on in questo modo non abbiamo bisogno di aprire l'editor di script ogni volta ...
Luciano

2
@IvanCachicatari Ottima idea, il gioco è fatto! github.com/lpanebr/autoNumberHeadings
Luciano

2
@MrGravity il modo per ottenerlo è convertire lo script in un componente aggiuntivo per Google Drive. Ho intenzione di farlo, ma ora non ho più tempo ..
Luciano

1
Wow! Mi sento come se fossero di nuovo 90 legami. Abbiamo davvero bisogno di uno script per realizzare una cosa così semplice come la numerazione delle intestazioni? Ora capisco perché ci sono tutte queste iniziative di programmazione: i nostri bambini hanno davvero bisogno di conoscere il loro JavaScript per scrivere qualsiasi documento di lavoro; P
Janusz Skonieczny,

1
@Luciano che genere di opere. Sto assistendo a una cosa strana. Se taglio e incollo il codice da git ottengo uno di due risultati: non succede nulla o un errore di analisi regex alla riga 38. Per farlo funzionare devo 1) tagliare e incollare il codice git da 10/16 / 17, 2) salva, 3) apporta manualmente le modifiche suggerite, 4) salva ed esegui come elencato sopra. Ho notato una leggera differenza: la riga 38 nella tua versione rimuove la parentesi intorno a \ d.
Ginger McMurray

10

Tutto quello che devi fare è copiare / incollare le intestazioni precedenti.

Se copi e incolli qualsiasi elemento dell'elenco numerato, mantiene la sua numerazione e cambia automaticamente il numero nei casi pertinenti.


Quanto pragmatica, questa soluzione è sottovalutata.
qualche volta il

In effetti, questa è la soluzione NATIVA più semplice (se sei ancora in fase di editing)!
Demis,

1
Per quanto ne so, questo richiede di rientrare con ogni livello di intestazione in cui scendi. È così o c'è un altro modo?
gavdotnet

1
Il problema è: devi copiare le intestazioni dallo stesso documento . Se copi una "intestazione 1" ad esempio da un altro documento html, nonostante la formattazione "intestazione x" conservata, non avrà il numero. Ciò significa che se hai già un altro documento con un mucchio di testo che vuoi copiare e incollare, la tua soluzione richiederebbe troppo lavoro manuale. O in realtà: è lo stesso se hai già un documento e vuoi solo che i titoli siano enumerati.
Hi-Angel

3

Dalla scrittura (aprile 2020), molte app proposte sono obsolete o non funzionano più.

Il metodo per le intestazioni numerate che ho trovato funzionante è il seguente:

  1. Vai a Ottieni componenti aggiuntivi
  2. Cerca e installa Markdown Tools

Markdown Tools ha un'opzione per utilizzare intestazioni numerate. Funziona a meraviglia con il sommario integrato di Google.

Per creare un sommario:

  1. Vai alla voce di menu Inserisci e seleziona Sommario

Questo è super utile! Non avrei pensato che una semplice funzionalità di numerazione del sommario sarebbe stata in uno strumento di markdown, ma funziona benissimo, grazie!
prrao

1

Ho scritto una versione per creare titoli di markdown, ma supporta anche i numeri di intestazione semplici. La fonte è qui https://github.com/jordan2175/markdown-tools ed è disponibile tramite G Suite Marketplace come "Markdown Tools".


Ciao @ jordan2175, il componente aggiuntivo è fantastico. Sarebbe bello se il sommario che genera avesse numeri di pagina.
David Lopez

0

Il già citato add-on "Sommario" non è disponibile a partire da oggi. Ho installato quello chiamato " Strumenti Markdown " Una volta installato, è necessario applicare stili di intestazione nativi e poi andare su Add-Ons> Strumenti Markdown> Numeri di intestazione e scegliere lo stile di numerazione desiderato che verrà applicato a tutte le intestazioni nel documento.

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.