web-dev-qa-db-ja.com

Googleドキュメントでヘッダー番号を取得できますか?

Googleドキュメントの見出しに自動的に番号を付ける方法はありますか?

以前はCSSで可能でしたが、この機能は新しいGoogleドキュメントバージョンではサポートされなくなりました。

33
Martin Delille

さて、次のようにドキュメントをスクリプト化することで、簡単に実行できるようになります。

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

実際には、HTML/CSSを編集しなくても可能です。空白のドキュメントの例を挙げますが、どのように機能するかを理解したら、既存のドキュメントでそれを実行できるようになります。また、キーボードショートカットをまだ使用していない場合は、使用を開始することをお勧めします(この例では、Macのショートカットを使用していますが、ご使用のOSに合った正しいショートカットを簡単に見つけることができます)。

  1. 新しいドキュメントを作成する
  2. 適用見出し1⌘⌥1
  3. 適用番号付きリスト⌘⇧7
  4. "First"と入力し、Returnを押します
  5. 見出し1⌘⌥1)を適用し、 "Second"と入力してReturnを押す
  6. 見出し1⌘⌥1)を適用し、 "Third"と入力してReturnを押す

その時点で、次のようなものが必要です。

Numbered Headers in Google Docs

  1. Firstヘッダーの最後にカーソルを置きます
  2. Returnを2回押す
  3. タイプ "Hello World!"
  4. 残りのヘッダーに対して手順を繰り返します

これで、ドキュメントは次のようになります。

Numbered headers with some extra text in between

お気づきかもしれませんが、自動番号付けはまだあり、必要に応じてヘッダーを追加したり、必要に応じて番号付きのサブヘッダーを追加したりして、簡単に実験できます。詳細は説明しませんが、ここでは、ヘッダーの正しい書式設定を使用して、ネストされた番号付きリストの例を確認できます。

Complete example for numbered headers

13
Lipis

これはもうOPには関係ないかもしれませんが、アドオンを使用する可能性があります。目次アドオンには、見出しの番号付けスキームを選択できる機能があり、必要な機能を実行します。

1
1.1
2
2.1
2.1.1

何かに役立つことを願っています。

アドオン へのリンク

免責事項:これはChromeでのみ動作する可能性がありますが、少なくとも動作します。

使用方法:右側にウィジェットがあり、その上部に番号付けスキームを選択し、通常の見出しを更新できます更新ボタン。

そのため、編集の終了後に番号付けスキームを設定し、見出しを更新するだけで、section/subsection/...番号が正しく更新されます。

2
gns-ank

現在、Heading Numbersというアドオンがあり、これを使用してカスタムの番号付けスタイルを追加できます。自動見出し番号を選択/定義、更新、削除できます。

定義済みのスタイル:

  • 1.2.3 –末尾にドットがない数字
  • 1.2.3。 –末尾にドットがある数字
  • a.b.c –小文字
  • A.B.C –大文字
  • i.ii.ii –ローマ字小文字
  • I.II.III –大文字のローマ字
  • 1)a)i)–スタイルの変更とそれに続く括弧

数週間前にこのアドオンをリリースしました。 my homepage または add-on store で確認してください。

2
Kristoffer

お役に立てれば

/*
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
Sai

Firefoxを使用して、目次アプリと番号付き見出しアプリを簡単に比較しました。確かに、両方のアプリで改善が見られる場合、この情報は古くなっています:

  1. 目次アプリを使用するためのオンラインヘルプはありません(削除されたこともあれば、削除されたこともありません)ヘルプボタンは、試用版でアップセルを試みるページを指します http:// lumapps- www.appspot.com/en/ ヘルプを提供する代わりに。見出し番号は、 http://www.lorut.no/add-ons/heading-numbers-for-google-docs/faq/ でFAQを提供します。
  2. 目次と見出し番号のアプリは、見出しの番号を付け直すという点ではうまく機能しません。見出し番号を使用して番号付き見出しを作成し、目次を使用して同様の見出しを適用し、見出しに2セットの番号を追加しました。最初に目次を使用して見出しを適用し、次に見出し番号を使用して順序を逆にした場合も同様です。
  3. 目次には、見出し番号と同じ数の見出しスタイルがありません。
  4. ただし、目次にサイドバーがあると便利です。目次サイドバーから[現状のまま]を選択し、更新ボタンをクリックして目次を表示およびナビゲートできます。
  5. 見出し番号にはクリア操作があります。目次にはありません。クリア操作は、上記の相互作用の問題をnot修正しますが、手動で修正する必要があるため非常に苦痛です。
  6. どちらのアプリも、(挿入/目次メニューを介して)ドキュメントに挿入された目次を更新しません。
1
bgoodr

私が探していたのは、次のような見出しを得ることでした:

1
1.1
1.1.1
1.1.1.1
etc

見つからなかったので、独自のスクリプトを作成し、ここに投稿しました http://productforums.google.com/forum/#!topic/docs/w4MXeqJaef

1
Keyjote