Có cách nào để tự động đánh số đề mục trong Google Docs không?
Nó đã từng có thể với CSS nhưng tính năng này không còn được hỗ trợ nữa trong phiên bản Google Docs mới.
Có cách nào để tự động đánh số đề mục trong Google Docs không?
Nó đã từng có thể với CSS nhưng tính năng này không còn được hỗ trợ nữa trong phiên bản Google Docs mới.
Câu trả lời:
Chà, có vẻ như dễ dàng hơn để làm điều đó bằng cách viết kịch bản tài liệu như thế này:
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]);
}
}
}
Trên thực tế có thể thậm chí không cần chỉnh sửa HTML / CSS. Tôi sẽ cho bạn một ví dụ với một tài liệu trống nhưng một khi bạn tìm ra cách nó hoạt động, bạn sẽ có thể làm điều đó trên tài liệu đã tồn tại. Ngoài ra nếu bạn chưa sử dụng các phím tắt trên bàn phím, tôi sẽ khuyên bạn nên bắt đầu sử dụng chúng (trong ví dụ này tôi đang sử dụng các phím tắt của Mac, nhưng bạn có thể dễ dàng tìm thấy các phím tắt chính xác cho HĐH của chính mình).
⌘⌥1
)⌘⇧7
)Return
⌘⌥1
), nhập "Thứ hai" và nhấnReturn
⌘⌥1
), nhập "Thứ ba" và nhấnReturn
Tại thời điểm đó, bạn nên có một cái gì đó trông như thế này:
Return
hai lầnBây giờ tài liệu của bạn sẽ trông giống như thế này:
Như bạn có thể nhận thấy việc đánh số tự động vẫn còn đó và bạn có thể dễ dàng thử nghiệm bằng cách thêm nhiều Tiêu đề khác nếu muốn và thậm chí các tiêu đề phụ được đánh số nếu cần. Tôi sẽ không đi sâu vào chi tiết, nhưng ở đây bạn có thể kiểm tra một ví dụ với các danh sách được đánh số lồng nhau với định dạng chính xác cho Tiêu đề:
Tôi biết rằng điều này có thể không còn phù hợp với OP nữa, nhưng giờ đây có thể sử dụng các tiện ích bổ sung. Có một chức năng trong tiện ích Mục lục, trong đó bạn có thể chọn sơ đồ đánh số cho tiêu đề và nó thực hiện theo yêu cầu:
1
1.1
2
2.1
2.1.1
Tôi hy vọng rằng nó sẽ hữu ích cho một cái gì đó.
Liên kết với tiện ích bổ sung
Tuyên bố miễn trừ trách nhiệm: Điều này có thể chỉ hoạt động trên Chrome, nhưng này, ít nhất thì nó cũng hoạt động.
Cách sử dụng: Có một tiện ích ở phía bên tay phải và ở trên cùng của nó, bạn có thể chọn sơ đồ đánh số của mình và làm mới các tiêu đề bằng nút làm mới thông thường.
Vì vậy, chỉ cần đặt sơ đồ đánh số và cập nhật tiêu đề sau khi bạn hoàn thành việc chỉnh sửa và bạn sẽ có các số chính xác và cập nhật section/subsection/...
.
Bây giờ có một tiện ích bổ sung có tên là Heading Numbers mà bạn có thể sử dụng để thêm bất kỳ kiểu đánh số tùy chỉnh nào. Nó cho phép bạn chọn / xác định, cập nhật và xóa số tiêu đề tự động.
Các kiểu được xác định trước:
Tôi đã phát hành tiện ích này vài tuần trước. Kiểm tra nó trên trang chủ của tôi hoặc trong cửa hàng tiện ích bổ sung .
Những gì tôi đang tìm kiếm là nhận được các tiêu đề như vậy:
1
1.1
1.1.1
1.1.1.1
etc
và tôi không thể tìm thấy bất kỳ, vì vậy tôi đã thực hiện kịch bản của riêng mình, tôi đã đăng nó ở đây http://productforums.google.com/forum/#!topic/docs/w4MXeqJaefU
Hi vọng điêu nay co ich
/*
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;
}
Tôi đã so sánh nhanh giữa ứng dụng Mục lục và ứng dụng Tiêu đề được đánh số bằng Firefox. Phải thừa nhận rằng thông tin này sẽ trở thành ngày nếu mọi thứ được cải thiện cho cả hai ứng dụng: