将源代码示例插入Microsoft Word文档的最佳方法是什么?

时间:2010-07-15 02:35:32

标签: ms-word

我必须编写一些包含源代码示例的文档。一些示例将从IDE编写,其他示例将在适当的位置编写。我的例子主要是Java。

作为习惯于LaTeX的人,在Word中执行此操作非常痛苦。但是,我必须为此而使用Word。我见过的唯一选择是:

  1. 写入或复制到文档中, 然后使用固定类型的字体,安排 格式化并希望Word没有 大写的东西给你。不用了 说,这看起来像垃圾。
  2. 复制并粘贴来源的屏幕截图 来自IDE的代码。至少我保持 颜色。但是,如果我改变我的字体 大小,我搞砸了。我也搞砸了 跨越页面边界。让我们来吧 承认,Word并不擅长 管理多个图像 文档。
  3. 编写HTML(不是一个选项 这里)
  4. 是否有更好的(理想的便携式)方法?是否至少有某种类似于LaTeX环境的逐字风格?至少有一些漂亮的打印机可以复制并粘贴为RTF吗?

16 个答案:

答案 0 :(得分:172)

我绝对讨厌并且鄙视为微软免费工作,考虑到他们仍然没有在他们该死的网站上截图显示这些数十亿美元。

无论如何,这是Word 2010中的快速指南,使用Notepad ++进行语法着色,以及可以加上字幕的TextBox:

  1. 选择插入/文本框/简单文本框
    01word
  2. 插入默认文本框
    02word
  3. 切换到NPP,选择代码语法着色的语言,转到插件/ NPP导出/复制RTF到剪贴板
    03npp
  4. 切换回单词并粘贴到文本框中 - 它可能太小了......
    04word
  5. ...因此您可能需要更改其尺寸05word
  6. 选择文本框后,右键单击该文本框,然后选择“插入标题...”06word
  7. 在标题菜单中,如果您还没有,请单击新标签,然后将新标签设置为"代码",单击确定...左{{3 }}
  8. ...然后在标题对话框中,将标签切换为代码,然后点击OK 07word
  9. 最后,在新创建的标题框中输入您的标题
    08word

答案 1 :(得分:22)

您需要在Word文档中定义样式,并将其用于源代码。我通常有一种称为“代码”的样式,它具有小点大小的等宽字体,固定大小的标签,单行间距,没有前/后段间距等。您只需要定义一次这种样式然后重复使用它。您粘贴源代码并将“代码”样式应用于它。

请注意,在应用程序之间复制/粘贴时,某些编辑器(例如Mac上的Xcode)会将RTF和文本添加到剪贴板 - Word识别RTF并有助于保留格式,语法着色等。

Xcode中的源代码:

enter image description here

复制并粘贴到Word:

enter image description here

(注意:在Word中以“代码”样式禁用拼写检查是个好主意。)

答案 2 :(得分:15)

我最近遇到过这篇文章并发现了一些有用的提示。但是,我最终使用了一种完全不同的方法来满足我的需求。我正在分享我为什么选择这种方法的方法和理由。帖子比我想要的要长,但我相信截图总是有用的。希望答案对某人有用。

我的要求如下:

  1. 将代码段添加到word文档中,使用语法突出显示,以便更轻松地查看和区分代码和其他文本。
  2. 代码段应与其他文本内联。
  3. 代码段应能顺利打破页面而无需任何额外的努力。
  4. 代码段应有一个漂亮的边框。
  5. 代码段应禁用拼写检查。
  6. 我的方法如下:

    1. 使用外部工具实现上面的语法突出显示要求1。   如上所述,可以使用记事本加上加号。但是,我使用此处提供的工具 - http://www.planetb.ca/syntax-highlight-word。这使我可以选择使用行号,以及非常好的语法高亮。下面列出了实现语法突出显示的步骤:
    2. 要实现上述要求2,3和4,请使用Microsoft Word中的表格来插入代码段。步骤如下:

      • 插入一个包含单列的表格。
      • 在表格列中粘贴步骤1中的复制文本。我保留了这些行号,以显示它与Microsoft Word的结合程度。
      • 根据需要应用边框。我用过1pt的尺寸。将显示生成的Microsoft单词代码段,如下面的屏幕截图所示。请注意它在整个页面中的破坏程度 - 管理它不需要额外的工作,如果插入“OpenDocument Text”对象或使用“Simple TextBox”,您将面临这种情况。 Syntax-highlighted code snippet pasted in Microsoft Word Table
    3. 要达到要求5,请按照以下步骤操作:

      • 选择整个表格或文字。
      • 转到“审核”标签。在语言下,选择“校对语言”。将会出现一个新的弹出窗口。
      • 选择“不检查拼写或语法”。然后,单击“确定”。 Disable spell-check
      • 生成的文字已禁用拼写检查。最终结果如下图所示,符合所有要求。 Final Result - meets all the 5 requirements.
    4. 如果您有任何反馈或改进或遇到任何问题,请提供。

答案 3 :(得分:11)

这取决于IDE。例如,Visual Studio和Eclipse都允许您复制为RTF并粘贴到Word中,保留所有格式。

Notepad++有一个名为“NppExport”的插件(已预先安装)允许你复制到RTF,虽然我不太关心Notepad ++的语法高亮(尽管它肯定是可以通过的)。它所做的是支持几十种语言,而上述IDE仅限于少数语言(没有其他插件)。

答案 4 :(得分:3)

这与此答案有关:https://stackoverflow.com/a/2653406/931265 创建一个对象解决了我所有的问题。

插入>对象> Opendocument文本

这将打开一个文档窗口,粘贴您的文本,根据需要对其进行格式化,然后将其关闭。

结果是一个数字。右键单击该对象,然后选择“添加标题”。

您现在可以进行交叉引用,创建一个数字表。

答案 5 :(得分:2)

在Mac上我发现vim的这个解决方案很精彩:

https://github.com/zerowidth/vim-copy-as-rtf

答案 6 :(得分:1)

您可以使用Open Xml Sdk。如果你有html中的代码与颜色和格式。您可以使用altchunks将其添加到word文档中。 请参阅此帖Add HTML String to OpenXML (*.docx) Document 希望这有帮助!

答案 7 :(得分:1)

这就是我所做的。

最终结果: enter image description here

https://stackoverflow.com/a/25092977/1161594

答案 8 :(得分:1)

您可以在Ms.Word https://store.office.com/syntax-highlighter-WA104315019.aspx?assetid=WA104315019中使用插件语法突出显示。我遵循这一步,这是工作

答案 9 :(得分:1)

在Word中,可以粘贴使用颜色的代码,以使用“粘贴保留源格式”将注释与代码区分开。但是,如果您使用粘贴的代码来创建新样式,则Word会自动剥离颜色编码的文本,并将其更改为黑色(或自动默认颜色是任何颜色)。由于应用样式是确保符合文档格式要求的最佳方法,因此Word对于记录软件程序不是很有用。不幸的是,我不记得Open Office会更好。 最好的解决方法是使用默认的简单文本框。

答案 10 :(得分:1)

我尝试了所有的方法,但对我没有用,实际上,我使用 MS Word Tables 创建了一种更简单的方法。

优点:

  1. 更美丽
  2. 易于管理且更加一致
  3. 不太容易出现问题
  4. 不需要外部插件或MS Word微型编码。
  5. 更容易被简单的用户(例如我自己的 )处理。

缺点: 尽管有人可以改善我的技巧,但它不会保持代码的颜色。

步骤:

  1. 插入一个3x3的表格,在我的情况下,我总是使表格的总宽度等于可用页面的宽度(最少3行以测试表格样式)。

  2. 使用不可见的边框(“ 无边框 ”选项),然后激活“ 查看网格线” “ 选项。它应该有这个方面。 请注意,这些行供您查看表格的网格,并且不会打印出来。

enter image description here

  1. 对单元格的间距和列的宽度进行调整,以获得所需的外观。 (您必须进入“ 表属性”以进行微调)。 enter image description here

  2. 为您的代码段创建一个名称为“ 代码”的“ 段落样式”(选中https://stackoverflow.com/a/25092977/8533804 就能了解这个想法,而不必全部遵循)

  3. 使用先前创建的样式创建另一个名称为“ Code_numberline ”的“ 段落样式”。 enter image description here

  4. 在新创建的“ Code_numberline ”中,添加所需的编号样式(这将自动进行行编号)。 enter image description here

  5. 在第一列中应用“ Code_numberline ”,在第三列中应用“ Code ”。 enter image description here

  6. 在中间列中添加填充。 enter image description here

  7. 保存该表格样式并享受!

答案 11 :(得分:1)

与网络插件解决方案相比,这些答案看起来已经过时且乏味;自Office 2013起可用于产品。

我正在使用Easy Code Formatter,它允许您就地编码文本。它还为您提供行号选项,突出显示,不同的样式,并且样式在以下位置开源:https://github.com/armhil/easy-code-formatter-styles,因此您可以自己扩展样式。要安装-打开Microsoft Word,请转到“插入”标签,然后单击“获取加载项”,然后搜索“简易代码格式化程序”

enter image description here enter image description here enter image description here

答案 12 :(得分:0)

如果您仍在寻找添加代码段的简单方法。

您可以轻松地转到[插入]> [对象]> [Opendocument文本]>粘贴代码>保存并关闭。

您还可以将其放入宏并将其添加到您的轻松访问栏中。

注释:

  • 这最多只需要一页代码。
  • 您的代码将不会自动更正
  • 您只能通过双击与它进行交互

答案 13 :(得分:0)

如果想要简单的代码格式,这是一种简单的方法。

  1. 打开单词>插入选项卡>单击“获取加载项”
  2. 搜索“内容混合器” 3.点击“添加”

然后内容混合器添加将自动打开,您可以在其中复制粘贴代码,然后单击“插入”以将其插入Word文档中。

答案 14 :(得分:0)

使用此-http://hilite.me/

hilite.me将您的代码段转换为漂亮的HTML格式,可以轻松地嵌入博客文章,电子邮件和网站中。

方法: 只需将源代码复制到左窗格,选择语言和配色方案,然后单击“突出显示!”。现在可以将右窗格中的HTML粘贴到您的博客或电子邮件中,无需外部CSS或Javascript文件。

对于Microsoft Word文档::复制预览部分中的内容,然后粘贴到您的Microsoft Word文档中。

3 sections : Source Code , HTML and Preview

答案 15 :(得分:0)

所以我发现关于这个问题的大多数答案要么只是半功能要么完全损坏(例如所使用的网站已关闭)。此解决方案完全独立于 Word 中,适用于多个页面,并保持语法突出显示。

步骤如下:

  1. 暂时将 IDE 的主题设置为浅色主题,以便文本适合文档的其余部分。
  2. 复制所需的代码(HTML 着色信息将随之复制)。
  3. 在 Word 中,按 Ctrl+Alt+V 并选择 HTML 格式以粘贴彩色文本。
  4. 选择所有文本,然后展开功能区主页选项卡上的样式库。
  5. 选择“创建样式”。使用诸如“代码”之类的名称
  6. 在图库中右键单击您的新样式,然后选择“修改”。
  7. 在格式部分下,将字体更改为 Consolas 或您选择的等宽字体。还将行间距设置为“压缩”(此选项位于文本对齐选项旁边)。
  8. 在左下角的格式按钮下,选择“语言”,然后启用“不检查拼写或语法”选项。
  9. 如果您希望此样式在以后的文档中可用,请更改为“基于此模板的新文档”单选按钮。

可选:对于行号...

  1. 返回“修改样式”对话框,再次选择格式按钮并选择“编号”。
  2. 选择“定义新的数字格式”选项。
  3. 删除数字格式框中数字“1”后面的点。
  4. 选择“右”作为数字对齐方式。
  5. 点击确定,然后选择新的号码对齐选项。最后,在“修改样式”对话框中点击“确定”。

最后,选择您的代码,并将其设置为代码样式,该样式应应用所有必需的格式。