Чи є спосіб автоматично нумерувати заголовки в Документах Google?
Раніше це було можливо за допомогою CSS, але ця функція вже не підтримується в новій версії Документів Google.
Чи є спосіб автоматично нумерувати заголовки в Документах Google?
Раніше це було можливо за допомогою CSS, але ця функція вже не підтримується в новій версії Документів Google.
Відповіді:
Що ж, здається, простіше зробити це, написавши такий документ:
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]);
}
}
}
Насправді це можливо навіть без редагування HTML / CSS. Я надам вам приклад з порожнім документом, але як тільки ви зрозумієте, як він працює, ви зможете це зробити на вже існуючому документі. Також якщо ви вже не використовуєте комбінації клавіш, я б запропонував вам почати їх використовувати (у цьому прикладі я використовую комбінації клавіш Mac, але ви можете легко знайти правильні для вашої власної ОС).
⌘⌥1
)⌘⇧7
)Return
⌘⌥1
), введіть "Друге" та натиснітьReturn
⌘⌥1
), введіть "Третє" та натиснітьReturn
У цей момент у вас повинно бути щось таке:
Return
двічіТепер ваш документ повинен виглядати приблизно так:
Як ви могли помітити, автоматична нумерація все ще існує, і ви можете легко експериментувати, додаючи більше заголовків за бажанням і навіть нумеровані підзаголовки, якщо потрібно. Я не збираюся детальніше, але тут ви можете перевірити приклад із вкладеними нумерованими списками з правильним форматуванням заголовків:
Я знаю, що це може бути вже не актуальним для ОП, але зараз є можливість використовувати додатки. У додатку «Зміст» є функція, де ви можете вибрати схему нумерації для заголовка, і вона виконує необхідні:
1
1.1
2
2.1
2.1.1
Я сподіваюся, що це буде корисно чимось.
Посилання на надбудову
Відмова від відповідальності: це може працювати лише на Chrome, але так, принаймні, це працює.
Як користуватися: у правій частині є віджет, а вгорі ви можете вибрати свою схему нумерації та оновити заголовки звичайною кнопкою оновлення.
Тому просто встановіть схему нумерації та оновіть заголовок після того, як ви закінчите редагування, і ви отримаєте правильні та оновлені section/subsection/...
номери.
Тепер є додаток під назвою Heading Numbers, яке можна використовувати для додавання будь-якого користувальницького стилю нумерації. Це дозволяє вибрати / визначити, оновити та видалити автоматичні номери заголовків.
Заздалегідь визначені стилі:
Я випустив цей додаток пару тижнів тому. Перевірте це на моїй домашній сторінці або в магазині додатків .
Я шукав заголовки так:
1
1.1
1.1.1
1.1.1.1
etc
і я не зміг знайти жодного, тому я зробив власний сценарій, розмістив його тут http://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
Сподіваюся, це допомагає
/*
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;
}
Я зробив швидке порівняння між додатком «Зміст» та додатками «Нумеровані заголовки» за допомогою Firefox. Справді, ця інформація стане датовою, якщо покращиться обидва додатки: