автоматическая установка отступа для кода Python в Word - PullRequest
1 голос
/ 22 апреля 2011

Я борюсь с 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)

Примечание. Я хотел бы использовать какой-либо параметр илиплагин или макрос внутри слова.Я не могу использовать редактор кода и копировать и вставлять код в RTF или какой-либо другой формат.Даже если я сделал это 200 раз, чтобы заменить все мои фрагменты кода, в тот момент, когда я изменю размер шрифта в моем документе, все снова будет испорчено.Другим вариантом может быть какая-то IDE, которая встраивает или связывает в слово (без необходимости копировать и вставлять) и позволяет изменять стиль и размер шрифта в его собственной среде, которая будет обновляться при любых вхождениях в Word автоматически.помогите если сможете.Я искал как сумасшедший и не нашел ничего, что работает ...

Ответы [ 5 ]

0 голосов
/ 04 сентября 2014

Я не использую слово, но в LibreOffice вы можете просто использовать форматирование абзаца - создать новый стиль абзаца для каждого уровня отступа (pycode, pycode_indent1...).Поместите все необходимое форматирование (с интервалом в один интервал, без абзаца и т. Д.) В стиль верхнего уровня и сделайте так, чтобы отступы использовали его как родительский.Затем просто добавьте соответствующие отступы для каждого из дочерних стилей.По сути, это та же идея, что и с многоуровневым маркированным списком, без маркеров.Затем выберите соответствующий стиль абзаца отступа для каждой строки (подсказка: вы можете выбрать несколько несмежных строк, используя ctrl + mouse в LibreOffice).

Конечно, таким образом, вы должны делать это построчно, чтоможет быть большая боль в заднице.Но если может сработать, если это всего лишь несколько фрагментов, которые являются проблематичными.

0 голосов
/ 22 апреля 2011

1) Следуйте рекомендациям PEP-8 и сохраняйте строки <80 символов. Иногда это кажется очень трудным или неудобным. В этих случаях допускается до 90-95 символов. Более длинные строки, вероятно, являются результатом неправильного оформления кода или неправильно выбранных имен переменных. (Есть люди, работающие со стандартными размерами до 120 символов, но, вероятно, они не пытаются опубликовать код в Word в портретном режиме). </p>

2) Использовать моноширинный шрифт

3) Размер шрифта должен быть достаточно маленьким, чтобы в каждой строке содержалось 80–95 символов.

0 голосов
/ 22 апреля 2011

Напишите ваш код в редакторе кода с поддержкой Python с подсветкой синтаксиса.Сохраните ваши фрагменты.Сделай скриншоты.Вставьте их в MS Word.Измените размер изображения и обрежьте его по своему усмотрению.

Теперь все, что вам нужно сделать, - это бороться с MS Word за перенос слов на изображения, а это бой, который вы можете даже выиграть.

0 голосов
/ 22 апреля 2011

Использовать documenttils .

Вместо того, чтобы бороться с MS-Word (и другими редакторами WYSIWYG), гораздо, гораздо проще использовать документацию.

  1. Напишите ваш документ в виде обычного текста. Вы будете использовать разметку RST, которая очень проста и легка.

  2. Запустите преобразование rst2html.py, чтобы создать красивые HTML-страницы из вашего источника.

  3. Запустите преобразование rst2latex.py, чтобы создать LaTeX из вашего источника. Существует множество инструментов, которые могут создавать PDF из LaTeX.

В этом случае фрагменты кода обрабатываются идеально каждый раз. Без работы.

Если вы пишете что-то действительно большое и сложное, вы должны использовать для этого Sphinx . Это расширение для документирования с еще более интересными функциями разметки для фрагментов кода.

0 голосов
/ 22 апреля 2011

Пробовали ли вы использовать Word для создания простого текста? Вы всегда можете конвертировать его позже.

...