1

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

我正在尝试将大量 Python 脚本粘贴到 Microsoft Word 中,并在代码片段周围编写文档文本。其中一些 Python 代码片段只有几行,而另一些则超过一页。由于该文档现在大约有 500 页长,因此大约有 200 个片段块散布在整个文档中。

我有一个为片段创建的字体样式。所以我可以一次更改所有字体的字体大小、颜色、样式等。但是我在自动换行方面遇到了很大的问题。Python 中的长语句被包裹在 word 中,这使得它们难以阅读,因为缩进丢失了。我能够使用“悬挂缩进”成功缩进 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 

我怎样才能用word解决这个问题?悬挂缩进将修复 1 级缩进(if 条件中的语句),但不能修复 2 级缩进(for 循环中的语句)

注意:我想在 word 中使用某种选项、插件或宏。我无法使用代码编辑器并以 rtf 或其他格式复制和粘贴代码。即使我这样做了 200 次来替换我所有的代码片段,当我更改文档中的字体大小时,一切都会再次变得混乱。另一种选择是一些 IDE,它嵌入或链接到 word 中(无需复制和粘贴),并允许在其自己的环境中更改字体样式和大小,这将在 Word 中的所有出现时自动更新。

如果可以的话请帮忙。我像疯了一样搜索,没有发现任何有用的东西......

4

5 回答 5

0

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

于 2011-04-22T13:26:07.077 回答
0

在支持 Python 的代码编辑器中编写代码,并带有语法高亮显示。保存您的片段。截屏。将它们粘贴到 MS Word 中。根据需要调整和裁剪图像。

现在您所要做的就是在图像周围的文字环绕上与 MS Word 进行斗争,这是一场您甚至可能会获胜的斗争。

于 2011-04-22T13:51:20.023 回答
0

使用docutils

与其对抗 MS-Word(和其他所见即所得的编辑器),不如使用 docutils 容易得多。

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

  2. 运行rst2html.py转换以从您的源代码创建漂亮的 HTML 页面。

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

在这种情况下,代码片段每次都得到完美处理。没有工作。

如果您正在编写非常大而复杂的东西,那么您应该为此使用Sphinx 。它是 docutils 的扩展,具有更酷的代码片段标记功能。

于 2011-04-22T14:41:45.617 回答
0

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

2) 使用等宽字体

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

于 2011-04-22T15:03:19.103 回答
0

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

当然,这样你必须逐行做,这可能是一个很大的痛苦。但是,如果只是一些有问题的片段,if 可能会起作用。

于 2014-09-04T00:30:08.093 回答