有人知道在Microsoft Word文档中显示代码的方法吗?优选地,该方法也将是不引人注目的并且易于更新。

我已经尝试将代码作为常规文本包含,这看起来很糟糕,在编辑常规文本时会碍事。我还尝试过将对象(写字板文档和文本框)插入文档中,然后将代码放入这些对象中。代码看起来更好,在编辑其余文本时更容易避免。然而,这些对象只能跨越一个页面,这使得当需要添加几页代码时,编辑成为一场噩梦。

最后,我知道有很多更好的编辑器/格式在处理这个问题上没有问题,但我一直在使用MS word。


当前回答

下载并安装Notepad++并执行以下操作:

在窗口中粘贴代码;从语言菜单中选择编程语言;选择要复制的文本;右键单击并选择插件命令->使用语法突出显示复制文本;将其粘贴到MS Word中,您就可以开始了!

2013年6月29日更新:

Notepad++有一个名为“NppExport”的插件(预装),允许您复制到RTF、HTML和ALL。它允许使用数十种语言,而上述IDE仅限于少数几种语言(没有其他插件)。

我使用将所有格式复制到剪贴板并在MS word中“粘贴为HTML”。

其他回答

复制到Eclipse并将其粘贴到Word中也是另一种选择。

如果您不想安装沉重的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、diff文件*、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*。

也许这太简单了,但您是否尝试过粘贴代码并将其字体设置为Courier New?

答案中似乎还没有提到Hilite,因此:Hilite支持多种语言(20+),也可以通过API在线使用,并且位于Github上(因此,如果您不信任在线服务,您可以自行克隆、修改和运行它)。在线版本也可以通过CSS规则根据自己的需要进行调整。

我几分钟前刚找到它,因为我需要一个将xQuery复制到Word中的工具,但找不到合适的工具。源程序是baseX,由于某种原因,它的格式无法传输到Word(粘贴时也不能通过Keep格式等)。此外,许多给出的答案现在,即2019年6月,不再工作或不支持xQuery。然而,希莉特做得很好。

编辑:不幸的是,代码块不是结果的一部分,只是突出显示。然而,这总比什么都没有好,通过在周围添加一个块来调整结果仍然比手动格式化每一行要少

有一个很好的在线工具:https://www.troye.io/planetb/

只需复制生成的代码并将其粘贴到单词编辑软件中即可。到目前为止,我已经在MS Word和WPS Writer上试用过,效果非常好。在Firefox上玩得不好,但在Chrome上运行得很好(还有IE,但谁愿意使用它)。

主要的好处之一是,与Word的代码格式插件不同,它不会干扰代码,并且尊重各种语言的语法。我尝试了其他答案中提供的许多其他选项,但我发现这一个是最有效的(快速且真正有效)。

在另一个答案(markup.su)中也引用了另一个在线工具,但我发现planetB输出更优雅(虽然不太通用)。

输入:

输出: