Google Docs / Drive - numerar os títulos

Respostas:

93

Se você quiser algo mais fácil, existe um complemento do Google chamado "Índice" que permite numerar seus títulos.

Para instalar este add-on:

  1. Clique em Add-Ons> Get Add-Ons.
  2. Clique no ícone "Índice" ou pesquise este complemento para instalá-lo

Em seguida, seu índice deve aparecer na barra lateral. Clique no menu Formato de Números de Cabeçalho e escolha 1.2.3

Você tem que reformatar seu documento se tiver um antigo para 'atualizar' os números, mas na verdade o addon funciona muito bem.

Eu vi a resposta neste fórum .

Aitor
fonte
4
Caso a barra lateral não seja exibida, vá para "Complementos-> Índice-> Mostrar na barra lateral" .
Steven Jeuris
3
Acho que qualquer pessoa pode chamar seu complemento de "Índice". Portanto, um link para o complemento real é útil. Suponho que você queira dizer este aqui: chrome.google.com/webstore/detail/table-of-contents/…
nealmcb
Como o plugin é instalado - por máquina / navegador, por documento, por usuário no google docs? O que acontece se outras pessoas quiserem editar o documento?
Sybille Peters
1
Infelizmente, este plugin parece estar danificado. Falha ao instalar devido a um problema de autorização. Outros estão obtendo o mesmo resultado?
gavdotnet
1
@gavdotnet Funcionou comigo, então eles devem ter consertado.
codefreak
49

Atualização: agora disponível no github .

Atualização 2: agora lidando com cabeçalhos vazios e linhas em branco graças a 2 solicitações de pull no github.

Atualização 3: github e código abaixo corrigidos para lidar com a nova identificação de HEADING do Docs.


Modifiquei o script mencionado por Mikko Ohtamaa e criei um Script do Google Apps que adiciona um menu de documentos de ferramentas de títulos que permite:

  • número automático Título
  • limpar números de títulos

Como numerar automaticamente os títulos dos documentos do Google:

  1. Abra seu documento> Ferramentas> Editor de scripts ...
  2. Comece um projeto em branco
  3. Cole o código abaixo e salve com o nome de sua preferência
  4. Selecione Executar> ao abrir e autorize o script pela primeira vez
  5. Selecione Executar> ao abrir
  6. Mude para o seu Documento e experimente as funções criadas no menu personalizado das ferramentas de Títulos .

~~ Aviso de isenção: você pode ter problemas com títulos vazios .. Mas você sempre pode corrigi-los e executar a ação novamente. ~~

Código para copiar e colar:

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
fonte
Fico feliz em saber @IvanCachicatari Estou planejando fazer uma versão melhorada para lançar como um Add-on, desta forma não precisamos abrir o editor de script todas as vezes ...
Luciano
2
@IvanCachicatari Ótima ideia, aí está! github.com/lpanebr/autoNumberHeadings
Luciano
2
@MrGravity a maneira de conseguir isso é converter o script em um complemento para o Google Drive. Eu planejo fazer isso, mas estou sem tempo agora ..
Luciano
1
Uau! Eu sinto como se fossem 90 gravações novamente. Precisamos realmente de um script para realizar algo tão básico como a numeração de títulos? Agora eu entendo por que existem todas essas iniciativas de programação - nossos filhos realmente precisam saber seu JavaScript para escrever qualquer documento de trabalho; P
Janusz Skonieczny
1
@Luciano isso meio que funciona. Estou vendo uma coisa estranha acontecendo. Se eu recortar e colar o código do git, obtenho um de dois resultados: nada acontece ou um erro de análise de regex na linha 38. Para fazê-lo funcionar, tenho que 1) cortar e colar o código git de 16/10 / 17, 2) salvar, 3) fazer manualmente as alterações sugeridas, 4) salvar e executar conforme listado acima. Notei uma pequena diferença: a linha 38 em sua versão remove o parêntese em torno de \ d.
Ginger McMurray
10

Tudo que você precisa fazer é copiar / colar os cabeçalhos anteriores.

Se você copiar e colar qualquer item da lista numerada, ele manterá sua numeração e mudará automaticamente o número nos casos relevantes.

alexkovelsky
fonte
Quão pragmática, esta solução é subestimada.
algo em
Na verdade, esta é a solução NATIVA mais fácil (se você ainda estiver na fase de edição)!
Demis
1
Até onde eu posso dizer, isso requer que você recue com cada nível de título que você descer. É esse o caso ou existe outra maneira?
gavdotnet
1
O problema é: você precisa copiar os títulos do mesmo documento . Se você copiar um "título 1", por exemplo, de outro documento html, apesar da formatação de "título x" mantida, ele não terá o número. Isso significa que, se você já tiver outro documento com muito texto que deseja copiar e colar, sua solução exigirá muito trabalho manual. Ou melhor: é o mesmo se você já tem um documento e só quer que os cabeçalhos sejam enumerados.
Hi-Angel
3

Desde que foi escrito (abril de 2020), muitos aplicativos propostos estão obsoletos ou não funcionam mais.

O método para títulos numerados que descobri funcionar é o seguinte:

  1. Vá para Obter complementos
  2. Pesquise e instale ferramentas Markdown

As ferramentas de marcação têm a opção de usar títulos numerados. Funciona perfeitamente com o Índice integrado do Google.

Para criar um índice analítico:

  1. Vá para o item de menu Inserir e selecione Índice
Michael ten Den
fonte
Isso é super útil! Eu não teria pensado que uma simples funcionalidade de numeração TOC estaria em uma ferramenta de redução de custos, mas funciona muito bem, obrigado!
prrao
1

Eu escrevi uma versão para fazer cabeçalhos de marcação, mas também oferece suporte a números de cabeçalho simples. A fonte está aqui https://github.com/jordan2175/markdown-tools e está disponível no G Suite Marketplace como "Markdown Tools".

Jordan2175
fonte
Olá @ jordan2175, o add-on é excelente. Seria bom se o TOC gerado tivesse números de página.
David Lopez
0

O add-on mencionado anteriormente "Índice" não está disponível a partir de hoje. Eu instalei o chamado " Ferramentas de Markdown ". Depois de instalado, você deve aplicar estilos de título nativos e ir para Add-Ons> Ferramentas de Markdown> Números de título e escolher o estilo de numeração desejado que será aplicado a todos os títulos no documento.

David Lopez
fonte