¿Puedo obtener la numeración de encabezado en Google Docs?

33

¿Hay alguna manera de numerar automáticamente los encabezados en Google Docs?

Solía ​​ser posible con CSS, pero esta característica ya no es compatible con la nueva versión de Google Docs.

Martin Delille
fuente
Se agregó google-apps-script porque la respuesta aceptada lo usa.
Rubén

Respuestas:

6

Bueno, parece más fácil hacerlo haciendo un script al documento de esta manera:

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]); 
          }
    }
}
robert77
fuente
1
Tienes razón, ¡las secuencias de comandos de Google son tan poderosas!
Martin Delille
13

En realidad es posible incluso sin editar el HTML / CSS. Le daré un ejemplo con un documento en blanco, pero una vez que descubra cómo funciona, podrá hacerlo en un documento ya existente. Además, si aún no está usando los atajos de teclado, le sugiero que comience a usarlos (en este ejemplo, estoy usando los atajos de Mac, pero puede encontrar fácilmente los correctos para su propio sistema operativo).

  1. Crea un nuevo documento
  2. Aplicar título 1 ( ⌘⌥1)
  3. Aplicar lista numerada ( ⌘⇧7)
  4. Escriba "Primero" y presioneReturn
  5. Aplique el Título 1 ( ⌘⌥1), escriba "Segundo" y presioneReturn
  6. Aplique el Título 1 ( ⌘⌥1), escriba "Tercero" y presioneReturn

En ese punto, debería tener algo parecido a esto:

Encabezados numerados en Google Docs

  1. Obtenga su cursor al final del primer encabezado
  2. Presione Returndos veces
  3. Escribe "¡Hola, mundo!"
  4. Repita el procedimiento para el resto de los encabezados.

Ahora su documento debería verse así:

Encabezados numerados con texto adicional en el medio

Como habrás notado, la numeración automática sigue ahí y puedes experimentar fácilmente agregando más encabezados como desees e incluso sub-encabezados numerados si es necesario. No voy a entrar en más detalles, pero aquí puede consultar un ejemplo con listas numeradas anidadas con el formato correcto para los encabezados:

Ejemplo completo para encabezados numerados

Lipis
fuente
1
Esto se ve bien pero no parece ser completamente funcional: ¿cómo agrego un nuevo encabezado 1 al final del documento? Si configuro el encabezado 1 y luego aplico la lista de números, comenzará a numerar desde 1 ...
Martin Delille
3
@tinmaru Eso es un poco complicado ... pero aún posible. Vaya al final del encabezado anterior en el que desea continuar la numeración, presione Intro y luego aplique el encabezado. Luego corte eso (no importa el número que queda atrás), vaya al final del documento y péguelo. Verás que el número es correcto ahora, así que simplemente ve y corrige el error anterior eliminando el encabezado vacío, si lo hay.
Lipis
1
¡Agradable! Eso es un truco;)
Martin Delille
@tinmaru si la respuesta es útil, no olvide marcarla;)
Lipis
1
Sí, lo siento, lo olvidé por completo. Gracias por su ayuda :)
Martin Delille
2

Sé que esto podría no ser relevante para el OP, pero ahora existe la posibilidad de usar complementos. Hay una función en el complemento Tabla de contenido, donde puede seleccionar el esquema de numeración para el encabezado y hace lo necesario:

1
1.1
2
2.1
2.1.1

Espero que sea útil para algo.

Enlace al complemento

Descargo de responsabilidad: esto podría estar funcionando solo en Chrome, pero bueno, al menos funciona.

Cómo usar: hay un widget en el lado derecho y en la parte superior puede seleccionar su esquema de numeración y actualizar los encabezados con el botón de actualización habitual.

Tan solo configure el esquema de numeración y actualice el encabezado después de que haya terminado con la edición y tendrá section/subsection/...números correctos y actualizados .

gns-ank
fuente
Excelente. Para mí esta es "la" respuesta. Funciona en Firefox para mí.
AronVanAmmers
2

Ahora hay un complemento llamado Números de encabezado que puede usar para agregar cualquier estilo de numeración personalizado. Le permite elegir / definir, actualizar y eliminar números de encabezado automáticos.

Estilos predefinidos:

  • 1.2.3 - Dígitos sin punto final
  • 1.2.3 - Dígitos con punto final
  • abc - letras minúsculas
  • ABC - Letras mayúsculas
  • i.ii.ii - minúscula romana
  • I.II.III - mayúscula romana
  • 1) a) i) - Cambio de estilo seguido de un paréntesis final

Lancé este complemento hace un par de semanas. Compruébalo en mi página de inicio o en la tienda de complementos .

Kristoffer
fuente
La entrada de preguntas frecuentes de ¿Cómo agrego numeración automática de encabezados? dice: "Si el complemento está instalado, elija" Complementos "->" Números de título ", y luego elija su estilo". Pero al agregarlo a un documento, eso no apareció. Tuve que volver a cargar el documento antes de que aparecieran "Números de título" en el menú. Probablemente un error de Google y no un error en la aplicación Números de encabezado.
bgoodr
1

Espero que esto ayude

/*
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;
}
Sai
fuente
1

Hice una comparación rápida entre la aplicación Table of Contents y las aplicaciones Numbered Headings usando Firefox. Es cierto que esta información será obsoleta si las cosas mejoran para ambas aplicaciones:

  1. No hay ayuda en línea para usar la aplicación Tabla de contenido (nunca se usó o se retiró). El botón de ayuda apunta a una página que intenta venderlo con una versión de prueba http: //lumapps-www.appspot. com / es / en lugar de proporcionar ayuda. Números de encabezado proporciona preguntas frecuentes en http://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/ .
  2. Las aplicaciones Tabla de contenido y Números de título no funcionan bien juntas en términos de renumeración de títulos: creé títulos numerados usando Números de título y apliqué títulos similares usando Tabla de contenido, y agregué dos conjuntos de números a los títulos. Lo mismo ocurre si invierte el orden aplicando los encabezados utilizando primero la Tabla de contenido y luego los Números de encabezado.
  3. La Tabla de contenido no tiene el mismo número de estilos de encabezado que los Números de encabezado.
  4. Pero tener la barra lateral en la Tabla de contenido sigue siendo útil. Selecciono Tal como está en la barra lateral Tabla de contenido y puedo hacer clic en el botón Actualizar para ver y navegar por la tabla de contenido.
  5. Encabezar números tiene una operación clara. Tabla de contenido no. La operación Clear no soluciona el problema de interacción descrito anteriormente, lo cual es bastante doloroso porque tiene que solucionarlo manualmente.
  6. Ninguna aplicación actualiza una Tabla de contenido que se inserta en el documento (a través del menú Insertar / Tabla de contenido).
bgoodr
fuente