Google Dokümanlar’da otomatik olarak başlık numaralandırmanın bir yolu var mı?
CSS ile mümkündü ancak bu özellik artık yeni Google Dokümanlar sürümünde desteklenmiyor.
Google Dokümanlar’da otomatik olarak başlık numaralandırmanın bir yolu var mı?
CSS ile mümkündü ancak bu özellik artık yeni Google Dokümanlar sürümünde desteklenmiyor.
Yanıtlar:
Peki, belgeyi böyle yazarak bunu yapmak daha kolay görünüyor:
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]);
}
}
}
Aslında, HTML / CSS'yi düzenlemeden bile mümkündür. Size boş bir belge ile bir örnek vereceğim, ancak bir kere nasıl çalıştığını anlayacağınız zaman, zaten var olan bir belge üzerinde yapabileceksiniz. Ayrıca zaten klavye kısayollarını kullanmıyorsanız, onları kullanmaya başlamanızı öneririm (bu örnekte Mac'in kısayollarını kullanıyorum, ancak kendi işletim sisteminiz için doğru olanları kolayca bulabilirsiniz).
⌘⌥1
)⌘⇧7
)Return
⌘⌥1
), "Second" yazın ve tuşuna basın.Return
⌘⌥1
), "Üçüncü" yazın ve tuşuna basın.Return
Bu noktada şuna benzeyen bir şeye sahip olmalısınız:
Return
İki kez basınŞimdi belgeniz şöyle görünmeli:
Fark edebileceğiniz gibi, otomatik numaralandırma hala oradadır ve istediğiniz şekilde daha fazla Başlık ekleyerek ve hatta gerektiğinde numaralandırılmış alt başlıkları da kolayca deneyebilirsiniz. Daha fazla ayrıntıya girmiyorum, ancak burada başlıklılar için doğru biçimlendirmeli yuvalanmış numaralı listeler içeren bir örneği kontrol edebilirsiniz:
Bunun artık OP ile ilgili olamayacağını biliyorum, ancak artık eklentileri kullanma olasılığı var. İçindekiler Eklentisinde, başlık için numaralandırma düzenini seçebileceğiniz ve gerekenleri yapan bir işlev vardır:
1
1.1
2
2.1
2.1.1
Umarım bir şey için faydalı olur.
Eklenti bağlantısı
Yasal Uyarı: Bu yalnızca Chrome'da çalışıyor olabilir, ancak hey, en azından işe yarıyor.
Nasıl kullanılır: Sağ tarafta bir widget vardır ve bunun üzerinde numaralandırma düzeninizi seçebilir ve başlıkları her zamanki yenileme düğmesiyle yenileyebilirsiniz.
Bu yüzden sadece numaralandırma düzenini ayarlayın ve düzenlemeyi tamamladıktan sonra başlığı güncelleyin; doğru ve güncellenmiş section/subsection/...
numaralara sahip olacaksınız .
Şimdi, herhangi bir özel numaralandırma stili eklemek için kullanabileceğiniz Başlık Numaraları adında bir eklenti var . Otomatik başlık numaralarını seçmenizi / tanımlamanızı, güncellemenizi ve silmenizi sağlar.
Önceden tanımlanmış stiller:
Bu eklentiyi birkaç hafta önce yayınladım. Üzerine göz atın ana sayfam veya eklenti mağazasında .
Aradığım şey şu şekilde başlıklardı:
1
1.1
1.1.1
1.1.1.1
etc
ve hiçbir şey bulamadım, bu yüzden kendi betiğimi yaptım, buraya gönderdim http://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
Bu yardımcı olur umarım
/*
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;
}
İçindekiler uygulaması ve Numaralı Başlıklar arasında Firefox kullanan uygulamalar arasında hızlı bir karşılaştırma yaptım. Kuşkusuz, her iki uygulama için de iyileşirse, bu bilgi tarihli olur: