Чи можна нумерувати заголовки в документі Google Docs / Drive?
Відповіді:
Якщо ви хочете чогось більш простого, існує надбудова Google під назвою «Зміст», яка дозволить вам нумерувати ваші заголовки.
Щоб встановити цю надбудову:
Тоді ваш зміст повинен з’явитися на бічній панелі. Клацніть на меню Формат заголовків і виберіть 1.2.3
Вам доведеться переформатувати документ, якщо у вас є старий, щоб «оновити» номери, але насправді аддон працює дуже добре.
Я бачив відповідь на цьому форумі .
Оновлення: тепер доступне у github .
Оновлення 2: тепер обробка порожніх заголовків і порожніх рядків завдяки 2 запитам на витягування на github.
Оновлення 3: Виправлено github та код нижче, щоб обробляти нові ідентифікаційні заголовки Документів.
Я змінив сценарій, згаданий Мікко Отамаа, і створив сценарій Google Apps, який додає меню Документи інструментів заголовків, що дозволяє вам:
Як автоматично нумерувати заголовки документів Google:
~~ Застереження: у вас можуть бути проблеми з порожніми заголовками .. Але ви завжди можете їх виправити і запустити дії знову. ~~
Код для копіювання та вставки:
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]+/, ''));
}
}
}
Все, що вам потрібно зробити, це скопіювати / вставити попередні заголовки.
Якщо скопіювати та вставити будь-який елемент нумерованого списку, він зберігає свою нумерацію та автоматично змінює номер у відповідних випадках.
З моменту написання (квітень 2020 р.) Багато пропонованих програм застаріли або більше не працюють.
Метод нумерованих заголовків, який я знайшов робочим, такий:
Markdown Tools має можливість використовувати пронумеровані заголовки. Працює як шарм із вбудованим Змістом Google.
Щоб створити зміст:
Я написав версію для розміщення заголовків розмітки, але вона також підтримує звичайні номери заголовків. Джерело знаходиться тут: https://github.com/jordan2175/markdown-tools і доступне через G Suite Marketplace як "Інструменти розмітки".
Згаданий раніше додаток "Зміст" на сьогодні недоступний. Я встановив той, який називається " Інструменти розмітки ". Після встановлення ви повинні застосувати рідні стилі заголовків, а потім перейти до Додатки> Інструменти розмітки> Номери заголовків і вибрати бажаний стиль нумерації, який застосовуватиметься до всіх заголовків у документі.