在 MicrosoftWord 文档中插入源代码示例的最佳方法是什么?

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

作为一个习惯于使用 LaTeX 的人,在 Word 中做这件事是非常痛苦的。然而,我必须为这个词。我看到的唯一选择是:

  1. 将文件写入或复制到文件中, 然后使用固定类型的字体,排列 格式,并希望 Word 没有 大写的东西给你,没必要 这看起来像垃圾。
  2. 复制和粘贴源代码的屏幕截图 来自 IDE 的代码,至少我保留了 颜色。但是,如果我更改我的字体 尺寸,我完蛋了,我也完蛋了 跨越页面界限。让我们 承认吧 Word 不擅长 上管理多个图像 文件。
  3. 编写 HTML (不是一个真正的选项 在此)

有没有更好的(理想的便携式)方法来做到这一点?是否至少有一些类似于 LaTeX 环境的逐字逐句的样式?至少有一些漂亮的打印机,我可以复制粘贴为 RTF?

302452 次浏览

这取决于 IDE。例如,VisualStudio 和 日食都允许您以 RTF 格式复制并粘贴到 Word 中,从而保持所有的格式。

Notepad + + 有一个叫做“ nppExport”(预装)的插件,可以让你复制到 RTF,虽然我不太喜欢 Notepad + + 的语法突显(但它肯定是可以通过的)。它所做的是支持几十种语言,而前面提到的 IDE 仅限于少数几种语言(没有其他插件)。

您需要在 Word 文档中定义一个 风格,并将其用于源代码。我通常有一个风格称为“代码”,它有一个小点大小的等宽字体,固定大小的制表符,单行间距,没有前/后段落间距,等等。您只需定义此样式一次,然后重用它。粘贴源代码并应用“ Code”样式。

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

Xcode 的源代码:

enter image description here

复制并粘贴到 Word:

enter image description here

(注意: 在 Word 的“代码”风格中禁用拼写检查是个好主意。)

这与下面的答案有关: < a href = “ https://stackoverflow./a/2653406/931265”> https://stackoverflow.com/a/2653406/931265 创造一个物体解决了我所有的问题。

插入 > 对象 > Opendocument 文本

这将打开一个文档窗口,粘贴您的文本,按您希望的格式设置,然后关闭它。

结果是一个图形。右键单击对象,并选择“添加标题”。

你现在可以进行交叉引用,创建一个图表。

您可以使用 OpenXmlSdk 进行此操作。如果你有代码在 HTML 与颜色和格式。您可以使用 altblock 将其添加到 word 文档中。 请参考这篇文章 向 OpenXML (* . docx)文档添加 HTML 字符串 希望这个能帮上忙!

我绝对讨厌和鄙视为微软免费工作,毕竟他们仍然没有这样的东西在他们该死的网站上的截图合适的指导。

无论如何,下面是 Word 2010中的一个快速指南,使用 Notepad + + 进行语法着色,还有一个可以标题的 TextBox:

  1. 选择 Insert/Text Box/Simple Text Box < br > < img src = “ https://i.stack.imgur.com/3nZmpm.png”alt = “01word”> < img src = “ https://i.stack.imgur.com/3nZmpm.png”alt = “01word”>
  2. 插入默认文本框 < br > < img src = “ https://i.stack.imgur.com/hirPgm.png”alt = “02word”> < img src = “ https://i.stack.imgur.com/hirPgm.png”alt = “02word”>
  3. 切换到 NPP,选择用于代码语法着色的语言,转到 Plugins/NPPExport/Copy RTF to clipboard < br > < img src = “ https://i.stack.imgur.com/lYtqnm.png”alt = “03npp”> < img src = “ https://i.stack.imgur.com/lYtqnm.png”alt = “03npp”>
  4. 切换回单词,并粘贴到文本框-它可能太小... < br > < img src = “ https://i.stack.imgur.com/2Az3Vm.png”alt = “04word”> < img src = “ https://i.stack.imgur.com/2Az3Vm.png”alt = “04word”>
  5. 所以你可能需要改变它的大小 < br > < img src = “ https://i.stack.imgur.com/YcvMpm.png”alt = “05word”> < img src = “ https://i.stack.imgur.com/YcvMpm.png”alt = “05word”>
  6. 选定文本框后,右键单击它,然后选择 Insert Caption... < br > < img src = “ https://i.stack.imgur.com/WFB10m.png”alt = “06word”> < img src = “ https://i.stack.imgur.com/WFB10m.png”alt = “06word”>
  7. 在“标题”菜单中,如果您还没有新标签,请单击“新标签”,并将新标签设置为“代码”,然后单击“确定”... < br > < img src = “ https://i.stack.imgur.com/LfBfTm.png”alt = “07word”> < img src = “ https://i.stack.imgur.com/LfBfTm.png”alt = “07word”>
  8. 然后在标题对话框中,将标签切换到 Code,并点击 OK < br > < img src = “ https://i.stack.imgur.com/8AhQ1m.png”alt = “08word”> < img src = “ https://i.stack.imgur.com/8AhQ1m.png”alt = “08word”>
  9. 最后,在新创建的标题框 < br > < img src = “ https://i.stack.imgur.com/6aL6Fm.png”alt = “09word”> < img src = “ https://i.stack.imgur.com/6aL6Fm.png”alt = “09word”> 中键入标题

我就是这么做的。

结果: enter image description here

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

你可以使用插件 语法高亮在女士字 https://store.office.com/syntax-highlighter-WA104315019.aspx?assetid=WA104315019。我遵循这一步骤,它的工作

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

我的要求如下:

  1. 将代码片段添加到 word 文档中,使代码和其他文本的可见性和区分语法突显变得更容易。
  2. 代码段应与其他文本内联。
  3. 代码片段应该能够顺利地穿过页面,而不需要任何额外的工作。
  4. 代码段应该有一个很好的边框。
  5. 代码段应禁用拼写检查。

我的方法如下:

  1. 使用外部工具以达到上述语法突显要求。 人们可以使用记事本加上如上所述。但是,我使用这里提供的工具 -https://syntax-highlighter.k26.ch/。这给了我使用行号的选项,以及非常好的语法突显(请在这一步使用谷歌浏览器,因为使用 Mozilla Firefox 时语法高亮不会被复制,正如一些用户评论所指出的那样)。实现语法突显的步骤如下:
  • 打开上面提供的网站在铬和复制代码片段在文本区域。我将使用一个示例 XML 来演示这一点(从这里开始的 XML 示例 -http://www.service-architecture.com/articles/object-oriented-databases/xml_file_for_complex_data.html)。

  • 从下拉菜单中选择语言。

  • 点击“显示突出显示”按钮。它将打开一个新的选项卡,其中包含语法突出显示的代码片段,在本例中是我们选择的 XML 示例。例如,请参见下面的图片。 Image shows a sample xml being pasted in the textarea, language selected as XML and the button.

  • 要关闭行号,请检查镀铬页。然后,在样式下,取消选择“”中的“边距”属性。如下图所示。如果您想保留行号,请转到下一步。

  • 选择语法突出显示的代码并单击“复制”。现在,您的代码可以粘贴到 Microsoft word 中了。 Result of syntax-highlighted XML 感谢本博客提供此信息 -http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/。 2.要实现上述要求2、3和4,使用 Microsoft 中的表 Word,插入代码片段。步骤如下:

  • 插入具有单列的表。

  • 粘贴步骤1中复制的文本。在表列中。我已经保留了行号,以显示这与 Microsoft word 工作得多么好。

  • 应用边界,如果你喜欢。我用的是1号。生成的 Microsoft 文字片段将如下面的屏幕截图所示。注意它是如何很好地打破了页面-没有额外的工作需要管理这一点,您将面临如果插入“ OpenDocument 文本”对象或如果使用“简单文本框”。 Syntax-highlighted code snippet pasted in Microsoft Word Table

    1. 要达到要求5,请按照以下步骤:
  • 选择整个表或文本。

  • 进入“复习”选项卡,在“语言”下面选择“校对语言”,将会弹出一个新的弹出窗口。

  • 选择“不检查拼写或语法”,然后单击“确定”。 Disable spell-check

  • 生成的文本已禁用拼写检查。最终结果显示在下面的图像中,满足所有要求。 Final Result - meets all the 5 requirements.

请提供如果您有任何反馈或改进或遇到任何问题的方法。

在 Mac 电脑上,我发现使用 vim 的解决方案非常棒:

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

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

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

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

附注:

  • 这将只需要多达 页的代码。
  • 您的代码将 没有自动纠错
  • 你只能通过 双击它与它 互动

在 Word 中,可以使用“粘贴保持源格式”粘贴使用颜色区分注释和代码的代码但是,如果使用粘贴的代码创建新样式,Word 会自动去除颜色编码的文本,并将其更改为黑色(或任何自动默认颜色)。由于应用样式是确保符合文档格式要求的最佳方式,Word 对于记录软件程序并不十分有用。不幸的是,我不记得开放办公室有比这更好的了。 最好的解决办法是使用默认的简单文本框。

我已经尝试了你所有的方法,但他们不适合我,事实上我已经创建了一个更容易的方法使用 微软文字表

优点:

  1. 更漂亮
  2. 更容易管理,更一致
  3. 不太容易出问题
  4. 不需要外部插件或微软 Word 微编码。
  5. 易于处理的简单用户(比如我自己)。

缺点: 它不会维护代码着色,虽然有人可以改善我的技巧。

步骤:

  1. 插入一个3x3的表,在我的例子中,我总是使表的总宽度等于空闲页面的宽度(测试表格样式最少需要3行)。

  2. 使用不可见的边框(“ < em > 无国界”选项 ) ,并激活“ 查看网格线”选项。 注意,这些线是为了让你看到表格的网格,而不会打印出来。

enter image description here

  1. 调整单元格的间距和列的宽度以获得您喜欢的方面。 enter image description here

  2. 为你的代码片段创建一个名为“ 密码”的“ 段落风格”(检查 < a href = “ https://stackoverflow. com/a/25092977/8533804”> https://stackoverflow.com/a/25092977/8533804 来获得想法,你不必遵循它的全部)

  3. 创建另一个名为“ 编号”的“ 段落风格”,它将基于以前创建的样式。 enter image description here

  4. 在新创建的“ 编号”中添加您喜欢的编号样式(这将自动行编号)。 enter image description here

  5. 对第一列应用“ 编号”,对第3列应用“ 密码”。 enter image description here

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

  7. 保持餐桌风格,尽情享受吧!

如果您想要简单的代码格式化,有一个简单的方法。

  1. 打开单词 > 插入标签 > 点击“获取外接程序”
  2. 搜索“内容混合器” 3. 点击“添加”

然后内容混合器添加将自动打开,您可以复制粘贴您的代码在那里,并点击“插入”插入到 Word 文档。

用这个 http://hilite.me/

Me 将你的代码片段转换成漂亮的打印 HTML 格式,很容易嵌入到博客文章、电子邮件和网站中。

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

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

3节: 源代码,HTML 和预览

与 Web 外接程序解决方案相比,这些答案看起来已经过时,而且相当单调乏味; 自 Office2013以来,该解决方案已经可用于产品。

我使用的是 简单代码格式化程序,它允许您就地编码文本。它还提供了行号选项,高亮显示,不同的样式和样式在这里是开源的: https://github.com/armhil/easy-code-formatter-styles,所以你可以扩展自己的样式。要安装-打开 MicrosoftWord,进入“插入”选项卡/单击“获取外接程序”并搜索“轻松代码格式化程序”

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

所以我发现这个问题的大部分答案要么是半功能的,要么是完全破碎的(例如网站已经关闭)。这个解决方案在 Word 中是完全独立的,可以跨多个页面工作,并且可以保持你的语法突显。

步骤如下:

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

可选项: 对于行号..。

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

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