Google Docs / Drive: numere los títulos

Respuestas:

100

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:

  1. Haga clic en Add-Ons> Get Add-Ons.
  2. Haga clic en el icono "Tabla de contenido" o busque este complemento para instalarlo

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 .

Aitor
fuente
4
En caso de que no se muestre la barra lateral, vaya a "Complementos-> Tabla de contenido-> Mostrar en barra lateral" .
Steven Jeuris
3
Creo que cualquiera puede llamar a su complemento "Tabla de contenido". Por lo tanto, es útil un enlace al complemento real. Supongo que te refieres a este: chrome.google.com/webstore/detail/table-of-contents/…
nealmcb
¿Cómo se instala el complemento, por máquina / navegador, por documento, por usuario en google docs? ¿Qué sucede si otros quieren editar el documento?
Sybille Peters
1
Lamentablemente, este complemento parece estar roto. No se instala debido a un problema de autorización. ¿Otros obtienen el mismo resultado?
Gavdotnet
1
@gavdotnet Me funcionó, así que deben haberlo arreglado.
codefreak
50

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:

  • encabezado de número automático
  • números de encabezados claros

Cómo numerar automáticamente los títulos de los documentos de Google:

  1. Abra su documento> Herramientas> Editor de secuencias de comandos ...
  2. Iniciar un proyecto en blanco
  3. Pegue el código a continuación y guárdelo con su nombre preferido
  4. Seleccione Ejecutar> onOpen y autorice el script por primera vez
  5. Seleccione Ejecutar> onOpen
  6. Cambie a su Documento y pruebe las funciones del menú personalizado de las herramientas de Encabezados creado.

~~ 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]+/, ''));
    }
  }

}
Luciano
fuente
Me alegro de saber @IvanCachicatari Estoy planeando hacer una versión mejorada para lanzarla como un Complemento de esta manera no necesitamos abrir el editor de scripts cada vez ...
Luciano
2
@IvanCachicatari ¡Gran idea, ahí la tienes! github.com/lpanebr/autoNumberHeadings
Luciano
2
@MrGravity, la forma de lograrlo es convertir el script en un complemento para Google Drive . Planeo hacerlo, pero ahora no tengo tiempo ..
Luciano
1
¡Guauu! Siento que son 90 empates de nuevo. ¿Realmente necesitamos un script para lograr algo tan básico como la numeración de títulos? Ahora entiendo por qué existen todas estas iniciativas de programación: nuestros niños realmente necesitan saber su JavaScript para escribir cualquier documento de trabajo; P
Janusz Skonieczny
1
@Luciano que algo funciona. Veo que pasa algo extraño. Si corto y pego el código de git, obtengo uno de dos resultados: no pasa nada o un error de análisis de expresiones regulares en la línea 38. Para que funcione, tengo que 1) cortar y pegar el código de git de 10/16 / 17, 2) guardar, 3) realizar manualmente los cambios sugeridos por nsof, 4) guardar y ejecutar como se indica arriba. Noté una ligera diferencia: la línea 38 en su versión elimina el paréntesis alrededor de \ d.
Ginger McMurray
10

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.

alexkovelsky
fuente
Qué pragmática, esta solución está subestimada.
algo este
De hecho, esta es la solución NATIVA más fácil (si todavía está en la fase de edición).
Demis
1
Por lo que puedo decir, esto requiere que aplique una sangría con cada nivel de título al que descienda. ¿Es ese el caso o hay otra forma?
Gavdotnet
1
El problema es: necesita copiar los títulos del mismo documento . Si copia un "título 1", por ejemplo, de otro documento html, a pesar de que se conserve el formato "título x", no tendrá el número. Esto significa que si ya tiene otro documento con un montón de texto que desea copiar y pegar, su solución requeriría demasiado trabajo manual. O en realidad: es lo mismo si ya tiene un documento y solo desea tener los títulos enumerados allí.
Hi-Angel
5

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:

  1. Ir a Obtener complementos
  2. Busque e instale Markdown Tools

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:

  1. Vaya al elemento de menú Insertar y seleccione Tabla de contenido
Michael ten Den
fuente
¡Esto es muy útil! No hubiera pensado que una simple funcionalidad de numeración de TOC estaría en una herramienta de rebajas, pero funciona muy bien, ¡gracias!
prrao
1

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".

jordan2175
fuente
Hola @ jordan2175, el complemento es genial. Sería bueno si el TOC que genera tuviera números de página.
David Lopez
0

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.

David Lopez
fuente