自动缩进Word中包装的Python代码

| 我正在努力使用Microsoft Word正确显示我的Python代码,并且需要一些帮助。 我正在尝试将大量Python脚本粘贴到Microsoft Word中,并在代码片段周围编写文档文本。这些Python片段中有一些是几行,另一些则超过一页。由于文档现在大约有500页长,因此整个文档中散布着大约200个摘要块。 我将自己创建的字体样式设置为摘要。因此,我可以一次更改所有字体的大小,颜色,样式等。但是我在自动换行时遇到了一个大问题。 Python中的长语句被包裹在单词中,由于缩进丢失,因此难以阅读。我可以使用\“ hanging indents \”成功缩进1级换行。但是我不能对2级或3级缩进做任何事情,因为嵌套的东西会进一步缩进。 示例(我使用点代替空格,因为它一直删除它们)
This is a statement
This is another statement
if (condition):
.........This is a third statement
.........This is a fourth statement
.........for loop : 
..................This is a fifth statement
..................This is a sixth statement
..................if (condition):
...........................This is a seventh statement
想象一下,每个语句都相当长,并且被包装到单词页的下一行。我懂了
This is a statement
This is another statement
if (condition):
.........This is a third     
statement
.........This is a fourth     
statement
.........for loop:
.................This is
a fifth statement
.................This is a
sixth statement 
我该如何解决这个问题?挂起的缩进将修复1级缩进(if条件中的语句),而不是2级缩进(for循环中的语句) 注意:我想在Word中使用某种选项,插件或宏。我无法使用代码编辑器以rtf或其他格式复制和粘贴代码。即使我做了200次以替换所有代码段,但一旦更改文档中的字体大小,一切都会再次混乱。另一个选择是将某些IDE嵌入或链接到Word中(而无需复制和粘贴),并允许在其自己的环境中更改字体样式和大小,这将在Word中自动更新。 如果可以的话请帮忙。我疯狂地搜索,没有发现任何有效的方法。     
已邀请:
1)遵循PEP-8建议,并保持行数少于80个字符。 有时这似乎非常困难或不便。在这些情况下,最多允许您输入90-95个字符。较长的行可能是代码设计错误或变量名称选择错误的结果。 (有些人使用的标准大小不超过120个字符,但可能他们没有尝试以纵向模式在Word中发布代码)。 2)使用等宽字体 3)保持足够小的字体大小,以每行提供80-95个字符。     
您是否尝试过使用Word起草纯文本文档?您以后可以随时对其进行转换。     
在具有语法突出显示功能的启用Python的代码编辑器中编写代码。保存您的摘要。截屏。将它们粘贴到MS Word中。根据需要调整大小和裁剪图像。 现在,您要做的就是在图片周围的文字换行中与MS Word战斗,这是您甚至可能会赢得的战斗。     
使用docutils。 与其与MS-Word(和其他WYSIWYG编辑器)作斗争,它使用docutils远远容易得多。 用近似纯文本形式编写文档。您将使用非常简单且轻巧的RST标记。 运行
rst2html.py
转换以从您的源创建漂亮的HTML页面。 运行ѭ3转换以从您的源创建LaTeX。有多种工具可以从LaTeX生成PDF。 在这种情况下,代码片段每次都可以得到完美处理。没事 如果您要编写的东西真的很大又很复杂,则应该为此使用Sphinx。它是对docutils的扩展,具有用于代码段的更多酷标记功能。     
我不使用word,但在LibreOffice中,您可以使用段落格式设置-为每个缩进级别(
pycode
pycode_indent1...
)创建新的段落样式。将所需的所有格式(等距,无段落间距等)置于顶层样式中,并使缩进样式将其用作父样式。然后,只需为每个子样式添加适当的缩进即可。这与没有项目符号的多深度项目符号列表基本相同。然后为每行选择适当的缩进段落样式(提示:您可以在LibreOffice中使用ctrl + mouse选择多条非连续的行)。 当然,这种方式必须逐行完成,这可能会造成很大的麻烦。但是,如果仅几个片段存在问题,是否可以奏效。     

要回复问题请先登录注册