Czy mogę uzyskać numerację nagłówków w Dokumentach Google?

33

Czy istnieje sposób automatycznego numerowania nagłówków w Dokumentach Google?

Kiedyś było to możliwe z CSS, ale ta funkcja nie jest już obsługiwana w nowej wersji Dokumentów Google.

Martin Delille
źródło
Dodano skrypt google-apps-script, ponieważ korzysta z niego zaakceptowana odpowiedź.
Rubén

Odpowiedzi:

6

Wydaje się, że łatwiej to zrobić, skryptując dokument w ten sposób:

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]); 
          }
    }
}
robert77
źródło
1
Masz rację, skrypty Google są tak potężne!
Martin Delille,
13

W rzeczywistości jest to możliwe nawet bez edycji HTML / CSS. Dam ci przykład z pustym dokumentem, ale kiedy zrozumiesz, jak to działa, będziesz mógł to zrobić na już istniejącym dokumencie. Również, jeśli jeszcze nie używasz skrótów klawiaturowych, sugeruję, abyś zaczął ich używać (w tym przykładzie używam skrótów Mac, ale możesz łatwo znaleźć odpowiednie dla własnego systemu operacyjnego).

  1. Utwórz nowy dokument
  2. Zastosuj nagłówek 1 ( ⌘⌥1)
  3. Zastosuj listę numerowaną ( ⌘⇧7)
  4. Wpisz „First” i naciśnijReturn
  5. Zastosuj nagłówek 1 ( ⌘⌥1), wpisz „Second” i naciśnijReturn
  6. Zastosuj nagłówek 1 ( ⌘⌥1), wpisz „Trzeci” i naciśnijReturn

W tym momencie powinieneś mieć coś, co wygląda następująco:

Nagłówki numerowane w Dokumentach Google

  1. Umieść kursor na końcu pierwszego nagłówka
  2. Naciśnij Returndwa razy
  3. Wpisz „Hello World!”
  4. Powtórz procedurę dla pozostałych nagłówków

Teraz twój dokument powinien wyglądać mniej więcej tak:

Numerowane nagłówki z dodatkowym tekstem pomiędzy nimi

Jak można zauważyć, automatyczna numeracja nadal istnieje i można łatwo eksperymentować, dodając więcej nagłówków według potrzeb, a nawet numerując podtytuły w razie potrzeby. Nie wchodzę w więcej szczegółów, ale tutaj możesz sprawdzić przykład z zagnieżdżonymi listami numerowanymi z poprawnym formatowaniem nagłówków:

Kompletny przykład dla numerowanych nagłówków

Lipis
źródło
1
Wygląda to ładnie, ale nie wydaje się być w pełni funkcjonalne: jak dodać nowy nagłówek 1 na końcu dokumentu? Jeśli ustawię nagłówek 1, a następnie zastosuję listę numerów, zacznę numerować od 1 ...
Martin Delille
3
@tinmaru To trochę skomplikowane .. ale wciąż wykonalne. Przejdź do końca poprzedniego nagłówka, w którym chcesz kontynuować numerację, naciśnij enter, a następnie zastosuj nagłówek. Następnie wytnij to (nie wspominając o pozostawionej liczbie), przejdź na koniec dokumentu i wklej go. Zobaczysz, że liczba jest teraz poprawna, więc po prostu napraw poprzedni błąd, usuwając ewentualny pusty nagłówek.
Lipis,
1
Miły! To podstęp;)
Martin Delille
@tinmaru, jeśli odpowiedź jest pomocna, nie zapomnij zaznaczyć;)
Lipis
1
tak, przepraszam, całkowicie zapomniałem! Dzięki za pomoc :)
Martin Delille,
2

Wiem, że może to już nie mieć znaczenia dla PO, ale teraz istnieje możliwość korzystania z dodatków. W dodatku do spisu treści znajduje się funkcja umożliwiająca wybranie schematu numeracji dla nagłówka i wykonanie wymaganych czynności:

1
1.1
2
2.1
2.1.1

Mam nadzieję, że coś się przyda.

Link do dodatku

Oświadczenie: Może to działać tylko w Chrome, ale hej, przynajmniej działa.

Jak używać: Po prawej stronie znajduje się widżet, a na górze można wybrać schemat numeracji i odświeżyć nagłówki zwykłym przyciskiem odświeżania.

Więc po prostu ustaw schemat numeracji i zaktualizuj nagłówek po zakończeniu edycji, a będziesz mieć poprawne i zaktualizowane section/subsection/...numery.

gns-ank
źródło
Doskonały. Dla mnie jest to „odpowiedź”. Działa w przeglądarce Firefox dla mnie.
AronVanAmmers
2

Teraz istnieje dodatek o nazwie Numery nagłówków , którego można użyć do dodania dowolnego niestandardowego stylu numeracji. Pozwala wybrać / zdefiniować, zaktualizować i usunąć automatyczne numery nagłówków.

Predefiniowane style:

  • 1.2.3 - Cyfry bez kropki
  • 1.2.3 - Cyfry z kropką końcową
  • abc - małe litery
  • ABC - wielkie litery
  • i.ii.ii - Roman małe litery
  • I.II.III - Roman wielkie litery
  • 1) a) i) - Zmiana stylu, a następnie nawias końcowy

Wydałem ten dodatek kilka tygodni temu. Sprawdź to na mojej stronie głównej lub w sklepie z dodatkami .

Kristoffer
źródło
FAQ wpis dotyczący Jak dodać automatyczne numerowanie pozycji? mówi: „Jeśli dodatek jest zainstalowany, wybierz„ Dodatki ”->„ Numery nagłówków ”, a następnie wybierz swój styl.” Ale po dodaniu go do dokumentu nie pojawił się. Musiałem ponownie załadować dokument, zanim w menu pojawiło się „Numery nagłówków”. Prawdopodobnie błąd Google, a nie błąd w aplikacji Numery nagłówków.
bgoodr
1

Mam nadzieję że to pomoże

/*
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;
}
Sai
źródło
1

Zrobiłem szybkie porównanie między aplikacją Spis treści a aplikacjami Numerowane nagłówki za pomocą przeglądarki Firefox. Trzeba przyznać, że te informacje staną się przestarzałe, jeśli poprawią się obie aplikacje:

  1. Nie ma pomocy online w korzystaniu z aplikacji Spis treści (nigdy nie została lub została usunięta ) Przycisk pomocy wskazuje stronę, która próbuje sprzedać za pomocą wersji próbnej http: //lumapps-www.appspot. com / pl / zamiast udzielać pomocy. Numery nagłówków zawierają często zadawane pytania na stronie http://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/ .
  2. Aplikacje Spis treści i Numery nagłówków nie grają dobrze razem pod względem numeracji nagłówków: utworzyłem numerowane nagłówki za pomocą Numerów nagłówków i zastosowałem podobne nagłówki za pomocą Spisu treści i dodałem dwa zestawy liczb do nagłówków. To samo dzieje się, jeśli odwrócisz kolejność, stosując najpierw nagłówki przy użyciu Spisu treści, a następnie Numery nagłówków.
  3. Spis treści nie ma takiej samej liczby stylów nagłówków jak Numery nagłówków.
  4. Ale posiadanie paska bocznego w Spisie treści jest nadal przydatne. Wybieram „Tak jak jest” z paska bocznego Spisu treści i jestem w stanie kliknąć przycisk odświeżania, aby wyświetlić i nawigować po spisie treści.
  5. Numery pozycji mają operację czyszczenia. Spis treści nie. Operacja Wyczyść nie rozwiązuje problemu interakcji opisanego powyżej, co jest dość bolesne, ponieważ trzeba je ręcznie naprawić.
  6. Żadna z aplikacji nie aktualizuje spisu treści, który jest wstawiany do dokumentu (za pośrednictwem menu Wstaw / Spis treści).
bgoodr
źródło