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.
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.
Odpowiedzi:
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]);
}
}
}
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
)⌘⇧7
)Return
⌘⌥1
), wpisz „Second” i naciśnijReturn
⌘⌥1
), wpisz „Trzeci” i naciśnijReturn
W tym momencie powinieneś mieć coś, co wygląda następująco:
Return
dwa razyTeraz twój dokument powinien wyglądać mniej więcej tak:
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:
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.
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:
Wydałem ten dodatek kilka tygodni temu. Sprawdź to na mojej stronie głównej lub w sklepie z dodatkami .
To, czego szukałem, to takie nagłówki:
1
1.1
1.1.1
1.1.1.1
etc
i nie mogłem znaleźć żadnego, więc zrobiłem własny skrypt, opublikowałem go tutaj http://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
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;
}
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: