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

时间:2011-04-22 13:21:40

标签: python ms-word word-wrap auto-indent

我正在与Microsoft Word搏斗,正确显示我的Python代码,需要一些帮助。

我正在尝试将大量Python脚本粘贴到Microsoft Word中,并在文档片段周围编写文档文本。这些Python片段中的一些是几行,其他片段长一页。由于该文档现在大约有500页,因此整个文档中分散了大约200个片段块。

我创建的字体样式设置为片段。所以我可以一次更改所有字体的大小,颜色,样式等。但是我在翻译时遇到了很大问题。 Python中的长语句包含在单词中,这使得它们难以阅读,因为缩进会丢失。我能够使用“悬挂缩进”成功缩进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次来替换我的所有代码片段,当我更改文档中的字体大小时,一切都会再次搞砸了。另一种选择是嵌入或链接到word的一些IDE(无需复制和粘贴),并允许在自己的环境中更改字体样式和大小,这将在Word中自动更新。

如果可以,请帮忙。我疯狂地搜索过,发现没什么可行的......

5 个答案:

答案 0 :(得分:1)

在支持Python的代码编辑器中编写代码,并使用语法高亮显示。保存你的片段。截图。将它们粘贴到MS Word中。根据需要调整图像大小并进行裁剪。

现在你所要做的就是在围绕图像的文字上打字MS Word,这是一场你甚至可能会赢的战斗。

答案 1 :(得分:0)

您是否尝试过使用Word来草拟纯文本文档?您可以随时转换它。

答案 2 :(得分:0)

使用docutils

而不是与MS-Word(以及其他所见即所得的编辑器)作斗争,使用docutils要容易得多。

  1. 以近似纯文本撰写您的文档。您将使用非常简单和轻量级的RST标记。

  2. 运行rst2html.py转换,以便从您的来源创建外观漂亮的HTML页面。

  3. 运行rst2latex.py转换以从您的来源创建LaTeX。有许多工具可以从LaTeX生成PDF。

  4. 在这种情况下,每次都会完美地处理代码片段。没有工作。

    如果你写的东西真的很复杂,你应该使用Sphinx来做这件事。它是docutils的扩展,为代码片段提供了更酷的标记功能。

答案 3 :(得分:0)

1)遵循PEP-8推荐并保持行< 80个字符。 有时这似乎非常困难或不方便。在这些情况下,最多允许90-95个字符。较长的行可能是代码设计错误或错误选择的变量名称的结果。 (有些人使用最多120个字符的标准大小,但他们可能不会尝试以纵向模式在Word中发布代码。)

2)使用等宽字体

3)保持字体足够小,每行提供80-95个字符。

答案 4 :(得分:0)

我不使用word,但在LibreOffice中,你可以只使用段落格式 - 为每个缩进级别(pycodepycode_indent1...)创建一个新的段落样式。在顶级样式中放置所需的所有格式(单行间隔,无段落间距等),并使缩进样式将其用作父级。然后只需为每个子样式添加适当的缩进。这与多深度项目符号列表基本相同,没有子弹。然后为每一行选择合适的缩进段落样式(提示:您可以在LibreOffice中使用ctrl + mouse选择多个不连续的行)。

当然,这种方式你必须逐行完成,这可能是一个很大的痛苦。但是,如果它只是一些有问题的片段可能会起作用。