Google文档/云端硬盘 - 标题编号

Zeh*_*n12 78 google-docs google-apps-script google-drive-api

是否可以在Google文档/云端硬盘文档中对标题进行编号?

Ait*_*tor 82

如果您想要更简单的东西,现在有一个名为"目录"的Google插件,可以让您为标题编号.

要安装此附加组件:

  1. 单击Add-Ons> Get Add-Ons.
  2. 单击"目录"图标或搜索此插件以进行安装

然后您的目录应出现在侧边栏中.单击Heading Numbers Format菜单,然后选择1.2.3

如果你有一个旧文件,你必须重新格式化你的文件,以"刷新"数字,但实际上插件工作得很好.

在这个论坛上看到了答案.

  • 如果未显示侧栏,请转到_"附加组件 - >目录 - >在侧栏中显示"_. (4认同)
  • 我认为任何人都可以将其附加组件称为“目录”。因此,指向实际附加组件的链接将很有帮助。我猜你是这个意思:https://chrome.google.com/webstore/detail/table-of-contents/ickpeaanccmmabadbfiknbobkmkdnnaj (3认同)

Luc*_*ano 40

更新:现在可以在github中使用.

更新2:由于github上的2个拉取请求,现在处理空标题和空行.


我修改了Mikko Ohtamaa提到脚本并创建了一个Google Apps脚本,它添加了一个标题工具文档菜单,允许您:

  • 自动编号标题
  • 清晰标题数字

如何自动编号Google Documents Headings:

  1. 打开文档>工具>脚本编辑器...
  2. 开始一个空白项目
  3. 粘贴下面的代码并使用您的前缀名称保存
  4. 选择Run> onOpen并首次授权脚本
  5. 选择Run> onOpen
  6. 切换到您的文档并尝试创建标题工具自定义菜单上的功能.

~~ 免责声明:你可能有空标题的问题..但你可以随时修复它们并再次运行.~~

要复制和粘贴的代码:

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

}
Run Code Online (Sandbox Code Playgroud)

  • @IvanCachicatari很棒的主意,你有它!https://github.com/lpanebr/autoNumberHeadings (2认同)
  • @MrGravity实现这一目标的方法是将脚本转换为[适用于Google云端硬盘的附加组件](https://developers.google.com/apps-script/add-ons/)我打算这样做,但我出去了现在的时间.. (2认同)

小智 15

自写作(2020 年 4 月)以来,许多提议的应用程序已过时或不再运行。

我发现有效的编号标题方法如下:

  1. 转到获取附加组件
  2. 搜索并安装Markdown 工具

Markdown 工具有一个选项可以使用编号的标题。使用 Google 的内置目录就像魅力一样。

要创建目录:

  1. 转到菜单项插入并选择目录


ale*_*sky 12

您所要做的就是复制/粘贴以前的标题。

如果您复制并粘贴编号列表中的任何项目,则它会保留其编号,并在相关情况下自动更改编号。

  • 问题是:您需要从*同一文档*复制标题。例如,如果您从另一个 html 文档复制“标题 1”,尽管保留了“标题 x”格式,但它不会包含数字。这意味着,如果您已经有另一个包含要复制粘贴的文本的文档,您的解决方案将需要太多的手动工作。或者实际上:如果您已经有一个文档并且您只想枚举其中的标题,情况是一样的。 (5认同)
  • 多么务实,这个解决方案被低估了。 (2认同)
  • 事实上,这是最简单、原生的解决方案(如果您仍处于编辑阶段)! (2认同)