Google Text & Tabellen - Nummerieren Sie die Überschriften

97

Ist es möglich, die Überschriften in einem Google Docs / Drive-Dokument zu nummerieren?

ZehnVon12
quelle
47
Wie wird es nativ noch nicht unterstützt?
Janusz Skonieczny

Antworten:

92

Wenn Sie es einfacher haben möchten, gibt es ein Google-Add-On namens "Inhaltsverzeichnis" , mit dem Sie Ihre Überschriften nummerieren können.

So installieren Sie dieses Add-On:

  1. Klicken Sie auf Add-Ons> Add-Ons abrufen.
  2. Klicken Sie auf das Symbol "Inhaltsverzeichnis" oder suchen Sie nach diesem Addon, um es zu installieren

Dann sollte Ihr Inhaltsverzeichnis in Ihrer Seitenleiste angezeigt werden. Klicken Sie auf das Menü Überschriftenformat und wählen Sie 1.2.3

Sie müssen Ihr Dokument neu formatieren, wenn Sie ein altes haben, um die Zahlen zu "aktualisieren", aber tatsächlich funktioniert das Addon sehr gut.

Ich habe die Antwort in diesem Forum gesehen .

Aitor
quelle
4
Falls die Seitenleiste nicht angezeigt wird, gehen Sie zu "Add-Ons -> Inhaltsverzeichnis -> In Seitenleiste anzeigen" .
Steven Jeuris
3
Ich denke, jeder kann sein Add-On "Inhaltsverzeichnis" nennen. Ein Link zum eigentlichen Add-On ist also hilfreich. Ich vermute,
nealmcb
Wie wird das Plugin installiert - pro Computer / Browser, pro Dokument, pro Nutzer in Google Docs? Was passiert, wenn andere das Dokument bearbeiten möchten?
Sybille Peters
1
Leider scheint dieses Plugin kaputt zu sein. Die Installation kann aufgrund eines Autorisierungsproblems nicht durchgeführt werden. Erhalten andere das gleiche Ergebnis?
Gavdotnet
1
@gavdotnet Es hat bei mir funktioniert, also müssen sie es behoben haben.
Codefreak
49

Update: jetzt in Github verfügbar .

Update 2: Behandelt jetzt leere Überschriften und leere Zeilen dank 2 Pull-Anfragen auf Github.

Update 3: Github und Code unten behoben, um die neue Docs HEADING-Identifikation zu verarbeiten.


Ich habe das von Mikko Ohtamaa erwähnte Skript geändert und ein Google Apps-Skript erstellt, das ein Dokumentmenü mit Überschriften-Tools hinzufügt , mit dem Sie:

  • Autonummer Überschrift
  • Überschriften löschen

So nummerieren Sie automatisch Google Documents-Überschriften:

  1. Öffnen Sie Ihr Dokument> Extras> Skripteditor ...
  2. Starten Sie ein leeres Projekt
  3. Fügen Sie den folgenden Code ein und speichern Sie ihn mit Ihrem bevorzugten Namen
  4. Wählen Sie Ausführen> onOpen und autorisieren Sie das Skript zum ersten Mal
  5. Wählen Sie Ausführen> onOpen
  6. Wechseln Sie zu Ihrem Dokument und probieren Sie die Funktionen im benutzerdefinierten Menü der Überschriften-Tools aus .

~~ Haftungsausschluss: Möglicherweise haben Sie Probleme mit leeren Überschriften. Sie können diese jedoch jederzeit beheben und die Aktion erneut ausführen. ~~

Code zum Kopieren und Einfügen:

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

}
Luciano
quelle
Ich bin froh, @IvanCachicatari zu kennen. Ich plane, eine verbesserte Version zu erstellen, um sie als Add-On zu starten. Auf diese Weise müssen wir den Skript-Editor nicht jedes Mal öffnen ...
Luciano
2
@IvanCachicatari Tolle Idee, da hast du es! github.com/lpanebr/autoNumberHeadings
Luciano
2
@ MrGravity Der Weg, dies zu erreichen, besteht darin, das Skript in ein Add-On für Google Drive zu konvertieren. Ich habe vor, dies zu tun, habe aber jetzt keine Zeit mehr.
Luciano
1
Beeindruckend! Ich habe das Gefühl, es sind wieder 90 Krawatten. Benötigen wir wirklich ein Skript, um so etwas Grundlegendes wie die Nummerierung von Überschriften zu erreichen? Jetzt verstehe ich, warum es all diese Programmierinitiativen gibt - unsere Kinder müssen wirklich ihr JavaScript kennen, um ein Arbeitsdokument zu schreiben; P
Janusz Skonieczny
1
@ Luciano das funktioniert irgendwie . Ich sehe eine seltsame Sache. Wenn ich den Code aus Git ausschneide und einfüge, erhalte ich eines von zwei Ergebnissen: Es passiert nichts oder ein Regex-Analysefehler in Zeile 38. Damit es funktioniert, muss ich 1) den Git-Code von 10/16 / ausschneiden und einfügen. 17, 2) speichern, 3) die vorgeschlagenen Änderungen manuell vornehmen, 4) speichern und wie oben aufgeführt ausführen. Ich habe einen kleinen Unterschied festgestellt: Zeile 38 in Ihrer Version entfernt die Klammern um \ d.
Ginger McMurray
10

Sie müssen lediglich die vorherigen Header kopieren / einfügen.

Wenn Sie ein Element der nummerierten Liste kopieren und einfügen, behält es seine Nummerierung bei und ändert die Nummer in relevanten Fällen automatisch.

alexkovelsky
quelle
Wie pragmatisch diese Lösung unterschätzt wird.
Somethis
Dies ist in der Tat die einfachste NATIVE-Lösung (wenn Sie sich noch in der Bearbeitungsphase befinden)!
Demis
1
Soweit ich das beurteilen kann, müssen Sie mit jeder Überschriftenebene, in die Sie absteigen, einrücken. Ist das der Fall oder gibt es einen anderen Weg?
Gavdotnet
1
Das Problem ist: Sie müssen Überschriften aus demselben Dokument kopieren . Wenn Sie beispielsweise eine "Überschrift 1" aus einem anderen HTML-Dokument kopieren, wird die Nummer trotz der beibehaltenen Formatierung "Überschrift x" nicht angezeigt. Dies bedeutet, dass Ihre Lösung zu viel manuelle Arbeit erfordern würde, wenn Sie bereits ein anderes Dokument mit einer Menge Text haben, das Sie kopieren und einfügen möchten. Oder eigentlich: Es ist dasselbe, wenn Sie bereits ein Dokument haben und nur Überschriften dort aufzählen möchten.
Hi-Angel
3

Seit dem Schreiben (April 2020) sind viele vorgeschlagene Apps veraltet oder funktionieren nicht mehr.

Die Methode für nummerierte Überschriften, die ich gefunden habe, funktioniert wie folgt:

  1. Gehen Sie zu Get Add-Ons
  2. Suchen und installieren Sie Markdown Tools

Markdown Tools bietet die Option, nummerierte Überschriften zu verwenden. Funktioniert wie ein Zauber mit dem integrierten Inhaltsverzeichnis von Google.

So erstellen Sie ein Inhaltsverzeichnis:

  1. Gehen Sie zum Menüpunkt Einfügen und wählen Sie Inhaltsverzeichnis
Michael ten Den
quelle
Das ist super nützlich! Ich hätte nicht gedacht, dass eine einfache TOC-Nummerierungsfunktion in einem Markdown-Tool enthalten ist, aber es funktioniert großartig, danke!
Prrao
1

Ich habe eine Version für Markdown-Überschriften geschrieben, aber sie unterstützt auch einfache Überschriften. Die Quelle ist hier https://github.com/jordan2175/markdown-tools und über den G Suite Marketplace als "Markdown Tools" verfügbar.

jordan2175
quelle
Hi @ jordan2175 das Add-On ist großartig. Es wäre schön, wenn das generierte Inhaltsverzeichnis Seitenzahlen hätte.
David Lopez
0

Das zuvor erwähnte Add-On "Inhaltsverzeichnis" ist derzeit nicht verfügbar. Ich habe das mit dem Namen " Markdown Tools " installierte installiert. Nach der Installation müssen Sie native Überschriftenstile anwenden und dann zu Add-Ons> Markdown Tools> Überschriften-Nummern gehen und den gewünschten Nummerierungsstil auswählen, der auf alle Überschriften im Dokument angewendet wird.

David Lopez
quelle