如何在MS Word中显示代码片段并保留格式和语法高亮?

2689

有没有一种方法可以在Microsoft Word文档中显示代码并保留着色和格式? 最好,该方法也应该不显眼且易于更新。

我尝试将代码作为普通文本包含在内,但效果很差,编辑常规文本时会妨碍。 我还尝试将对象插入文档中,如WordPad文档和文本框,然后将代码放入这些对象中。 代码看起来更好,并且在编辑其余文本时更容易避免。 但是,这些对象只能跨越一页,当需要添加多页代码时,编辑变成了恶梦。

最后,我知道还有更好的编辑器/格式可以轻松处理此问题,但我被困在使用MS Word。


我采用了混合解决方案。将带有RTF格式的内容复制到OpenOffice Writer中,删除背景(如果有的话),然后将代码粘贴到MS Word中。不知何故,我无法在Word中删除背景 :-(无论如何,在PhpStorm、WebStorm和PyCharm中使用“Copy on steroids”插件来完成此操作非常棒! - chjortlund
10
从Office 365开始,我不知道是不是甚至适用于Word 2013或2016。它有一个名为“代码格式”的在线插件。安装该Office插件,然后在您的Word文档中,您只需选择所有代码(甚至多个页面),并从“代码格式”插件中单击转换按��,即可将其转换为带有行号的格式化彩色代码。但我找不到无行号格式化的选项!但还是不错的! - Rahul Saini
除了特定的插件能够专门用于格式化代码之外,最好的解决方案是使用样式或者图片。 样式适用于格式化。我过去常常使用从 Star Office 到 Libre Office 的许多分支,但今天我开始使用 Word,发现只需探索样式配置就可以完成格式化。 只需使用 Notepad++ 导出 RTF,然后使用样式即可。 我所做的一些事情包括添加边框、我喜欢的背景颜色、勾选“同一样式之间不要添加间距”或类似选项(我使用的是法语界面,所以我不知道确切的英文标题),以及其他任何你喜欢的内容。 - 猫IT
另外,Easy Code Formatter不再起作用了。 - westr
https://syntax-highlighter.k26.ch/ 这个网站非常好用! - Nicicalu
显示剩余2条评论
45个回答

7

我正在使用Word 2010,喜欢从GitHub Gist上复制和粘贴代码。请记得保留源格式!

然后我会将字体更改为DejaVu Sans Mono。

您可以选择复制带有或不带编号的代码。


7
将内容复制到Eclipse中,然后将其粘贴到Word中也是另一种选择。

6
如果您正在使用Intellij IDEA,只需从IDE中复制代码并将其粘贴到Word文档中即可。

6
如果您不想安装复杂的IDE并下载所有相关插件,您也可以使用SciTE来粘贴代码。只需从语言菜单中选择您的语言,输入代码,高亮显示代码,选择编辑->复制为RTF,在Word中带格式粘贴即可(默认粘贴)。 SciTE支持以下语言,但可能还支持其他语言:Abaqus*,Ada,ANS.1 MIB定义文件*,APDL,汇编语言(NASM,MASM),渐近线*,AutoIt*,Avenue*,批处理文件(MS-DOS),Baan*,Bash*,BlitzBasic*,Bullant*,C / C ++ / C#,Clarion,cmake*,conf(Apache),CSound,CSS*,D,差分文件*,E-Script*,Eiffel*,Erlang*,Flagship(Clipper / XBase),Flash(ActionScript),Fortran*,Forth*,GAP*,Gettext,Haskell,HTML*,带嵌入式JavaScript的HTML,VBScript,PHP和ASP*,Gui4Cli*,IDL-MSIDL和XPIDL*,INI,属性*和类似的,InnoSetup*,Java*,JavaScript,LISP*,LOT*,Lout*,Lua*,Make,Matlab*,Metapost*,MMIXAL,MSSQL,nnCron,NSIS*,Objective Caml*,Opal,Octave*,Pascal / Delphi*,Perl,除了一些模糊的情况外,大多数都支持*,PL / M*,Progress*,PostScript*,POV-Ray*,PowerBasic*,PowerShell*,PureBasic*,Python*,R*,Rebol*,Ruby*,Scheme*,scriptol*,Specman E*,Spice,Smalltalk,SQL和PLSQL,TADS3*,TeX和LaTeX,Tcl / Tk*,VB和VBScript*,Verilog*,VHDL*,XML*,YAML*。

粘贴 PHP 代码时无法正常工作。只有开头和结尾的括号被突出显示 :( 但对于 Java 来说运行良好。 - Ren

6

一个支持多种语言的着色网站。 http://hilite.me/

你可以自己托管它,因为它是开源的。代码在 github 上。


1
hilite.me 也适用于 Google 文档! - Krish

5
我已经创建了一种更简单的方法,使用表格来实现,因为它们更容易创建、管理,并且更加一致(可以在文档中保存表格的样式),但是对于代码着色方案,我找不到更好的方法,很抱歉。 步骤:
  1. 创建一个3x3的表格。
  2. 选择表格,将其边框设置为不可见("No Borders"选项),并激活"View Gridlines"选项。enter image description here
  3. 调整单元格间距和列宽以获得所需的外观。(您需要进入"Table Properties"进行微调)。enter image description here
  4. 创建一个名为"Code"的"段落样式",专门用于代码片段(https://dev59.com/yGIj5IYBdhLWcg3wkl2U#25092977中所述)。
  5. 创建另一个名为"Code_numberline"的"段落样式",该样式基于先前创建的样式,但在其定义中添加了编号线(这将自动编号行数)。enter image description here
  6. 将"Code_numberline"应用于第一列,将"Code"应用于第三列。enter image description here
  7. 在中间列添加填充。enter image description here
  8. 保存该表格样式并享受!

如果你复制和粘贴代码,你必须手动将行拆分为行。 - Steven Spyrka
上次我使用这种方法时,不需要这样做。或许你需要选择多行。 - Nader Belal

5

实际上没有一种干净的方法来处理这个问题,根据您的具体样式设置,它可能仍然看起来很可疑。

您可以尝试先运行代码到HTML的转换(有许多程序可以做到这一点),然后尝试使用Word打开HTML文件,这可能会为您提供格式化和漂亮的代码,然后将其复制并粘贴到您的文档中。


5
我也在寻找这个功能,最终创建了一些代码显示的内容。以下是一个不错的方法:
  • 创建一个矩形框,并将您的文本放置在其中。
  • 将字体更改为Consolas,大小为~10。
  • 将文本字体更改为灰色近黑色(灰色25%,较暗75%)
  • 如果需要,可以使用较深的颜色突出显示文本,并选择其中一个作为轮廓。

enter image description here


5

对于寻找2023年工具的人们。这是一个与Word 2016和2019配合使用的工具。

https://syntax-highlighter.k26.ch/

我创建了这个工具,是因为类似的工具很多,但它们中的大部分都已经下线或停止运作。如果您有任何反馈或问题,请在 GitHub 上创建一个 issue。此外,它非常简单、小巧,只需要一个 HTML 文件即可完成。您可以下载或克隆该仓库,并自行托管。


4
我已经阅读并尝试了所有的帖子,我想给出所有解决方案的概述。最好的方法取决于您的要求。如果只有不超过一页的短代码片段,则使用插入对象。如果代码超过一页,则使用RTF格式。
插入文本框:
- 无法进行分页 - 可以进行拼写检查 - 格式很容易被破坏 - 在一个数千页的文档中,Word 2016开始出现问题。在尝试插入新文本框时,Word总是会崩溃。
插入对象>文档:
- 无法进行分页 - 没有拼写检查 - 格式和内容都能保持安全
RTF格式:

或者使用其他所见即所得编辑器/在线工具/库来为代码添加样式。

一些插件/附加组件

全部停用或者不再适用。


看起来更像是一条评论而不是一个答案。 - Erdem Şen

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