如何为Google文档添加新样式?


298

Google文档具有一组不错的样式,例如“普通文本”和“标题1”。

如何添加我自己的?我想为编程代码的文本添加一种称为“代码”的样式。


42
正是我为什么要问这个问题。:)我只是想制作一种称为“代码内联代码的样式,而不是段落样式。
罗伯特·科里特尼克

18
我知道答案,但是我无法添加答案,因为我没有足够的声誉。基本上,您可以利用Google Apps脚本,这是我所做的:pastebin.com/4pNBJ9pC。为了启用它,您需要创建一个新脚本:Tools>> Script Manager>> New并将代码粘贴到此处。然后,您将必须授权脚本并重新加载文档,以便菜单出现在菜单栏中。然后选择一段文字并选择Extras>>Apply code style
Trident D'Gao

3
我知道我的回答,但我的101名声誉显然还不够。从3/14开始,一旦您通过“更新标题X以匹配”更新了现有标题,GDocs将添加一个附加的标题Y。因此,它仅从标题1,2,3开始,但是一旦更新标题3, GDocs将引入标题4。一旦您更新了Heading 4,GDocs将引入标题5,以此类推。–
JJ Rohrer

7
有一个扩展程序可以做到这一点:chrome.google.com/webstore/detail/paragraph-styles%20/… (由于stackexchange中的错误,我无法发布答案-它说我需要10名代表来回答,我是已获得103名代表,没有可用的答复框。)
克里斯·莫斯奇尼

1
@AlekseyBykov的答案帮助了我。我已经在这里更新并解决了一些问题,github.com
cr8ivecodesmith /

Answers:


136

目前无法添加更多样式或重命名现有样式,但是您可以根据需要进行修改。

例如,您可以根据需要设置代码样式,然后通过选择标题之一并选择Update Heading # to match selection,该特定样式可以成为您的新“代码”样式。

然后选择其他内容并应用该标题即可完成操作。

Google文档中的样式


104
缺点是这将在我的目录中包含“代码”。:/我发现对代码使用字幕样式会阻止它显示在目录中。
Mark Nadig

9
对该提示+1 @ digger69。我从此StackExchange获得的唯一最好的技巧是使用“字幕”作为代码。非常适合在整个文档中使用行高1.15,但对于代码而言行高1.0!:D
ELLIOTTCABLE

9
正如我在digger69的答案中也提到的那样,另一个缺点是这不允许使用内联样式。它必须自己行。当然,短代码或更可能是与代码相关的术语(例如标签,函数或变量名)通常希望直接插入文本段落中。
Drewdavid 2014年

2
是否确实必须是“块”,这意味着整个行或段落必须具有相同的样式-它不能是code混合了普通文本的行,如下所示:window对象
nopole

12
我只想指出,谷歌的“软件专家”从未添加过为文档添加新样式的功能是没有道理的。这应该是十年来他们的首要任务之一,因此该Web应用程序已经可用。
斯宾塞·威廉姆斯

56

随着Lipis努力工作,您仍然无法创建自己的样式。因此,您只能重新利用现有的。使用标题的不利之处在于,这将导致目录(TOC)中出现“代码”。:/我发现对代码使用标题和字幕样式会阻止这些样式显示在目录中。


3
这种方法的主要缺点是,如果您覆盖第6个标题,则可以使用⌘+ Alt + 6来使用此布局,但是字幕样式没有匹配的键盘快捷键。
阿米特·科特洛夫斯基

5
另一个要注意的是,这似乎不是内联的,必须按自己的
思路行事

27

许多解决方案无法内联工作。这是@AlekseyBykov使用Google App脚本添加自定义菜单操作提供的清理解决方案:

  1. 创建一个新脚本(Tools > Script Editor
  2. 将以下代码复制到编辑器中:
// Add new menu item
function onOpen() {
  DocumentApp.getUi()
  .createMenu('Styles')
  .addItem('Format Code', 'formatCode')
  .addToUi();
}

// Define code styling
var style = {};
style[DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.CONSOLAS;
style[DocumentApp.Attribute.FONT_SIZE] = 10;
style[DocumentApp.Attribute.BACKGROUND_COLOR] = "#DDDDDD";
style[DocumentApp.Attribute.FOREGROUND_COLOR] = "#333333";
style[DocumentApp.Attribute.BOLD] = false;

// Apply code formatting
function formatCode() {
  var selection = DocumentApp.getActiveDocument().getSelection();
  if (selection) {
    var elements = selection.getRangeElements();
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];

      // Only modify elements that can be edited as text; skip images and other non-text elements.
      if (element.getElement().editAsText) {
        var text = element.getElement().editAsText();

        // Style the selected part of the element, or the full element if it's completely selected.
        if (element.isPartial()) {
          text.setAttributes(element.getStartOffset(), element.getEndOffsetInclusive(), style);
        } else {
          text.setAttributes(style);
        }
      }
    }
  }
}
  1. 分配触发器以运行onOpen“打开时”功能(Edit > Current Project's Triggers
  2. 授权脚本后,重新加载原始文档
  3. 使用新的菜单项设置所选文本的格式(Styles > Format Code

2
非常好,工作完美。要获得更“宽松”的后退样式:style [DocumentApp.Attribute.BACKGROUND_COLOR] =“ #FFEEEE”; style [DocumentApp.Attribute.FOREGROUND_COLOR] =“#880000”;
Jim Morrison

1
优秀的东西。我不喜欢单词之间缺少背景,因此我对其进行了修改,以将内容放入具有坚实背景的表格单元中:gist.github.com/fatso83/ffb7871c537e04d9ce95f66fccc30495
oligofren

超级漂亮的脚本,谢谢!我现在可以扩展它以支持更多样式
Unreality

15

免费提供的Google Docs扩展程序Paragraph Styles +允许创建自定义段落样式(加上标题的十进制系统轮廓编号和带有页面编号的目录)。

我刚刚进行了测试,这是我的第一印象:

  • 好的开始。对于小文件,最好使用:-)
  • 但是,即使最近的版本已经提高了性能,它的运行速度也相当慢。
  • 该用户界面未与Google文档样式的用户界面集成。否则,在Google Docs API中可能无法实现。
  • 原始的Google Docs样式功能不知道自定义样式,因为所有具有自定义样式的文本都具有“常规文本”格式。您可以并行使用这两种格式,但是请注意,“清除格式”按钮(看起来像“ T x ”)将从所选文本中删除自定义样式格式。
  • 似乎将您的字符样式存储在外部Web服务上,这意味着您必须像现在将其委托给Google一样,将它们的访问权委托给他们…

资料来源:感谢上面提到的克里斯·莫斯基尼(Chris Moschini)评论


6
安装此类文档扩展程序是否涉及任何数据安全风险,或者该代码是否已由Google验证为非恶意代码?
Gruber

7
这些权限似乎是为了使您的文档可以发送给他人或与他人共享,而无需另行通知。这肯定使我感到恐惧。
Reece

应该的,@ Reece!感谢您的指导。
Cheeso

11

直到最近,仍可以编辑文档的CSS(样式表)和HTML源。这花费了一些工作,但是如果您了解HTML和CSS,则可以在文档中添加CSS类,然后编辑HTML以使用它,例如在HTML中

<span class='booktitle'>Infinite Jest</span>

并在CSS中

.booktitle { font-style:italic; }

Google或多或少已采用其新格式逐步淘汰了此功能,从而迫使旧文档采用新格式。但是,我听说有一些方法可以将文档保留为旧格式,因此可能会有一些希望。


1
我希望了解有关如何执行此操作的更多信息。
炖2012年

2
无效,google现在会
删除

2
上面发布脚本与此功能几乎相同。安装后,您可以style根据需要简单地编辑对象。它是JavaScript,与CSS稍有不同,但几乎完全相同。注意:它不会进行任何外部呼叫,从其他位置发送或加载数据。
乔纳森·克罗斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.