ฉันสามารถกำหนดหมายเลขส่วนหัวใน Google เอกสารได้หรือไม่


33

มีวิธีในการกำหนดหมายเลขส่วนหัวใน Google เอกสารโดยอัตโนมัติหรือไม่

มันเคยเป็นไปได้ด้วย CSS แต่คุณสมบัตินี้ไม่ได้รับการสนับสนุนอีกต่อไปในเวอร์ชัน Google เอกสารใหม่


เพิ่มgoogle-apps-scriptเนื่องจากคำตอบที่ยอมรับใช้
Rubén

คำตอบ:


6

ดูเหมือนว่าจะทำได้ง่ายขึ้นโดยการเขียนสคริปต์เอกสารเช่นนี้:

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]); 
          }
    }
}

1
คุณพูดถูกแล้วการเขียนสคริปต์ของ Google นั้นมีประสิทธิภาพมาก!
Martin Delille

13

จริงๆแล้วมันเป็นไปได้แม้ว่าจะไม่มีการแก้ไข HTML / CSS ฉันจะให้ตัวอย่างกับเอกสารเปล่า แต่เมื่อคุณทราบวิธีการทำงานคุณจะสามารถทำได้กับเอกสารที่มีอยู่แล้ว นอกจากนี้หากคุณยังไม่ได้ใช้แป้นพิมพ์ลัดฉันขอแนะนำให้คุณเริ่มใช้มัน (ในตัวอย่างนี้ฉันใช้แป้นพิมพ์ลัดของ Mac แต่คุณสามารถค้นหาสิ่งที่ถูกต้องสำหรับระบบปฏิบัติการของคุณเอง)

  1. สร้างเอกสารใหม่
  2. ใช้หัวเรื่อง 1 ( ⌘⌥1)
  3. ใช้รายการที่มีหมายเลข ( ⌘⇧7)
  4. พิมพ์"First"แล้วกดReturn
  5. ใช้หัวเรื่อง 1 ( ⌘⌥1) พิมพ์"Second"แล้วกดReturn
  6. ใช้หัวเรื่อง 1 ( ⌘⌥1) พิมพ์"Third"แล้วกดReturn

ณ จุดนั้นคุณควรมีสิ่งที่มีลักษณะเช่นนี้:

ส่วนหัวที่มีหมายเลขใน Google เอกสาร

  1. รับเคอร์เซอร์ของคุณที่ส่วนท้ายของส่วนหัวแรก
  2. กดReturnสองครั้ง
  3. พิมพ์"Hello World!"
  4. ทำซ้ำขั้นตอนสำหรับส่วนที่เหลือ

ตอนนี้เอกสารของคุณควรมีลักษณะดังนี้:

ส่วนหัวที่มีหมายเลขพร้อมข้อความพิเศษบางส่วนอยู่ระหว่างนั้น

ดังที่คุณอาจสังเกตเห็นว่าการกำหนดหมายเลขอัตโนมัติยังคงอยู่ที่นั่นและคุณสามารถทดสอบได้อย่างง่ายดายโดยเพิ่มส่วนหัวเพิ่มเติมตามที่คุณต้องการและแม้แต่ส่วนหัวย่อยที่มีหมายเลขหากจำเป็น ฉันจะไม่ลงรายละเอียดเพิ่มเติม แต่ที่นี่คุณสามารถตรวจสอบตัวอย่างด้วยรายการที่ซ้อนหมายเลขพร้อมการจัดรูปแบบที่ถูกต้องสำหรับส่วนหัว:

ตัวอย่างที่สมบูรณ์สำหรับส่วนหัวที่มีหมายเลข


1
สิ่งนี้ดูดี แต่ดูเหมือนจะไม่สามารถใช้งานได้อย่างสมบูรณ์: ฉันจะเพิ่มหัวเรื่องใหม่ 1 ที่ท้ายเอกสารได้อย่างไร ถ้าฉันตั้งค่าหัวข้อ 1 จากนั้นให้ใช้รายการตัวเลขมันเริ่มต้นด้วยการกำหนดหมายเลขจาก 1 ...
Martin Delille

3
@tinmaru มันช่างยากเหลือเกิน .. แต่ก็ยังทำได้ ไปที่ส่วนท้ายของส่วนหัวก่อนหน้านี้ที่คุณต้องการกำหนดหมายเลขต่อกด enter จากนั้นใช้หัวเรื่อง หลังจากนั้นตัด (ไม่ต้องสนใจหมายเลขที่เหลืออยู่) ไปที่ท้ายเอกสารแล้ววางลง คุณจะเห็นว่าหมายเลขถูกต้องในขณะนี้ดังนั้นเพียงแค่ไปและแก้ไขข้อผิดพลาดก่อนหน้านี้โดยการลบส่วนหัวที่ว่างเปล่าถ้ามี
Lipis

1
ดี! นั่นเป็นกลอุบาย;)
Martin Delille

@tinmaru ถ้าคำตอบคือเป็นประโยชน์ไม่ลืมที่จะทำเครื่องหมาย;)
Lipis

1
ใช่ฉันขอโทษฉันลืมไปโดยสิ้นเชิง! ขอบคุณสำหรับความช่วยเหลือของคุณ :)
มาร์ติน Delille

2

ฉันรู้ว่านี่อาจไม่เกี่ยวข้องกับ OP อีกต่อไป แต่ขณะนี้มีความเป็นไปได้ที่จะใช้ Add-on มีฟังก์ชั่นในส่วนเสริมของสารบัญซึ่งคุณสามารถเลือกโครงร่างลำดับเลขสำหรับส่วนหัวและทำตามที่ต้องการ:

1
1.1
2
2.1
2.1.1

ฉันหวังว่ามันจะเป็นประโยชน์กับบางสิ่งบางอย่าง

เชื่อมโยงไปยังส่วนเสริม

คำเตือน:อาจใช้งานได้กับ Chrome เท่านั้น แต่อย่างน้อยก็ใช้งานได้

วิธีใช้:มีวิดเจ็ตทางด้านขวามือและที่ด้านบนของมันคุณสามารถเลือกรูปแบบการกำหนดหมายเลขของคุณและรีเฟรชส่วนหัวด้วยปุ่มรีเฟรชปกติ

ดังนั้นเพียงแค่ตั้งค่ารูปแบบการกำหนดหมายเลขและอัปเดตหัวข้อหลังจากคุณแก้ไขและคุณจะมีsection/subsection/...หมายเลขที่ถูกต้องและอัปเดต


ยอดเยี่ยม สำหรับฉันนี่คือคำตอบ "" ทำงานบน Firefox สำหรับฉัน
AronVanAmmers

2

ขณะนี้มีส่วนเสริมที่เรียกว่าหัวเรื่องหมายเลขที่คุณสามารถใช้เพื่อเพิ่มรูปแบบการกำหนดหมายเลขแบบกำหนดเองใด ๆ ช่วยให้คุณสามารถเลือก / กำหนดปรับปรุงและลบหมายเลขหัวเรื่องอัตโนมัติ

สไตล์ที่กำหนดไว้ล่วงหน้า:

  • 1.2.3 - ตัวเลขที่ไม่มีจุดต่อท้าย
  • 1.2.3 - ตัวเลขที่มีจุดต่อท้าย
  • abc - ตัวพิมพ์เล็ก
  • ABC - ตัวอักษรตัวพิมพ์ใหญ่
  • i.ii.ii - อักษรโรมันตัวพิมพ์เล็ก
  • I.II.III - โรมันตัวพิมพ์ใหญ่
  • 1) a) i) - การเปลี่ยนสไตล์ตามด้วยวงเล็บต่อท้าย

ฉันเปิดตัว Add-on นี้เมื่อไม่กี่สัปดาห์ที่ผ่านมา ลองดูที่หน้าแรกของฉันหรือในร้านเสริม


คำถามที่พบบ่อยรายการสำหรับฉันจะเพิ่มหมายเลขหัวข้ออัตโนมัติได้อย่างไร? พูดว่า: "หากติดตั้ง Add-on ไว้ให้เลือก“ Add-ons” ->“ Numbers number“ แล้วเลือกสไตล์ของคุณ” แต่เมื่อเพิ่มลงในเอกสารนั่นไม่ปรากฏขึ้น ฉันต้องโหลดเอกสารซ้ำก่อนที่จะ "แสดงหมายเลขหัวเรื่อง" ปรากฏขึ้นในเมนู น่าจะเป็นบั๊กของ Google และไม่ใช่บั๊กในแอพ Heading numbers
bgoodr


1

หวังว่านี่จะช่วยได้

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

1

ฉันทำการเปรียบเทียบอย่างรวดเร็วระหว่างแอปสารบัญและแอป Numbered Headings โดยใช้ Firefox เป็นที่ยอมรับว่าข้อมูลนี้จะกลายเป็นวันที่ถ้าสิ่งต่าง ๆ ดีขึ้นสำหรับแอพทั้งสอง:

  1. ไม่มีความช่วยเหลือออนไลน์สำหรับการใช้งานแอพ Table of Contents (ไม่เคยเป็นหรือมันถูกลบ) ปุ่มความช่วยเหลือชี้ไปยังหน้าเว็บที่พยายามขายคุณด้วยhttp: //lumapps-www.appspot com / en /แทนที่จะให้ความช่วยเหลือ จะเดินทางเบอร์ยังมีคำถามที่พบบ่อยhttp://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/
  2. แอพ Table of Contents and Numbers Numbers เล่นได้ไม่ดีในแง่ของการกำหนดหมายเลขหัวใหม่: ฉันสร้างส่วนหัวที่มีหมายเลขโดยใช้ Numbers Numbers และใช้ส่วนหัวที่คล้ายกันโดยใช้ Table of Contents และมันเพิ่มตัวเลขสองชุดเข้าไปในส่วนหัว เช่นเดียวกับกรณีที่คุณย้อนกลับคำสั่งซื้อโดยใช้ส่วนหัวโดยใช้สารบัญก่อนจากนั้นจึงไปที่หัวเรื่อง
  3. สารบัญไม่มีลักษณะหัวเรื่องจำนวนเท่ากันกับหมายเลขหัวเรื่อง
  4. แต่การมีแถบด้านข้างในสารบัญยังคงมีประโยชน์ ฉันเลือก As Is จากแถบด้านข้างสารบัญและสามารถคลิกปุ่มรีเฟรชเพื่อดูและสำรวจสารบัญ
  5. หมายเลขหัวเรื่องมีการดำเนินการที่ชัดเจน สารบัญไม่ได้ การดำเนินการที่ชัดเจนไม่ได้แก้ไขปัญหาการโต้ตอบที่อธิบายไว้ข้างต้นซึ่งค่อนข้างเจ็บปวดเพราะคุณต้องแก้ไขด้วยตนเอง
  6. แอพจะไม่อัปเดตสารบัญที่แทรกลงในเอกสาร (ผ่านเมนูแทรก / สารบัญ)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.