¿Es posible numerar los títulos en un documento de Google Docs / Drive?
google-apps-script
google-docs
google-drive-api
ZehnVon12
fuente
fuente
Respuestas:
Si desea algo más fácil, hay un complemento de Google llamado "Tabla de contenido" que le permitirá numerar sus títulos.
Para instalar este complemento:
Entonces su tabla de contenido debería aparecer en su barra lateral. Haga clic en el menú Formato de números de encabezado y elija 1.2.3
Debe reformatear su documento si tiene uno antiguo para 'actualizar' los números, pero en realidad el complemento funciona muy bien.
He visto la respuesta en este foro .
fuente
Actualización: ahora disponible en github .
Actualización 2: ahora maneja títulos vacíos y líneas en blanco gracias a 2 solicitudes de extracción en github.
Actualización 3: github y el código a continuación corregidos para manejar la nueva identificación de ENCABEZADO de Docs.
Modifiqué el script mencionado por Mikko Ohtamaa y creé un script de Google Apps que agrega un menú Documento de herramientas de títulos que te permite:
Cómo numerar automáticamente los títulos de los documentos de Google:
~~ Descargo de responsabilidad: es posible que tenga problemas con los títulos vacíos ... Pero siempre puede solucionarlos y ejecutar la acción nuevamente. ~~
Código para copiar y pegar:
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]+/, '')); } } }
fuente
Todo lo que tienes que hacer es copiar / pegar encabezados anteriores.
Si copia y pega cualquier elemento de la lista numerada, entonces conserva su numeración y cambia automáticamente el número en los casos relevantes.
fuente
Desde su redacción (abril de 2020), muchas de las aplicaciones propuestas están obsoletas o ya no funcionan.
El método para encabezados numerados que he encontrado funcionando es el siguiente:
Markdown Tools tiene una opción para usar títulos numerados. Funciona a la perfección con la tabla de contenido integrada de Google.
Para crear una tabla de contenido:
fuente
Escribí una versión para hacer encabezados de rebajas, pero también admite números de encabezado sin formato. La fuente está aquí https://github.com/jordan2175/markdown-tools y está disponible a través de G Suite Marketplace como "Herramientas de Markdown".
fuente
El complemento mencionado anteriormente "Tabla de contenido" no está disponible a partir de hoy. Instalé el llamado " Herramientas de Markdown " Una vez instalado, debe aplicar estilos de encabezado nativos y luego ir a Complementos> Herramientas de Markdown> Números de encabezado y elegir el estilo de numeración deseado que se aplicará a todos los encabezados en el documento.
fuente