Google Docs / Drive - başlıkları numaralandırın


Yanıtlar:


100

Daha kolay bir şey istiyorsanız , başlıklarınızı numaralandırmanıza izin verecek "İçindekiler Tablosu" adında bir Google Eklentisi var .

Bu eklentiyi yüklemek için:

  1. Eklentiler> Eklentileri Al'a tıklayın.
  2. Yüklemek için "İçindekiler Tablosu" simgesine tıklayın veya bu eklentiyi arayın

Ardından İçindekiler'iniz kenar çubuğunuzda görünmelidir. Başlık Numaraları Biçimi menüsüne tıklayın ve 1.2.3'ü seçin.

Numaraları 'yenilemek' için eski bir belgeniz varsa belgenizi yeniden biçimlendirmeniz gerekir, ancak aslında eklenti çok iyi çalışıyor.

Cevabı bu forumda gördüm .


4
Kenar çubuğunun gösterilmemesi durumunda, "Eklentiler-> İçindekiler-> Kenar çubuğunda göster" seçeneğine gidin .
Steven Jeuris

3
Sanırım herkes eklentisine "İçindekiler Tablosu" diyebilir. Bu nedenle, gerçek eklentiye bir bağlantı yararlıdır. Bunu kastettiğinizi tahmin ediyorum: chrome.google.com/webstore/detail/table-of-contents/…
nealmcb

Eklenti nasıl yüklenir - makine / tarayıcı, doküman ve kullanıcı başına google docs'da? Başkaları belgeyi düzenlemek isterse ne olur?
Sybille Peters

1
Ne yazık ki bu eklenti bozuk görünüyor. Bir yetkilendirme sorunu nedeniyle yüklenemiyor. Başkaları da aynı sonucu alıyor mu?
gavdotnet

1
@gavdotnet Benim için çalıştı, bu yüzden düzeltmiş olmalılar.
codefreak

50

Güncelleme: artık github'da mevcut .

Güncelleme 2: artık github'daki 2 çekme isteği sayesinde boş başlıklar ve boş satırlar işleniyor.

Güncelleme 3: github ve aşağıdaki kod, yeni Docs HEADING kimliğini işleyecek şekilde düzeltildi.


Mikko Ohtamaa tarafından bahsedilen komut dosyasını değiştirdim ve şunları yapmanıza olanak tanıyan Başlıklar araçları Doküman menüsü ekleyen bir Google Apps Komut Dosyası oluşturdum :

  • otomatik numara Başlığı
  • başlık numaralarını temizle

Google Dokümanlar Başlıklarını otomatik olarak numaralandırma:

  1. Belgenizi açın> Araçlar> Komut dosyası düzenleyici ...
  2. Boş bir proje başlatın
  3. Aşağıdaki kodu yapıştırın ve tercih ettiğiniz adla kaydedin
  4. Çalıştır> onOpen'ı seçin ve komut dosyasını ilk kez yetkilendirin
  5. Çalıştır> onOpen'ı seçin
  6. Belgenize geçin ve oluşturulan Başlıklar araçları özel menüsündeki işlevleri deneyin .

~~ Sorumluluk reddi: Boş Başlıklar ile ilgili sorunlarınız olabilir .. Ancak bunları her zaman düzeltebilir ve işlemi tekrar çalıştırabilirsiniz. ~~

Kopyalamak ve yapıştırmak için kod:

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

}

@IvanCachicatari'yi bildiğim için mutluyum Eklenti olarak başlatmak için geliştirilmiş bir sürüm yapmayı planlıyorum, bu şekilde her seferinde senaryo düzenleyicisini açmamıza gerek yok ...
Luciano

2
@IvanCachicatari Harika bir fikir, işte karşınızda! github.com/lpanebr/autoNumberHeadings
Luciano

2
@MrGravity bunu başarmanın yolu, komut dosyasını Google Drive için bir Eklentiye dönüştürmektir . Bunu yapmayı planlıyorum ama artık zamanım yok ..
Luciano

1
Vaov! Yine 90 kravat gibi hissediyorum. Başlık numaralandırma gibi temel bir şeyi başarmak için gerçekten bir metne ihtiyacımız var mı? Şimdi neden bu kadar programlama girişimlerinin olduğunu anlıyorum - çocuklarımızın herhangi bir çalışma belgesi yazabilmeleri için JavaScript'lerini gerçekten bilmeleri gerekiyor; P
Janusz Skonieczny

1
@Luciano bu tür işe yarıyor. Garip bir şey görüyorum. Kodu git'ten kesip yapıştırırsam iki sonuçtan birini alıyorum: hiçbir şey olmuyor veya 38. satırda bir düzenli ifade ayrıştırma hatası. Çalışması için 1) git kodunu 10/16 / 'dan kesip yapıştırmalıyım. 17, 2) kaydedin, 3) önerilen değişiklikleri manuel olarak yapın, 4) yukarıda listelendiği gibi kaydedin ve çalıştırın. Küçük bir fark fark ettim: sürümünüzdeki 38. satır, \ d etrafındaki parantezi kaldırıyor.
Ginger McMurray

10

Tek yapmanız gereken önceki başlıkları kopyalamak / yapıştırmaktır.

Numaralandırılmış listedeki herhangi bir öğeyi kopyalayıp yapıştırırsanız, numaralandırmasını korur ve ilgili durumlarda numarayı otomatik olarak değiştirir.


Ne kadar pragmatik, bu çözüm küçümseniyor.
gün

Gerçekten de, bu en kolay NATIVE çözümdür (eğer hala düzenleme aşamasındaysanız)!
Demis

1
Söyleyebileceğim kadarıyla, bu, indiğiniz her başlık seviyesi ile girintili yapmanızı gerektirir. Durum bu mu yoksa başka bir yolu var mı?
gavdotnet

1
Sorun şudur: başlıkları aynı belgeden kopyalamanız gerekir . Örneğin, başka bir html belgesinden bir "başlık 1" kopyalarsanız, "başlık x" biçimlendirmesine rağmen numara olmayacaktır. Bu, kopyalayıp yapıştırmak istediğiniz bir sürü metin içeren başka bir belgeniz varsa, çözümünüzün çok fazla manuel çalışma gerektireceği anlamına gelir. Ya da aslında: zaten bir belgeniz varsa ve sadece orada başlıkların numaralandırılmasını istiyorsanız aynıdır.
Hi-Angel

5

Yazımdan bu yana (Nisan 2020), önerilen birçok uygulama eski veya artık çalışmıyor.

Çalıştığını bulduğum numaralandırılmış başlıklar için yöntem şudur:

  1. Eklenti edinin'e gidin
  2. Markdown Araçlarını arayın ve yükleyin

Markdown Araçları, numaralı başlıkları kullanma seçeneğine sahiptir. Yerleşik Google'ın İçindekiler Tablosu ile büyüleyici bir şekilde çalışır.

Bir içindekiler tablosu oluşturmak için:

  1. Ekle menü öğesine gidin ve İçindekiler'i seçin

Bu çok kullanışlı! Basit bir TOC numaralandırma işlevinin bir markdown aracında olacağını düşünmezdim, ama harika çalışıyor, teşekkürler!
prrao

1

İşaretleme başlıkları yapmak için bir sürüm yazdım, ancak aynı zamanda düz başlık numaralarını da destekliyor. Kaynak buradadır https://github.com/jordan2175/markdown-tools ve G Suite Marketplace üzerinden "Markdown Araçları" olarak kullanılabilir.


Merhaba @ jordan2175 eklenti harika. Oluşturduğu TOC'nin sayfa numaraları olması güzel olurdu.
David Lopez

0

Daha önce bahsedilen "İçindekiler tablosu" eklentisi bugün itibariyle mevcut değildir. " Markdown Araçları " adını yükledim, yüklendikten sonra yerel başlık stillerini uygulamanız ve ardından Eklentiler> İşaretleme Araçları> Başlık numaraları'na gitmeniz ve belgedeki tüm başlıklara uygulanacak istenen numaralandırma stilini seçmeniz gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.