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

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

评论

正是我为什么要问这个问题。 :)我只是想制作一种称为“代码和内联代码”的样式,而不是段落样式。

我知道答案,但是我无法添加答案,因为我没有足够的声誉。基本上,您可以利用Google Apps脚本,这是我所做的:pastebin.com/4pNBJ9pC。为了启用它,您需要创建一个新脚本:Tools >> Script Manager >> New并将代码粘贴到那里。然后,您将必须授权脚本并重新加载文档,以便菜单出现在菜单栏中。然后选择一个文本补丁并选择其他>>应用代码样式

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

感谢@AlekseyBykov,我使用了您的脚本并且可以完美地工作。

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

#1 楼

现在无法添加更多样式或重命名现有样式,但是您可以对其进行修改以满足您的需求。例如,您可以根据需要对代码进行样式设置,然后选择其中一种标头,然后选择Update Heading # to match selection,该特定样式可能会成为您的新“代码”样式。

然后选择其他内容并应用该标题即可完成。 br />

评论


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

–马克·纳迪格(Mark Nadig)
2012年7月30日在23:40



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

– ELLIOTTCABLE
13年6月18日在15:35

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

–Drewdavid
2014年11月7日17:56



是否必须是“块”是真的,这意味着整行或段落必须具有相同的样式-它不能是一行代码与普通文本混合在一起的代码,例如:window对象

–nonopolarity
16年1月24日在6:00



我只想指出,谷歌的“软件专家”从未添加过为文档添加新样式的功能是没有道理的。那应该是十年来他们的首要任务之一,所以这个Web应用程序已经可用。

–斯潘塞·威廉姆斯
16-10-13在18:18

#2 楼

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

评论


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

–阿米特·科特洛夫斯基(Amit Kotlovski)
2014年6月14日上午10:08

另一个要注意的是,这似乎不是内联的,必须独立行(我想象的所有样式都是如此)

–Drewdavid
2014年11月7日17:54

如果您还通过“行距”菜单按钮中的“删除段落后的空格”,则无需担心段落,并且不再需要使用Enter和Shift + Enter。

– Aalex Gabi
9月11日8:02

#3 楼

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


创建新脚本(Tools > Script Editor
将以下代码复制到编辑器:

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



分配触发器以运行onOpen函数“打开”(Edit > Current Project's Triggers
授权脚本后,重新加载原始文档
使用新菜单项格式化选定的文本(Styles > Format Code


评论


非常好,工作完美。对于更“宽松”的反勾号样式:style [DocumentApp.Attribute.BACKGROUND_COLOR] =“ #FFEEEE”; style [DocumentApp.Attribute.FOREGROUND_COLOR] =“#880000”;

–吉姆·莫里森(Jim Morrison)
18-6月27日21:00



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

–寡核苷酸
18/09/19在15:22

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

–不真实
18-10-22在6:33

一个局限性是您不能轻易更改文本中所有现有“代码”字符串的样式(例如,您决定所有内联代码应为10点的9点)。您将需要脚本中的“旧样式”样式,以及一个在所有文本中搜索与旧代码样式相匹配的样式,找到结尾并更改为新样式的函数。也就是说,这是唯一的实用的方法,因为80%的时间是您需要设置样式的内联文本。

–奥利弗
2月21日13:54



很好的解决方案!我发现您可以使用热键来保留代码格式设置模式,例如普通文本(CTRL + ALT + 0)。但是,有没有办法获取热键来启用此功能?我对该脚本唯一的触发选项是“ OnOpen”。更好的是,我们可以做行内markdown字符来触发它吗? (例如反引号)

– BenB
4月1日21:15



#4 楼

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

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


良好的开始。对于小型文档,最好使用:-)
,尽管最近的版本已经在性能上有所改进,但运行速度却很慢。
该用户界面未与Google Docs风格的用户界面集成。否则,在Google Docs API中可能无法实现。
原始的Google Docs样式功能不了解自定义样式,因为将所有具有自定义样式的文本都视为“普通文本”格式。您可以并行使用这两种格式,但是请注意,“清除格式”按钮(看起来像“ Tx”)将从选定的文本中删除自定义样式格式。您必须像现在将其委托给Google一样,将它们的访问权委托给他们。...

资料来源:感谢上面提到的Chris Moschini的评论。

评论


安装这种docs扩展程序是否涉及任何数据安全风险,或者该代码是否已被Google验证为非恶意代码?

– Gruber
15年8月19日在7:42



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

– Reece
16-3-21在18:07



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

– Cheeso
17年1月31日在18:15

#5 楼

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

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


和CSS

.booktitle { font-style:italic; }


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

评论


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

–炖
2012年9月21日在16:38

不起作用,谷歌现在剥离除内联以外的所有CSS

– vs4vijay
13年6月13日在7:16

上面发布的脚本与此功能几乎相同。安装后,您可以根据需要简单地编辑样式对象。它是JavaScript,与CSS稍有不同,但几乎完全相同。注意:它不会进行任何外部呼叫,从其他位置发送或加载数据。

–乔纳森·克罗斯(Jonathan Cross)
17年6月8日在10:16

#6 楼

我要依靠的解决方法是复制/粘贴格式功能快捷方式。由于格式“剪贴板”与文本剪贴板是分开的,因此只要打开文档,它就会保留下来。

要使用:


找到您已格式化为“代码”的部分,例如Consolas 9pt。
使用option + command + cCtrl + Alt + c或使用“绘画格式”图标
在需要“代码”的地方选择它,然后按option + command + vCtrl + Alt + v


如果只需要一种额外的样式,与其他选项相比,我发现这几乎没有什么额外的工作,没有缺点。唯一的工作是在打开新文档时首先将样式复制到缓冲区。


我使用的另一种技术(正如我对问题的评论)是将问题反转:始终在文档末尾输入“代码”格式,然后使用“命令+选项+ 0”将所有非代码重置为正常状态。

当我编写技术文档时,如果50%

这里唯一的提示是将文档中的最后一个换行符设置为“代码”格式,否则它将恢复正常。通过向下箭头向下箭头,然后按住Shift键和向右箭头键,它将再选择一个偷偷摸摸的字符,然后将其格式化为代码。默认情况下,文档的末尾将始终位于代码中。