Можно ли пронумеровать заголовки в документе 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 как «Инструменты разметки».
Ранее упомянутое дополнение «Оглавление» на сегодняшний день недоступно. Я установил тот, который называется « Инструменты разметки ». После установки вы должны применить собственные стили заголовков, а затем перейти в « Дополнения»> «Инструменты разметки»> «Номера заголовков» и выбрать желаемый стиль нумерации, который будет применен ко всем заголовкам в документе.