如何最佳地将源代码示例插入Microsoft Word文档?

153

我需要写一些包含源代码示例的文档,其中一部分示例将从IDE中编写,另一部分将在文档中直接编写。我的示例主要是Java语言。

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

  1. 编写或复制到文档中,然后使用固定字体,安排格式,希望Word不会将大写字母全部转化成小写。不用说,这看起来像垃圾。
  2. 从IDE中复制并粘贴源代码的截图,至少可以保留颜色。但是,如果我更改字体大小,那么我就完蛋了。我也会在跨页时遇到问题。而且让我们承认,Word不能很好地管理文档中的多个图像。
  3. 编写HTML(实际上这不是一个选项)

有没有更好(最好是可移植的)的方法来完成这个任务?是否至少有类似于LaTeX环境的verbatim样式?是否至少有某种漂亮的打印机可以复制并粘贴为RTF?


Russel:不太确定我理解了。 - Uri
2
我认为这可能更适合超级用户。仅仅因为你要插入到文档中的东西恰好是代码,并不意味着这是一个编程问题。 - danben
2
@danben:我猜是这样。我只是想到在日常工作中,大多数程序员最终都会在Word文档中编写代码示例。 - Uri
1
你是绑定于 Word 软件还是 Word 文件格式的? - Ken
显示剩余4条评论
16个回答

1

1
在Word中,可以使用“保留源格式粘贴”来粘贴使用颜色区分注释和代码的代码。然而,如果使用粘贴的代码创建新样式,Word会自动删除彩色文本并将其更改为黑色(或任何其他自动默认颜色)。由于应用样式是确保符合文档格式要求的最佳方法,因此Word并不非常适用于记录软件程序。不幸的是,我不记得Open Office是否更好。最好的解决方法是使用默认的简单文本框。

1
我已尝试了您提供的所有方法,但它们对我无效,事实上我使用了更简单的方法,使用 MS Word表格优点:
  1. 更美观
  2. 更易管理和更一致
  3. 更不容易出现问题
  4. 无需外部插件或MS Word微编码。
  5. 更易于普通用户(如我自己)处理。
缺点: 虽然有人可以改进我的技巧,但它将无法保持代码着色。 步骤:
  1. 插入一个3x3的表格,在我的情况下,我总是使表格的总宽度等于免费页面的宽度(最少3行以测试表格样式)。

  2. 使用无边框("无边框"选项),并激活"查看网格线"选项。它应该具有这个方面。 请注意,这些线是为您查看表格的网格而设计的,它们不会被打印。

enter image description here


  1. 调整单元格间距和列宽,以获得你喜欢的效果。(你需要在“表格属性”中进行微调)。 enter image description here

  2. 创建一个名为“Code”的“段落样式”,专门用于您的代码片段(查看https://dev59.com/yGIj5IYBdhLWcg3wkl2U#25092977以了解想法,您不必全部遵循

  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. 保存该表格样式并享受它!


很好,直到你说“保存该表格样式”。 - Martin of Hessle
@MartinofHessle,对于需要在多个位置插入代码片段的大型文档,保存表格样式选项可以节省时间,此外它还允许您轻松修改整个文档中的表格样式,就像我为IDE和IDLE设置了一个样式一样...另一方面,如果您只使用一个表格,则可以省略最后一步。 - Nader Belal
我同意为什么这样做。将其保存到normal.dot并使其持久化的方法会是一个有用的补充。我已经弄清楚了,但它并不明显。 - Martin of Hessle
@MartinofHessle 对不起,我没有理解你上一句话。你能用简单的语言再重复一遍吗? - Nader Belal
1
抱歉打错了,应该是如何保存到normal.dot。 - Martin of Hessle

1
你可以使用Open Xml Sdk来实现此功能。如果你的代码是带有颜色和格式的html代码,你可以使用altchunks将其添加到Word文档中。 请参考这篇文章 Add HTML String to OpenXML (*.docx) Document 希望这可以帮助你!

1

0

所以我发现这个问题上的大多数答案要么只半正常工作,要么完全无法使用(例如所用的网站已经关闭)。这个解决方案完全自包含在Word中,在多个页面上运行,并可以保留您的语法高亮。

以下是步骤:

  1. 暂时将您的IDE主题设置为浅色系,使文本与您文档中的其余部分相匹配。
  2. 复制所需的代码(HTML颜色信息也将被复制)。
  3. 在Word中,按Ctrl+Alt+V并选择HTML格式以粘贴带有颜色的文本。
  4. 选择所有文本,然后展开功能区主页选项卡上的样式库。
  5. 选择“创建样式”。使用名称如“Code”。
  6. 右键单击样式库中的新样式,然后选择“修改”。
  7. 在格式化部分下,更改字体为Consolas或您选择的等宽字体。还将行距设置为紧凑型(此选项位于文本对齐选项旁边)。
  8. 在左下角的格式按钮下,选择“语言”,然后启用“不检查拼写或语法”选项。
  9. 如果您希望该样式在未来文档中可用,请切换到“基于此模板的新文档”单选按钮。

可选:为行号...

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接